無料でロボットをダウンロードする方法を見る
Telegram上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
スクリプトを気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
インディケータ

Turtle Breakout Indicator Tested on Gold: Profitable in 2025 and 2026 (70) - MetaTrader 5のためのインディケータ

Ali Akbar
Ali Akbar
  • MQL5 Developer & Algorithmic Trading Specialist において  Freelance
  • パキスタン
  • 1664
Hi, I'm Ali. 24 years old, trading for around 5 years, and developing MQL5/MQL4 tools. I mainly work on automating manual strategies, fixing broken EA logic, and building clean indicators. I care more about clean architecture and proper risk management than over-complicated code. Always down to talk
| Japanese English Русский 中文 Español Deutsch Português 한국어 Français Italiano Türkçe
ビュー:
19
評価:
(2)
パブリッシュ済み:
MQL5フリーランス このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

ブレイクアウト・エグジット・ラボ:3つのエグジットを並べて比較したドンチアン・ブレイクアウト

タートル流のドンチアン・チャネルブレイクアウトを検知し、そのたびにATRトレーリングストップ、タートル・エグジット・チャネル、固定ターゲットの3つのエグジットを同時に実行します。パネルには、対象銘柄においてどのエグジットが最も利益を上げたかが、スプレッドを含めたRで表示されます。リペイントなし、エキスパートアドバイザー用のバッファ付き。

なぜ3つのエグジットなのか

ブレイクアウト戦略の成否は、エグジット(決済)にかかっています。エントリーは単純で、誰もが同意するものです。つまり、価格が直近20バーの最高値を上回って引けた時点で買いを入れる、というものです。しかし、その先になると議論が分かれてきます。ATRでトレーリングストップをかけるべきか? タートル流の10バー・エグジットチャネルを使うべきか? それとも固定の2Rで利益確定して手仕舞うべきか?

私が見つけたブレイクアウト指標はすべて、1つの決済方法を選んでそれを表示しています。私は選択する前に、自分の銘柄で同じエントリーに対してこれら3つの方法をすべて確認したかったのです。そこで、この指標は各ブレイクアウトを3つの決済方法に並行して適用し、その結果を並べて表示します。

ブレイクアウトの定義

  1. エントリーチャネルは、直近のInpEntryBars本(デフォルトは20本、タートル・システム1)における最高値と最安値で構成されます。
  2. 買いシグナルとは、直前のバーがチャネルの高値を下回っていたのに対し、その次のバーがチャネルの高値を上回って引けた場合です。売りシグナルはその逆です。チャネルを超えた最初の引け値のみがカウントされるため、強いトレンドであってもすべてのバーに矢印が表示されるわけではありません。
  3. トレードは次のバーの始値から開始されます。初期ストップは、InpStopATR倍のATR分だけ離れた位置に設定されます(2.0 × ATR(20)、タートル・システムの「2N」)。
  4. オプションのトレンドフィルターを使用すると、200 EMAのトレンド方向に沿ったブレイクアウトのみを抽出できます。デフォルトではオフになっています。

3つの決済方法

  • A. ATRトレイル。ストップは、エントリー以降の最良価格に InpTrailATR × ATR(デフォルトは 3.0)の距離を保って追従し、決して元の位置に戻ることはありません。
  • B. タートル・エグジット・チャネル。ストップは、ロングの場合は直近の InpExitBars バー(デフォルトは 10、システム 1)の最安値に、ショートの場合は最高値に追従します。
  • C. 固定ターゲット。初期リスクのInpTargetR倍(デフォルトは2R)でテイクプロフィットを確定し、初期ストップを維持します。

各結果はR単位で測定され、1Rはエントリーから初期ストップまでの距離です。シグナルバーのスプレッドはコストとして差し引かれます。 価格がギャップを空けてストップ価格を突破した場合、ストップ注文はストップ価格ではなく、そのバーの始値で約定します。ストップとターゲットがともに1つのバー内に収まっている場合、どちらが先だったかをバーだけでは判別できないため、ストップはカウントされます。

各ブレイクアウトは個別に評価されるため、取引が重複する場合があります。このパネルは、同一のエントリーセットにおけるエグジットの比較を示したものです。ポジションサイジングを伴う口座シミュレーションではありません。

パネルが示す内容

  • ブレイクアウトの数(ロングとショートに分けて表示)および、現在もオープン状態の取引の数。
  • 各決済について:決済済みトレード数、勝率、プロフィットファクター、平均R値、およびR値の合計。
  • 描画を選択した決済(InpDrawExit)については、ロングとショートの合計が別々に表示されるため、どちらのサイドが結果を左右しているかを確認できます。

