この記事でわかること
- ClaudeにPine Script v5のインジケーターを生成させる具体的なプロンプトと手順
- 実際に動くRSIシグナル・MAクロスのコード例(コピペして試せる)
- よく出るエラーメッセージと一発で直すClaudeへの投げ方
- バックテストで作ったインジケーターの有効性を確かめる方法
- 2本目・3本目が速くなる「学習ログ」の仕組み
英語圏で41万ビューを超えた記事がある。
@TraderDiegoXというトレーダーが書いた「Guide To Vibe-Coding TradingView Indicators with Claude」という記事で、1,543ブックマークを集めた。「コードを1行も書かずに1,500行以上のPine Scriptを動かした」という実績も同アカウントがX上で公開している。
@milesdeutscherも同時期に「Claude Codeで作ったインジケーターのバックテストが+190%・+95%・+85%のリターンを出した」という投稿で12.7万ビューを獲得した。
これらを日本語で解説しているコンテンツは、2026年現在もほぼ存在しない。本記事は英語圏で実績のある手法を日本語で完全に再現する。
「Claude Proを契約している」「TradingViewを使っている」という前提で、コードを1行も書かずにオリジナルインジケーターを作るまでの全工程を書く。実際に動くPine Scriptのコード例とClaudeへのプロンプト例も掲載しているので、読みながら試せる構成にした。
📊 この記事はTradingViewユーザー向けです
TradingViewをまだ使っていない方は、まず無料アカウントを作成してみましょう。登録は30秒、クレジットカード不要です。
無料でTradingViewを始める →Claude Code × TradingViewで何が作れるか
Pine Scriptで作れるものは3種類ある。
| 種類 | 内容 | 使いどころ |
|---|---|---|
| インジケーター | チャート上にサイン・線・ゾーンを表示 | エントリー・決済タイミングの目視確認 |
| ストラテジー | 売買条件を定義してバックテストを実行 | ルールの有効性を過去データで検証 |
| ライブラリ | 関数をまとめて他スクリプトから呼び出す | 複数インジケーターで共通処理を使い回す |
最初はインジケーターかストラテジーを作るのが現実的だ。以下は実際にClaudeで作れる具体例で、どれも10〜30分あれば動くものが出てくる。
- RSIが30を下回ったとき緑の矢印、70を超えたとき赤の矢印を表示
- 9日EMAと21日EMAがクロスしたときにアラートを鳴らす
- ボリンジャーバンドのバンド幅がスクイーズしたとき背景色を変える
- 出来高が20日平均の2倍を超えたローソク足をハイライト表示する
- RSI+MACD両方が条件を満たしたときだけシグナルを出す複合条件インジケーター
STEP 1:準備するもの
| ツール | 費用 | 用途 |
|---|---|---|
| Claude Pro(Claude.ai) | 月額約3,000円($20) | Pine Scriptコードの生成・修正 |
| TradingViewアカウント | 無料〜 | コードのテストと動作確認 |
Claude Proを契約するとブラウザ版のClaude.aiとClaude Code(CLIツール)が使える。コード生成だけならClaude.aiのチャット画面で十分だ。本記事はClaude.aiの手順を基本にする。
TradingViewはコードの動作確認だけなら無料プランで十分。複数のオリジナルインジケーターを同時にチャートへ表示するには有料プランが必要で、Plusプランで最大10個まで同時表示できる。
プロジェクトフォルダの作り方
インジケーターごとにフォルダを作っておくと管理しやすい。Claudeがファイルを保存する場所として使う。
PineScript/
├── RSIシグナル/ ← インジケーター1つ = フォルダ1つ
│ ├── indicator.pine ← Claudeが生成したコード
│ ├── learnings.txt ← STEP 6で作る学習ログ
│ └── style.txt ← STEP 6で作るスタイル設定
└── EMAクロス/
├── indicator.pine
└── learnings.txt
STEP 2:作るものを具体化する
ここで詰めるかどうかが全体の出来を左右する。「トレンドを見るインジケーター」という指示ではClaudeが何を作ればいいか判断できない。
具体化の3段階
❌ NG(あいまい)
「RSIを使ったインジケーターを作って」
△ まあまあ
「RSIが30を下回ったら買いシグナル、70を超えたら売りシグナルを出すインジケーターを作って」
✅ OK(動くレベルの具体性)
Pine Script v5で以下の仕様のインジケーターを作ってください。 【仕様】 ・RSI(14)が30を下抜けたとき、チャート下部に緑の上向き三角形を表示する ・RSI(14)が70を上抜けたとき、チャート上部に赤の下向き三角形を表示する 【制約】 ・コードの1行目は //@version=5 にしてください ・非推奨の関数は使わないでください ・まずシグナル表示のみのシンプルなバージョンを作ってください (アラートは後で追加します)
「表示内容」「条件(数値含む)」「見た目(色・形)」の3点が揃えば意図通りのコードが出てくる。最初から完璧に書く必要はなく、動かしながら詰めていける。
STEP 3:Claudeにコードを生成させる
Claude.aiを開いて上記のプロンプトを送る。複雑な条件が多いと5〜10分かかることもある。以下は実際にClaudeが生成したRSIシグナルインジケーターのコードだ。
//@version=5
indicator("RSI売買シグナル", overlay=false, shorttitle="RSI Signal")
// 入力パラメータ
rsiLength = input.int(14, "RSI期間", minval=1)
oversoldLvl = input.int(30, "売られすぎライン", minval=1, maxval=100)
overboughtLvl = input.int(70, "買われすぎライン", minval=1, maxval=100)
// RSI計算
rsiValue = ta.rsi(close, rsiLength)
// プロット
plot(rsiValue, "RSI", color=color.new(color.blue, 0), linewidth=2)
hline(overboughtLvl, "買われすぎ", color=color.red, linestyle=hline.style_dashed)
hline(50, "中心線", color=color.gray, linestyle=hline.style_dotted)
hline(oversoldLvl, "売られすぎ", color=color.green, linestyle=hline.style_dashed)
// シグナル条件
buySignal = ta.crossover(rsiValue, oversoldLvl)
sellSignal = ta.crossunder(rsiValue, overboughtLvl)
// シグナル表示
plotshape(buySignal, "買いシグナル", shape.triangleup,
location.bottom, color.green, size=size.small)
plotshape(sellSignal, "売りシグナル", shape.triangledown,
location.top, color.red, size=size.small)
// アラート
alertcondition(buySignal, "買いシグナル", "RSIが売られすぎラインを上抜けました")
alertcondition(sellSignal, "売りシグナル", "RSIが買われすぎラインを下抜けました")
EMAのゴールデンクロス・デッドクロスを検出してアラートを鳴らすインジケーターも載せておく。こちらもClaudeが生成したコードで、TradingViewで動作確認済みだ。
//@version=5
indicator("EMAクロス アラート付き", overlay=true)
// 入力パラメータ
fastLen = input.int(9, "短期EMA期間", minval=1)
slowLen = input.int(21, "長期EMA期間", minval=1)
// EMA計算
fastEMA = ta.ema(close, fastLen)
slowEMA = ta.ema(close, slowLen)
// プロット
plot(fastEMA, "短期EMA", color=color.orange, linewidth=2)
plot(slowEMA, "長期EMA", color=color.blue, linewidth=2)
// クロス検出
goldenCross = ta.crossover(fastEMA, slowEMA)
deadCross = ta.crossunder(fastEMA, slowEMA)
// シグナル表示
plotshape(goldenCross, "ゴールデンクロス",
shape.triangleup, location.belowbar, color.green, size=size.normal)
plotshape(deadCross, "デッドクロス",
shape.triangledown, location.abovebar, color.red, size=size.normal)
// アラート
alertcondition(goldenCross, "ゴールデンクロス", "EMAゴールデンクロス発生")
alertcondition(deadCross, "デッドクロス", "EMAデッドクロス発生")
EMAクロスのアラートを使う場合は、チャートに追加後「アラートを作成」→条件を「EMAクロス アラート付き」に設定→トリガーをゴールデンクロスかデッドクロスに指定する。これでスマホ通知が飛ぶ。
インジケーターの基本的な見方と使い方はTradingViewのインジケーター使い方とおすすめ設定にまとめた。
STEP 4:TradingViewに貼って動かす
- TradingViewのチャート画面下部「Pine Scriptエディター」タブを開く
- 既存コードを全削除してClaudeが生成したコードを貼り付ける
- 「追加」(チャートに追加)ボタンをクリック
- エラーがなければチャートにインジケーターが表示される
TradingViewで実際に試してみよう
この記事の内容はTradingViewで今すぐ実践できます。無料プランでも十分対応できます。
▶ TradingViewを無料で開くクレジットカード不要・いつでも解約OK
STEP 5:エラーへの対処
初回で完璧に動くことは少ない。よく出るエラーと対処法をまとめた。
| エラーメッセージ(抜粋) | 原因 | Claudeへの投げ方 |
|---|---|---|
Cannot call 'input' with argument 'type' | v4のinput()記法が混入 | 「v5のinput.int()/input.float()を使って書き直して」 |
Undeclared identifier 'study' | study()はv4の記法 | 「study()をindicator()に変えて」 |
Function 'security' does not exist | v5ではrequest.security()が正しい | エラー文をそのまま貼って「修正して」 |
Cannot use 'series float' as 'simple float' | 型の不一致 | エラー文をそのまま貼って「v5の型エラーを修正して」 |
| コードは動くが表示が別パネルになる | overlay=true/falseの指定が逆 | 「メインチャートに重ねて表示したい」と明示して再生成 |
どのエラーでも基本の対処は同じだ。
このエラーが出ました:
[TradingViewに表示されたエラーメッセージをそのままコピー]
Pine Script v5で修正してください。
このプロンプトを送るだけで、ほとんどのエラーは1〜2往復で直る。自分でエラーを解読しようとすると時間だけ消える。
詰まったときは「公開スクリプト活用法」
同じエラーが何度も繰り返されるときは、ゼロから生成させるのをやめる。TradingViewのビルトインインジケーター(RSI・MACD・EMAなど)はすべてソースコードが公開されている。設定メニューに「ソースコードを表示」が出ているものがそれだ。
そのコードをClaudeに渡して「このコードをベースに○○を追加して」と指示すると、エラーが大幅に減る。英語圏では「ゼロから書かせるな、既存コードをベースにしろ」が定番のコツになっている。詳しくはClaudeにPine Scriptを書かせるときの3つのコツにまとめた。
STEP 6:学習ログを作る(最重要)
インジケーターが完成したら5分だけかけてClaudeに2つのファイルを作らせる。これをやるかどうかで、2本目・3本目の速度が変わる。
Pine Script学習ファイル(learnings.txt)
このプロジェクトで得たPine Script v5の
コーディング知見をテキストファイルにまとめてください。
「この書き方はエラーになる」「この関数はこう使う」という
実際に発見した知見を箇条書きで。
次のプロジェクトにそのまま引き継げる形式にしてください。
Claudeが出力するlearnings.txtの中身はこんな感じになる。
## Pine Script v5 学習ログ(RSIシグナルプロジェクト)
### 確認できた動作
- ta.rsi() は正常に動作する
- input.int() / input.float() はv5でも問題なし
- plotshape() の location.bottom / location.top は
overlay=false のインジケーターで使用可能
### エラーになった書き方
- input("RSI期間", type=input.integer) はv4記法。
v5では input.int("RSI期間") を使う
- study() はv4の書き方。v5では indicator() を使う
- color.red をそのまま渡せないケースあり。
color.new(color.red, 0) と書く
### 注意点
- overlay=false の別パネル表示では
シグナルの location は bottom/top のみ有効
- hline() の linestyle には hline.style_dashed を使う
このファイルを次のプロジェクトフォルダにコピーするだけで、Claudeは「前回エラーになった書き方」を最初から知った状態でスタートする。
スタイルファイル(style.txt)
このインジケーターで使ったデザイン・色の設定を
テキストファイルにまとめてください。
次のインジケーターで同じ見た目を再現できるように。
2本目以降は「前回と同じ色使い」を最初から指定できる。複数のインジケーターで見た目を統一したいときに効く。
学習ループのイメージ
インジケーター完成 → learnings.txt・style.txtを作成 → 次のプロジェクトフォルダにコピー → 知見を持った状態でスタート → また完成 → ファイル更新 → …
3本目あたりから、1本目とは別物の速さになる。
作ったインジケーターをトレードに活かす
インジケーターを作っても、それが実際のトレードで機能するかは別の話だ。使う前に必ずバックテストで確認する。
ストラテジーに変換してバックテストする
インジケーターのコードができたら、以下のプロンプトでストラテジーに変換できる。
以下のインジケーターコードを、Pine Script v5のストラテジーに変換してください。
[インジケーターのコードを貼り付け]
条件:
・買いシグナルでロングエントリー(1ポジションのみ)
・売りシグナルでクローズ(ショートなし)
・strategy() の引数に default_qty_type=strategy.percent_of_equity,
default_qty_value=10 を設定
・コードの1行目は //@version=5 にすること
生成されたコードをTradingViewに貼ると、チャート右上に「ストラテジーテスター」タブが出てくる。そこで過去データでのパフォーマンスを確認できる。
バックテスト結果の読み方
| 指標 | 意味 | 見方の目安 |
|---|---|---|
| 純利益 | テスト期間中の総損益 | プラスであること |
| 勝率 | 利益を出したトレードの割合 | リスクリワード次第。50%超が一つの目安 |
| 最大ドローダウン | 資産の最大下落幅 | 純利益の50%以下が望ましい |
| プロフィットファクター | 総利益÷総損失 | 1.5以上を一つの基準にする |
| トレード回数 | バックテスト期間中の取引回数 | 少なすぎると統計的信頼性が低い(最低30回以上) |
バックテストで良い数値が出ても、それは過去データへの最適化でしかない。実際の相場で機能するかはフォワードテスト(デモ口座や小額での実運用)で確かめる必要がある。また、バックテスト期間が短すぎると特定相場の環境に過適合している可能性があるため、複数の相場環境を含む十分な期間でテストするのが基本だ。
TradingViewのバックテスト機能の詳細はTradingViewでバックテストを実行する方法にまとめている。
向かない用途
- ブローカーへの自動注文:Pine Script単体では注文を出せない。Webhookを使った連携ツールが別途必要になる
- 超高頻度取引(HFT):TradingViewはリアルタイム処理に遅延があるため、スキャルピング用途には向かない
- 複雑なバグのデバッグ:500行超のコードでバグが出た場合、その追跡はコードが読める人向きの作業になる
「チャートで目視確認する」「条件アラートを受け取る」「バックテストで戦略を検証する」という用途には非常にフィットする。
まとめ
この記事のキーポイント
- プロンプトは「表示内容・条件(数値)・見た目(色・形)」の3点を揃える
- エラーはメッセージをそのままClaudeに貼るだけで直る。自力で解読しない
- 詰まったら公開スクリプトをベースにして「このコードに○○を追加して」と指示する
- 完成後に学習ログとスタイルファイルを作ると、次のインジケーター作成が速くなる
- 使う前にバックテストでパフォーマンスを確認してから本番に使う
作ったインジケーターが増えてくると、無料プランの「3個まで」という制限に引っかかる。Plusプランなら最大10個まで同時表示できる。複数インジケーターを組み合わせた複合条件を使いたい場合は、プランのアップグレードを検討してみてほしい。
プランの比較と選び方はTradingViewの有料プランはどれを選ぶ?にまとめている。Pine Scriptの文法を基礎から理解したい方はPine Script v5 基礎文法まとめも参考にしてほしい。
📊 TradingViewプラン比較
| プラン | 月額 | 主な特徴 |
|---|---|---|
| Basic(無料) | $0 | 1チャート・広告あり・インジケーター3つ |
| Essential | $12.95〜 | 広告なし・インジケーター5つ・アラート20件 |
| Plus ⭐人気 | $24.95〜 | インジケーター10個・アラート100件・同期チャート2つ |
| Premium | $49.95〜 | インジケーター25個・アラート無制限・同期チャート8つ |
まずは無料プランで試して、必要なら有料プランへアップグレード