VK Видео:
RuTube:
Авто-репост. Читать в блоге >>>
1) BitStamp
2) Kraken
3) Bitmex + загрузка истории. Свечи, трейды
4) Binance. (Spot + Margin + Futures) + загрузка истории. Свечи, трейды
5) BitFinex.
6) BitMax.
7) LiveCoin.
8) Exmo.
9) ZB.
10) Gate IO (Spot + Futures)
11) Huobi (Spot + Margin + Futures + SWAP) + загрузка истории. Свечи, трейды
12) HitBtc
Знакомство с созданием задач и «собственных событий для роботов». Изучение многопоточности.
В теоретической части поговорим про то что такое многопоточность с точки зрения C# и торгового робота.
В практической части будем создавать роботов, использующих многопоточность в своей логике.
VK Видео:
RuTube:
В данном посте будем учиться собирать сборку OsEngine в, так называемый, релиз. Это нужно в случае, если Вы хотите ускорить работу оптимизатора. Ускорение не большое, в районе 10%, но в некоторых случаях это может быть нужно.
Эта магия доступна только для программистов, поэтому в нашем Гайде находится в разделе о программировании.
Понадобится скачать OsEngine: https://smart-lab.ru/company/os_engine/blog/1041420.php
Установить Visual Studio: https://smart-lab.ru/company/os_engine/blog/1041231.php
И перед нами будет вот такая папка:
Камрады, курс вводных лекций по OsEngine, и как на нем делать роботов для тех, кто с НУЛЯ, будет выложен в открытый доступ на видеохостинги.
После того, как Иосиф Дзеранов открыл свои базовые уроки по шарпам полностью, мы решили, что сделаем так же. Пусть вообще без всяких ограничений «база» будет доступна, чтобы каждый мог за пару недель вкатиться в OsEngine. УРА!
Лекция 1. О языке C#. Скачивание Visual Studio и OsEngine. Их обзор.
В теоретической части поговорим про язык C#, и откуда он взялся. Что такое Visual Studio и что такое OsEngine. В практической части будем устанавливать программы нужные для работы и разбираться с тем, как они устроены. Скачаем исторические данные для дальнейшего использования в тестере OsEngine.
VK Видео:
RuTube:
Поговорим в данной статье про различные типы ордеров по времени жизни, которые есть в OsEngine. И в частности о том, как настраивать клиринг на срочной площадке MOEX, если вдруг занадобится использовать тип ордеров Day.
Плюс дополнительно я буду занудствовать, и поговорим о том, почему надо оставлять всё по умолчанию, чтобы ордера были со строгим временем жизни, ибо держать ордера на бирже – плохой стайл. И 95 % алготрейдеров это не нужно.
На ГитХаб ордера можно увидеть тут: https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Entity/Order.cs
В проекте типы времени жизни ордеров можно посмотреть здесь:
Для тестов на срочном рынке MOEX зачастую используются так называемые «Склеенные фьючерсы», что вызывает ряд проблем. Некоторые пользователи просили ввести функционал настройки неторговых периодов, чтобы часть графика не торговалась вовсе. Поговорим про этот функционал.
Торгуя в тестере на границах склейки, Вы можете получать не верные результаты тестирования. Если погуглить, сразу же находится прекрасная картинка с объяснением этого феномена. Лучше 1000 слов:
Изменения, баг-фикс и улучшения, которые были внесены в проект за предыдущий месяц.
Приближаемся к продакшен-реди версии. Около нового года можно будет об этом говорить, поэтому фокус смещается на инструкции и удобство работы с проектом для начинающих.
Самое главное. Новый, бесплатный вводный курс по C# и алготорговле на OsEngine:
https://smart-lab.ru/company/os_engine/blog/1078588.php
Сам ГАЙД здесь: https://smart-lab.ru/company/os_engine/blog/1024149.php
Он делается для того, чтобы было удобно и быстро искать всё в одном месте. Вся информация по алготрейдингу и созданию торговых роботов, которая Вам может понадобиться в одном месте.
Новое за месяц:
VK Видео:
RuTube:
VK Видео:
RuTube:
Езжу в МСК раз в год примерно. Всегда получается взглянуть на Россию и этот город по-разному. В этот раз на конференцию СмартЛаб приехал. О чём ниже, но это не главное.
По дороге ещё раз утвердился во мнении что всё хорошо. Порадовался. Хотел поделиться ощущениями.
Никогда в Москве не меняйте подсветку! Сколько бы денег это не стоило. Пусть будет в подсветке каждое дерево в центре и дальше. Это немцы пусть экономят на электроэнергии! А у нас тут МУЗЕЙ под открытым небом!
В этот раз въезжал в Москву ночью с вокзала. Пока ехал по центру, чувствовал, как «Имперскость» разливается по жилам.
Очень красивый город. Особенно ночью. Особенно после дождя. И каждый год лучше!
Чувствуется – СТОЛИЦА!
Основную часть пути провёл в поезде. И знаете, что? Офигел от технологичности вагона, в котором ехал.
Раздельный сбор мусора:
VK Видео:
RuTube:
Продолжаем знакомится с коннектором к фьючерсной площадке 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. У нас была техническая статья по этой теме, но вопросы продолжают поступать… И надо концептуально ещё раз объяснить.
И пока они были на плаву, было СИЛЬНО проще объяснить, как устроен наш слой создания роботов и зачем там позиции…
Механика управления позициями, способы их открытия и способы их закрытия пришли в OsEngine из Wealth Lab. Не целиком, но почти, и на данный момент слой увеличен раз в пять. И Wealth lab – прекрасный терминал для Алго! Когда-то этот терминал был очень популярен в России и имел приятный на тот момент интерфейс.
Если посмотреть на скрипт в Wealth-Lab, то можно обнаружить много общего с тем, что в скриптах OsEngine:
В этом видео рассмотрим один из способов узнать оптимальное соотношение объёмов между роботами. Ансамблирование объёмов, которое можно делать вручную в журнале OsEngine. Эта информация актуальна, если вы торгуете несколькими роботами одновременно.
VK Видео:
RuTube:
Как не попасть на «логические ошибки тестирования» и сделать робота правильно.
Заметка про то, как организовать логику робота, если Вы собираетесь вести большие тесты на свечных данных, а так поступают (или должны бы поступить) 95% всех, кто торгует роботами.
В общем, тема важная.
Основной её тейк такой: Если делаешь робота для тестов на свечках, старайся делать всю логику в событии завершения свечи.
И далее почему.
Отдельно на этом остановлюсь. И Арбитражи, и скринеры, и ребалансировщики, и тесты на одном инструменте – всё это просто и быстро тестируется на свечных данных.
При этом, если использовать ленту сделок для тестов, сразу же можно напороться на увеличение сложности тестирования в десятки раз (а то и в сотни).
Поэтому, если у тебя не ХФТ, использовать надо для тестов свечи.
В рамках слоя создания роботов есть события, подходящие для создания логики на тестах. В основном это конечно же:
Рассмотрим пример того, как усреднять позицию, выставляя в рынок одновременно несколько ордеров.
Это стало возможно совсем недавно, т.к. камрады из сообщества очень просили. Методы, которыми будем пользоваться для усреднения позиций, называются BuyAtLimitToPositionUnsafe и SellAtLimitToPositionUnsafe. В отличие от старых методов (Без приписки Unsafe), данные методы не убирают предыдущие ордера на усреднение, и можно выставить в рынок множество ордеров.
Точка входа у робота контртредовая на канале Envelops.
Итоговая логика робота на графике выглядит так:
Шорт, прикрытый стоп ордером, выход в плюс через профит, и два лимитных ордера на бирже для усреднения.
На ГитХаб в репозитории OsEngine это находится здесь:
https://github.com/AlexWan/OsEngine
Внутри проекта здесь:
Рассмотрим пример того, как выходить из позиции двумя (вообще можно больше, но в примере 2) лимитными ордерами одновременно.
Это стало возможно совсем недавно, т.к. камрады из сообщества очень просили. Метод, которым будем пользоваться для закрытия позиций, называется CloseAtLimitUnsafe. Отличие от CloseAtLimit такое:
Точка входа у робота контртредовая на канале Envelops.
Итоговая логика робота на графике выглядит так:
Шорт, прикрытый стоп ордером, и два лимитных ордера на бирже для закрытия в прибыль.
На ГитХаб в репозитории OsEngine это находится здесь:
Паттерн позволяет разделить логику тестирования от логики реального входа внутри робота для того, чтобы при входе и выходе не «рисовать свечи» своими большими заявками.
Очень важная заготовка паттерна управления позицией для тех, у кого много денег на счету. В том числе разберём исходный код, чтобы Вы могли модернизировать свои способы входа в реале, опираясь на данные исходники. В примере логика айсберга выделена в отдельный объект и использована многопоточность, но её надо будет переиспользовать без изменений, поэтому не пугайтесь, кто не программист, переиспользовать удастся. Будете входить, как захотите в реале.
Итоговая логика робота на графике в реале выглядит так:
В примере на графике получилось даже зайти лучше, чем если бы мы это делали одним ордером.
Сам робот – классический отбойник от боллинджера с выходом в % по стопу и профиту. Выход также в реале через «кастомный айсберг».
На ГитХаб в репозитории OsEngine это находится здесь: