Обзор функций аннотаций

From TradingView Wiki
Jump to: navigation, search
Language: English  • 日本語 • Português • Русский


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

Аннотация ’study’

Как отмечалось в разделе «Структура скрипта», каждый сценарий должен содержать один вызов функции аннотации study. Функция имеет следующее определение:

study(title, shorttitle, overlay, precision)

Данная функция определяет характеристики всех индикаторов в целом. Только title - необходимый аргумент, который задает имя индикатора. Это имя будет использоваться в диалоге индикаторов.

shorttitle — краткое имя индикатора, отображаемого в легенде диаграммы. Если он не был указан, он будет использовать значение title.

overlay — логический тип аргумента. Если это правда, то исследование будет добавлено в виде наложения поверх главной серии. Если он неверен, он будет добавлен в отдельную панель диаграммы; False - значение по умолчанию.

precision — количество цифр после плавающей точки для значений исследования на оси цен. Должно быть неотрицательное целое число. Precision 0 имеет специальные правила для форматирования очень больших чисел (например, громкость, например, «5183» будет отформатирована как «5K»). Значение по умолчанию - 4.

Вывод графика ‘plot’

Аннотация plot принимает один обязательный аргумент: значение типа серии и отображает его на диаграмме в виде строки. Простейший вызов выглядит следующим образом:

plot(close)

Однако, поскольку в Pine есть автоматические преобразования типов, вместо значения типа серии, может передаваться любое числовое значение. Например:

plot(125.2)

В этом случае значение 125.2 автоматически преобразуется в значение типа серии, которое будет одинаковым на каждом баре. Сюжет будет представлен как горизонтальная линия.

В аннотации plot имеется множество необязательных аргументов, в частности те, которые задают стиль отображения графика: style, color, title, linewidth, transparency и другие. Дополнительные описания этих аргументов можно найти здесь.

Параметр color может иметь различный эффект в зависимости от переданного значения. Если он установлен равным константе цвета, например, красным, тогда весь график будет нарисован красным цветом:

plot(close, color=red)

Output of charts plot 1.png

Тем не менее, аргумент color может принимать выражение типа цветных значений в виде значений. Эта серия цветов будет использоваться для окраски диаграммы при визуализации. Например:

c = close >= open ? lime : red
plot(close, color = c)

Output of charts plot 2.png

Интерес также представляет аргумент offset функции plot. Он определяет сдвиг, используемый при построении графика (отрицательные значения сдвигают диаграмму влево, а положительные значения - вправо). Например:

study("My Script 12", overlay=true)
plot(close, color=red, offset=-5)
plot(close, color=lime, offset=5)

Output of charts plot 3.png

Как видно на скриншоте, красная серия смещена влево (поскольку значение аргумента «смещение» отрицательное), а зеленая серия сдвинута вправо (ее значение «смещение» положительно).

Сноска. В Pine есть встроенная функция offset, которая также позволяет смещать значения ряда, но Только вправо. В то же время значения «вне диапазона» текущего бара отбрасываются. Преимущество «смещения» заключается в том, что его результат может использоваться в других выражениях для выполнения сложных вычислений. В случае аргумента «смещение» функции «график» сдвиг оказывается просто визуальным эффектом сюжета.


Цвет баров - ‘barcolor’

Функция аннотации «barcolor» позволяет указать цвет для бара в зависимости от выполнения определенного условия. Следующий пример скрипта отображает внутренние и внешние строки в разных цветах:

study("barcolor example", overlay=true)
isUp() => close > open
isDown() => close <= open
isOutsideUp() => high > high[1] and low < low[1] and isUp()
isOutsideDown() => high > high[1] and low < low[1] and isDown()
isInside() => high < high[1] and low > low[1]
barcolor(isInside() ? yellow : isOutsideUp() ? aqua : isOutsideDown() ? purple : na)

Barcoloring a series barcolor 1.png

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

Цвет фона — ‘bgcolor’

Подобно функции barcolor, функция bgcolor изменяет цвет фона. Функция будет цвет, который может быть вычислен в выражении, и необязательный параметр transp – прозрачность от 0 до 100, который по умолчанию равен 90.

В качестве примера, вот сценарий для раскраски торговых сессий (используйте его на EURUSD, 30-минутное разрешение):

study("bgcolor example", overlay=true)
timeinrange(res, sess) => time(res, sess) != 0
premarket = #0050FF
regular = #0000FF
postmarket = #5000FF
notrading = na
sessioncolor = timeinrange("30", "0400-0930") ? premarket : timeinrange("30", "0930-1600") ? regular : timeinrange("30", "1600-2000") ? postmarket : notrading
bgcolor(sessioncolor, transp=75)

Background coloring bgcolor 1.png

Входы индикатора

Аннотации «ввода» позволяют указать, какие переменные в коде индикатора поступают. Виджеты будут сгенерированы для переменных на странице индикатора (свойства / атрибуты), чтобы изменить значения с помощью более удобного способа, чем изменение исходного кода скрипта. Вы также можете указать заголовок ввода в виде короткой текстовой строки. Название предназначено для объяснения цели ввода, и вы можете указать наименьшие и максимально возможные значения для числовых входов.

Когда документ написан, в Pine имеются следующие типы ввода:

  • bool (булево),
  • integer (целое),
  • float (нецелок),
  • string (строка),
  • symbol (символ),
  • resolution,
  • session (сеанс),
  • source (источник).

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

