本ページは自分がTradingViewのPineスクリプトを利用してインジケータ/ストラテジーを実装する際に調べたコーディングTipsです。
自身の備忘録もかねて記載していきます。
こちらは、TradingViewに関しての参考サイト集。
www.good-investor.onhydech.com
インジケータ画面へのplotshapeの表示位置設定
ローソク足の描画画面に対しては、上記画像のように図形をローソク足の位置に合わせて描画することができます。
study('plotshape example 2', overlay=true) data = close >= open plotshape(data, style=shape.triangleup, location=location.abovebar, color=green) plotshape(not data, style=shape.triangledown, location=location.belowbar, color=red)
plotshape、plotchar、plotarrowを用いた図形の描画 - TradingView Wiki
一方で、RSIやストキャスティクスなどのインジケータを表示している描画画面に上記と同じコードでは上手く表示がされません。「location」の基準がローソク足の位置からの相対的な設定になるからと思われます。
ということで、ローソク足がない描画画面への図形プロットには「location.absolute」オプションを利用します。これは、チャート上の任意の位置に図形を表示するオプションとなります。もう少し説明しますと、Y軸の値を渡すことで、表示位置を調整できます。
コードを見ていきましょう。コメントにも記載してしまいましたが、ポイントは以下です。
- 描画条件の設定。「absolute」オプションを利用する場合は、描画条件を示す変数にY軸の値を設定する必要がある。
- 表示したいときは、0~100の値を入力。これが描画位置になります。表示したくない場合は"na"とします。false/true/nullの場合は図形が描画されますのでご注意を。
// 描画条件の設定。「absolute」オプションを利用する場合は、flagにY軸の値を設定する必要がある。 // 表示したいときは、0~100の値を入力。これが描画位置になります。例の場合は"0.0"ですので描画画面の下部に表示されます。 // 表示したくない場合は"na"とします。false/true/nullの場合は図形が描画されますのでご注意を。 flag = ( close >= open ) ? 0.0 : na plotshape(flag , style=shape.arrowup, location=location.absolute, text="TEST")
上記サンプルとは異なりますが、同じロジックで描画すると以下のようになります。買いポイント時に"0.0"の位置に"UP"と表示、売りポイント時に"100.0"の位置に"DOWN"と表示しているものです。