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) HitBtcVK Видео:
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 это находится здесь:
В этом видео подробно рассмотрим Журнал сделок в OS Engine. А также проведем тесты ГРААЛЬНОГО робота и на его примере подробно объясним, какая нужная информация по тестам (или торговле) записывается в журнал.
VK Видео:
RuTube:
Изменения, баг-фикс и улучшения, которые были внесены в проект за предыдущий месяц.
Приближаемся к продакшен-реди версии. Около нового года можно будет об этом говорить, поэтому фокус смещается на инструкции и удобство работы с проектом для начинающих.
Сам ГАЙД здесь: https://smart-lab.ru/company/os_engine/blog/1024149.php
Он делается для того, чтобы было удобно и быстро искать всё в одном месте. Вся информация по алготрейдингу и созданию торговых роботов, которая Вам может понадобиться в одном месте.
Новое за месяц:
Сегодня рассмотрим пример того, как можно усредняться через отложенные ордера на открытие других позиций.
Данный тип усреднения позволяет в полной мере тестировать торговую логику робота на свечных данных, т.к. использует заявки на усреднение типа BuyAtStop и SellAtStop.
На ГитХаб в репозитории OsEngine это находится здесь:
https://github.com/AlexWan/OsEngine
Внутри проекта здесь:
VK Видео:
RuTube:
В данном посте будем учиться запускать «профилирование» в Visual Studio, чтобы глазами увидеть место самых больших нагрузок у бота.
Ну и в целом заканчиваем нашу минисерию постов про производительность роботов и как делать так, чтобы у Вас никакие очереди не забивались, а роботы работали быстро и качественно.
Профилировка производительности C# — это процесс анализа производительности программы путём мониторинга использования процессора различными функциями и сегментами кода.
Профилируя приложение C#, можно определить, какие части кода занимают больше всего времени процессора и вызывают проблемы с производительностью. Эта информация важна для оптимизации приложения и улучшения его общей производительности.
С точки зрения прикладного:
Профилировка производительности – один из способов запуска проектов на СиШарп (OsEngine), который помогает увидеть «узкие» места в коде, где больше всего расходуется ЦП.
Так проект OsEngine можно запустить в нескольких режимах:
VK Видео:
RuTube:
В данной статье поговорим о проблемах «перегрузки» в пользовательской логике в роботе. Очень условно поговорим про поточную модель OsEngine и о том, почему нельзя нагружать поток робота «лишней» работой или укладывать «Спать».
Для начала давайте взглянем на поток, который отдаёт данные в роботов в реале. Для этого нужно открыть класс AServer. Это вот здесь: