Избранное трейдера UnusSedLeo
Я доработал свою прогнозную модель по Транснефти и делюсь с вами своими прогнозами по компании на 2024 год.
Финансовые показатели Транснефти зависят от двух переменных:
1️⃣ Объем транспортировки нефти и нефтепродуктов (считаю сумму в млн т.);
2️⃣ Коэффициент индексации тарифов на прокачку.
Я перемножил объем транспортировки и коэффициент индексации тарифов, получил корреляцию этого показателя с выручкой Транснефти за последние 6 лет = 99,77%, сильнейшая связь.
Объем транспортировки нефти и нефтепродуктов в 2023 году = 497,1 млн т. (при добыче нефти в России – 523 млн т. за 2023 год). Этот показатель коррелирует с добычей нефти в России на 98%.
❗️ НО на 2024 год – мы знаем, что добыча нефти Россией в следующем году снизится в связи с пересмотром квот ОПЕК+. Квота ОПЕК+ подразумевает добычу России нефти 9 949 млн б/с, это 497 млн т. в год.Более того, Россия добровольно сокращает добычу еще на 0,5 млн б/с – до 9 449 млн б/с или 472 млн т. в год. И вице-премьер А. Новак заявил, что Россия уже вышла на этот минимальный уровень.
Чтобы рассчитать сумму инвестиций, необходимую для получения определенного размера дохода, нужно желаемую сумму годового дохода разделить на дивидендную доходность акций. Таким образом инвестор будет получать дивиденды и не тратить основной капитал, чтобы его хватило на долгий срок.
Рассчитаем какую сумму нужно сейчас вложить в акции, чтобы жить на дивиденды. Допустим, потенциальному рантье нужно ₽70 тыс. в месяц, что примерно сопоставимо со средним размером зарплаты в России, которая в октябре 2023 года по данным Росстата составила ₽74 тыс.
В этом посте я расскажу, как я придумал себе инвестиционную стратегию, которая очень эффективно работает вот уже шестой год. Я также попытаюсь разобраться, с чем связан «феномен таблички»: почему сделанный на коленке инструмент вдруг начали использовать тысячи человек, а я (как автор) вдруг стал популярным в узких кругах. Начнём по порядку...
На дворе было лето 2018 года. Я всерьез задумался над вопросом: что делать с деньгами, которые лежат на вкладе под довольно скромные проценты? Это сейчас вклады под 15-16% норма, а тогда ключевая ставка была низкой, и вклады у меня были под 6-7% годовых. Валюта тоже была, но положить её под адекватный процент — задача и тогда была не из простых (а сейчас и подавно).
Ретроспективно (заглядывая в будущее, т.е. в сегодняшний день) можно было советовать к покупке однушки у метро, но а) я не настолько богат; и б) тогда это было не так очевидно. В любом случае, несмотря на обрушение российского рынка ценных бумаг в 2022, сейчас с доходностью всё в порядке. Но пост не об этом.
Каждый уважающий себя котлетер и туземунщик обязан стать «квалом». Вот и осенило меня на выходных, что хватит лениться, надо взять и получить статус квалифицированного инвестора, ведь ничего сложного в этом нет, нужно лишь оборот на 6 млн показать. Других способов квалифицироваться пока нет (👨⚕️ справка из дурки не подходит, 6 млн на счетах пока нет).
Квалы, пишите в комментариях, что там ещё есть из любопытного.
Поскольку нужна торговая история за 4 квартала, у меня для этого подходит только Альфа. Поэтому докрутил необходимый оборот на фонде «Ликвидность», потратил на комиссии в районе 3000 рублей и полчаса времени. К слову, статус в Альфе можно только получить, перенести от другого брокера нельзя. Потом буду смотреть, можно ли будет его перенести из Альфы в БКС или куда-то ещё, чтобы покупать зарубежные бумаги.
Сегодня:
Работа с биржевым стаканом через getQuoteLevel2
Особенность нумерации в стакане заявок терминала квик
Работа через функцию обратного вызова OnQuote
Примеры работы со стаканом из скрипта
Сравнение реализации одного алгоритма через разные функции
Из таблицы текущих торгов мы можем получать большой перечень данных, в т.ч. по лучшим ценам спроса и предложения, из которых желающие получат спрэд по выбранному инструменту. Однако иногда нужно заглянуть именно в биржевой стакан. Это, например, пригодится нам далее при выставлении заявок.
Работать с биржевым стаканом можно через getQuoteLevel2 и функцию обратного вызова OnQuote.
Функция getQuoteLevel2 возвращает 2 массива котировок (bid и offer) и 2 значения: количество бидов в стакане (bid_count) и количество офферов (offer_count). Чтобы нам не было скучно разработчики терминала решили последних 2 параметра передавать в виде строки, поэтому при работе их нужно перевести в числа (через tonumber).
Массивы bid и offer содержат цены (price) и количество (quantity) по каждому уровню заявок стакана. Их также нужно будет предварительно перевести в число.
Продолжаем изучение qlua, cегодня:
Интегрируем таблицы в структуру скрипта qlua.
Удаляем таблицы через DestroyTable.
Останавливаем скрипт через IsWindowClosed.
Обработка события закрытия таблицы через коллбэк.
Работа с цветом SetColor, Highlight, SetSelectedRow.
Пишем простого советника.
В прошлый раз мы рассмотрели как с помощью qlua создать таблицу в торговом терминале и заполнить её информацией из таблицы текущих торгов. Но это была статичная табличка, чтобы её «оживить» нужно разместить операции с нашей таблицей внутри структуры скрипта в функции main.
Саму таблицу мы можем создать до цикла while и внести неизменяемые данные (в нашем случае тикер и наименование бумаги), а уже заполнить цифрами и обновлять внутри цикла. Пока будет работать скрипт таблица будет обновляться.
function OnInit() tikers = {"GAZP", "SBER", "VKCO"} progname = "mytable :" timeout = 5000 end function OnStop() do_it = false message(progname.." Финиш.") end function main() message(progname.
Сегодня начинаем уже писать полноценные скрипты для терминала, а не отдельные блоки кода на lua.
Пройдем:
Структура скрипта
В торговом терминале можно запускать небольшие примеры на lua, как мы это делали ранее, но если говорить о постоянно работающем алгоритме, а не о компактной программе, которая должна выполнить только несколько коротких действий, то минимальная структура скрипта для квика будет содержать следующие функции:
function OnInit – инициализирует глобальные переменные и константы (например, торгуемые бумаги, размеры тейка и стопа, торговый счет и пр.), имена таблиц, необходимых файлов.
function OnStop – функция остановки скрипта, активируется при нажатии клавиши «Остановить» в панели скриптов терминала.
function main – основная функция, создает отдельный поток для выполнения скрипта. Обычно внутри main создается цикл для непрерывной работы, т.к. без него функция выполнит один раз весь код, который в ней прописан и скрипт остановится.