Апрель 26, 2017

Новые возможности в Pine Script

К числу переменных, возвращающих статус бара (barstate.isrealtime, barstate.ishistory, barstate.islast и др.) добавлена еще одна — barstate.isconfirmed. Она позволяет создавать индикаторы, которые рассчитываются только по закрытым (или наоборот, ещё обновляющимся) барам. Когда бар обновляется в реалтайме, значение barstate.isconfirmed равно false за исключением последнего апдейта этого бара.

//@version=3
study("Price prediction, barstate.isconfirmed sample")
prediction = not barstate.isconfirmed ? 2 * close - close[1] : na
plot(close)
plot(prediction, style=cross, linewidth=3, offset=1)

chrome_2017-04-25_17-02-35


Для функции input добавлен аргумент options. Вы могли видеть, что в некоторых встроенных индикаторах есть настройка с выбором из нескольких вариантов. Теперь такое-же возможно из Pine Script:

//@version=3
study(title="Average True Range, input with options sample", shorttitle="ATR", overlay=false)
length = input(14, minval=1)
smoothing = input(defval="RMA", options=["RMA", "SMA", "EMA", "WMA"])

ma(smoothing, src, length) => 
    if smoothing == "RMA"
        rma(src, length)
    else
        if smoothing == "SMA"
            sma(src, length)
        else 
            if smoothing == "EMA"
                ema(src, length)
            else 
                if smoothing == "WMA"
                    wma(src, length)
                else
                    src

plot(ma(smoothing, tr(true), length), color=red)

chrome_2017-04-25_18-42-36
В одном из ближайших обновлений Pine значительно расширятся возможности использования переменных в функциях, в том числе в input. Помимо прочего станет возможным такой вызов:

opt1 = "option1", opt2 = "option2"
i = input(opt1, options=[opt1, opt2])
if i == opt1
    <...>