Избранное трейдера АлексейФ
Эта статья родилась из серии заметок, которые я публиковал у себя на канале в течение всего июля. Почему я вообще взялся за эту тему? Дело в том, что в среде пассивных инвесторов принято сравнивать активное инвестирование с игрой в казино. Дескать, все предаются этому бесполезному занятию в надежде обогатиться – в то время как на деле в выигрыше остается исключительно казино.
Эта метафора в целом является относительно неплохой. В том числе и тем, что в жизни казино вполне можно обыграть (хоть это и не значит, что надеяться на это конкретно в вашем случае будет хорошей идеей). Так что сегодня мы как раз поговорим о тех случаях, когда казино успешно получилось оставить в дураках – и, нет, отнюдь не благодаря счастливой случайности.
Продолжаю улучшать Робот Сетка LUA.
Очередной задачей была добавление возможности выставления заявок в центр спреда.
Задача особенно актуальна в свете новых правил Московской Биржи, где мейкерские (лимитные) заявки освобождаются от биржевой комиссии.
Я всегда пользовался стратегией фронтраннинга, т.е. вставал впереди конкурента.
По просьбам трейдеров решил добавить возможность выставлять заявки в центр спреда.
На первый взгляд достаточно взять цены спроса и предложения из таблицы Текущие Торги в QUIK и посчитать «(bid+ask)/2», но не так всё просто.
Когда мы выставляем свою заявку, мы сами создаём новые цены спроса или предложения, т.е. конкурируем сами с собой. Спред будет сужаться до выполнения заявки по рынку.
Возможен вариант брать встречную котировку и вычитать (добавлять для продажи) из неё отступ в пунктах.
Н-р, для покупки формула будет выглядеть так: «ask-point*1». Цена спроса (bid) в формуле не участвует, поэтому наша заявка будет зависеть только от цены предложения.
Обзор бесплатного робота для парного арбитража в OsEngine. Сразу напоминаем, что робот уже готов к запуску на Московской бирже (MOEX), криптобиржах вроде Binance, Bitget и т.д.
Робот, ловящий «кочергу» в парах на разрыв. То есть прибыль будет тогда, когда пары продолжают движение на расхождение относительно друг друга.
Суть идеи: если корреляция ниже определённого значения ( в данном случае -0,8), и на графике минимальных отклонений мы находимся выше/ниже сигнальных линий, входим, рассчитывая на дальнейшее расхождение инструментов.
Зачем нужен демо терминал
Где открыть учебный счет
Выставление заявки в торговом терминале через скрипт
Делаем функцию выставления заявки по требуемым условиям
Карман заявок и tri-файлы
Параметры для заявок с примерами по разным рынкам
Почему важно начинать работу с заявками на qlua с демо терминала?
В отличие от рассматриваемых ранее скриптов, в которых мы обращались к окнам терминала и обрабатывали данные с котировок, графиков, индикаторов и таблиц, делали расчеты, выводили сообщения или собственные таблицы, работа с заявками уже завязана на денежные средства. И т.к. у начинающих всегда есть риски ошибок в коде, различных опечаток, некорректном запуске выставлении заявки в цикле и пр., то начать работу с этой темой я настоятельно рекомендую именно в демо терминале. И речь здесь не только о комиссиях за сделку на которые можно попасть, но и вероятности купить не тот инструмент, не в том объеме, как следствие, например влететь на маржиналку и пр., и пр.
Достаточно, например, прописать в
Сегодня:
Добавляем статистику по акциям роста и падения.
Составляем TOP лидеров роста и падения.
Быстрый поиск акций по тикеру в терминале.
Пока не перешли к следующей теме решил показать, как можно улучшить скринер акций, который делали ранее. Кто еще не знаком или уже забыл о чем был скрипт лучше вернуться и хотя бы бегло ознакомиться с логикой и пошаговым построением, чтобы было легче вникнуть в текущие изменения.
Напомню, что скринер выводил по тикерам акции, которые торгуются на Московской Бирже (за минусом бумаг с нулевыми объемами), и по ним через каждые 10 секунд проверял значение LASTCHANGE (% роста/снижения к закрытию прошлого дня) через getParamEx.
В первичной итерации скринер выглядел следующим образом:
Логично продолжить изменения скрипта и сделать расчеты, которые напрашивались, глядя на сам скринер: подсчитаем сколько бумаг торгуется в плюсе, сколько в «красной зоне». Также можно рассчитать средний процент роста/снижения всего по списку, плюс отдельно по растущим бумагам, отдельно по падающим.
Сегодня завершаем работу с лентой всех сделок:
Различия данных ленты всех сделок и биржевого стакана.
Большие покупки и продажи в ленте сделок и динамика цены.
Альтернативные варианты поиск крупных игроков по ленте сделок.
Начало: https://smart-lab.ru/blog/935919.php
Еще раз про отличия ленты всех сделок и биржевого стакана – некоторые заявки могут исполняться очень быстро, их можно просто не заметить в стакане, но они точно отразятся в ленте. Какие-то заявки и движения в стакане могут быть для создания видимости крупных игроков, при этом они могут как отменяться как только цена начинает приближаться, так и очень оперативно переставляться. Лента сделок покажет реальную картину: какие объемы и по каким ценам прошли, какие проходят в текущем моменте.
Обычно при значительных покупках в ленте сделок мы можем наблюдать и рост цены. Например, используя скрипт, который мы рассмотрели в прошлой статье, это можно было наблюдать наглядно на графике Сбербанке (импульс роста в районе 12 часов):
Сегодня дополним наш алгоритм советника следующими пунктами:
1. Пропуск «поздних» сигналов на старте.
2. Обработка советником обрыва связи.
3. Сохранение сигналов и логов в файл.
Еще один пункт, связанный со временем, который был выбран для апгрейда советника – это пропуск сигналов на старте, если запуск скрипта состоялся не в начале торговой сессии (например любой старт после 10:30). Это может быть полезным, если выбрана активная внутридневная стратегия и сигналы полученные на старте скрипта, например в середине дня, могут быть уже не актуальными (с низким потенциалом прибыли) и лучше дождаться новых. Т.е. необходимо разделить сигналы на те, которые сгенерировались на старте и остальные сигналы, которые будем далее брать в работу. Сигнал на старте может закрыться (по обратному/сигналу выхода) и если переоткроется снова, то его уже можно брать в работу как новый.
В нашем скрипте сигналы по каждому инструменту (массив signal) ранее могли принимать значение:
0 – вне позиции по инструменту