選択したエグジットはチャート上にもプロットされます。各トレードにはエントリーラインとそのR値の結果が表示され、直近のトレードのストップは点線で描画されます。

金(XAUUSD)での分析結果

XAUUSD、MetaQuotesデモデータ、デフォルト設定。2025年の実行結果は、2025年12月31日までの360日間を対象としています。2026年の実行結果は、2026年9月18日までの260日間を対象としています。

XAUUSD 取引 勝率 PF 合計
H4 2025、エグジットA(ATRトレイル) 129 43.4% 1.45 +23.08R
H4 2025、出口B(10本バー・チャネル) 129 41.1% 2.34 +66.20R
H4 2025、エグジットC(2Rのターゲット) 129 45.7% 1.68 +47.83R
H4 2026、エグジットA 76 35.5% 1.10 +3.46R
H4 2026、出口B 76 35.5% 1.70 +22.35R
H4 2026、出口C 75 38.7% 1.26 +11.99R
2025年上半期、出口A 465 37.6% 1.32 +70.32R
2025年上半期、出口B 465 37.8% 1.23 +51.18R
2025年上半期、出口C 465 37.8% 1.21 +60.32R
2026年上半期、出口A 270 39.6% 1.21 +25.14R
2026年上半期、出口B 270 40.4% 1.29 +35.15R
2026年上半期、出口C 269 38.3% 1.23 +39.06R

12通りすべてがプラスとなっています。H4では、両年とも「タートル・エグジット・チャネル」が最良のエグジットとなり、「ATRトレイル」が最もパフォーマンスが劣りました。H1では明確な勝者はなく、2025年は「トレイル」が、2026年は「固定ターゲット」が最良の結果を示しました。これが、このパネルが存在する理由です。 「最良の決済タイミング」は、同一銘柄であっても時間枠や年によって異なりました。

さて、皆さんが興奮する前に、重要な点を述べておきます。2025年には金が大幅に上昇しており、その影響が分割結果に表れています。 H4チャートでの出口Bでは、99のロングポジションが+79.4Rを稼ぎ、30のショートポジションが-13.2Rの損失を出しました。2026年には金価格は両方向に振れ、双方ともプラスとなりました:42のロングポジションが+14.9Rを稼ぎ、34のショートポジションが+7.5Rを稼ぎました。

これがどの程度金価格のトレンドによるものかを確認するため、2026年の同じ期間について、3つのFXペアのH4チャートで同じデフォルト設定を適用して分析を行いました:

H4 2026 エグジットAの合計(PF) エグジットBの合計(PF) エグジットCの合計(PF)
EURUSD -11.74R (0.68) -3.86R (0.89) -5.97R (0.88)
GBPUSD -9.21R (0.77) -3.15R (0.91) +6.90R (1.13)
USDJPY +1.30R (1.03) +0.73R (1.02) +3.03R (1.06)

横ばいからマイナス。ブレイクアウトにはトレンドのある市場が必要ですが、この期間、金はトレンドを形成していたのに対し、これらの通貨ペアは概してそうではありませんでした。したがって、私は金の数値を「金がトレンドを形成していた間はブレイクアウトが機能した」と解釈しており、それが常に機能するという証拠とは捉えていません。

図1. XAUUSD 4時間足、2026年7月下旬~9月中旬:ブレイクアウトを示す矢印、エントリーチャネル、およびエグジットBにおける各トレードの結果

図2. 2025年および2026年のXAUUSD H4チャート(エグジットBを記載)

入力データ

入力 デフォルト 機能
InpEntryBars 20 エントリーチャネルのバー数
InpExitBars 10 出口Bのチャネル長(バー単位)
InpATRPeriod 20 ATRの期間
InpStopATR 2.0 初期ストップ、ATRの倍数
InpTrailATR 3.0 Exit A トレール距離、ATRの倍数
InpTargetR 2.0 出口Cの利益確定、Rの倍数
InpUseTrend false トレンドのEMAと同じ方向へのブレイクアウトのみを保持
InpTrendEMA 200 トレンドEMAの期間、チャートの時間枠
InpDrawExit A. ATRトレイル チャート上に描画され、バッファ6~9に送信されるエグジット
InpDaysBack 365 スコアカード内の履歴日数
InpDrawDays 60 取引ラインが描かれた日数
InpShowPanel true パネルを表示する
InpPanelCorner 左上 パネルの角
InpAlertPopup true 新たなブレイクアウト時のポップアップアラート
InpAlertPush false 新たなブレイクアウト時にプッシュ通知を送信

