rss

Профиль компании

Финансовые компании

Блог компании Os_Engine | Aindicator. Родитель для всех индикаторов в новом слое. Индикаторы в OsEngine 16.

Продолжаем исследовать слой создания индикаторов в OsEngine.

Рассматриваем класс родитель для всех индикаторов, начиная с 2020 года, Aindicator.

Aindicator – это абстрактный (может быть только наследуемым) класс с большим кол-вом исходного кода.

Aindicator. Родитель для всех индикаторов в новом слое. Индикаторы в OsEngine 16.

Сам класс находится в проекте здесь:

Aindicator. Родитель для всех индикаторов в новом слое. Индикаторы в OsEngine 16.

В иерархии наследования во время создания индикатора мы находимся здесь:

Aindicator. Родитель для всех индикаторов в новом слое. Индикаторы в OsEngine 16.

Внутри класса есть следующие регионы:

Aindicator. Родитель для всех индикаторов в новом слое. Индикаторы в OsEngine 16. 

  1. Mandatory overload members. Обязательные к перегрузке (в индикаторе) члены класса.
  2. Service. Сервисный код.
  3. Parameters. Working with strategy parameters. Параметры индикатора. Хранение, создание.
  4. Built-in indicators. Работа со связыванием параметров индикатора с встроенными индикаторами.
  5. Data series. Работа с сериями данных.
  6. Candles loading. Прогрузка индикатора свечными данными.
  7. Loading of data arrays into the indicator. Прогрузка индикатора данными в виде массива Decimal значений.

Далее рассмотрим каждый из этих регионов.


Mandatory overload members. Обязательные к перегрузке (в индикаторе) члены класса.

Когда на основе Aindicator создаётся индикатор, внутри него будет только два обязательных к созданию метода:

Aindicator. Родитель для всех индикаторов в новом слое. Индикаторы в OsEngine 16. 

  1. OnStateChange – изменился статус индикатора. Вызывается дважды на создании индикатора и его удалении. В качестве параметра передаётся перечисление IndicatorState, который может принимать значения:
    1. Configure – вызывается при создании индикатора. Предполагается, что, когда пришёл данный статус в этот метод, надо создавать параметры и серии данных.
    2. Dispose – вызывается при удалении индикатора. В этот момент было бы не плохо почистить за собой различные дополнительные данные внутри Вашего индикатора, если они есть.
  2. OnProcess – вызывается, когда надо пересчитать индикатор. В качестве параметров туда передадутся:
    1. List<Candle> source – все имеющиеся по инструменту свечи.
    2. Int index – индекс, по которому надо пересчитать индикатор.

 

Service. Сервисный код.

Данный регион содержит сервисный код для обслуживания индикатора в ядре OsEngine:

Aindicator. Родитель для всех индикаторов в новом слое. Индикаторы в OsEngine 16. 

  1. Init. Инициализация индикатора. Используется ядром вместо конструктора.
  2. Clear. Очистка данных внутри индикатора.
  3. Delete. Удаление индикатора.
  4. Load. Загрузка из файловой системы состояния индикатора.
  5. Save. Сохранение в файловую систему состояния индикатора.
  6. ShowDialog. Открыть окно настроек индикатора.
  7. StartProgram. Программа, в рамках которой индикатор был создан. Tester/Optimizer/Trader.
  8. TypeIndicator. Устаревшее поле. Используется в старом слое создания индикаторов.
  9. CanDelete. Можно ли удалить индикатор или он обязателен для робота.
  10. NameSeries. Устаревшее поле. Используется в старом слое создания индикаторов.
  11. NameArea. Устаревшее поле. Используется в старом слое создания индикаторов.
  12. Name. Уникальное имя индикатора.
  13. PaintOn. Включена ли прорисовка индикатора.
  14. IsOn. Включен ли расчёт индикатора.

 

Parameters. Working with strategy parameters. Параметры индикатора. Хранение, создание.

