Параметры стратегии. Обзор интерфейса IIStrategyParameter. OsEngine.

Параметры стратегии. Обзор интерфейса IIStrategyParameter. OsEngine.

Как правило, большинство торговых алгоритмов имеет настраиваемые параметры, которые позволяют гибко настраивать систему для разных рынков и инструментов. Более того, с разными настройками робот может показывать совершенно разные результаты на одной и той же бумаге. 

Конечно можно в роботах задействовать собственные варианты внедрения настроек, но куда предпочтительнее использовать специально созданные для этого классы. Все типы параметров реализуют интерфейс IIStrategyParameter.

Во-первых, использование готовых параметров дает возможность программе выводить настройки робота в специальном модальном окне без необходимости создания для этого дополнительных модулей. Доступ к этому окну можно получить, нажав кнопку «Параметры»:


Рис. 1. Кнопка вызова таблицы параметров.

Конечный вид окна будет зависеть от количества и типа использованных параметров. Выглядит примерно так:


Рис. 2. Внешний вид таблицы параметров.

Во-вторых, роботы, задействующие параметры, могут быть использованы в оптимизаторе OsEngine.

Оптимизатор автоматически подтягивает все параметры из стратегии, позволяет настроить их должным образом и тестирует робота, перебирая все доступные комбинации. 

Следует заметить, что оптимизатор умеет перебирать значения не всех параметров. Для итераций подходят только StrategyParameterInt и StrategyParameterDecimal. Остальные конфигурирует пользователь в процессе оптимизации.


Рис. 3. Внешний вид таблицы параметров в оптимизаторе.

На рисунке зеленым выделены параметры, значения которых оптимизатор в состоянии итерировать самостоятельно. Красным – требующие ручной настройки.

Код самого интерфейса и всех параметров находится в файле StrategyParameter.cs в каталоге OsEngine-master\project\OsEngine\Entity\

Рис. 4. Расположение класса в структуре проекта.

Классы, реализующие интерфейс IIStrategyParameter, обязаны иметь следующие члены:

Name – публичное свойство типа string. Возвращает отображаемое имя параметра, оно должно быть уникальным в рамках робота.

GetStringToSave - общедоступный метод. Возвращает строку с настройками объекта параметра для сохранения.

LoadParamFromString - общедоступный метод. Принимает массив строк с настройками для параметра и инициализирует состояние объекта.

Type – публичное свойство типа StrategyParameterType. Возвращает тип параметра.

TabName – публичное свойство типа string. Предоставляет доступ к имени вкладки, на которой будет отображаться параметр в окне параметров.

ValueChange – общедоступное событие. Сигнализирует об изменении основного значения параметра.

19:16
223
FAQ

Комментарии

Нет комментариев. Ваш будет первым!