研究・検証 / GOLD DAWN BREAK のしくみ

LEARN / GOLD DAWN BREAK / 2

利益の目標を置かず、損切りを引き上げる

このEAは、「ここまで来たら利益を確定」という目標(TP)を置きません。かわりに、利益が伸びるたびに損切りの位置を少しずつ有利な方へ動かして、出た利益を守ります。

このしくみの面白いところ

値動きが続くかぎり、利益を伸ばせます。目標を決めていないので、値段が有利な方へ動き続けている途中で、EAのほうから利益を確定して終わることはありません。

伸びた利益は、段を上がるように守ります。利益が一定の幅に届くと、損切りの位置を「買った値段より上」へ動かします。そこから値段が戻ってきても、その位置で取引が終わるので、出た利益の一部が残ります。損切りの位置を後ろへ戻すことはありません。

決済の手段は、この損切りだけです。シンプルですが、試した結果では勝率が 76.0〜84.3%(2025〜26年)と高く出ています。

最初の損切り4ドルは、1日の値動きのどれくらいか

最初の損切りは、注文の値段から4ドルです。この4ドルが、金の1日の値動きの幅(その日の高値 − 安値)に比べてどれくらいの大きさかを、年ごとに比べました。なお、4ドルという数字は、この値幅から計算して決めたものではありません。

年日数1日の値動きの幅(真ん中の値)4ドルは幅の何%か
202225822.51ドル17.8%
202325720.75ドル19.3%
202425930.13ドル13.3%
202525851.43ドル7.8%
2026(1〜8月)150103.24ドル3.9%

出所:当方で持っている Exness の金(XAUUSD)の1分足。Exness の業者の時計(世界標準時と同じ)で日を区切りました。平日で、1分足が600本以上ある日について、1日の高値 − 安値を求め、その真ん中の値(中央値)を出しました(2026年10月13日に計算)。%は 4 ÷ 真ん中の値です。

同じ4ドルでも、2022〜23年は1日の値動きの2割近く、2026年は4%ほどです。金の値動きが大きくなるほど、4ドルの損切りは相対的に小さくなっています。

利益が伸びると、損切りが段の上へ引き上げられていく様子の模式図 値段 損切り 買った値段 利益が一定の幅に届くまで動かさない 最初の損切り(注文の値段から4ドル) 戻りの余地 ここで決済
模式図です(買いの場合)。いまの利益から「戻りの余地」を引いた幅が次の段に届くたびに、損切りをその段へ上げます。下げることはありません。段の幅などの数字は、このページには載せていません。

損切りを引き上げるところ

プログラムの一部 2 損切りを段ごとに引き上げる処理(GoldDawnBreak.mq5 より。省略したところは // ...)
void ManageGrid()
{
   // ...
   for(int i = PositionsTotal() - 1; i >= 0; i--)
   {
      // ...
      double favorable = isLong ? (tk.bid - entry) : (entry - tk.ask);
      int idx = LockIndex(ticket);
      if(g_locks[idx].lastModMsc > 0 &&
         tk.time_msc - g_locks[idx].lastModMsc < (long)InpModifyIntervalSec * 1000) continue;
      double ref = favorable - InpGridBackoffUSD;
      if(ref < InpGridFirstUSD) continue;
      int j = (int)MathFloor((ref - InpGridFirstUSD) / InpGridStepUSD + 1e-9);
      double lockDistance = InpGridFirstUSD + j * InpGridStepUSD;
      double desiredSL = NormalizeDouble(isLong ? (entry + lockDistance) : (entry - lockDistance), _Digits);
      double currentSL = posInfo.StopLoss();
      bool improve = isLong ? (desiredSL > currentSL + _Point)
                            : (currentSL == 0 || desiredSL < currentSL - _Point);
      if(!improve) continue;
      if(trade.PositionModify(ticket, desiredSL, posInfo.TakeProfit()))
         g_locks[idx].lastModMsc = tk.time_msc;
   }
}

持っている取引を1つずつ見ていきます。

favorable の行で、いまの利益の幅を測っています。注文が発動した値段から、有利な方向に何ドル進んだかです。

ref の行で、そこから「戻りの余地」(InpGridBackoffUSD)を差し引いています。それが最初の段(InpGridFirstUSD)に届くまでは、何もしません。

届いたら、等しい間隔(InpGridStepUSD)で並んだ段のうち、届いているいちばん上の段を選びます。そこが新しい損切りの位置です(desiredSL)。

improve の行で、新しい位置がいまの損切りより有利なときだけ動かします。不利な方へ戻すことはありません。

動かしたあとは、決まった秒数(InpModifyIntervalSec)だけ、次の変更を待ちます。

試した結果で見ると

2025〜26年の11回の試験では、勝率 76.0〜84.3%、1回の勝ちの平均 208〜330円、1回の負けの平均 611〜730円でした(0.01ロット)。たとえば Exness・注文の遅れなしでは、261回の取引のうち約220回が勝ちです。

1回の取引の長さは、真ん中の値で1分以下でした(2022〜24年は約7〜8分)。値段が動き出した勢いに乗り、すぐに損切りを引き上げて利益を守る。そういう取引が多い形です。

勝ち1回は小さく、負け1回は大きめです。そのぶん、勝つ回数の多さで全体をプラスにしています。

出所:各試験の結果に付く取引の一覧を集計。勝ちの回数は、取引の回数 × 勝率から計算した値です。

ここに載せている数字はすべて、過去の値動きで試した結果(バックテスト)で、運用実績ではありません。将来の結果を示すものではありません。投資判断はご自身で行ってください。気をつけてほしい点は、目次ページの「知っておいてほしいこと」にまとめています。

動かすだけなら、マイページで GOLD DAWN BREAK を受け取ってください。

全部読みたい・直したい・別の通貨で試したい場合は、ソースコード単品か、EA開発システム+全EAソースコードです。