Это введение по минисерии статей в рамках нашего гайда о том, что такое параметры у роботов, какие они бывают в OsEngine, и как использовать окно параметров для того, чтобы управлять роботом.
В данной статье будем знакомиться с классом IIStrategyParameter, родителем всех параметров. И где параметры отображаются в интерфейсе.
Как правило, большинство торговых алгоритмов имеет настраиваемые параметры, которые позволяют гибко настраивать систему для разных рынков и инструментов. Более того, с разными настройками робот может показывать совершенно разные результаты на одной и той же бумаге.
Конечно можно в роботах задействовать собственные варианты внедрения настроек, но куда предпочтительнее использовать специально созданные для этого классы. Ведь стандартные параметры сразу прорисовываются в интерфейсе тестера, торговой станции и оптимизатора.
Все типы параметров реализуют интерфейс IIStrategyParameter.
Использование готовых параметров дает возможность программе выводить настройки робота в специальном окне без необходимости создания для этого дополнительных модулей. Доступ к этому окну можно получить, нажав кнопку «Параметры», у конкретного робота:
Рис. 1. Вызов окна параметров у робота.
Во-вторых, роботы, задействующие параметры, могут быть использованы в оптимизаторе OsEngine.
Оптимизатор автоматически подтягивает все параметры из стратегии, позволяет настроить их должным образом и тестирует робота, перебирая все доступные комбинации.
Следует заметить, что оптимизатор умеет перебирать значения не всех параметров. Для итераций подходят:
Оптимизируемые параметры Int и Decimal:
Рис. 2. Внешний вид таблицы параметров в оптимизаторе. Параметры Decimal, Int
На рисунке зеленым выделены параметры, значения которых оптимизатор в состоянии перебирать.
DecimalCheckBox выглядит следующим образом:
Рис. 3. Внешний вид таблицы параметров в оптимизаторе. Параметр DecimalCheckBox
Код самого интерфейса и всех параметров находится в файле StrategyParameter.cs. В репозитории OsEngine на ГитХаб это здесь: https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Entity/StrategyParameter.cs
Внутри самого проекта, если его открыть, это находится здесь:
Рис. 4. Расположение класса в структуре проекта.
Сам интерфейс выглядит так:
Рис. 5. Интерфейс IIStrategyParameter.
Классы, реализующие интерфейс IIStrategyParameter, обязаны иметь следующие члены:
Name – публичное свойство типа string. Возвращает отображаемое имя параметра, оно должно быть уникальным в рамках робота.
GetStringToSave — общедоступный метод. Возвращает строку с настройками объекта параметра для сохранения.
LoadParamFromString — общедоступный метод. Принимает массив строк с настройками для параметра и инициализирует состояние объекта.
Type – публичное свойство типа StrategyParameterType. Возвращает тип параметра.
TabName – публичное свойство типа string. Предоставляет доступ к имени вкладки, на которой будет отображаться параметр в окне параметров.
ValueChange – общедоступное событие. Сигнализирует об изменении основного значения параметра.
В том же классе, что и выше, можно найти перечисление со списком типов параметров, которые Вам доступны:
Рис. 6. Типы параметров в OsEngine.
Каждый из этих параметров мы рассмотрим в рамках данной минисерии статей и научимся ими пользоваться в рамках роботов.
Удачных алгоритмов!
Комментарии открыты для друзей!
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