В OsEngine встроен робот для классического валютного (треугольного) арбитража. Называется он CurrencyArbitrageClassic. В этом посте посмотрим на процедуру его создания, его параметры, поговорим о его логике, а также посмотрим на его исходный код.
1. Создание робота для классического валютного арбитража.
Для создания экземпляра робота, как и в других случаях, нам понадобится открыть облегчённый интерфейс для торговли и нажать на кнопку добавить робота:
- Ввести для робота уникальное имя.
- Выбрать тип робота. В данном случае это CurrencyArbitrageClassic. Нужно кликнуть левой кнопкой мыши на нём, чтобы название робота загорелось оранжевым.
- Нажать на кнопку «Принять».
2. Подключение последовательностей в торговлю.
Подключение к серверу и создание последовательностей связок инструментов для валютного арбитража, описаны вот в этой статье, и полностью применимы к этому роботу:
https://o-s-a.net/posts/currency-arbitrage-ui.html
Чтобы продолжить, вы должны:
- Подключиться к серверу.
- Настроить связки инструментов для торговли.
Рекомендованные стартовые настройки:
- Вызываем у робота его интерфейс.
- Вызываем общие настройки.
- Рекомендованные настройки по минимальной указанной комиссии. Даже если Вы платите её в другой валюте.
- Рекомендованные минимальные настройки по генерируемому сигналу, чтобы робот их видел.
- Обратите внимание на то, что включен режим «Эмулятора». Не обязательно сразу же включать боевые торги, пока Вы со всем не разобрались.
3. Параметры самого робота.
Вызываются из облегчённого интерфейса для торговли нажатием на кнопку «Параметры»:
1. Общий режим. Включено / выключено. On / Off.
2. Стартовый объём, который будет использован.
3. Тип ордера, который будет использован.
4. Тип комиссии, который будет использован.
- None - отсутствует.
- Percent – в процентах.
5. Размер комиссии, который будет использован в случае, если выбран тип комиссии в процентах.
6. Нужно ли отнимать комиссию от объёмов, которые будут торговаться после первой сделки.
7. Тип задержки между ордерами.
8. Задержка в миллисекундах, которая будет использована, если выбран соответствующий тип задержки.
4. Как робот работает и что делает.
Как только из BotTabPolygon приходит сигнал о том, что профит превысил сигнальное значение, робот начинает операцию по выставлению ордеров по связке в соответствии с настройками.
5. Обзор кода робота.
Исходный код робота расположен внутри проекта вот здесь:
Ссылка на этого робота на ГитХабе:
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Robots/CurrencyArbitrage/CurrencyArbitrageClassic.cs
Весь код 113 строк.
В основном всё состоит из сервисного кода:
Юзинги стандартные для роботов в OsEngine.
Поля.
- Источник BotTabPolygon, в котором происходит расчёт сигналов, настройка последовательностей и логика торговли.
- Параметры, которые мы видели выше в интерфейсе.
Конструктор.
- Создание источника для валютного арбитража. А также его сохранение как поля класса.
- Подписка на событие превышения сигнального значения профита внутри последовательности.
- Создание параметров для робота.
Логика.
- Первый параметр на вход: Профит по текущей связке типа decimal.
- Второй параметр на вход: сама последовательность. Класс, который отвечает за расчёт прибыльности по связке и содержит торговую логику.
- Если по связке есть какие-то позиции, выходим из метода.
- Если режим робота стоит в положении Off, выходим из метода.
- Этот большой блок копирует настройки робота в связку для того, чтобы всё прошло корректно. Можно было обойтись и без него, оставив всё на усмотрение настроек самой связки, но так будет удобнее.
- Вызов метода для торговли по связке.
OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Комментарии открыты для друзей, добавляйтесь!