Изображение блога
OS_Engine_team
OS_Engine_team Блог компании Os_Engine
27 декабря 2024, 12:32

Серии данных индикаторов в OsEngine. Индикаторы OsEngine #4

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

Серии данных индикаторов в OsEngine. Индикаторы OsEngine #4 

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

  1. Хранить в себе числовые значения индикатора и дают доступ к их сохранению.
  2. Даёт универсальный способ доступа к данным индикатора из роботов.
  3. Даёт возможность настроить способ отрисовки на чарте и прорисовать свои данные на чартах.

Посмотреть на реализацию серии данных в проекте можно здесь:

Серии данных индикаторов в OsEngine. Индикаторы OsEngine #4 

https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Indicators/IndicatorDataSeries.cs

Пример, рассматриваемый в статье, посмотреть можно здесь:

Серии данных индикаторов в OsEngine. Индикаторы OsEngine #4 

https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Indicators/Samples/Sample3IndicatorDataSeries.cs

 

1. Класс IndicatorDataSeries.

Посмотрим на его поля и свойства, к которым нам может быть интересно получить доступ и что-то поменять:

Серии данных индикаторов в OsEngine. Индикаторы OsEngine #4

  1. Сервисные функции, нужные для сохранения и прорисовки. Лучше их не трогать.
  2. Цвет на чарте для точек данных.
  3. Тип графика на чарте. Может быть:
    1. Line – линия.
    2. Column – столбцы.
    3. Point – точка. Обязательно применяйте, когда Ваш индикатор имеет разрывы в данных.
  4. Включена или выключена отрисовка индикатора на графике. False – Выключена.
  5. Нужно ли перерисовывать каждый раз индикатор с нуля. Нужно включать в случае, если индикатор меняется не только по последней точке данных, а еще если Вам надо увидеть изменения глазами, например, индикатор ZigZag или канал линейной регрессии. Замедляет работу программы, если True.
  6. Массив значений индикатора.
  7. Последнее значение серии. Упрощённый способ обратиться к последнему значению.

 

2. Создание серии данных.

Серии данных индикаторов в OsEngine. Индикаторы OsEngine #4

  1. Создаём поле типа IndicatorDataSeries в классе индикатора. Это нужно, чтобы он был доступен из любой точки индикатора в дальнейшем.
  2. Внутри метода OnStateChange при статусе Configure создаём сам объект серии, вызывая метод CreateSeries. Параметры метода:
    1. string name — имя серии данных.
    2. Color color – цвет серии данных на графике.
    3. IndicatorChartPaintType – chartPaintType – тип графика. Line, Column, Point.
    4. bool isPaint – нужно ли прорисовывать данную серию данных на графике.

 

3. Установка данных для серии данных.

Это делается в методе OnProcess:

Серии данных индикаторов в OsEngine. Индикаторы OsEngine #4 

  1. Обращаемся к серии данных.
  2. У серии обращаемся к массиву Values по индексу index.
  3. В данном случаем мы сохраняем в серию данных центр от свечей по индексу. Для этого обращаемся в массив свечей по индексу.
  4. И запрашиваем у свечи по индексу значение центра свечи.

На чарте данный индикатор будет выглядеть, как на картинке ниже. При этом, перейдя в настройках индикатора во вкладку Visual, можно увидеть серию данных и поменять ей настройки из интерфейса:

Серии данных индикаторов в OsEngine. Индикаторы OsEngine #4 

 

4. Полный исходный код примера.

using OsEngine.Entity;
using System.Collections.Generic;

namespace OsEngine.Indicators.Samplesъ
{
    [Indicator(«Sample3IndicatorDataSeries»)]
    public class Sample3IndicatorDataSeries: Aindicator
    {
        public IndicatorDataSeries Series1;
        public override void OnStateChange(IndicatorState state)
        {
            if(state == IndicatorState.Configure)
            {

                Series1 = CreateSeries("Series 1", System.Drawing.Color.AliceBlue, IndicatorChartPaintType.Line, true);

             }
        }

        public override void OnProcess(List<Candle> source, int index)
        {

            Series1.Values[index] = source[index].Center;

        }
    }
}

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

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

Серии данных индикаторов в OsEngine. Индикаторы OsEngine #4

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

Серии данных индикаторов в OsEngine. Индикаторы OsEngine #4

0 Комментариев

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн