3
Примеры работы с "сериями" в Pine Script. | Паблико
17 подписчики

Примеры работы с "сериями" в Pine Script.


11 июл 2022 · 10:06    

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


Прежде чем перейдем к практическим примерам работы с сериями расскажу немного теории.

Основной тип данных, используемый в Pine script, называется серией. Это непрерывный список значений, который идёт назад во времени от текущего бара и где для каждого бара существует одно значение.



серия номер.png 22.59 KB


Серии хранят последовательность исторических значений. К ним можно получить доступ с помощью [ ] оператора. Примерами встроенных последовательных переменных являются: open, high, low, close, volume и time. Любое выражение, содержащее переменную серии, будет рассматриваться как сама серия. Например:

a = open + close + low + high // Сложение 4 серий
b = high * 3 // Умножение переменной серии на константу
c = low[1] // Ссылка на предыдущее значение "low", текущее low[0]

Записи close и close[0] равносильны, для обращения к текущему бару не обязательно указывать оператор [ ] с нулевым номером.

?: условный тернарный оператор:

условие ? результат 1 : результат 2

Если условие выполняется, то вернется результат 1, если нет, то результат 2.

условие 1 ? результат 1 : условие 2 ? результат 2 : результат 3

Если условие 1 выполняется, то вернется результат 1, если нет, то если условие 2 выполняется - вернется результат 2. А если не выполняются оба условия - вернется результат 3.

nz() - встроенная функция, заменяет на NaN (ничего) значения с нулями.


Шаблоны которые я использую при программировании на Pine script:

Сумма/Счетчик.

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

x = 0 // задание переменной
xn = 1 // задание переменной n, равной 1, если это счетчик
x := условие ? x[1] + n : nz(x[1]) // при выполнении условия, мы к предыдущему значению x прибавляем значение n, если условие не выполняется - x присваивает своё предыдущее значение.



Графический результат


Из примера можно увидеть, что каждый раз когда low было ниже 30000 значение х увеличивалось на 1.

Присвоение переменной значения и удержание его постоянным.

x = 0 // задание переменной
xn = a // задание переменной a, или сразу в формуле пишите нужное значение вместо n
x := условие and x[1] == 0 ? x[1] + n : nz(x[1]) // присваивается значение n, если выполняется условие x предыдущее равно 0, что говорит о том, что ранее это условие не выполнялось.



Код




Графический результат


Из примера видно, что один раз когда low было ниже 30000 значение х увеличивалось на 1, и более не реагировало на данное условие.

Присвоение переменной значения и удержание его до отмены условия.

x = 0 // задание переменной x
x := условие 1 ? 1 : условие 2 ? 0 : nz(x[1]) // Если выполняется условие 1 - присваивается 1, если выполняется условие 2 - присваивается 0, если не выполняется ни одно из условий - присваивается предыдущее значение.



Код




Графический результат


Из примера видно, что каждый раз когда low было ниже 30000 значение х увеличивалось на 1, а когда выполнялось условие обратное первому (low было больше 30000) х уменьшался до 0.

Также можно отменять другим условием.

Если как у нас в примере условия взаимоисключающие, то можно записать более простым кодом:



Код


Если у вас есть вопросы по сериям и их использовании - пишите в комментариях.

✅ Если не хотите пропустить мои публикации - подписывайтесь на мой канал.

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


Прежде чем перейдем к практическим примерам работы с сериями расскажу немного теории.

Основной тип данных, используемый в Pine script, называется серией. Это непрерывный список значений, который идёт назад во времени от текущего бара и где для каждого бара существует одно значение.



серия номер.png 22.59 KB


Серии хранят последовательность исторических значений. К ним можно получить доступ с помощью [ ] оператора. Примерами встроенных последовательных переменных являются: open, high, low, close, volume и time. Любое выражение, содержащее переменную серии, будет рассматриваться как сама серия. Например:

a = open + close + low + high // Сложение 4 серий
b = high * 3 // Умножение переменной серии на константу
c = low[1] // Ссылка на предыдущее значение "low", текущее low[0]

Записи close и close[0] равносильны, для обращения к текущему бару не обязательно указывать оператор [ ] с нулевым номером.

?: условный тернарный оператор:

условие ? результат 1 : результат 2

Если условие выполняется, то вернется результат 1, если нет, то результат 2.

условие 1 ? результат 1 : условие 2 ? результат 2 : результат 3

Если условие 1 выполняется, то вернется результат 1, если нет, то если условие 2 выполняется - вернется результат 2. А если не выполняются оба условия - вернется результат 3.

nz() - встроенная функция, заменяет на NaN (ничего) значения с нулями.


Шаблоны которые я использую при программировании на Pine script:

Сумма/Счетчик.

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

x = 0 // задание переменной
xn = 1 // задание переменной n, равной 1, если это счетчик
x := условие ? x[1] + n : nz(x[1]) // при выполнении условия, мы к предыдущему значению x прибавляем значение n, если условие не выполняется - x присваивает своё предыдущее значение.



Графический результат


Из примера можно увидеть, что каждый раз когда low было ниже 30000 значение х увеличивалось на 1.

Присвоение переменной значения и удержание его постоянным.

x = 0 // задание переменной
xn = a // задание переменной a, или сразу в формуле пишите нужное значение вместо n
x := условие and x[1] == 0 ? x[1] + n : nz(x[1]) // присваивается значение n, если выполняется условие x предыдущее равно 0, что говорит о том, что ранее это условие не выполнялось.



Код




Графический результат


Из примера видно, что один раз когда low было ниже 30000 значение х увеличивалось на 1, и более не реагировало на данное условие.

Присвоение переменной значения и удержание его до отмены условия.

x = 0 // задание переменной x
x := условие 1 ? 1 : условие 2 ? 0 : nz(x[1]) // Если выполняется условие 1 - присваивается 1, если выполняется условие 2 - присваивается 0, если не выполняется ни одно из условий - присваивается предыдущее значение.



Код




Графический результат


Из примера видно, что каждый раз когда low было ниже 30000 значение х увеличивалось на 1, а когда выполнялось условие обратное первому (low было больше 30000) х уменьшался до 0.

Также можно отменять другим условием.

Если как у нас в примере условия взаимоисключающие, то можно записать более простым кодом:



Код


Если у вас есть вопросы по сериям и их использовании - пишите в комментариях.

✅ Если не хотите пропустить мои публикации - подписывайтесь на мой канал.

Читайте также

Комментарии 1

Войдите для комментирования
■ id4052 21 июл 2022 в 17:52
Спасибо за статью👍
НОВОСТИ ПОИСК РЕКОМЕНД. НОВОЕ ЛУЧШЕЕ ПОДПИСКИ