Продолжаю улучшать Робот Сетка LUA.
Очередной задачей была добавление возможности выставления заявок в центр спреда.
Задача особенно актуальна в свете новых правил Московской Биржи, где мейкерские (лимитные) заявки освобождаются от биржевой комиссии.
Я всегда пользовался стратегией фронтраннинга, т.е. вставал впереди конкурента.
По просьбам трейдеров решил добавить возможность выставлять заявки в центр спреда.
На первый взгляд достаточно взять цены спроса и предложения из таблицы Текущие Торги в QUIK и посчитать «(bid+ask)/2», но не так всё просто.
Когда мы выставляем свою заявку, мы сами создаём новые цены спроса или предложения, т.е. конкурируем сами с собой. Спред будет сужаться до выполнения заявки по рынку.

Возможен вариант брать встречную котировку и вычитать (добавлять для продажи) из неё отступ в пунктах.
Н-р, для покупки формула будет выглядеть так: «ask-point*1». Цена спроса (bid) в формуле не участвует, поэтому наша заявка будет зависеть только от цены предложения.


Всем привет!

В данной статье хотел показать интересный подход формирования отчета из QUIK, который выдается в формате файла HTML и который можно посмотреть любым браузером.
В своем канале на Дзен, я показывал как можно получать информацию скриптами QLUA:
— как переносить информацию в Эксель;
— как записывать информацию в файл;
— как отражать информацию в собственной таблице QUIK.
Все эти способы достаточно ограничены в части оформления выдачи результатов. Если же нужную информацию переносить в файл HTML, то там мы практически ничем не ограничены и можем отображать нужную информацию любыми шрифтами, цветами и пр.
В качестве пример, я покажу скрипт, который запросит все доступные фьючерсы и выдаст их в файл в виде таблицы.
Для начала нам потребуется функция QLUA — getClassSecurities.
Данная функция выводит список всех бумаг указанного класса. В нашем случае команда getClassSecurities(«SPBFUT») выдаст нам список всех доступных фьючерсов. В результате мы получим одну строку с кодами бумаг, разделенные запятыми.

while stopped==false do sig=1 --значение по умолчанию if условие and sig==1 then sig=2 --после транзакции изменяется на 2 отправка транзакции elseif условие and flag==2 then sig=1 --после транзакции меняется на исходную 1 отправка транзакции end end


