Продолжаем разбираться со слоем создания свечек. И сегодня поговорим про ACandleSeriesRealization. Про абстрактный класс-родитель для всех серий свечек в OsEngine.
Тем сегодня много, поэтому с оглавлением:
- ACandleSeriesRealizatioin. Нахождение в проекте.
- ACandleSeriesRealizatioin. Регионы внутри класса.
- Как объявить класс-реализацию свечек.
- Места, где используется реализация свечек внутри проекта OsEngine.
1. ACandleSeriesRealization в проекте.
Данный класс – это класс родитель для каждой серии свечек. И чтобы сделать свою серию, надо понимать, как он работает. Абстрактный он, т.к. отдельный экземпляр класса с таким названием создать нельзя. Это – половина класса. И к ней обязателен наследник.
Находится он здесь:
2. ACandleSeriesRealization. Регионы.
Внутри самого класса 4 региона:
- Constructor and initialization – нужно для создания и удаления объекта серии.
- Candles – место хранения свечек и вызова событий их обновления.
- Abstract part – часть класса, которую нужно будет перегрузить в наследнике и конечной реализации свечек.
- Parameters – регион, отвечающий за работу параметров серии.
Далее, раскроем каждый регион в отдельности и посмотрим, что там внутри.
Регион Constructor and initialization.
- Метод инициализации серии. Вызывается автоматически после её создания.
- Программа, которая создала серию. Тестер, Оптимизатор или станция для боевой торговли.
- Удалить серию.
- Бумага, для которой строятся свечи.
Регион Candles.
- Свечи, которые строит серия. Из этого массива они и запрашиваются.
- Метод, вызывающий событие обновления свечи.
- Метод, вызывающий событие завершения свечи.
- Событие обновления свечи.
- Событие завершения свечи.
Регион Abstract part.
Это обязательные к перегрузке методы, которые нужно будет реализовать в новой серии данных.
1. Событие изменения статуса серии. Какие могут быть статусы:- Configure – вызывается при создании. В этот момент нужно создавать параметры и переменные необходимые для расчёта свечей. Вызывается один раз.
- Dispose – вызывается при удалении серии.
- ParametersChange – вызывается при смене значений параметров.
2. UpDateCandle – метод, в котором нужно реализовывать логику сборки свечей для кастомной серии свечек.
Регион Parameters.
Регион, отвечающий за работу параметров серии. Каждый параметр, созданный через первые четыре метода, будет отображаться в интерфейсе настроек параметров серии. Остальное – сервисный код.
1. CreateParameterDecimal. Метод для создания параметра типа Decimal. Числа с плавающей запятой.- name – системное имя параметра.
- label – подпись в окне параметров для пользователя.
- value – стартовое значение параметра. Может быть отрицательным.
2. CreateParameterInt. Метод для создания параметра типа Int. Целое число.- name – системное имя параметра.
- label – подпись в окне параметров для пользователя.
- value – стартовое значение параметра. Может быть отрицательным.
3. CreateParameterStringCollection. Метод для создания параметра для хранения коллекции строк.- name – системное имя параметра.
- label – подпись в окне параметров для пользователя.
- value – стартовое значение параметра.
- collection – коллекция строк, которые на выбор нужно показывать пользователю в интерфейсе.
4. CreateParameterBool. Метод для создания параметра типа Bool. Булево значение. True / False.- name – системное имя параметра.
- label – подпись в окне параметров для пользователя.
- value – стартовое значение параметра. Может быть отрицательным.
5. Сервисный код, поддерживающий работу параметров в серии.
3. Как объявить класс-реализацию свечек.
Посмотрим на примере класса Delta.
Для того, чтобы платформа увидела Вашу серию свечек, достаточно:
- Создать в папке проекта Candles/Series новый класс с уникальным названием Вашей новой серии.
- Добавить вот такой атрибут для класса, в скобочках указав имя класса один в один.
- Унаследовать для нового класса от ACandleSeriesRealization.
- Сделать перегрузку обязательных методов: OnStateChange и UpDateCandle. Про них подробно будем говорить в следующих статьях по теме.
- Всё. После этого можно собрать проект, и платформа уже увидит Ваши новые свечи и добавит их в список для выбора в интерфейсы.
4. Места, где используется реализация свечек внутри проекта OsEngine.
TimeFrameBuilder хранит.
Хранятся реализации в основном здесь. Этот класс используется в источниках OsEngine для того, чтобы знать, какие именно свечи заказал пользователь к сборке:
CandleSeries управляет и подаёт данные внутрь.
Удачных алгоритмов!
Комментарии открыты для друзей!
Пост из серии «Свечи и преобразование ленты сделок».
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