第17話:週間-24,162円。9月を+15.0%で締めた翌日に過去最悪の1日、そして「同じ注文を2回出す」バグが見つかった

9月27日〜10月3日の週。週間の実現損益(決済して確定した損益)は-24,162円でした。9月は+97,323円(+15.0%)で締まり、水曜には累積の最高値も更新しています。ところが月が替わった木曜の1日だけで-44,813円。8月に始めてから最悪の1日を、2週続けて更新しました。さらに、EAの1本に「同じ注文を2回出す」バグが残っていたことも分かりました。順番に書きます。

数字のまとめ

  • 9月の実現損益(確定):+97,323円(+15.0%)。9月1日の残高647,055円に対する割合です
  • 10月の実現損益(1日〜2日):-40,981円。10月1日の残高は約744,400円(決済分のみの概算)なので、2日で約-5.5%
  • 現在の残高:約703,400円(概算。スワップ=建玉を持ち越すと付く金利調整は未反映)
  • 8/1からの累積実現損益:+68,995円(9/30の最高値+109,976円から約4.1万円の後退)
  • 月利換算は、10月がまだ2営業日なので今週は出しません。来週から10月1日の残高を分母にして再開します
累積実現損益(2026年8月〜10月2日)
8/1からの累積実現損益。9/30に+109,976円で最高値、翌10/1に1日で-44,813円。

先週「9月の利益は月の前半の貯金でできている」と書きました。最後の3日で+16,819円を足して+15.0%まで伸びたのは素直にうれしい数字です。ただ、その翌日に9月の利益の半分近くを1日で返しているので、月をまたいで見ると印象はだいぶ変わります。

EA別の成績(実現ベース)

EA今週9月(確定)10月(2日まで)
SmaFlip AUDJPY+23,971円+69,228円-19,602円
SmaFlip USDJPY+17,320円+15,307円+10,776円
SmaFlipMTF GBPUSD+3,085円-573円0円
SmaFlip EURUSD0円+15,431円0円
BB_TrendDoten USDJPY0円+2,015円0円
SpikeRider USDJPY0円-3,795円0円
SmaFlip GBPUSD(9/28凍結)-3,080円-34,456円—
RegimeSwitch USDJPY-3,840円-7,302円-7,353円
RegimeTrend USDJPY-6,210円+14,958円-6,210円
EmaVol USDJPY-10,853円-11,295円0円
CrashFlip USDJPY(9/28稼働)-13,496円-13,496円0円
SessionRevert(2戦略合算)-15,171円+32,186円-2,704円
SmaFlipMTF USDJPY-15,888円+29,115円-15,888円

今週プラスだったのは3本だけです。稼ぎ頭の SmaFlip AUDJPY と SmaFlip USDJPY の2本で+41,291円、マイナスだった7本の合計は-68,538円。9月の確定値では、13行のうちプラスが7本、マイナスが6本でした。なお、EAごとの振り分けは注文のロット・損切り位置・建玉番号からの逆算で、EmaVol と SmaFlipMTF USDJPY の分は発注の形からの推定です。

今週の主なできごと

月曜(9/28)、CrashFlip の初日に本物の急落が来た。先週の第16話で載せると書いた CrashFlip(ふだんは買いを持ち、急落を検知したら売りに切り替えるEA)を、凍結した SmaFlip GBPUSD の代わりに動かし始めました。その日の17時過ぎ、ドル円が90分で110pips(1.1円)下げて検知が発動。持っていた買い2本を-5,756円で手仕舞い、156.50円で売り0.10ロットを建てました。ところがそこがほぼ底で、6時間後に損切り(-7,740円)。初日で-13,496円です。同じ急落で SmaFlip AUDJPY の売りは+24,855円を確定しているので、口座全体ではプラスの日でしたが、「急落を稼ぎどころにする」はずのEAが、急落の底で売って負けた、というのが初日の結果でした。

同じ月曜の昼、凍結したはずのポンドがもう一度建ちかけた。SmaFlip GBPUSD の買い0.16ロットを手動で決済し(-3,080円)、EAを外して新しいプロファイル(チャートの組み合わせ)を保存しました。その切り替えの途中で、ポンド入りの古いプロファイルが10秒ほど読み込まれ、SmaFlip GBPUSD が買い0.11ロットを出そうとした記録がログに残っています。助かったのは、プロファイル切り替えでMT5が「アルゴリズム取引」ボタンを一時的にOFFにしていたから。これまで何度も事故のもとになった仕様に、今回は救われました。古いプロファイルは消しておきます。

水曜(9/30)、EmaVol が同じ買いを2本出した。深夜0時ちょうどに、買い0.07ロットが同じ損切り位置で2本、0.068秒差で建ちました。両方とも損切りにかかって-10,853円。1回の損失を資金の1%に抑える設定のEAが、実質2%を賭けていたことになります。原因は下に書きます。この日は SmaFlip AUDJPY がもう一度+19,950円を取り、累積は+109,976円で最高値を更新しました。

木曜(10/1)、1日で-44,813円。ドル円は朝から158.2円まで上げ、夜23時半に45分で80pips落ちる往復でした。月曜の夜から売りを持っていた SmaFlipMTF USDJPY が朝の上げで損切り(-15,888円)。SmaFlip AUDJPY は午後に売りから買いへドテン(反対売買)して-19,602円。夜の急落では RegimeSwitch の買いが損切り(-7,353円)、RegimeTrend は急落ガード(短時間に大きく下げたら買いを手仕舞って止める安全弁)で買いを決済して-6,210円、SessionRevert も-2,704円。プラスは SmaFlip USDJPY の半分利確+6,944円だけです。上げで売りが切られ、下げで買いが切られる、いちばん苦手な形の1日でした。

