Pineスクリプトの落とし穴:平均足チャートを表示しているときの OHLC の値は実際の値と違う

平均足チャートを表示しているとき、組み込み(ビルトイン)変数 openhighlowclose の値は、実際の銘柄の値と違うことに注意。

違う値となる理由は、組み込み(ビルトイン)変数 openhighlowclose には、チャートに表示しているバー(ロウソク足)に対応する値が入るため。よって、平均足チャートのときは平均足の値が入るため、実際の銘柄の値とは異なる。

これを理解していないと、平均足チャート上に表示しているインディケーター(テクニカル指標)は、実は期待と違うものを表示している可能性がある。

平均足チャートを表示しているときに実際の銘柄の値を取得するには、下記のように security() を使う必要がある。


//@version=4
study("get OHLC with security()")

symbl = tickerid(syminfo.prefix, syminfo.ticker)

o = security(symbl, timeframe.period, open)
h = security(symbl, timeframe.period, high)
l = security(symbl, timeframe.period, low)
c = security(symbl, timeframe.period, close)

//plot(open)
//plot(o, linewidth=2)
//plot(high)
//plot(h, linewidth=2)
//plot(low)
//plot(l, linewidth=2)
plot(close)
plot(c, linewidth=2)