В данной статье мы рассмотрим отдельную последовательность инструментов для торговли в валютном арбитраже. Рассматривать будем более подробнее, чем источник, ибо именно здесь у нас содержится торговая логика, и, возможно, кому-то из Вас захочется её изменить.
BotTabPolygon – источник данных, реализующий интерфейс IIBotTab.
PolygonToTrade – это другой, более низкоуровневый класс, который отвечает непосредственно за торговлю определённой последовательности из трёх инструментов.
У каждого BotTabPolygon может быть множество последовательностей внутри:
Данная архитектура позволяет:
В этой статье рассмотрим код PolygonToTrade:
1) Конструктор. На вход принимает:
2) Поле уникального имени последовательности.
3) Уникальный номер последовательности в рамках данного источника. Это необходимо для безболезненной сортировки последовательностей в BotTabPolygon.
4) Метод загрузки настроек объекта из файловой системы.
5) Метод сохранения настроек объекта в файловую систему.
6) Метод удаления объекта.
7) Свойство, включающее или выключающее подачу данных с рынка в данный объект. Это свойство вызывается, когда пользователь в облегчённом интерфейсе жмёт на галочку on/off в таблице робота.
8) Свойство, включающее или выключающее эмулятор внутри источников в последовательности. Это свойство вызывается, когда пользователь в облегчённом интерфейсе жмёт на галочку Emulator on/off в таблице роботов.
9) Свойство, сохраняющее расположение панели управления в пользовательском интерфейсе. Открыто / закрыто
Это всё можно вызвать из последовательности из робота.
1) HavePosltion. Свойство. Возвращает true в случае, если по какому-то внутреннему источнику есть позиции.
2) Источники для торговли.
3) Представление последовательности в аккуратном строковом выражении.
4) Мгновенный профит по последовательности в абсолютном выражении.
5) Мгновенный профит по последовательности в процентах.
6) Стороны сделки по инструментам в последовательностях.
7) Валюты по последовательности. От стартовой до последней.
8) Объёмы по последовательности. От стартового до последнего.
9) Профит для генерации сигнала на верх из объекта.
10) Тип сигнала при превышении профита по последовательности.
11) Разделитель для названия пар в последовательности. Используется, если на бирже есть разделитель.
12) Тип комиссии, вычитаемой во время расчёта прибыльности и объёмов по последовательности.
13) Размер комиссии, вычитаемой во время расчёта прибыльности и объёмов по последовательности.
14) Нужно ли вычитать из объёмов размер комиссии.
15) Тип задержки между выставляемыми ордерами.
16) Задержка между выставляемыми ордерами в MLS.
17) Тип цены ордера. Limit / Market.
18) Проскальзывание для лимитных ордеров.
19) Проверки на то, что последовательность правильная. И стартовая валюта совпадает с завершающей.
1) Вызов логики для торговли по последовательности.
2) Метод отсылки ордера по паре.
3) Метод для проверки завершения торгов по последовательности.
4) Статус позиций по парам, торгуемым в последовательности.
5) Обработка событий успешного открытия позиций по парам в последовательности.
6) Обработка событий ошибки на открытии позиции по парам в последовательности.
1) Механизм расчёта профита по последовательности.
2) Исходящие события, когда меняется профит по последовательности.
Комментарии открыты для друзей, добавляйтесь!
OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php