EmaVol の二重発注は、プログラムの順番の問題だった

ソースを読み直して原因が分かりました。EmaVol は新しい足ができた瞬間にシグナルを判定して発注し、その直後に「建玉がなければ建て直す」という見回りをもう一度走らせる作りになっています。見回りは「自分の建玉がもうあるか」を確認してから動くのですが、MT5は発注が通った直後、建玉の一覧に反映されるまでに数十ミリ秒かかることがあります。そのすき間に見回りが走ると「まだ建玉がない」と判断して、もう1本出してしまう。

9月10日にも同じ2本同時発注が起きていました。当時は「30分足のチャートで動いていたせい」と結論して修正したのですが、原因は別にあったわけです。毎回起きるのではなくタイミング次第で、過去の値動きで試す検証(バックテスト)では建玉が即座に反映されるため再現しません。検証では絶対に見つからない種類のバグでした。

修正版(v1.03)は作成済みです。発注が通ったあと5秒間は建玉が見えなくても出し直さないようにし、保険として、同じEAの建玉が2本あれば古い1本を残して決済するようにしました。売買の判断そのものは変えていません。差し替えは週明け前に行います。ほかのEAも同じ目で点検したところ、CrashFlip にも似た作りがあり(実害はまだ出ていません)、同じ手当てを検討します。

気になったこと(来週の宿題)

  1. ドル円への集中が、悪い日に全部同時に出る。12本のうち9本がドル円です。木曜はそのうち4本とAUDJPYが同じ日に負けました。しかも先週末に、成績の良い3本(SessionRevert、SmaFlipMTF USDJPY、SmaFlip AUDJPY)のロットを上げたばかりで、その3本の負けは上げる前の約1.5倍になっています。ロットは「変えたら4週間は動かさない」と決めたので触りませんが、12本を合わせた最悪の下げ幅をまだ一度も検証していないのは、もう先送りできません。
  2. EmaVol の差し替えと、CrashFlip の同種の点検。上に書いたとおりです。
  3. SmaFlip AUDJPY の「回転」がまた2回。トレール(利益を守りながら追いかける決済)で利確した直後に同じ方向へ入り直し、月曜は-2,508円、水曜は-242円。9月4日から言い続けている、決済後の待ち時間がない問題です。稼ぎ頭なので後回しにしてきましたが、荒れた週ほど出ます。
  4. SessionRevert の売りが続けて切られた。今週4回で1勝3敗、-15,171円。その日の下げについていく夜の売りが、月曜・火曜と2日続けて戻りで損切りになりました。9月は+32,186円のEAなので、1週間で設定は変えず、来週も同じ形が出るかを見ます。
  5. 古いプロファイルの削除。凍結したEAが入ったままのプロファイルは、読み込んだ瞬間に凍結が解けます。今回は偶然助かっただけでした。

ワースト3:成績が悪い、または今後も利益を出しにくいEA

今回は確定した9月の実現損益の順に、機械的に出します。

1位:SmaFlip GBPUSD(3週連続・凍結済み)

9月-34,456円。月曜に建玉を決済して外しました。これで順位表からは卒業です。このEAを除いた合計は9月+131,779円でした。

2位:CrashFlip USDJPY

稼働初日に-13,496円。急落を検知して売った場所がほぼ底でした。検証でも「売りは勝ったり負けたりで、数回の大きな急落で稼ぐ」形だったので、1回で判断はしません。第16話で決めた撤退の目安(6週間マイナスかつPF0.8未満、または下げ幅12%)にはまだ届いていません。PF(プロフィットファクター)は総利益÷総損失で、1を超えれば勝ち越しです。

3位:EmaVol USDJPY

9月-11,295円。そのうち-10,853円が今週の二重発注の分です。バグがなければ損失は半分で済んでいました。修正版に差し替えたうえで、ロジックそのものの評価は取引数がたまってからにします。

次点は RegimeSwitch USDJPY(9月-7,302円、10月も-7,353円)。月曜の朝に+11,037円を取って初勝利でしたが、その後2連敗。ここまで6回で1勝5敗です。

今週のまとめ

  • 週間実現 -24,162円。9月は+97,323円(+15.0%)で確定、10月は2日で-40,981円
  • 累積は9/30に+109,976円で最高値、現在+68,995円
  • 10/1は1日で-44,813円。ドル円の4本とAUDJPYが同じ日に負けた
  • EmaVol に二重発注のバグ。修正版v1.03を作成、差し替え予定
  • ワースト3:SmaFlip GBPUSD(凍結済み)、CrashFlip、EmaVol

最高値を更新した翌日に、最悪の1日が来る。先週とまったく同じ書き出しになってしまいました。違うのは、先週の最悪はルールを破って抱えたポンドのせいだったのに対し、今週はルールどおりに動いた結果だという点です。つまり、いまの12本は「ドル円が往復した日には、まとめて負ける」構成になっている。ロットをいじる前に、まずそこを数字で確かめます。

BANDANAN AI TRADE LAB
このラボの記録は、毎週更新しています
記事の公開はXでお知らせしています。投資助言ではありません。
XでフォロートラックAトラックB

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です