Регион, к которому можно обращаться из индикатора для создания и менеджмента параметров:

Aindicator. Родитель для всех индикаторов в новом слое. Индикаторы в OsEngine 16.

  1. CreateParameterDecimal. Создать параметр типа Decimal.
  2. CreateParameterInt. Создать параметр типа Int.
  3. CreateParameterStringCollection. Создать параметр типа «Коллекция строк»
  4. CreateParameterString. Создать параметр типа String.
  5. CreateParameterBool. Создать параметр типа Bool.
  6. LoadParametersValues. Загрузить параметры из файловой системы после перезагрузки.
  7. GetValueParameterSaveByUser. Взять настройки конкретного параметра из файловой системы.
  8. List<IndicatorParameter> Parameters. Массив параметров, созданных для индикатора.
  9. List<ParameterDigit> ParametersDigit. Массив числовых параметров, созданных для индикатора.
  10. Parameter_ValueChange. Обработчик для события обновления настроек параметра.
  11. SaveParameters. Сохранить состояние параметров в файловую систему.
  12. Action ParametersChangeByUser. Событие: параметры индикатора были изменены.

 

Built-in indicators. Работа со связыванием параметров индикатора с встроенными индикаторами.

Регион, к которому можно обращаться из индикатора для связывания индикатора с другими индикаторами.

Aindicator. Родитель для всех индикаторов в новом слое. Индикаторы в OsEngine 16. 

  1. List<Aindicator> IncludeIndicators. Встроенные в Ваш индикатор другие индикаторы.
  2. List<string> IncludeIndicatorsName.  Имена встроенных индикаторов.
  3. ProcessIndicator. Привязать индикатор.

 

Data series. Работа с сериями данных.

Aindicator. Родитель для всех индикаторов в новом слое. Индикаторы в OsEngine 16. 

  1. CreateSeries. Создать серию данных.
  2. DataSeries. Ранее созданные серии данных.
  3. CheckSeriesParametersInSaveData. Проверить в файловой системе ранее сохранённые настройки.
  4. SaveSeries. Сохранить настройки серий данных в файловую систему.
  5. ValuesToChart. Массивы значений серий данных для прорисовки на чарте.
  6. Colors. Массив цветов серий данных для прорисовки на чарте.

 

Candles loading. Прогрузка индикатора свечными данными.

Aindicator. Родитель для всех индикаторов в новом слое. Индикаторы в OsEngine 16.

  1. _myCandles. Массив свечей, который был передан в индикатор в последний раз.
  2. Process. Вход в логику подгрузки свечей в индикатор.
  3. ProcessAll. Пересчитать все значения индикатора от 0 до конца массива свечек.
  4. ProcessLast. Пересчитать последнее значение индикатора.
  5. ProcessNew. Пересчитать новое значение индикатора. Появилась новая свеча.
  6. Reload. Пересчитать все значения индикатора по имеющимся данным.
  7. NeedToReloadEvent. Событие: Нужно перезагрузить индикатор в чартах и роботах.

 

Loading of data arrays into the indicator. Прогрузка индикатора данными в виде массива Decimal значений.

Aindicator. Родитель для всех индикаторов в новом слое. Индикаторы в OsEngine 16. 

  1. Process. Вход в логику подгрузки числовых данных в индикатор.
  2. ProcessAll. Пересчитать все значения индикатора от 0 до конца массива.
  3. ProcessLast. Пересчитать последнее значение индикатора.
  4. ProcessNew. Пересчитать новое значение индикатора. Появился новый элемент в массиве.

Удачных алгоритмов!

Комментарии открыты для друзей!

Aindicator. Родитель для всех индикаторов в новом слое. Индикаторы в OsEngine 16.

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

Aindicator. Родитель для всех индикаторов в новом слое. Индикаторы в OsEngine 16.


UPDONW
Новый дизайн