Оглавление
Индикатор «DeltaByCandles»:
1. Как выглядит и что делает.
2. Обзор кода построчно.
3. Как правильно включать индикатор.
1. Как выглядит и что делает.
Индикатор выглядит следующим образом:
В нем у нас 4 линии и одна диаграмма:
1. Отвечает за отображение количества трейдов внутри свечи.
2. Количество трейдов на продажу.
3. Количество трейдов на покупку.
4. Delta — разница между линией трейдов покупки и трейдов продажи.
5. Скользящая средняя Delta.
2. Обзор кода построчно.
Строки 1-4:
Импортируются необходимые пространства имен:
Строки 6-8:
Определяется пространство имен CustomIndicators.Scripts для организации кода и класс DeltaByCandles наследует от Aindicator:
Строки 10-16:
Этот блок отвечает за набор серий данных и параметров индикатора:
Строка 20-36:
Создание серий данных и параметров индикатора:
Проверяем, индикатор используется или нет:
- Если индикатор используется, то мы создаем серии и параметры.
- Если нет, то мы все серии обнуляем.
Строки 40-52:
Динамический метод для обновления значений индикатора:
Метод OnProcess:
- Проверяем на наличие элементов в массиве, если их нет, то выходим.
- Далее добавляем в каждую серию данных новые значения:
- _seriesTrade = общее количество трейдов.
- _seriesBuy = вызываем метод GetTradeInfo и указываем направление Buy.
- _seriesSell = вызываем метод GetTradeInfo и указываем направление Sell.
- _seriesDelta = вызываем метод GetTradeInfo и указываем направление Buy. Вызываем метод GetTradeInfo и указываем направление Sell.
- _seriesSmaDelta = вызываем метод Sma.
Строки 54-82:
Метод подсчитывает количество сделок определенного типа:
Метод GetTradesInfo:
1. Инициализируется переменная value для хранения количества сделок, изначально равна 0.2. Проверяется сторона сделки (side):
- Если сторона покупки (Side.Buy):
- Перебираются все сделки (Trades) внутри указанной свечи (candles[index]).
- Для каждой сделки проверяется сторона сделки (Trade.Side):
- Если сторона сделки совпадает с нужной (покупка), то значение value увеличивается на 1.
- Если сторона продажи (Side.Sell):
- Перебираются все сделки (Trades) внутри указанной свечи (candles[index]).
- Для каждой сделки проверяется сторона сделки (Trade.Side):
- Если сторона сделки совпадает с нужной (продажа), то значение value увеличивается на 1.
Строки 84-99:
Метод для нахождения скользящей средней:
Метод Sma:
1. Проверяется, достаточно ли элементов в списке для вычисления средней. Если индекс index меньше заданного значения _lengthSmaDelta.ValueInt, то возвращается 0, так как нет достаточных данных.2. Инициализируется переменная values для хранения суммы значений, изначально равна 0.
3. Перебираются предыдущие элементы в списке:
- Для каждого элемента, начиная с value[index — 1] и заканчивая value[index — (_lengthSmaDelta.ValueInt — 1)], его значение добавляется к values.
5. Возвращается вычисленное среднее значение.
3. Как правильно включать индикатор:
Для работы индикатора в Tester Light нам нужно будет скачать в OsData тиковые данные.
Как скачать тиковые данные для Tester Light есть в нашем Гайде: https://smart-lab.ru/company/os_engine/blog/1024149.php
Ссылка на статью: https://smart-lab.ru/company/os_engine/blog/1025427.php
Ссылка на видео: https://smart-lab.ru/company/os_engine/blog/1054480.php
После того, как скачали, заходим в Tester Light и в нем уже в DataSetting:
Ставим эту галочку и все будет работать.
Чтобы запустить индикатор в Bot Station Light мы так же заходим в DataSetting и ставим галочку.
Удачных алгоритмов!
Комментарии открыты для друзей!
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
Подробнее https://smart-lab.ru/compan...












