Индикатор «DeltaByCandles»

Индикатор «DeltaByCandles»

Оглавление

Индикатор «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:

1. Проверяем на наличие элементов в массиве, если их нет, то выходим.

2. Далее добавляем в каждую серию данных новые значения:

· _seriesBuy = вызываем метод GetTradeInfo и указываем направление Buy.

· _seriesSell = вызываем метод GetTradeInfo и указываем направление Sell.

· _seriesDelta = разница между объёмом по покупателям и объёмами продавцов.

· _seriesTrade = общее количество объёмов

· _seriesSmaDelta = вызываем метод Sma.

Строки 54-82:

Метод подсчитывает количество объёмов определенного типа:

Метод GetTradesInfo:

1. Инициализируется переменная value для хранения количества сделок, изначально равна 0.

2. Проверяется сторона сделки (side):

· Если сторона покупки (Side.Buy):

· Перебираются все сделки (Trades) внутри указанной свечи (candles[index]).

· Для каждой сделки проверяется сторона сделки (Trade.Side):

· Если сторона сделки совпадает с нужной (покупка), то значение объёма увеличивается.

· Если сторона продажи (Side.Sell):

· Перебираются все сделки (Trades) внутри указанной свечи (candles[index]).

· Для каждой сделки проверяется сторона сделки (Trade.Side):

· Если сторона сделки совпадает с нужной (продажа), то значение объёма увеличивается.

3. Возвращается итоговое значение value, которое представляет собой объём сделок в нужную сторону (покупка или продажа) внутри указанной свечи.

Строки 84-99:

Метод для нахождения скользящей средней:

Метод Sma:

1. Проверяется, достаточно ли элементов в списке для вычисления средней. Если индекс index меньше заданного значения _lengthSmaDelta.ValueInt, то возвращается 0, так как нет достаточных данных.

2. Инициализируется переменная values для хранения суммы значений, изначально равна 0.

3. Перебираются предыдущие элементы в списке:

· Для каждого элемента, начиная с value[index - 1] и заканчивая value[index - (_lengthSmaDelta.ValueInt - 1)], его значение добавляется к values.

4. Вычисляется среднее значение путем деления суммы values на количество элементов _lengthSmaDelta.ValueInt.

5. Возвращается вычисленное среднее значение.

 

3. Как правильно включать индикатор:

Для работы индикатора в Tester Light нам нужно будет скачать в OsData тиковые данные.

Как скачать тиковые данные для Tester Light есть в нашем FAQ:

Ссылка на статью:  Ссылка

После того, как скачали, заходим в Tester Light и в нем уже в DataSetting:


Ставим эту галочку и все будет работать.

Чтобы запустить индикатор в Bot Station Light мы так же заходим в DataSetting и ставим галочку.

 

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

 

Поддержка OsEngine: https://t.me/osengine_official_support

15:22
150

Комментарии

Нет комментариев. Ваш будет первым!