Найти в Дзене
Trading Community

Способы построения дивергенции на Pine Script

Помнится, я обещал рассказать как строить дивергенции в Pine Script. Ниже представлен код двух способов их построения. Один с помощью функции корреляции, другой с помощью функции пивот. Построение дивергенции с помощью функции корреляции ta.correlation() - Коэффициент корреляции. Описывает степень, на которую две серии стремятся отклониться от своих ta.sma значений. 7 - передаем значение встроенной функции ta.rsi в переменную rsi 8 - задаем коэффициент корреляции, на который будет реагировать индикатор 9 - задаем расчетный период корреляции 11 - переносим значение встроенной функции корреляции ta.correlation в переменную correlation 14 - задаем цвет направления корреляции, изначально бесцветный 15 - с помощью тернарного оператора задаем два условия дивергенции типа Strong. Первое условие медвежьей дивергенции, цвет будет красный, второе - бычьей и цвет зеленый. В случае не выполнения обоих условий цвет будет серый. Серый цвет можно сменить на бесцветный, в нем не выполняется условие
Оглавление

Помнится, я обещал рассказать как строить дивергенции в Pine Script. Ниже представлен код двух способов их построения. Один с помощью функции корреляции, другой с помощью функции пивот.

Построение дивергенции с помощью функции корреляции

ta.correlation() - Коэффициент корреляции. Описывает степень, на которую две серии стремятся отклониться от своих ta.sma значений.

Код построения бычьей и медвежьей дивергенций с помощью функции correlation
Код построения бычьей и медвежьей дивергенций с помощью функции correlation

7 - передаем значение встроенной функции ta.rsi в переменную rsi

8 - задаем коэффициент корреляции, на который будет реагировать индикатор

9 - задаем расчетный период корреляции

11 - переносим значение встроенной функции корреляции ta.correlation в переменную correlation

14 - задаем цвет направления корреляции, изначально бесцветный

15 - с помощью тернарного оператора задаем два условия дивергенции типа Strong. Первое условие медвежьей дивергенции, цвет будет красный, второе - бычьей и цвет зеленый. В случае не выполнения обоих условий цвет будет серый.

Серый цвет можно сменить на бесцветный, в нем не выполняется условие бычьей или медвежьей дивергенции Strong, цена и осциллятор вместе растут или вместе падают, просто один из них это делает быстрей.

Цвет окраски линии сигнала (строка 17), а цвет окраски линии, от которой считается корреляция окрашена в белый цвет (строка 18).

О работе условного тернарного оператора ?: можно прочитать здесь.

19 - строим линию значений корреляции (синяя, если не задавать цвет plot)

20 - задаем нейтральное (нулевое) значение корреляции (серая)

21 - задаем максимальное положительное значение корреляции (зеленая)

22 - задаем максимальное отрицательное значение корреляции (красная)

Отображение дивера на графике BTCUSDT
Отображение дивера на графике BTCUSDT

Построение дивергенции с помощью функции пивот

ta.pivothigh() - Эта функция возвращает цену верхней точки разворота. Возвращает 'NaN', если не было верхней точки разворота.

Код построения медвежьей дивергенции с помощью функции pivot
Код построения медвежьей дивергенции с помощью функции pivot

25 - строка кода задает период пивот, количество серий слева и справа относительно верхней точки разворота

26 - функция пивота максимальных значений, ищется по цене close

27 - передаем значение встроенной функции ta.rsi в переменную rsi

29 - задаем название нашей функции

30 - задаем начальное значение длины от текущего пивота до искомого

31 - задания цикла перебирающего значения от текущего до 40 свечей назад по одной свече

32 - условие текущего пивота и дивергенции типа Strong. О видах дивергенций и как их правильно строить можно посмотреть здесь.

33 - присвоение переменной длины от текущего пивота до искомого текущего значения

34, 35 - определение тангенса углов линии дивера к горизонтали на графике цены и осциллятора

36 - задание цикла проверяющего найденную линию на предмет пересечения с ценами close, если пересечение происходило, то переменная length приравнивается 0 и не строится на графике в части кода, отведенных под визуализацию 43-47

Отображение дивера на графике BTCUSDT
Отображение дивера на графике BTCUSDT

Эти реализации сигналов дивергенций не являются исчерпывающими.

А с помощью каких индикаторов вы определяете дивергенцию на графиках? Делитесь в комментариях!

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

Спасибо всем, кто дочитал статью до конца. Буду рад, если данная информация вам помогла.

Подписывайтесь на канал, чтобы не пропустить новых статей!