Aindicator. Родитель для всех индикаторов в новом слое. Индикаторы в OsEngine 16.
Продолжаем исследовать слой создания индикаторов в OsEngine.Рассматриваем класс родитель для всех индикаторов, начиная с 2020 года, Aindicator.Aindicator – это абстрактный (может быть только наследуемым) класс с большим кол-вом исходного кода.Сам класс находится в проекте здесь: В иерархии наследования во время создания индикатора мы находимся здесь:Внутри класса есть следующие регионы: Mandatory overload members. Обязательные к перегрузке (в индикаторе) члены класса.Service. Сервисный код.Parameters. Working with strategy parameters. Параметры индикатора. Хранение, создание.Built-in indicators. Работа со связыванием параметров индикатора с встроенными индикаторами.Data series. Работа с сериями данных.Candles loading. Прогрузка индикатора свечными данными.Loading of data arrays into the indicator. Прогрузка индикатора данными в виде массива Decimal значений.Далее рассмотрим каждый из этих регионов. Mandatory overload members. Обязательные к перегрузке (в индикаторе) члены класса.Когда на основе Aindicator создаётся индикатор, внутри него будет только два обязательных к созданию метода: OnStateChange – изменился статус индикатора. Вызывается дважды на создании индикатора и его удалении. В качестве параметра передаётся перечисление IndicatorState, который может принимать значения:Configure – вызывается при создании индикатора. Предполагается, что, когда пришёл данный статус в этот метод, надо создавать параметры и серии данных.Dispose – вызывается при удалении индикатора. В этот момент было бы не плохо почистить за собой различные дополнительные данные внутри Вашего индикатора, если они есть.OnProcess – вызывается, когда надо пересчитать индикатор. В качестве параметров туда передадутся:List<Candle> source – все имеющиеся по инструменту свечи.Int index – индекс, по которому надо пересчитать индикатор. Service. Сервисный код.Данный регион содержит сервисный код для обслуживания индикатора в ядре OsEngine: Init. Инициализация индикатора. Используется ядром вместо конструктора.Clear. Очистка данных внутри индикатора.Delete. Удаление индикатора.Load. Загрузка из файловой системы состояния индикатора.Save. Сохранение в файловую систему состояния индикатора.ShowDialog. Открыть окно настроек индикатора.StartProgram. Программа, в рамках которой индикатор был создан. Tester/Optimizer/Trader.TypeIndicator. Устаревшее поле. Используется в старом слое создания индикаторов.CanDelete. Можно ли удалить индикатор или он обязателен для робота.NameSeries. Устаревшее поле. Используется в старом слое создания индикаторов.NameArea. Устаревшее поле. Используется в старом слое создания индикаторов.Name. Уникальное имя индикатора.PaintOn. Включена ли прорисовка индикатора.IsOn. Включен ли расчёт индикатора. Parameters. Working with strategy parameters. Параметры индикатора. Хранение, создание.Регион, к которому можно обращаться из индикатора для создания и менеджмента параметров:CreateParameterDecimal. Создать параметр типа Decimal.CreateParameterInt. Создать параметр типа Int.CreateParameterStringCollection. Создать параметр типа «Коллекция строк»CreateParameterString. Создать параметр типа String.CreateParameterBool. Создать параметр типа Bool.LoadParametersValues. Загрузить параметры из файловой системы после перезагрузки.GetValueParameterSaveByUser. Взять настройки конкретного параметра из файловой системы.List<IndicatorParameter> Parameters. Массив параметров, созданных для индикатора.List<ParameterDigit> ParametersDigit. Массив числовых параметров, созданных для индикатора.Parameter_ValueChange. Обработчик для события обновления настроек параметра.SaveParameters. Сохранить состояние параметров в файловую систему.Action ParametersChangeByUser. Событие: параметры индикатора были изменены. Built-in indicators. Работа со связыванием параметров индикатора с встроенными индикаторами.Регион, к которому можно обращаться из индикатора для связывания индикатора с другими индикаторами. List<Aindicator> IncludeIndicators. Встроенные в Ваш индикатор другие индикаторы.List<string> IncludeIndicatorsName. Имена встроенных индикаторов.ProcessIndicator. Привязать индикатор. Data series. Работа с сериями данных. CreateSeries. Создать серию данных.DataSeries. Ранее созданные серии данных.CheckSeriesParametersInSaveData. Проверить в файловой системе ранее сохранённые настройки.SaveSeries. Сохранить настройки серий данных в файловую систему.ValuesToChart. Массивы значений серий данных для прорисовки на чарте.Colors. Массив цветов серий данных для прорисовки на чарте. Candles loading. Прогрузка индикатора свечными данными._myCandles. Массив свечей, который был передан в индикатор в последний раз.Process. Вход в логику подгрузки свечей в индикатор.ProcessAll. Пересчитать все значения индикатора от 0 до конца массива свечек.ProcessLast. Пересчитать последнее значение индикатора.ProcessNew. Пересчитать новое значение индикатора. Появилась новая свеча.Reload. Пересчитать все значения индикатора по имеющимся данным.Nee
Продолжаем исследовать слой создания индикаторов в OsEngine.
Рассматриваем класс родитель для всех индикаторов, начиная с 2020 года, Aindicator.
Aindicator – это абстрактный (может быть только наследуемым) класс с большим кол-вом исходного кода.
Сам класс находится в проекте здесь:
В иерархии наследования во время создания индикатора мы находимся здесь:
Внутри класса есть следующие регионы:
- Mandatory overload members. Обязательные к перегрузке (в индикаторе) члены класса.
- Service. Сервисный код.
- Parameters. Working with strategy parameters. Параметры индикатора. Хранение, создание.
- Built-in indicators. Работа со связыванием параметров индикатора с встроенными индикаторами.
- Data series. Работа с сериями данных.
- Candles loading. Прогрузка индикатора свечными данными.
- Loading of data arrays into the indicator. Прогрузка индикатора данными в виде массива Decimal значений.
Далее рассмотрим каждый из этих регионов.
Mandatory overload members. Обязательные к перегрузке (в индикаторе) члены класса.
Когда на основе Aindicator создаётся индикатор, внутри него будет только два обязательных к созданию метода:
- OnStateChange – изменился статус индикатора. Вызывается дважды на создании индикатора и его удалении. В качестве параметра передаётся перечисление IndicatorState, который может принимать значения:
- Configure – вызывается при создании индикатора. Предполагается, что, когда пришёл данный статус в этот метод, надо создавать параметры и серии данных.
- Dispose – вызывается при удалении индикатора. В этот момент было бы не плохо почистить за собой различные дополнительные данные внутри Вашего индикатора, если они есть.
- OnProcess – вызывается, когда надо пересчитать индикатор. В качестве параметров туда передадутся:
- List<Candle> source – все имеющиеся по инструменту свечи.
- Int index – индекс, по которому надо пересчитать индикатор.
Service. Сервисный код.
Данный регион содержит сервисный код для обслуживания индикатора в ядре OsEngine:
- Init. Инициализация индикатора. Используется ядром вместо конструктора.
- Clear. Очистка данных внутри индикатора.
- Delete. Удаление индикатора.
- Load. Загрузка из файловой системы состояния индикатора.
- Save. Сохранение в файловую систему состояния индикатора.
- ShowDialog. Открыть окно настроек индикатора.
- StartProgram. Программа, в рамках которой индикатор был создан. Tester/Optimizer/Trader.
- TypeIndicator. Устаревшее поле. Используется в старом слое создания индикаторов.
- CanDelete. Можно ли удалить индикатор или он обязателен для робота.
- NameSeries. Устаревшее поле. Используется в старом слое создания индикаторов.
- NameArea. Устаревшее поле. Используется в старом слое создания индикаторов.
- Name. Уникальное имя индикатора.
- PaintOn. Включена ли прорисовка индикатора.
- IsOn. Включен ли расчёт индикатора.
Parameters. Working with strategy parameters. Параметры индикатора. Хранение, создание.
Регион, к которому можно обращаться из индикатора для создания и менеджмента параметров:
- CreateParameterDecimal. Создать параметр типа Decimal.
- CreateParameterInt. Создать параметр типа Int.
- CreateParameterStringCollection. Создать параметр типа «Коллекция строк»
- CreateParameterString. Создать параметр типа String.
- CreateParameterBool. Создать параметр типа Bool.
- LoadParametersValues. Загрузить параметры из файловой системы после перезагрузки.
- GetValueParameterSaveByUser. Взять настройки конкретного параметра из файловой системы.
- List<IndicatorParameter> Parameters. Массив параметров, созданных для индикатора.
- List<ParameterDigit> ParametersDigit. Массив числовых параметров, созданных для индикатора.
- Parameter_ValueChange. Обработчик для события обновления настроек параметра.
- SaveParameters. Сохранить состояние параметров в файловую систему.
- Action ParametersChangeByUser. Событие: параметры индикатора были изменены.
Built-in indicators. Работа со связыванием параметров индикатора с встроенными индикаторами.
Регион, к которому можно обращаться из индикатора для связывания индикатора с другими индикаторами.
- List<Aindicator> IncludeIndicators. Встроенные в Ваш индикатор другие индикаторы.
- List<string> IncludeIndicatorsName. Имена встроенных индикаторов.
- ProcessIndicator. Привязать индикатор.
Data series. Работа с сериями данных.
- CreateSeries. Создать серию данных.
- DataSeries. Ранее созданные серии данных.
- CheckSeriesParametersInSaveData. Проверить в файловой системе ранее сохранённые настройки.
- SaveSeries. Сохранить настройки серий данных в файловую систему.
- ValuesToChart. Массивы значений серий данных для прорисовки на чарте.
- Colors. Массив цветов серий данных для прорисовки на чарте.
Candles loading. Прогрузка индикатора свечными данными.
- _myCandles. Массив свечей, который был передан в индикатор в последний раз.
- Process. Вход в логику подгрузки свечей в индикатор.
- ProcessAll. Пересчитать все значения индикатора от 0 до конца массива свечек.
- ProcessLast. Пересчитать последнее значение индикатора.
- ProcessNew. Пересчитать новое значение индикатора. Появилась новая свеча.
- Reload. Пересчитать все значения индикатора по имеющимся данным.
- NeedToReloadEvent. Событие: Нужно перезагрузить индикатор в чартах и роботах.
Loading of data arrays into the indicator. Прогрузка индикатора данными в виде массива Decimal значений.
- Process. Вход в логику подгрузки числовых данных в индикатор.
- ProcessAll. Пересчитать все значения индикатора от 0 до конца массива.
- ProcessLast. Пересчитать последнее значение индикатора.
- ProcessNew. Пересчитать новое значение индикатора. Появился новый элемент в массиве.
Удачных алгоритмов!
Комментарии открыты для друзей!
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