Как получить доступ к текущей цене в скрипте Pine?

#pine-script

Вопрос:

У меня есть следующий код, который использует SMA 9, пересекающий SMA 200, но я хочу использовать текущую цену вместо SMA 9. Можно ли ссылаться на текущую цену?

 //@version=4

strategy ("Moving Average Cross", overlay=true, initial_capital=4000)

start = timestamp(2021,8,18,0,0)
end = timestamp(2021,10,18,0,0)

sma9 = sma(close,9)
sma200 = sma(close,200)
plot(sma9, title="9", color=#ff0000, linewidth=3)
plot(sma200, title="200", color=#0000ff, linewidth=3)

// Get user input
rsiSource = input(title="RSI Source", type=input.source, defval=close)
rsiLength = input(title="RSI Length", type=input.integer, defval=14)//defval is how many candles
rsiOverbought = input(title="RSI Overbought Level", type=input.integer, defval=58)
rsiOversold = input(title="RSI Oversold Level", type=input.integer, defval=35)
// Get RSI value
rsiValue = rsi(rsiSource, rsiLength)
isRsiOB = rsiValue >= rsiOverbought
isRsiOS = rsiValue <= rsiOversold
// Plot signals to chart
plotshape(isRsiOB, title="Overbought", location=location.abovebar, color=color.red, transp=0, style=shape.triangledown, text="OB")
plotshape(isRsiOS, title="Oversold", location=location.belowbar, color=color.green, transp=0, style=shape.triangleup, text="OS")

//long = sma9 > sma200
long = isRsiOS and (sma9 > sma200)
short =isRsiOB or (sma9 < sma200)

if time >= start and time <= end
    strategy.entry ("long", strategy.long, 100.0, when=long)
    strategy.close ("long", when=short)
 

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

1. Заменить sma9 = sma(close,9) на sma9 = close

Ответ №1:

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

Ура!