この記事でわかること
- CLAUDE.mdの各セクションが生成精度にどう影響するか
- Pine Script開発用CLAUDE.mdの最小構成と発展形
- 複数プロジェクト間でCLAUDE.mdの知識を共有・引き継ぐ方法
Claude Codeで同じプロンプトを打っても、CLAUDE.mdがあるプロジェクトとないプロジェクトでは出力の品質がまったく違います。CLAUDE.mdを書いていないと、毎回「Pine Script v5で書いて」「var変数はグローバルに置いて」と同じ指示を繰り返すことになります。
CLAUDE.mdのセクション構成と効果
| セクション | 内容 | 効果 |
|---|---|---|
| 言語・バージョン設定 | v5固定、v4禁止 | バージョン指定を毎回省ける |
| 禁止事項(NGパターン) | v4の関数一覧 | 古い書き方を出さなくなる |
| コーディング規則 | 命名規則、スコープルール | コードスタイルが統一される |
| パターンライブラリ | よく使うコードスニペット | 定番処理を毎回正確に書く |
| ファイル構成と参照先 | どこに何があるか | コンテキストを自動で把握する |
最小構成のCLAUDE.md
まず動かすための最小版です。これだけあればv4コードが出なくなります。
# Pine Script プロジェクト
## 必須ルール
- Pine Script v5のみ使用(//@version=5 必須)
- v4関数は使わない:rsi() → ta.rsi()、ema() → ta.ema()、crossover() → ta.crossover()
- request.security()は必ず [1] + barmerge.lookahead_on を付ける
- var変数はグローバルスコープのみ(if/forブロック内に置かない)
4行だけです。これでも「毎回v5を指定する手間」と「v4コードが出るエラー」はほぼなくなります。
禁止事項セクションの書き方
「禁止事項」は単に「使うな」と書くより、「v4の何がv5でどう変わったか」を対応表で書く方が効果的です。
## v4→v5 変換表(禁止事項)
| v4(NG) | v5(OK) |
|---------|---------|
| study() | indicator() |
| rsi(src, len) | ta.rsi(src, len) |
| ema(src, len) | ta.ema(src, len) |
| crossover(a, b) | ta.crossover(a, b) |
| crossunder(a, b) | ta.crossunder(a, b) |
| atr(len) | ta.atr(len) |
| security(sym, tf, expr) | request.security(sym, tf, expr) |
| input(type=input.integer) | input.int() |
| input(type=input.float) | input.float() |
| input(type=input.bool) | input.bool() |
| valuewhen(cond, src, n) | ta.valuewhen(cond, src, n) |
パターンライブラリの構築
使用頻度が高いコードパターンをCLAUDE.mdに置いておくと、毎回ゼロから書かせる必要がなくなります。
strategyテンプレート
## Strategy標準テンプレート(手数料・スリッページを省いてはならない)
//@version=5
strategy(
title = "戦略名", overlay = true,
initial_capital = 1000000,
default_qty_type = strategy.percent_of_equity, default_qty_value = 10,
commission_type = strategy.commission.percent, commission_value = 0.05,
slippage = 1, pyramiding = 0
)
MTFパターン
## MTF標準パターン(リペイントしない書き方以外は使わない)
htfVal = request.security(syminfo.tickerid, htfTF, close[1], barmerge.lookahead_on)
// 複数値を1回で取得(呼び出し回数を減らすため積極的に使う)
[htfSMA, htfRSI] = request.security(
syminfo.tickerid, htfTF,
[ta.sma(close, 200)[1], ta.rsi(close, 14)[1]],
barmerge.lookahead_on
)
// request.security()の呼び出しはスクリプト全体で40回まで
テーブル描画パターン
## Table標準パターン(必ずbarstate.islastの中で更新する)
var table t = table.new(position.top_right, 列数, 行数,
border_color=color.gray, border_width=1, bgcolor=color.new(color.black, 70))
if barstate.islast
table.cell(t, col, row, "テキスト", text_color=color.white, text_size=size.small)
複数プロジェクト間でCLAUDE.mdを共有する
ホームディレクトリの~/.claude/CLAUDE.md(Windowsなら%USERPROFILE%.claudeCLAUDE.md)はすべてのプロジェクトで共通で読まれます。
~/.claude/CLAUDE.md の内容:
# グローバル設定(全プロジェクト共通)
## Pine Script v5 共通ルール
- v5のみ使用。v4禁止(study(), rsi(), ema()等)
- request.security()には[1] + barmerge.lookahead_on必須
- var変数はグローバルスコープのみ
## 日本語設定
- すべての返答は日本語
- コードのコメントは日本語
プロジェクトのCLAUDE.mdはプロジェクト固有の情報だけを書けばよくなります。
# BTCスキャルピング戦略プロジェクト
## プロジェクト固有の情報
- 対象銘柄: BINANCE:BTCUSDT
- 時間足: 15分足メイン
- スタイル: トレンドフォロー(逆張りなし)
- indicators/completed/ に11本の完成インジケーターあり
CLAUDE.mdを育てていく運用フロー
セッション開始時
CLAUDE.mdを読んで、今日作るものを確認してください。
前回のsession-log.mdも確認して続きから始めてください。
エラーが出たとき
このエラーが出ました:[エラーメッセージ]
解決したら、learnings/errors-and-solutions.md に追記してください。
セッション終了前(毎回必ず実行)
今日のセッションで学んだことをlearnings/の適切なファイルに追記してください。
session-log.mdに今日やったことと次回の作業メモを記録してください。
CLAUDE.mdに追加すべきパターンや禁止事項があれば提案してください。
このルーティンを続けると、数週間後にはCLAUDE.mdが「自分のPine Script開発パターン辞典」になります。
CLAUDE.mdが効果を発揮しないパターン
- 長すぎるCLAUDE.md:3,000文字を超えると読み込みが不完全になることがある。重要なルールを上に置き、パターンライブラリは別ファイルに分ける
- 曖昧な禁止事項:「なるべくv5を使う」ではなく「v4関数は使わない。具体的には〇〇は〇〇に置き換える」と書く
- 更新されないCLAUDE.md:セッション終了前の「追加すべきパターンがあれば提案して」が重要
まとめ
CLAUDE.mdの設計は一度やれば資産になります。禁止事項の対応表、strategyテンプレート、MTFのリペイント防止パターン——これらをCLAUDE.mdに書いておくと、何度も同じ指示を繰り返す必要がなくなります。
プロジェクト環境の全体構成はClaude CodeでPine Script開発を本格化する完全ガイドにまとめています。Pine Scriptをチャットボットで書かせるときの基本はClaudeにPine Scriptを書かせるときの3つのコツを参照してください。