b = input(title="On/Off", type=bool, defval=true)
plot(b ? open : na)

Inputs of indicator 1.png


i = input(title="Offset", type=integer, defval=7, minval=-10, maxval=10)
plot(offset(close, i))

Inputs of indicator 2.png


f = input(title="Angle", type=float, defval=-0.5, minval=-3.14, maxval=3.14, step=0.2)
plot(sin(f) > 0 ? close : open)

Inputs of indicator 3.png


sym = input(title="Symbol", type=symbol, defval="SPY")
res = input(title="Resolution", type=resolution, defval="60")
plot(close, color=red)
plot(security(sym, res, close), color=green)

Inputs of indicator 4.png Входной виджет ‘symbol’ имеет встроенный символ ‘search’, который включается автоматически при вводе первых символов тикера.


s = input(title="Session", type=session, defval="24x7")
plot(time(period, s))

Inputs of indicator 5.png


src = input(title="Source", type=source, defval=close)
ma = sma(src, 9)
plot(ma)

Inputs of indicator 6.png


Дополнительную информацию о входах индикаторов см. в Pine Reference.

Уровень цен ‘hline’

Функция аннотации «hline» отображает горизонтальную линию с заданным фиксированным уровнем цен. Например:

study(title="Chaikin Oscillator", shorttitle="Chaikin Osc")
short = input(3,minval=1), long = input(10,minval=1)
osc = ema(accdist, short) - ema(accdist, long)
plot(osc, color=red)
hline(0, title="Zero", color=gray, linestyle=dashed)

Price levels hline 1.png

Число должно быть первым аргументом «hline». Значения серии типов запрещены. Можно создать несколько горизонтальных линий с помощью «hline» и заполнить фон между ними полупрозрачным светом, используя функцию «fill».

Заполнение фона между объектами с помощью ‘fill'

Функция аннотации «fill» позволяет вам окрашивать фон между двумя сериями или две горизонтальные линии (созданные с помощью hline). Следующий пример иллюстрирует, как это работает:

study("fill Example")
p1 = plot(sin(high))
p2 = plot(cos(low))
p3 = plot(sin(close))
fill(p1, p3, color=red)
fill(p2, p3, color=blue)
h1 = hline(0)
h2 = hline(1.0)
h3 = hline(0.5)
h4 = hline(1.5)
fill(h1, h2, color=yellow)
fill(h3, h4, color=lime)

Filling in the background between objects with fill 1.png

Сноска: никогда не выполняйте заливку между «plot» и «hline». Однако с помощью «графика» можно отобразить серию одинаковых значений (которая будет выглядеть как горизонтальная линия, похожая на «hline») и выполнить заливку между ней и другим сюжетом. Например:

study("Fill example 2")
src = close, len = 10
ma = sma(src, len)
osc = 100 * (ma - src) / ma
p = plot(osc)
// NOTE: fill(p, hline(0)) wouldn't work, instead use this:
fill(p, plot(0))

Filling in the background between objects with fill 2.png

Вы можете установить цвет заполнения с помощью констант, таких как 'color=red' или 'color=#ff001a', а также сложных выражений типа 'color = close >= open ? green : red'. Пример:

//@version=2
study(title="Colored fill")
line1=sma(close,5)
line2=sma(close,20)
p1 = plot(line1)
p2 = plot(line2)
fill(p1, p2, color = line1>line2 ? green : red)

Filling in the background between objects with fill 3.png

Условия оповещения

Функция аннотации alertcondition позволяет создавать пользовательские условия оповещения в скриптах Pine.

Функция имеет следующую подпись:

alertcondition(condition, title, message)

‘condition’(условие) - это серия логических значений, которая используется для предупреждения. Доступные значения: true, false. Истина означает, что условие предупреждения выполнено, предупреждение должно срабатывать. False означает, что условие предупреждения не выполняется, предупреждение не должно запускаться. Это необходимый аргумент.

‘title’ - необязательный аргумент, который указывает текстовое сообщение, отображаемое при срабатывании предупреждения.

‘message’ is an optional argument that specifies text message to display when the alert fires.

Вот пример создания условия оповещения:

//@version=2
study("Example of alertcondition")
src = input(close)
ma_1 = sma(src, 20)
ma_2 = sma(src, 10)
c = cross(ma_1, ma_2)
alertcondition(c, title='Red crosses blue', message='Red and blue have crossed!')
plot(ma_1, color=red)
plot(ma_2, color=blue)

Функция создает условие предупреждения, которое доступно в диалоговом окне «Создать предупреждение». Обратите внимание: это условие предупреждения НЕ запускает предупреждения из кода автоматически, это дает вам возможность создать настраиваемое условие для диалога Create Alert. Предупреждения должны быть установлены вручную. Кроме того, предупреждение, инициированное на основе пользовательского условия, которое вы создали в Pine-коде, не отображается на диаграмме.

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

Чтобы создать оповещение, основанное на условии предупреждения, следует применить Панельный код (исследование) с предупреждением к текущему графику, открыть диалоговое окно «Создать предупреждение», выбрать применяемый Pine-код в качестве основного условия для предупреждения и выбрать конкретное условие предупреждения (реализовано в Сам код).

Alertcondition 1.png

Когда срабатывает предупреждение, вы увидите сообщение:

Alertcondition 2.png


Предыдущая статья: Данные нестандартных типов диаграмм, Следующая: Формы, использующие plotshape, plotchar, plotarrow, Вверх: Pine Script Tutorial/ru