PR

Pine Script v5をAIに正確に書かせるプロンプトの書き方

未分類

この記事でわかること

  • Pine Script v5をAIに書かせるときに精度を上げるプロンプトの型
  • 曖昧な指示でエラーが増える理由
  • そのまま使えるプロンプトテンプレート

「AIにPine Scriptを書かせたら、思っていたのと違うものが出てきた」。多くの場合、原因はAIの性能ではなく、プロンプトの曖昧さにあります。

この記事では、Pine Script v5を正確に書かせるためのプロンプトの組み立て方を解説します。

📊 この記事はTradingViewユーザー向けです

TradingViewをまだ使っていない方は、まず無料アカウントを作成してみましょう。登録は30秒、クレジットカード不要です。

無料でTradingViewを始める →

曖昧なプロンプトがエラーを生む理由

「いい感じの売買シグナルを作って」のような指示では、AIは条件を推測で補うしかありません。推測が外れると、意図しないロジックや構文エラーにつながります。

Pine Scriptは varvariprequest.security()の制限など、独特のルールが多い言語です。具体的に指定しないと、AIが古いバージョン(v4・v5)の書き方を混ぜてしまうこともあります。

精度を上げるプロンプトの4要素

要素 具体例
バージョン指定 「Pine Script v5で」と明記する
条件の数値化 「下落したら」ではなく「2%以上下落したら」
出力形式の指定 「デプロイ可能な完全なスクリプトで」
表示方法の指定 「ローソク足の下に緑の矢印で」のように見た目も伝える

プロンプトテンプレート

Pine Script v5でTradingView用のインジケーターを作ってください。

条件:
・[条件1を数値付きで]
・[条件2を数値付きで]

表示:
・条件を満たしたら[色][形状]で[位置]に表示

出力:
そのままTradingViewのPineエディタに貼り付けて
使える完全なスクリプトをください。

このテンプレートに沿って具体化するだけで、最初の出力でエラーが出る確率がぐっと下がります。さらにエラーが出た場合の対処法はClaudeにPine Scriptを書かせるときの3つのコツで詳しく解説しています。

TradingViewで実際に試してみよう

この記事の内容はTradingViewで今すぐ実践できます。無料プランでも十分対応できます。

▶ TradingViewを無料で開く

クレジットカード不要・いつでも解約OK

記入例:RSIダイバージェンス検出

Pine Script v5でTradingView用のインジケーターを作ってください。

条件:
・価格が直近20本で安値を更新している
・同時にRSI(14)が直近の安値より高い値になっている(弱気の出来高なしの反発)

表示:
・条件を満たしたら緑色の「BULL DIV」ラベルをローソク足の下に表示

出力:
そのままTradingViewのPineエディタに貼り付けて
使える完全なスクリプトをください。

このように条件と表示を分けて書くと、AIが意図を取り違えにくくなります。実際の実装例はダイバージェンス検出インジケーターの記事で確認できます。

このプロンプトで実際に生成されるコード

先ほどの記入例をClaudeに投げると、次のような完全なスクリプトが返ってきます。

//@version=5
indicator("強気ダイバージェンス検出", overlay=true)

// パラメータ
lookback = input.int(20, "安値更新の判定期間", minval=5)
rsiLen   = input.int(14, "RSI期間", minval=2)

// 計算
rsi = ta.rsi(close, rsiLen)

// 条件1:価格が直近20本の最安値を更新
priceNewLow = low <= ta.lowest(low, lookback)

// 条件2:RSIは直近の最安値を更新していない(=切り上げ)
rsiHolding = rsi > ta.lowest(rsi, lookback)[1]

bullDiv = priceNewLow and rsiHolding

// 条件成立でローソク足の下に緑のラベルを表示
if bullDiv
    label.new(bar_index, low, "BULL DIV",
         style=label.style_label_up,
         color=color.green, textcolor=color.white,
         size=size.small)

プロンプトで「価格が安値更新」「RSIが安値を切り上げ」と条件を分けて書いたことが、コード内のpriceNewLowrsiHoldingという2つの変数にそのまま対応しています。条件を分けて書くほど、生成されたコードの検証も楽になります。

なお、判定期間の20本やRSI期間の14はinput.int()で定義されているため、公開後もチャートの設定画面から変更できます。

v5特有の注意ポイント

  • バージョン宣言の書き間違い:先頭行が//@version=5になっているか必ず確認します
  • request.security()の繰り返し呼び出し:複数回呼び出すとコンパイルエラーになりやすいため、1つの変数にまとめるよう指示します
  • varとvaripの混同:用途が違うため、意図が曖昧なまま使うとロジックが崩れることがあります

こんな場合はプロンプトをシンプルにしてよい

  • 表示だけのシンプルなインジケーターの場合:条件が1つだけなら、テンプレートを簡略化しても十分です
  • 既存スクリプトの軽微な修正の場合:ゼロから設計するわけではないため、変更箇所だけを具体的に伝えれば足ります

まとめ

  • 曖昧な指示はAIの推測を生み、構文エラーや意図しないロジックの原因になる
  • バージョン・条件の数値化・出力形式・表示方法の4要素を意識すると精度が上がる
  • 条件と表示を分けて書くテンプレートを使うと、毎回の指示作りが楽になる

プロンプトの基本を押さえたら、CLAUDE.mdによるプロジェクト設計と組み合わせることで、さらに安定した開発フローが作れます。

TradingViewを始めるなら、まずは無料プランで試してみましょう。有料プランへのアップグレードで、さらに高度な機能が使えます。

TradingViewを無料で始める

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