tradingviewでのリペイントを防止する方法

未分類
この記事は約3分で読めます。

マルチタイムフレームは気をつけないとリペイント処理されてしまう

 

トレーディングビューでマルチタイムフレームのPINEスクリプトを書くと以下のようなコードとなる。

 

plot(security(syminfo.tickerid, "60", sma(close, 10)), color=color.blue, offset=0, linewidth=3)

 

このコードのままだと、

どーやらリペイントというものが発生していて、先読みしてしまうことで、ローソク足が確定する前の情報をよんで描画してしまうという現象が起きる。

 

初回の読み込み時は問題ないけど、、、ずーっと表示してると、チャートがグチャグチャになってしまうので、、、まともに使えないやんってことになる。

 

また、ストラテジーのコードを書くとこの先読みのリペイント現象が発生してしまうことでめちゃくちゃ利益でそうなものがかけてしまう。マルチタイムフレームを使ったストラテジーには気をつけないと…ほんと、騙されてしまう。でも、tradingviewでは、こういったリペイント処理されちゃってるコードが多いのも事実です。

 

=>過去の記事

ここで掲載した及川式のPINESCRIPTはリペイントしちゃってるので(汗)、

 

及川式 天才チャートをtradingviewで再現する方法!
及川式の天才チャートがMT4で公開さているのに、 わざわざトレーディングビュー(TradingView)で 表示する必要があるのか? なーんて思うかもしれないけど 常にMT4の画面が見れるわけじゃない。 気軽に...

 

リペイントなしにしたい場合は、次に紹介するコードを参考に修正してください。

 

トレーディングビューでのリペイントを防ぐ方法

 

リペイントを防ぐ方法としては、security関数にオプションつけて実行するだけでOKのようだ。

 

f_secureSecurity(_symbol, _res, _src) => security(_symbol, _res, _src[1], lookahead = barmerge.lookahead_on)
plot(f_secureSecurity(syminfo.tickerid, "60", sma(close, 10)), color=color.blue, offset=0, linewidth=3)

 

参考にした情報

 

How to avoid repainting when using security() - PineCoders FAQ — PineCoders作成のインジケーター
This indicator shows how to avoid repainting when using the security() function to retrieve information from higher timeframes. What do we mean by repainting? ...

 

ここでは、いろいろなリペイントする、しないの比較が一括でできるpinescriptが掲載されており参考になる。f_secureSecurityを使うやり方が一番シンプルで簡単なやり方となるようです。

 

それにしても、、、これだけ違いがでるのかぁ・・・。

 

 

 

 

 

 

タイトルとURLをコピーしました