Блог им. FaAnDi

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

32  — условие текущего пивота и дивергенции типа Strong

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

3435  — определение тангенса углов линии дивера к горизонтали на графике цены и осциллятора

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

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

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

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

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

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

★4
1 комментарий
Спс. Вы бы код еще запостили тут или на гитхаб, чтобы практиковать самому было удобнее.
avatar

теги блога Trading Community

....все тэги



UPDONW
Новый дизайн