クラシック・タートル・システム2の場合は、InpEntryBarsを55、InpExitBarsを20に設定してください。

エキスパートアドバイザーからの使用方法

ブレイクアウトは、チャネルを越えてクローズしたバーに記録されるため、そのバーがクローズすると、EAはシフト1でそれを読み取ります。矢印は、スコア付けされたウィンドウ内だけでなく、読み込まれた履歴全体に保持されます。 ストラテジーテスターで確認したところ、EAがライブ環境で検知したシグナルは、実行終了時のバッファ内のシグナルと完全に一致していました。2025年の金(ゴールド)について、H1では473本中473本、H4では131本中131本でした。

バッファ 内容
0 ブレイクアウトでの買い、値は計画されたエントリー価格(次のバーの始値)、それ以外はEMPTY_VALUE
1 ブレイクアウトで売り、形式は同じ
2, 3 エントリーチャネルの高値と安値
4 描かれたエグジットラインの下にある直近の取引のストップ
5 ブレイクアウトバーでの初期ストップ
6~9 直近のクローズバーにおける描画されたエグジットの成績表:決済済みトレード数、勝ちトレード数、Rの合計、負けトレードのRの合計
int      handle;
datetime lastBar = 0;

int OnInit()
  {
   handle = iCustom(_Symbol, PERIOD_H4, "BreakoutExitLab");
   return(handle == INVALID_HANDLE ? INIT_FAILED : INIT_SUCCEEDED);
  }

void OnTick()
  {
   //--- ブレイクアウトは終値のバーで確定するため、新しいバーが形成されるたびに1回ずつ確認する
   datetime bar = iTime(_Symbol, PERIOD_H4, 0);
   if(bar == lastBar)
      return;
   lastBar = bar;

   double buy[1], sell[1], stop[1];
   if(CopyBuffer(handle, 0, 1, 1, buy) < 1 || CopyBuffer(handle, 1, 1, 1, sell) < 1 ||
      CopyBuffer(handle, 5, 1, 1, stop) < 1)
      return;

   if(buy[0] != EMPTY_VALUE)
      Print("Breakout buy, initial stop ", stop[0]);
   if(sell[0] != EMPTY_VALUE)
      Print("Breakout sell, initial stop ", stop[0]);
  }

このインジケーターには、意図的に入力グループが設定されていません。MQL5では、各「入力グループ」がiCustom()のパラメータとして扱われ、その後に続く値はすべて1つずつずれてしまいます。

パネルを作成中に気づいた些細な点ですが、チャートラベルには最大63文字までしか表示できません。当初、パネルの行が長すぎたため、MetaTraderが数字の途中で切り捨ててしまったため、現在は行を短くしています。

制限事項

結果はバーデータに基づいているため、1つのバー内のイベントの順序は不明です。スプレッドのみが課金され、手数料はかかりません。また、ストップ注文を通じたギャップ以外のスリッページもありません。取引は1つずつ集計され、重複する場合もあるため、合計値はエクイティカーブではありません。 上記の数値はすべて、金価格が強いトレンドを示した2つの期間における、あるブローカーのデータに基づいています。

アリ・ラージプート


MetaQuotes Ltdによって英語から翻訳されました。
元のコード: https://www.mql5.com/en/code/77687

ATS Confirmed Swings - non-repainting swing highs and lows ATS Confirmed Swings - non-repainting swing highs and lows

N本のクローズ値が確定したバーによってスイング高値・安値が確認された後にのみ、それらの値がマークされるため、描かれたスイングは決して移動したり消えたりすることはありません。

ATR Trailing Stop (Pine Script Port) ATR Trailing Stop (Pine Script Port)

Pine ScriptのATRトレーリングストップインジケーターのMQL5移植版:nLoss = ATR×倍数。上昇トレンドではストップが価格の下方に、下降トレンドでは価格の上方に段階的に移動し、価格がストップラインを突破して引けた時点で反転(買い/売りの矢印が表示)します。 Pythonリファレンス移植版と、両者がPineのセマンティクス(na/nz/series history)をバー単位で忠実に再現していることを確認する整合性テストが含まれています。

Adaptive Moving Average (AMA) Adaptive Moving Average (AMA)

適応移動平均線は、ノイズの影響を受けにくい移動平均線を作るときに使われ、トレンドを検知する際にラグが最小に抑えられるという特徴を持ちます。

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

アクセルレーション/デセレレーションインジケーター(AC)は現在の市場を動かす力の加速と減速を測ります。