В данной статье будем знакомиться с классом IIStrategyParameter, родителем всех параметров. И где параметры отображаются в интерфейсе.
Как правило, большинство торговых алгоритмов имеет настраиваемые параметры, которые позволяют гибко настраивать систему для разных рынков и инструментов. Более того, с разными настройками робот может показывать совершенно разные результаты на одной и той же бумаге.
Конечно можно в роботах задействовать собственные варианты внедрения настроек, но куда предпочтительнее использовать специально созданные для этого классы. Ведь стандартные параметры сразу прорисовываются в интерфейсе тестера, торговой станции и оптимизатора.
Все типы параметров реализуют интерфейс IIStrategyParameter.
1. Параметры в окне настроек BotStation и тестера.
Использование готовых параметров дает возможность программе выводить настройки робота в специальном окне без необходимости создания для этого дополнительных модулей. Доступ к этому окну можно получить, нажав кнопку «Параметры», у конкретного робота:
2. Параметры в оптимизаторе.
Во-вторых, роботы, задействующие параметры, могут быть использованы в оптимизаторе OsEngine.
Оптимизатор автоматически подтягивает все параметры из стратегии, позволяет настроить их должным образом и тестирует робота, перебирая все доступные комбинации.
Следует заметить, что оптимизатор умеет перебирать значения не всех параметров. Для итераций подходят:
1. StrategyParameterInt
2. StrategyParameterDecimal.
3. StrategyParameterDecimalCheckBox
4. Остальные конфигурирует пользователь до начала процесса оптимизации.
Оптимизируемые параметры Int и Decimal:
На рисунке зеленым выделены параметры, значения которых оптимизатор в состоянии перебирать.
DecimalCheckBox выглядит следующим образом:
3. Параметры в исходниках.
Код самого интерфейса и всех параметров находится в файле StrategyParameter.cs. В репозитории OsEngine на ГитХаб это здесь.
Внутри самого проекта, если его открыть, это находится здесь:
Сам интерфейс выглядит так:
Классы, реализующие интерфейс IIStrategyParameter, обязаны иметь следующие члены:
Name – публичное свойство типа string. Возвращает отображаемое имя параметра, оно должно быть уникальным в рамках робота.
GetStringToSave - общедоступный метод. Возвращает строку с настройками объекта параметра для сохранения.
LoadParamFromString - общедоступный метод. Принимает массив строк с настройками для параметра и инициализирует состояние объекта.
Type – публичное свойство типа StrategyParameterType. Возвращает тип параметра.
TabName – публичное свойство типа string. Предоставляет доступ к имени вкладки, на которой будет отображаться параметр в окне параметров.
ValueChange – общедоступное событие. Сигнализирует об изменении основного значения параметра.
4. Типы параметров роботов для OsEngine.
В том же классе, что и выше, можно найти перечисление со списком типов параметров, которые Вам доступны:
1. StrategyParameterInt – целочисленное значение.
2. StrategyParameterDecimal – число с плавающей запятой.
3. StrategyParameterString – перечисление или строковое значение.
4. StrategyParameterBool – булево значение. True / False.
5. StrategyParameterTimeOfDay – время внутри дня.
6. StrategyParameterButton – кнопка внутри дня.
7. StrategyParameterLabel – надпись в окне параметров.
8. StrategyParameterCheckBox – галочка. True / False.
9. StrategyParameterDecimalChecBox – галочка и значение одновременно.
Каждый из этих параметров мы рассмотрим в рамках данной минисерии статей и научимся ими пользоваться в рамках роботов.
Удачных алгоритмов!
Поддержка OsEngine: https://t.me/osengine_official_support
Комментарии