Продолжаем знакомится с коннектором к фьючерсной площадке MOEX от OsEngine. В данной статье посмотрим где искать исходный код.
Сам проект OsEngine на GitHub по ссылке: https://github.com/AlexWan/OsEngine
Коннекторы используются для соединения с различными биржами, брокерами и их архитектура должна подчиняться определенным правилам.
Сегодня рассмотрим код коннектора MoexFixFastTwimeFutures, как учитывалась специфика работы протоколов, которые используются для совершения транзакций и получения биржевой информации.
В структуре проекта OsEngine классы коннектора располагаются в папке MoexFixFastTwimeFutures, к которой ведет путь: OsEngine > Market > Servers:
Для работы коннектора MoexFixFastTwimeFutures с демосчетом, про оформление которого я рассказывал в предыдущей статье https://smart-lab.ru/company/os_engine/blog/1070161.php, необходимо дополнительно настроить некоторые сетевые соединения. Тоже самое потом касается и реала!
В части взаимодействия с интерфейсами FIX Gate и TWIME ничего настраивать не требуется, подключение осуществляется по протоколу ТСР через Интернет.
Дополнительные манипуляции потребуются для получения рыночных данных по протоколу FAST:
Продолжаем знакомить вас с новым профконнектором платформы OsEngine для Московской биржи. Не обязательно и даже вредно сразу разбираться с таким сложным подключением в реале. Поэтому будем учиться получать демку. Нам необходим доступ к тестовому контуру срочного рынка.
Для его получения надо заполнить анкету на сайте Московской биржи по адресу: https://www.moex.com/ru/forms/poll/questionnaire.aspx?id=03
После заполнения личных данных указываем, что необходимо подключение к срочному рынку, полигон Т0, через Интернет.
Приступая к разработке коннектора, я надеялся на наличие подробных инструкций с образцами кода, желательно на языке C#, который мы используем в OsEngine, но пришлось довольствоваться тем, что было припрятано в глубинах FTP-серверов Московской биржи.
Во-первых, для поиска инструкций на сайте Московской биржи надо зайти в раздел Технологические решения и перейти на вкладку Шлюзовое подключение.
Находим транзакционные интерфейсы срочного рынка TWIME и FIX Gate.
На странице, посвященной интерфейсу TWIME, есть ссылка на документацию, которая ведет на FTP-сервер:
Сегодня будем разбираться, зачем в терминалах для алго нужна такая абстракция, как «Позиция» или Position. У нас была техническая статья по этой теме, но вопросы продолжают поступать… И надо концептуально ещё раз объяснить.
И пока они были на плаву, было СИЛЬНО проще объяснить, как устроен наш слой создания роботов и зачем там позиции… (UPD. Да что там! У нас просто не было инструкций, люди приходили из велза и начинали молча делать роботов правильно!)
Механика управления позициями, способы их открытия и способы их закрытия пришли в OsEngine из Wealth Lab. Не целиком, но почти, и на данный момент слой увеличен раз в пять. И Wealth lab – прекрасный терминал для Алго! Когда-то этот терминал был очень популярен в России и имел приятный на тот момент интерфейс.
Если посмотреть на скрипт в Wealth-Lab, то можно обнаружить много общего с тем, что в скриптах OsEngine:
В этом видео рассмотрим один из способов узнать оптимальное соотношение объёмов между роботами. Ансамблирование объёмов, которое можно делать вручную в журнале OsEngine. Эта информация актуальна, если вы торгуете несколькими роботами одновременно.
VK Видео:
RuTube:
Как не попасть на «логические ошибки тестирования» и сделать робота правильно.
Заметка про то, как организовать логику робота, если Вы собираетесь вести большие тесты на свечных данных, а так поступают (или должны бы поступить) 95% всех, кто торгует роботами.
В общем, тема важная.
Основной её тейк такой: Если делаешь робота для тестов на свечках, старайся делать всю логику в событии завершения свечи.
И далее почему.
Отдельно на этом остановлюсь. И Арбитражи, и скринеры, и ребалансировщики, и тесты на одном инструменте – всё это просто и быстро тестируется на свечных данных.
При этом, если использовать ленту сделок для тестов, сразу же можно напороться на увеличение сложности тестирования в десятки раз (а то и в сотни).
Поэтому, если у тебя не ХФТ, использовать надо для тестов свечи.
В рамках слоя создания роботов есть события, подходящие для создания логики на тестах. В основном это конечно же:
Рассмотрим пример того, как усреднять позицию, выставляя в рынок одновременно несколько ордеров.
Это стало возможно совсем недавно, т.к. камрады из сообщества очень просили. Методы, которыми будем пользоваться для усреднения позиций, называются BuyAtLimitToPositionUnsafe и SellAtLimitToPositionUnsafe. В отличие от старых методов (Без приписки Unsafe), данные методы не убирают предыдущие ордера на усреднение, и можно выставить в рынок множество ордеров.
Точка входа у робота контртредовая на канале Envelops.
Итоговая логика робота на графике выглядит так:
Шорт, прикрытый стоп ордером, выход в плюс через профит, и два лимитных ордера на бирже для усреднения.
На ГитХаб в репозитории OsEngine это находится здесь:
https://github.com/AlexWan/OsEngine
Внутри проекта здесь: