Избранное трейдера Sarmatae
Здравствуйте, коллеги!
Отшумели страсти по IPO Генетико [GECO], время сделать промежуточный анализ.
В топике от 19 декабря 2017 г. "Голубая фишка руками маркетмейкера" рассматривал вопрос объёмов, если бумагу нужно удерживать на плаву (была «видимость» торговли) в дело вступает маркет мейкер.
Скачал дневные объёмы по Генетико:
После хайпа на размещении, объёмы начали резко снижаться и включение c 14.06.2023 года ПАО Московская Биржа в Сектор Роста:
Все инвесторы знают или слышали понятие "акции первого эшелона" или "акции третьего эшелона". В этой статье я решил более подробно осветить тему эшелонов (уровней листинга) акций российского фондового рынка и объяснить, как бумаги попадают в тот или другой эшелон, а так же, чем они отличаются друг от друга.
Начну с определения самого слова «эшелон» — это французское слово, в переводе означает «лестница».
В русском языке это слово имеет два значения: эшелоном называют состав поезда, либо форму расположения войск.
На фондовом рынке существует уровни листинга, их 3. По сути, это и есть эшелоны, только листинг — более профессиональный термин, а эшелон — народный.
В последнее время на нашем фондовом рынке стали появляться так называемые «ракеты» в акциях 2 и 3 эшелона, бумаги некоторых компаний росли на сотни процентов за пару месяцев и даже дней, например:
Сегодня рассмотрим:
Вывод текста на график
Вывод графических сигналов
Удаление меток с графика
Торговый советник на индикаторах
Удаление данных вечерней/утренней сессии с графика.
В торговом терминале почти нет графических инструментов, которых можно было бы задействовать через скрипт. Фактически разработчики оставили возможность использовать только индикаторы (неточность или ошибка в написании которых может подвесить весь терминал) и специальные метки, которые можно наносить на график.
И хотя сам терминал имеет возможность отрисовки различных линий, фигур, каналов, дуг, уровней, но из lua скрипта ничего этого до сих пор штатными методами не доступно. Разработчики оставили единственную возможность — вывод рисунка (bmp или jpg), поэтому желающий нарисовать, например, прямоугольник должен сперва его отрисовать где-то (или взять из библиотек рисунков), сохранить в нужном формате, и далее уже через метку поместить в конкретном месте графика. Вот такой вот «кружок авиамоделизма») Посмотрим как это работает.
Тут (https://smart-lab.ru/blog/931729.php) я сказал и объяснил что мы с вами (граждане России) виноваты в таком курсе рубля.
А сейчас покажу кто не виноват в этом.
Это — Роман Аранин.
Создатель фабрики обоев в Калининграде — Prima Italiana.
Продолжаем погружение в основы qlua.
Идентификатор инструмента
Получаем количество свечей через getNumCandles
Получаем свечные данных через getCandlesByIndex
Читаем данные с индикатора SMA
Данные с верхней и нижней линии Price Channel
Графики с таблицы текущих торгов
Сравнение получение данных через CreateDataSource и через getCandlesByIndex
Торговый терминал позволяет получать данные по биржевым свечкам непосредственно из открытых графиков. Причем можно получать данные не только с котировок цены, но и с объемов, с индикаторов, а также, как мы увидим позже, с любых графических данных выведенных, например, с таблицы текущих торгов.
Получение данных котировок с графика цены.
Для начала на самом графике цены необходимо установить идентификатор.
Создаем график в торговом терминале, нажимаем правую клавишу мышки, выбираем «Редактировать», выбираем график цен:
Проваливаемся во вкладку «Дополнительно», и присваиваем id, например: SBER_ID:
Функция CreateDataSource
Получение количества свечек данных
Пауза для подгрузки данных
Получение по инструменту OPEN, HIGH, LOW, CLOSE, VOLUME
Обработка времени и даты
Закрытие источника данных
Примеры: получение данных последних 10 свечей, выгрузка новой минутной свечки после её закрытия, текущее значение простой средней SMA10 по минуткам
Простой скрипт выгрузки котировок
Сегодня рассмотрим функцию, с помощью которой можно получать данные биржевых свечек. Это можно делать и с графиков (чуть позже рассмотрим), но в этом случае нужно, чтобы сам график как источник данных был открытым, что не очень удобно, особенно если скрипт использует несколько таймфреймов – необходимо аналогичным образом держать открытыми и соответствующее количество графиков.
Более практичным вариантом является получение данных через функцию CreateDataSource, запрос осуществляется следующим образом:
ds, err = CreateDataSource(код класса, тикер инструмента, интервал)
Код класса: для акций «TQBR», для срочного рынка «SPBFUT».
Сегодня дополним наш алгоритм советника следующими пунктами:
1. Пропуск «поздних» сигналов на старте.
2. Обработка советником обрыва связи.
3. Сохранение сигналов и логов в файл.
Еще один пункт, связанный со временем, который был выбран для апгрейда советника – это пропуск сигналов на старте, если запуск скрипта состоялся не в начале торговой сессии (например любой старт после 10:30). Это может быть полезным, если выбрана активная внутридневная стратегия и сигналы полученные на старте скрипта, например в середине дня, могут быть уже не актуальными (с низким потенциалом прибыли) и лучше дождаться новых. Т.е. необходимо разделить сигналы на те, которые сгенерировались на старте и остальные сигналы, которые будем далее брать в работу. Сигнал на старте может закрыться (по обратному/сигналу выхода) и если переоткроется снова, то его уже можно брать в работу как новый.
В нашем скрипте сигналы по каждому инструменту (массив signal) ранее могли принимать значение:
0 – вне позиции по инструменту
Продолжаем изучать основы qlua. Улучшаем советника, которого писали ранее и уже дополняли в разных вариантах работой со временем.
Сегодня рассмотрим:
Дополним сигналами на закрытие позиции.
Создадим дополнительную таблицу для вывода данных.
Научим скрипт делать расчет финансового результата.
Сигналы на закрытие позиции.
Логика выходов не менее важная часть любой торговой стратегии и должна тестироваться также скрупулезно как и логика сигналов на вход и разные варианты фильтров для лонга и шорта. Также может быть отдельная логика управлением позицией, например часть позы может частично докупаться если движение идет в сторону прибыли, частично резаться если в сторону убытков, могут по-разному управляться стопы: вся позиция или часть закрываться по уровням, вся или часть двигаться трейлингом в разной логике, например, какая-то часть или вся позиция закрываться по времени (перед закрытием основной сессии или через определенное количество часов после входа, если нет сильного движения и цена ни стоп, ни тейк не достигла).