📊 TradingView → EA作成 #Pine Script #Squeeze Momentum #MQL4変換 #EA #リペイント #プロンプト

Squeeze MomentumでPine Script→EA変換を実践する

(更新: 2026年1月23日) 読了 約5分

中級編では、Volatility Gaussian BandsのPine ScriptをAIに丸投げしてEA化しました。

今回は同じ手法をSqueeze Momentum Indicatorで試します。別のインジで実践することで、プロンプトの書き方のコツが定着します。


Squeeze Momentumとは

ボリンジャーバンドとKeltnerチャンネルを組み合わせたインジケーターです。TradingViewで人気のオープンソースインジの一つ。

基本的な考え方:

  • BBの幅がKeltnerチャンネルの幅より狭くなった状態を「スクイーズ(圧縮)」と呼ぶ
  • スクイーズが解除された瞬間が、ブレイクアウトの起点になりやすい
  • ブレイクアウトの方向はモメンタム(ヒストグラム)で判断する

Step 1:AIにロジックを解説させる

「ソースを表示」からPine Scriptを全文コピーして、以下のプロンプトでAIに渡します。

以下はTradingViewのインジケーター「Squeeze Momentum Indicator [LazyBear]」の
Pine Scriptソースコードです。

[ここにPine Scriptの全文を貼る]

このインジケーターのロジックを日本語で解説してください。
特に以下の点を教えてください:
- 何を計算しているか(概要を3行以内で)
- 買いシグナルが出る条件
- 売りシグナルが出る条件
- リペイント(過去のシグナルが書き換わる)の可能性があるか

ここで効いているプロンプトのポイント

ソースコードを全文貼っている。 中級編でも書きましたが、「長いから要点だけ」は逆効果です。AIはコード全体の文脈から関数の役割を理解します。

リペイントの確認を最初に入れている。 これが今回の記事で一番伝えたいことです(後述)。

AIはおおむね以下のような解説を返してきます。

このインジケーターはボリンジャーバンドとKeltnerチャンネルを組み合わせて「スクイーズ状態(低ボラティリティ)」を検出し、その後のブレイクアウトの方向性をモメンタムで示します。

  • 買いシグナル:スクイーズ解除後にヒストグラムがゼロ以上かつ上昇中
  • 売りシグナル:スクイーズ解除後にヒストグラムがゼロ以下かつ下降中

「ああ、BBが縮んでる状態が解除されたタイミングを狙うのか」——そう理解できれば十分です。


Step 2:MQL4に変換する

ロジックの理解を確認したら、変換を依頼します。

上記のSqueeze Momentumインジケーターのロジックを使って、
MT4で動作するEA(MQL4)を作成してください。

Pine ScriptをMQL4で再実装するアプローチで作成してください。
直接変換ではなく、ロジックを理解してMQL4で書き直してください。

【EA名】SqueezeMomentum_EA

【使用する計算】
- ボリンジャーバンド:MQL4のiBands()で実装
- Keltnerチャンネル:iMA() + iATR()で実装
- モメンタム:線形回帰値で実装
- スクイーズ判定:BBの幅 < Keltnerチャンネルの幅

【エントリー条件】
- 買い:スクイーズ解除(前バーがスクイーズ中→現バーが解除)かつ
  モメンタム値がゼロ以上かつ前バーより上昇中
- 売り:スクイーズ解除かつモメンタム値がゼロ以下かつ前バーより下降中
- シグナル判定はshift=1(確定バー)を使用すること

【決済条件】
- 買いポジション:モメンタムがゼロを下回ったら決済
- 売りポジション:モメンタムがゼロを上回ったら決済
- 損切り:50pips(外部変数 StopLoss_Pips)
- 利確:100pips(外部変数 TakeProfit_Pips)

【必須要件】
- BB/Keltner/モメンタムの計算はそれぞれカスタム関数に分離すること
- extern変数でパラメータをMT4の設定画面から変更可能にすること
- マジックナンバー使用(外部変数 MagicNumber = 20001)
- 5桁業者と4桁業者の両方に対応したpips計算
- 全行に日本語コメントを付けること
- コードは省略せず全文を出力すること

プロンプトの重要ポイントを確認

中級編で紹介した5つのコツが、このプロンプトにすべて入っています。

コツこのプロンプトでの実践
Pine Script→MQL4変換と明示する「Pine ScriptをMQL4で再実装する」と書いている
ソースコード全文を貼るStep 1で全文を渡している
カスタム関数に分ける指示「BB/Keltner/モメンタムをそれぞれカスタム関数に分離」
日本語コメント・エラーハンドリング・pips計算「全行に日本語コメント」「5桁/4桁対応」
省略させない「コードは省略せず全文を出力すること」

「再実装」という言葉を使っているのが特に重要です。 Pine ScriptとMQL4は構造が全く違うので、1行ずつの翻訳ではなく「ロジックを理解してMQL4で書き直す」アプローチでないとコンパイルエラーが大量に出ます。


リペイント問題 — EA化で最も危険な罠

ここからがこの記事の独自パートです。

リペイントとは、インジケーターの過去のシグナルが後から書き換わる現象です。

チャート上では綺麗にシグナルが出ているように見えるのに、リアルタイムで使うと全く機能しない——その原因がリペイントです。バックテストでも過去データを参照するため、リペイントするインジのEAは成績が良く見えてしまいます。

リペイントが起きる典型的なパターン

AIに解説を依頼する際、以下のキーワードが出てきたら要注意です。

  • security()関数 + lookahead=barmerge.lookahead_on — 未来のデータを参照している
  • [0](現在の未確定バー)を条件判定に使用 — バーが確定するまで値が変わり続ける
  • highest()lowest()を現在バーで計算 — 確定前のバーを含むと結果が変わる

チェック用プロンプト

Step 1の解説依頼に含めるのがベストですが、忘れた場合は単独で聞けます。

以下のPine Scriptにリペイント(lookahead bias、past repainting)が
発生する可能性があるか確認してください。
リペイントが起きる可能性のある箇所があれば、該当のコード行と理由を教えてください。

[Pine Scriptのソースコード]

⚠️ WARNING

AIの判定を100%信頼しないでください。AIが「リペイントなし」と判定しても、微妙なケースを見落とすことがあります。最終的には、MT4のストラテジーテスターで「始値のみ」モードと「全ティック」モードの結果を比較して、大きな差がないことを確認するのが確実です。


まとめ

Squeeze Momentumで実践しましたが、手順は中級編のVolatility Gaussian Bandsと全く同じです。

  1. Pine Scriptを全文コピーしてAIに貼る
  2. ロジックを解説させる(+リペイントチェック)
  3. 「MQL4で再実装して」と依頼する

この流れは、TradingViewでソースが公開されているあらゆるインジに使えます。

一点だけ追加で覚えておいてほしいのがリペイントの確認です。特にバックテストの成績が異常に良いEAは、リペイントを疑ってください。


関連記事


本記事で紹介するEA・手法は教育目的で作成されたものです。実際の取引で利益を保証するものではありません。EAの運用は必ずデモ口座で十分にテストした上で、自己責任で行ってください。FX取引にはリスクが伴います。

次のステップ

まずデモで動作確認 → OKなら本番運用、が安全です。

デモ口座でEAを回す手順
共有:

関連記事

#Pine Script #Squeeze Momentum #MQL4変換 #EA #リペイント #プロンプト

🎯 このEAを動かすにはMT4/MT5対応のFX口座が必要です

4つの質問に答えるだけで、あなたに最適な国内FX業者がわかります。

あなたに合った業者を診断する →
目次を表示