Избранное трейдера Aydar
--переменные keyRateCB = 7.5 classCode = "TQOB" function CreateTable() t_id = AllocTable() AddColumn(t_id, 0, "Бумага", true, QTABLE_STRING_TYPE, 15) AddColumn(t_id, 1, "Цена", true, QTABLE_DOUBLE_TYPE, 15) AddColumn(t_id, 2, "Доходность, %", true, QTABLE_DOUBLE_TYPE, 15) AddColumn(t_id, 3, "Дюрация, лет", true, QTABLE_DOUBLE_TYPE, 15) AddColumn(t_id, 4, "Купон, %", true, QTABLE_DOUBLE_TYPE, 15) AddColumn(t_id, 5, "Премия к ЦБ, бп", true, QTABLE_INT_TYPE, 15) AddColumn(t_id, 6, "Погашение", true, QTABLE_STRING_TYPE, 15) t = CreateWindow(t_id) SetWindowCaption(t_id, "ОФЗ") end function string.split(str, sep) local fields = {} str:gsub(string.format("([^%s]+)", sep), function(f_c) fields[#fields + 1] = f_c end) return fields end function getParamNumber(code, param) return tonumber(getParamEx(classCode, code, param).param_value) end function formatData(prm) return string.format("%02d.%02d.%04d", prm%100, (prm%10000)/100, prm/10000) end CreateTable() arr = {} sec_list = getClassSecurities(classCode) sec_listTable = string.split(sec_list, ',') j = 0 for i = 1, #sec_listTable do secCode = sec_listTable[i] securityInfo = getSecurityInfo(classCode, secCode) short_name = securityInfo.short_name if short_name:find("ОФЗ 26") ~= nil then j = j + 1 r = {} r["short_name"] = short_name r["price"] = getParamNumber(securityInfo.code, "PREVPRICE") r["yield"] = getParamNumber(securityInfo.code, "YIELD") r["duration"] = getParamNumber(securityInfo.code, "DURATION")/365 couponvalue = getParamNumber(securityInfo.code, "COUPONVALUE") couponperiod = getParamNumber(securityInfo.code, "COUPONPERIOD") r["coupon"] = ((365/couponperiod) * couponvalue)/10 r["bonus"] = (r["yield"] - keyRateCB)*100 r["mat_date"] = getParamNumber(securityInfo.code, "MAT_DATE") table.insert(arr, j, r) end end table.sort(arr, function(a,b) return a["duration"] < b["duration"] end) for j = 1, #arr do row = InsertRow(t_id, -1) SetCell(t_id, row, 0, arr[j]["short_name"]) price = arr[j]["price"] SetCell(t_id, row, 1, string.format("%.2f", price), price) yield = arr[j]["yield"] SetCell(t_id, row, 2, string.format("%.2f", yield), yield) duration = arr[j]["duration"] SetCell(t_id, row, 3, string.format("%.2f", duration), duration) coupon = arr[j]["coupon"] SetCell(t_id, row, 4, string.format("%.2f", coupon), coupon) bonus = arr[j]["bonus"] SetCell(t_id, row, 5, string.format("%.0f", bonus), bonus) mat_date = arr[j]["mat_date"] SetCell(t_id, row, 6, formatData(mat_date), mat_date) end
Итак, ЦБ поднял процентную ставку на 0,25 пунта до 7,5% — а это значит, что облигации упали, а доходность по ним выросла. Примерно такого развития событий мы и ожидали и писали об этом в нашей группе ВК и также недавно опубликовали обучающую статью по облигациям на тему такого понятия как дюрация.
Теперь настало время обещанного обзора облигаций. Сегодня будет только первая часть, где мы в общем рассмотрим те ОФЗ, которые сейчас могут быть интересными, а во второй части мы уже дадим конкретную рекомендацию и сами что-то купим в портфель.
ОФЗ на Московской биржеК сожалению сейчас нет доступа к терминалу QUIK — поэтому будем пользоваться данными с сайта Московской биржи (там нет показателя дюрации и это плохо, также поэтому будет 2 часть обзора).
Почему мы будем смотреть именно ОФЗ? Ведь есть еще корпоративные облигации, доходность по которым может быть выше. Да, это действительно так, но и риски там могут быть намного выше. Мы же в целом исходим из того, что ОФЗ — самый надежный инструмент инвестирования на Российском фондовом рынке (надежнее, чем депозит в Сбербанке). И этот самый надежный инструмент может дать очень неплохую доходность. Поэтому берем ОФЗ, а для более рискованных вложений у нас есть акции.
Гамбит — комбинация в начале шахматной партии, в которой жертвуют фигурой или пешкой для получения стратегического преимущества.
Турецкая лира и другие валюты развивающихся рынков в августе 2018 приковали внимание, пожалуй, большинства кто работает на финансовых рынках. Сам несколько раз в день смотрю на относительную динамику курсов валют, что раньше делал раз в неделю или месяц.
На фоне динамики лиры USDTRY(он падала на 80% в 2018 с 3,8 до 7, в том числе на 40% в августе с 5 до 7 — сейчас ~6) другие валюты к USD движутся достаточно умеренно — в пределах нормальных 20%. Курс рубля USDRUB с начала года упал на 16% и это достаточно много с учетом существенного улучшения условий торговли — роста цен на нефть. Здесь свою роль играют санкции и бюджетное правило, которое не ограничивает колебания рубля (разве что от нефти), а даже усиливает его зависимость от потоков капитала и сезонности.