chatGPTでPINEscriptのインジケータ書いてみた。3日目から5日目

PINEscriptのdebugについて

昨日、chatGPTにしてやられたのでデバッグを自分でやるしかない。ところがPINEscriptではコンソール出力できない、代替物の紹介。

参考にしたサイトはこちら。
コンソール出力に代わりに、バーの値を表示させる「データウインドウ」、これはバーの4本値やインジケータの値だけじゃなくて、明示すればデバッグ情報も、表示させることができるそうな。
チャート画面右側の縦メニューアイコンの、データウインドウ(上から4つめ)をクリックすると表示される。
label()を使って、ここに数値や文字を表示させる。

参考画像

さらに参考になるPINEスクリプトのコードがこちら

データウインドウに表示させる関数とサンプルを聞いてみた。

label.new 関数

plotchar 関数
plot , alertcondition 関数

ちゃんと動くか検証していく。
label.new , NG
plotchar  , OK
plot  , OK
alertcondition , コンパイルエラー

alertcondition の コンパイルエラーを聞いてみた。

次に、plotchar と plot を同時に動かせるか、やってみた。
結果はOK。(plotの表示色をオレンジに変更した)

デバッグのためにデータウインドウに表示出したいだけなら、plotcharとplot使うのが簡単。

plotcharの色をRSIの値に応じて変えてみた。60以上、40以下、それ以外の3色で指定した。
結果は、RSI値に応じて色が変わるとデータウインドウの数値の色も変わるのでデバッグしやすくなった。

// RSI計算
rsi = rsi(close, length)

// データウインドウに変数の値を表示
color = color.yellow
if rsi >= 60
    color := color.blue
else if rsi <= 40
    color := color.red
plotchar(rsi, color=color, title="RSI", location = location.top)
// 
plot(rsi, "RSI", color.gray,  linewidth=1)


灰色の折れ線がRSI、その上の一直線で3色あるのがplotchar()
色が変わるとデータウインドウの数値の色も変わる

これならデバッグで使える。

以上、ここまで。次からはこのデバッグ手法を使って動かしたいコードのデバッグに入ります。

チップはこちらからお願いします