2026-05-12(月)。朝7時、口座を開いたら維持率 116%。先週末 ¥111K だった残高が ¥21K まで激減していた。証拠金 ¥1M の追加を申請しつつ、原因究明から始まった1日が、最終的に「全戦略の個別ファイル化リファクタ + PT007 出口の革命的変更」まで進んだ。本日の作業ログをまとめる。
\n\nこの記事のポイント
\n- \n
- 朝の危機: 維持率 116%、 ¥1M 増資申請(昼に反映) \n
- 発見 1:
close_positionのコメント固定バグで 全戦略の決済理由が "SMA exit" に上書きされていた → 修正 \n - 発見 2:
check_sma_exitが 全戦略の Pos2 を巻き込み決済する構造的バグ → PT001/PT002 限定化 \n - 大改修: live_trader.py 2,198行 → 562行へ。 戦略個別関数を 14 ファイルに分離 \n
- PT007 詳細分析: WR 40%, PF 0.81。 大負け 4 件で -¥5K。 MFE 平均 +30pips のチャンスを -2.5pips で抜けている \n
- PT007 出口を BB階層TP (M1 BB, 2.0σ-5.0σ, 0.5σ刻み 7段階) へ変更 \n
- OOS BT (2026-02〜04) で PF 2.81-4.02 / +¥321K 月平均、 過剰適合なし確認 \n
1. 朝の危機 — 維持率 116%
\n\n朝7時、 FX PC に SSH してみると衝撃の数字:
\n\n| 項目 | 5/9 (土) | 5/12 (月) 朝 | 差 |
|---|---|---|---|
| Balance | ¥111,359 | ¥21,570 | -¥89,789 |
| 維持率 | 759% | 116.1% | -643pt |
| 週次P/L | - | -¥41,398 | 月曜+¥6K / 火曜朝-¥47K |
主犯は監視2戦略 PT008/PT008-1(合算 -¥30K)と、 重点戦略のはずの PT005_EW(XAU SHORT で -¥13K)。 即座に ¥1,000,000 の証拠金増資を申請(昼12:36 反映)。
\n\n2. 隠れていたバグ 2件
\n\nバグ① close_position のコメント固定上書き
\n\nPT101_BB が「SMA exit が全件、 BB階層 TP が一度も発火していない」と最初判断したが、 ログを掘り下げると BB階層 TP (TRAIL90, BB2_RETEST, BB3_TP) は実際に live で発火していたことが判明。 単に close_position() の comment="SMA exit" がハードコードされていて、 deal.comment が全部「SMA exit」に上書きされていただけ。
修正: close_position(position, reason="SMA exit") に変更し、 各 caller から本来の決済理由を渡す。 結果として deal.comment に PT101_BB:BB3_TP, PT006_v2:BB4_TP, PT101_v3:BE_after_BB1 などの正しい理由が記録されるように。
バグ② check_sma_exit の対象 MAGIC が広すぎる
\n\n本来 PT001/PT002 用の「M15 SMA20 タッチで Pos2 を決済」関数が ALL_MAGIC_SMA(全14戦略の Pos2 MAGIC を含む集合)を対象にしていた。 これにより:
- \n
- PT007 の Pos2 (70002) が「peak から $0.30 戻り」を待つ前に M15 SMA20 タッチで決済 \n
- PT101_BB / PT006_v2 / PT101_v3 / PT102_v3 / PT008系 の Pos2 も同様に巻き込み \n
修正: 対象を PT001/PT002 のみに限定。 これで各戦略の自前 exit ロジック(trailing / evaluate_exit)が本来通りに動くようになった。
\n\n3. 全戦略を個別ファイルにリファクタリング
\n\n「各 PT はそれぞれのスクリプトで動いているのではないか?」というユーザー(自分)の指摘から判明したのは、 判定ロジックは pt007.py 等の個別ファイルだが、 発注ロジック (check_entry_pt007) と exit ロジック (check_pt007_trailing_exit) は live_trader.py の中にまとめて書かれていたこと。
\n\n| ファイル | Before | After |
|---|---|---|
| live_trader.py | 2,198 行 | 562 行 |
| pt001.py | 241 行 | 515 行 |
| pt006_v2.py | 266 行 | 417 行 |
| pt007.py | 185 行 | 293 行 |
| pt101_v3.py | 384 行 | 528 行 |
| ...(全 14戦略) | 合計 +1,500 行が戦略ファイルに移管 | |
各 pt*.py から共通インフラ(close_position / execute_entry / get_rates 等)への参照は 関数内遅延 import で循環参照回避。 __main__ 実行時の sys.modules 登録ワークアラウンドも追加。
C:Usersy2198fx_botpt007.py に古い (5/4 時点の) コピーが残っていて、 sys.path 優先順位で新しい scripts/pt007.py より先に読まれていた。 これに気付かず 30 分以上「なぜ pt007.check_entry_pt007 が AttributeError?」と混乱。 古いファイルを .OLD_BACKUP にリネームして解決。\n4. PT101 v1/v2/v3 累計成績比較
\n\n各バージョンを投入日から現在 (5/12 朝 7:50) までで集計:
\n\n| 戦略 | 稼働 | 取引 | WR | 累計P/L | 平均勝 | 平均負 | PF |
|---|---|---|---|---|---|---|---|
| v1 (PT101) | 8.4日 | 649 | 51.5% | -¥47,247 | +¥350 | -¥521 | 0.71 |
| v2 (PT101_BB) | 6.4日 | 332 | 39.5% | -¥35,658 | +¥522 | -¥517 | 0.66 |
| v3 (PT101_v3) | 3.4日 | 53 | 47.2% | +¥9,973 | +¥828 | -¥383 | 1.93 |
PF が 0.71 → 0.66 → 1.93 へ着実に改善。 「TRAIL75 で建値撤退多発 → TRAIL90 で利益刈り取り → BB4階層+BE+8 で改善」 という設計の進化が数字で裏付け。
\n\nPT101_v3 を 7通貨ペアに展開
\n\n1年BT (2025-04 〜 2026-04) で 6通貨を試した結果:
\n\n| Symbol | trades | PL累計 | WR | PF |
|---|---|---|---|---|
| EURUSD | 13,078 | +¥81,800 | 59.5% | 1.17 |
| GBPUSD | 12,710 | +¥54,796 | 59.4% | 1.09 |
| AUDUSD | 13,063 | +¥58,775 | 60.5% | 1.16 |
| NZDUSD | 12,558 | +¥14,946 | 58.6% | 1.04 |
| XAUUSD | 9,112 | +¥1,873,105 | 54.8% | 1.45 |
| GBPJPY | 11,328 | -¥32,138 | 57.1% | 0.95 |
| 合計 | 71,849 | +¥2,051,285 | — | — |
ドルストレート 5/5 全黒字、 クロス円 GBPJPY のみ赤字。 「ドルストレート優位」が成立。 これを受けて PT101_v3 を XAU + EUR/GBP/AUD/NZD/USDCHF/USDCAD の 7 通貨に展開(USDCHF/USDCAD は PT101_v3 専用ループで他戦略に影響なし)。
\n\n5. PT102 v1/v3 累計成績 + 7通貨投入
\n\n| 戦略 | 取引 | WR | 累計P/L | PF |
|---|---|---|---|---|
| v1 (PT102, TRAIL30) | 229 | 43.2% | +¥10,215 | 1.21 |
| v3 (PT102_v3, BB階層TP) | 26 | 65.4% | +¥5,737 | 2.29 |
PT102 v1 は PT101 v1 (PF 0.71) と比べて PF 1.21 と圧倒的に強い。 「ブレイク&復帰」フィルターと TRAIL30 (利益確保70%) が機能している。 ただし v1 のソースには「他5通貨は PF 0.24〜0.82 で実用不可」とBT結果が記載済み。 それでもデモ口座での検証として 7 通貨投入を決定。
\n\n6. PT007 詳細分析 — グランビルではない、 底ダブルトップ・ブレイクアウト
\n\n「PT007 がグランビルか?」という確認から始まった、 数時間にわたる徹底分析。 結論から言うと PT007 は 逆張り戦略(底打ち反発狙い)で、 ロジックは以下:
\n\n- \n
- 底領域確認: 直近 60本(M1) に 0.5%以上の下落 \n
- ダブルトップ検出: 直近20本 で 2つの近似ピーク + 谷 \n
- ブレイクアウト: close > 2峰の最高値 \n
- SL: ピーク間の最安値(dip) \n
- TP: トレーリング ($0.30 = 3pips 戻り) \n
累計成績(5/4 〜 5/12, Pos1 31件)
\n\n| 指標 | 値 |
|---|---|
| 取引数 | 62 (Pos1+Pos2) |
| WR | 40.3% |
| 累計 P/L | -¥2,567 |
| PF | 0.81 (赤字) |
| 平均勝 / 平均負 | +¥435 / -¥363(RR 1.20) |
負け要因の共通項
\n\n勝ち trade と負け trade の指標を比較したところ、 単一指標では差がなかった。 だが分類別に見ると明確なパターンが見えた:
\n\n| 分類 | WR | P/L |
|---|---|---|
| H1 SMA10 上向き(n=20) | 40.0% | -¥1,683 |
| H1 SMA10 下向き(n=11) | 45.5% | +¥441 |
| 金曜 (n=4) | 0% | -¥1,132 |
| 土曜 (n=4) | 25% | -¥1,448 |
| broker 19-23時 (n=7) | 0% | -¥2,704 |
PT007 が「底打ち反発戦略」と認識すると説明がつく — H1上向き = 既に上昇トレンド中の押し目の浅い揺れ動き = だましブレイク → 反落 SL ヒット、 という構造。 SL 直撃 3 件はすべて H1 上向き + 高 ATR (40+pip) + drop60 ぎりぎり (0.6%) というパターンで集中していた。
\n\n7. MFE シミュレーション — 取り損ねの大きさ
\n\n各 trade の保有期間中の最大含み益 (MFE) で完璧に利確していたらどうなるかを試算:
\n\n| 項目 | 実績 | MFE 完璧利確 |
|---|---|---|
| 累計 P/L | -¥1,242 | +¥14,633 |
| 平均 pips/trade | -2.5 pips | +30.1 pips |
| 取り損ね平均 | — | +32.6 pips/trade |
8. ピーク反落理由 — H1 24時間高値で 77%
\n\n各 trade のピーク到達時に各指標との距離を計測:
\n\n| 指標 | 中央値 | ピーク超過率 |
|---|---|---|
| M5 SMA20 | +135 pip | 90.3%(ほぼ常に超過) |
| M5 BB upper 2σ | -33 pip | 32.3% |
| M5 BB upper 3σ | -118 pip | 0%(一度も到達せず) |
| 直近20本 M5高値 | -43 pip | 41.9% |
| 直近24時間 H1高値 | -207 pip | 22.6%(77% が H1高値で反落) |
つまり「M1 のミクロな勢いで突破したが、 M5/H1 のマクロな抵抗線 (特に H1 24時間高値) に阻まれて反落」が PT007 の構造的問題。 ピーク到達後 平均 2.1 分 / 中央値 1.1 分で反落 → 既存の TRAIL_USD = $0.30 (3pips 戻り) では遅すぎる。
\n\n9. 出口戦略 5案 + BT
\n\n入口は変更せず、 出口だけ変更する 5 案を構想・BT。
\n\n| 案 | 内容 | BT Sim P/L | WR | PF |
|---|---|---|---|---|
| 実績 | TRAIL_USD $0.30 | -¥1,242 | 40.3% | 0.81 |
| 案B 既存版 | BB階層 (BB2σ/3σ/4σ) | +¥9,459 | 71.0% | 3.17 |
| 案B 細分化 | BB階層 2.0σ-5.0σ, 0.5σ刻み 7段階 | +¥12,166 | 77.4% | 3.90 |
| 案C | H1 24h高値 TP + 2分タイマー | -¥4,441 | 35.5% | 0.52 |
案B 細分化が最強。 0.5σ刻みで「ピーク手前の細かい戻り」も捕捉できる。 案C は仮説的に良さそうだったが、 2分タイマーが早すぎて「まだ伸びる trade」も殺してしまう結果に。
\n\nBB階層TP 7段階の発火内訳 (BT)
\n\n| σレベル | 件数 | WR | 平均 P/L |
|---|---|---|---|
| BB5σ (即決済) | 0 | — | — |
| BB4.5σ retest | 0 | — | — |
| BB4.0σ retest | 4 | 100% | +¥972 |
| BB3.5σ retest | 2 | 100% | +¥1,295 |
| BB3.0σ retest | 3 | 100% | +¥920 |
| BB2.5σ retest | 10 | 90% | +¥385 |
| BB2.0σ retest | 8 | 75% | +¥370 |
| SL (broker) | 4 | 0% | -¥970 |
BB3.0σ 以上は全勝 (9件)。 BB2.5σ も 90% WR。 SL 直撃 4 件は構造的に残るが、 利益取り損ね問題が解消。
\n\n10. OOS BT — 過去3ヶ月で過剰適合チェック
\n\nin-sample (5/4-12) で +¥12K の好結果。 過剰適合チェックのため、 過去 3 ヶ月の M1 OHLC で PT007 シグナルを再現+BB階層TPを適用した out-of-sample BT を実行。
\n\n| 期間 | signals | Sim P/L | WR | PF |
|---|---|---|---|---|
| OOS-1 (2026-04) | 206 | +¥75,571 | 82.5% | 3.21 |
| OOS-2 (2026-03) | 288 | +¥121,777 | 85.1% | 2.81 |
| OOS-3 (2026-02) | 223 | +¥123,347 | 81.2% | 4.02 |
| IS (5/4-5/12) | 33 | +¥10,782 | 84.8% | 3.74 |
| OOS 3ヶ月合計 | 717 | +¥320,695 | 83.0% | ~3.3 |
11. デプロイ + 動作確認
\n\n13:51 に PT007 BB階層TP 版を deploy。 14:14 時点で稼働継続中 (PID 4504)。 ただし PT007 のシグナル発火は厳しめ条件のため、 1日 4-5件程度の発火頻度。 次の発火で PT007:BB2.5_RETEST のような新コメント形式が記録される。
本日のサマリー
\n\n- \n
- 朝の危機: 維持率 116% → ¥1M 増資申請 \n
- バグ修正 2件: close_position コメント上書き / check_sma_exit の対象 MAGIC 過広 \n
- 大改修: live_trader.py 2,198 行 → 562 行、 戦略を 14 ファイルに分離 \n
- PT101_v3 を 7通貨展開 (BT で 5/6 通貨黒字、 +¥2.05M/年) \n
- PT102 v1+v3 を 7通貨展開 \n
- PT007 出口革命: BB階層TP 7段階で OOS 3ヶ月 PF 3.3、 月平均 +¥75-123K \n
来週以降のロードマップ
\n\n| 日付 | イベント |
|---|---|
| 5/12 PM | PT007 BB階層TP 初発火確認、 新コメント形式ログ蓄積開始 |
| 5/13-5/19 | 1週目モニタ、 全 14戦略の forward データ蓄積 |
| 5/26-6/9 | 2-4週目、 PT007 BT vs live 乖離チェック |
| 6/9 | 1ヶ月 forward 検証完了 → PT007 採用 / 段階停止判断 |
1日で多くを動かしすぎた感もあるが、 構造的バグ 2件 + リファクタリング + PT007 出口革命まで進めた。 来週末に live 結果が BT 通りに動くかを確認する。
\n\n