Help us understand the problem. What is going on with this article?

TradingViewのPine Scriptを効率的にデバッグする

More than 1 year has passed since last update.

Pine Scriptにはコンソール出力のような仕組みがないため、複雑なスクリプトのデバッグが少し面倒です。

ここでは実際にPine Scriptを書いていてデバッグの役に立った機能についてまとめます。

特定の条件を満たしているポイントを可視化する

plotcharを使うと、特定の条件を満たしているキャンドル上に印を表示することができます。

longSignal = ...
plotchar(longSignal, location=location.belowbar, text="Longエントリー")

bgcolorを使うとチャート上の任意の範囲で背景色を変更することができます。条件にマッチした範囲をまとめて可視化したい時などに有用です。

//@version=3
study("My Script", overlay=true)

// ローソク足の頭が前の頭より上に出ている場合、背景を青に
bgcolor(max(open, close) >= max(open[1], close[1]) ? blue : na)

3CF65C3E-B823-4220-9330-67E24BCEF045.png

数値の可視化

plotchar は手軽にチャートへ印をつけられますが、表示する文字列には定数しか使えないため、各ローソク足での計算結果を確認のために表示するといった事はできません。

ローソク足で計算した数値を可視化したい場合はplotでグラフを描画します。
例としてローソク足の胴の長さ・上下のヒゲの長さを表示するインジケータを用意します。

//@version=3
study("My Script")

plot(abs(high - max(open ,close)), title='上ヒゲの高さ', color=green, linewidth=1)
plot(abs(high - low), title='胴の高さ', color=black, linewidth=1)
plot(abs(low - min(open ,close)), title='下ヒゲの高さ', color=red, linewidth=1)

チャートにこのインジケータを追加します。線グラフでぱっと見数値が見えづらいですが、マウスオーバーしたローソク足における数値がインジケータ名の横に表示されるので、これを見ればデバッグがやりやすくなります。

candle-debug.gif

まとめ

Pine Scriptのデバッグを効率的に行う方法についてまとめました。現状ではplot系の関数を頑張って活用するしか方法がありませんが、Pine Script v4以降でコンソール出力機能が追加される事を期待しています。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした