Слой создание свечей в Os Engine. Реализации и их использование в проекте. Свечи #18

02.07.2024 palmax

Слой создание свечей в Os Engine. Реализации и их использование в проекте. Свечи #18

Продолжаем разбираться со слоем создания свечек. И сегодня поговорим про ACandleSeriesRealization. Про абстрактный класс-родитель для всех серий свечек в OsEngine.

 

Тем сегодня много, поэтому с оглавлением:

  1. ACandleSeriesRealizatioin. Нахождение в проекте.
  2. ACandleSeriesRealizatioin. Регионы внутри класса.
  3. Как объявить класс-реализацию свечек.
  4. Места, где используется реализация свечек внутри проекта OsEngine.

 

1. ACandleSeriesRealization в проекте.

Данный класс – это класс родитель для каждой серии свечек. И чтобы сделать свою серию, надо понимать, как он работает. Абстрактный он, т.к. отдельный экземпляр класса с таким названием создать нельзя. Это – половина класса. И к ней обязателен наследник.

Находится он здесь:

 

 

2. ACandleSeriesRealization. Регионы.

Внутри самого класса 4 региона:

  1. Constructor and initialization – нужно для создания и удаления объекта серии.
  2. Candles – место хранения свечек и вызова событий их обновления.
  3. Abstract part – часть класса, которую нужно будет перегрузить в наследнике и конечной реализации свечек.
  4. Parameters – регион, отвечающий за работу параметров серии.

Далее, раскроем каждый регион в отдельности и посмотрим, что там внутри.

 

Регион Constructor and initialization.

 

  1. Метод инициализации серии. Вызывается автоматически после её создания.
  2. Программа, которая создала серию. Тестер, Оптимизатор или станция для боевой торговли.
  3. Удалить серию.
  4. Бумага, для которой строятся свечи.

 

Регион Candles.

 

  1. Свечи, которые строит серия. Из этого массива они и запрашиваются.
  2. Метод, вызывающий событие обновления свечи.
  3. Метод, вызывающий событие завершения свечи.
  4. Событие обновления свечи.
  5. Событие завершения свечи.

 

Регион Abstract part.

 

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

1. Событие изменения статуса серии. Какие могут быть статусы:

  1. Configure – вызывается при создании. В этот момент нужно создавать параметры и переменные необходимые для расчёта свечей. Вызывается один раз.
  2. Dispose – вызывается при удалении серии.
  3. ParametersChange – вызывается при смене значений параметров.

2. UpDateCandle – метод, в котором нужно реализовывать логику сборки свечей для кастомной серии свечек.

 

Регион Parameters.

 

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

1. CreateParameterDecimal. Метод для создания параметра типа Decimal. Числа с плавающей запятой.

  1. name – системное имя параметра.
  2. label – подпись в окне параметров для пользователя.
  3. value – стартовое значение параметра. Может быть отрицательным.

2. CreateParameterInt. Метод для создания параметра типа Int. Целое число.

  1. name – системное имя параметра.
  2. label – подпись в окне параметров для пользователя.
  3. value – стартовое значение параметра. Может быть отрицательным.

3. CreateParameterStringCollection. Метод для создания параметра для хранения коллекции строк.

  1. name – системное имя параметра.
  2. label – подпись в окне параметров для пользователя.
  3. value – стартовое значение параметра.
  4. collection – коллекция строк, которые на выбор нужно показывать пользователю в интерфейсе.

4. CreateParameterBool. Метод для создания параметра типа Bool. Булево значение. True / False.

  1. name – системное имя параметра.
  2. label – подпись в окне параметров для пользователя.
  3. value – стартовое значение параметра. Может быть отрицательным.

5. Сервисный код, поддерживающий работу параметров в серии.

 

3. Как объявить класс-реализацию свечек.

Посмотрим на примере класса Delta.

Для того, чтобы платформа увидела Вашу серию свечек, достаточно:

  1. Создать в папке проекта Candles/Series новый класс с уникальным названием Вашей новой серии.
  2. Добавить вот такой атрибут для класса, в скобочках указав имя класса один в один.
  3. Унаследовать для нового класса от ACandleSeriesRealization.
  4. Сделать перегрузку обязательных методов: OnStateChange и UpDateCandle. Про них подробно будем говорить в следующих статьях по теме.
  5. Всё. После этого можно собрать проект, и платформа уже увидит Ваши новые свечи и добавит их в список для выбора в интерфейсы.

 

4. Места, где используется реализация свечек внутри проекта OsEngine.

TimeFrameBuilder хранит.

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

CandleSeries управляет и подаёт данные внутрь.

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

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

Пост из серии «Свечи и преобразование ленты сделок».

OsEngine: https://github.com/AlexWan/OsEngine
FAQ: https://o-s-a.net/os-engine-faq
Поддержка 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