WEEKLY REPORT · 2026-W18 (2026-04-27 — 05-03 JST)

介入級ボラに学ぶ、
防御層の総点検。

決済 9 件 / 5 勝 4 敗 / -98.2 pips / PF 0.43。 4/30 の円高介入で 3 連続 SL (-140.6 pips) を喫した、稼働開始以来最も厳しい一週間。

その代償として、サーキットブレーカー 3 ゲート、post-SL cooldown、円高/円安バイアスメーター、 そして 3 名チーム + クロスチェック開発体制を一気に導入した。 累計は +111.1 pips を維持。本レポートは、損失と、それに対する「もう一度同じ事故を起こさないための仕組み」を加工なく公開する。

01 · WEEKLY PERFORMANCE

今週のトレード実績

集計期間: 2026-04-27 (Mon) — 05-03 (Sun) JST。 決済済み (exit_time 確定) のトレードのみを対象。未決済 9 件は集計から除外。

CLOSED TRADES 9 うち勝ち 5 / 負け 4
WIN RATE 55.56% 5 勝 4 敗
PIPS -98.2 平均 -10.91 pips/trade
PNL JPY -2,634 PF 0.43
CUMULATIVE SINCE 2026-04-08:
CLOSED38
WIN RATE73.68%
PIPS+111.1
PNL-1,502 円
PF1.38
OPEN47
INCIDENT — 2026-04-30

円高介入下での BUY 3 連続 SL (-140.6 pips)

USD/JPY 160.30 → 156.70 の急落(介入規模)の最中、BUY エントリーが 3 連発で SL に到達。 累計プラスを大きく削った。regime gate (compute_yen_bias) は実装済みだったが runner から呼ばれておらず、 結果として「介入域でも BUY が止まらない」状態だった。事象の詳細・時系列・根本原因・恒久対策は別ページで公開している。

詳細レポート: 2026-04-30 円高介入 3 連続 SL

ENTRY (UTC) EXIT (UTC) SIDE PNL pips CLOSE REASON
2026-04-27 06:012026-04-27 12:30 BUY -31.6最大保有期間超過
2026-04-28 16:012026-04-28 22:02 BUY +3.0最大保有期間超過
2026-04-28 22:022026-04-29 04:30 BUY +0.4最大保有期間超過
2026-04-29 05:022026-04-29 11:02 BUY +14.2最大保有期間超過
2026-04-29 11:022026-04-29 15:30 BUY +43.6TP到達
2026-04-29 16:022026-04-29 22:30 BUY +12.8最大保有期間超過
2026-04-30 03:022026-04-30 07:57 BUY -49.0SL到達
2026-04-30 09:022026-04-30 10:26 BUY -45.3SL到達
2026-04-30 11:022026-04-30 12:07 BUY -46.3SL到達

全件 BUY(SELL は 4/27 から paper trade として稼働開始したが、当週は決済 0 件)。 決済理由の内訳は 最大保有期間超過 5 / TP 到達 1 / SL 到達 3。 SL 3 件はいずれも 4/30 の同日内に集中している。

02 · SYSTEM CHANGES

今週のシステム変更履歴

2026-04-27 〜 05-03 にコミットされた変更のうち、運用・観測性・安全装置に関わる主要トピック。 4/30 介入事故を起点に、防御層と開発体制が一気に厚くなった一週間。

BOT

事故対応の安全装置と新パイプライン

  • サーキットブレーカー 3 ゲートを実装 (6c45d06)。連敗検知・単発予算超過 halt・stranded entry 復旧を 1 セットで導入。介入時のような連続損失で BOT が自動停止する。
  • post-SL cooldown ゲート (392677d) を追加。SL 直後の即時再エントリーを抑止する。Option Y 採用。
  • 円高/円安バイアスメーター + 円高転換 Slack アラート (78964fb)。介入域に近づいた時点で目視できるようにした。
  • 逆張り SELL パイプライン (mean reversion) を実装し (cc72f32)、4/27 から paper trade として稼働開始。BUY 一本足の依存を解く第一歩。
  • Shadow Trailing SL(実発注なし、観測専用)を追加 (aa28b2f)。同時に評価スクリプトと cron も整備。
  • GMO 外部要因クローズ検知 (6bbfd6d)。losscut / 手動決済を検知して Slack に通知し、live-state の不整合を防ぐ。
  • TIMEOUT 決済時に GMO 実約定価格を取得 (b6f1cdc)。仮想値ではなく実数で記録するよう修正。
  • キルスイッチ + NaN/stale data 安全装置 (051db28)、起動時の停止中 OCO 取り込み (13cbdcc) を追加。
  • イベントゲートを A 級限定で実動作と一致 (2a44f40)、表示を時刻昇順 (723052f) に修正。
  • shadow position を永続化 (57689ec) し、再起動を跨いで仮想追跡を継続。
OPS

開発体制刷新と監査・運用整備

  • 3 名チーム + クロスチェック開発体制を導入 (8aff6cf, 16cdf13)。Implementer 1 + Reviewer A/B の独立レビュー → 相互クロスチェックを 7 ステップで強制。AI 暴走と片観点見落としを構造で抑止する。
  • subagent コーディング作業は worktree 必須 (e56d25b) へ拡張。並列 / 単発を問わず main repo の working tree を共有しない。
  • 事故記録 14 件 + 運用ルール 14 件 + 新 skill 29 件を一気に追加 (c3c7a15, 55cf4fb, 79ae3b4, 3240ca6 他)。4/30 介入・5/1 v2 misdeploy・dashboard env 上書き等の事故記録と再発防止規律を整備。
  • passkey / WebAuthn 認証一式を実装 (c4e50bc, e9b3fb5, 50dbc8b, 2ca8693 他多数)。dashboard をパスキー必須に。マルチ端末同時ログインも許可 (01d839c)。
  • キルスイッチ管理画面を実装 (a4d2a67)。/bot/stop /bot/restart /bot/halt-status を分離 (b7b5d37) して、表示と操作を独立した UI で扱う。
  • VPS ディスク使用率 95% 超で ops Slack 通知 (18cf293)、VPS 管理ページのリソース情報を Lightsail API から自動取得 (e362520)、VPS インスタンス名 v2 → v3 訂正 (be65499)。
  • サーキットブレーカー Slack 通知の文言統一 (e31a7cc) と main チャンネルへのリルーティング (4344ef9)、TIMEOUT 通知の損益情報追加 (da650da)。
  • dashboard UI 改善多数: iPad コンパクトレイアウト (85df6ee)、サイドバー折り畳み (78ea3bd)、現在モード常時表示 (6b55043)、資産シミュ毎月入金 (5136b21)、META_THRESHOLD_OVERRIDE を画面に反映 + RR 警告緩和 (b264f46)、ローソク足チャート自動スクロール抑制 (e96890b)、PositionTable / tp-sl-deviation / trades / schedule の見直し (2e7e056)。
  • 2026-04 月次振り返り note 記事 + 月次 web レポート (e642b21, 39bf4a6, 2b4b4db)、4/30 incident 特別編 web を公開。日次記事は 4/27〜5/1 を毎日更新。
DATA

データ基盤の刷新と二重定義の解消

  • cross_pairs を GMO API ベースに改修 (ada672a) し、parquet キャッシュ + 差分更新を追加 (cb434a0)。Twelve Data 依存を解消し、本家 API 1 本で完結する構成に。
  • 1h native window indicator セットを追加 (c5302d3)。1 時間足ネイティブの特徴量を拡充。
  • JST → UTC 変換ヘルパを timeutils に集約 (83a4055)。6 ファイルに散らばっていた変換コードを 1 箇所に統合。
  • s3_compat の trade dict / signal log dict 構築を集約 (27ce36c, a1a302a)、dashboard の _TRADE_LOG_KEYS / _SIGNAL_LOG_KEYS 重複定義を排除 (d4c8640)。
  • 死設定 / 二重定義の解消とゲート結線 (4e5d820)。設定値は一本道で扱う原則を実装に落とし込んだ。
  • メタ閾値を環境変数で実行時上書き可能 (1f74dfd, 694b6b6)。再起動だけで閾値を切り替えられるように。W18 中に META_THRESHOLD_OVERRIDE=0.52 を本番投入 (0.60 → 0.52)、効果検証は W19。
  • 時間帯別 PF shadow 分析を週次自動化 (f9b7571)、リスク制御の双方向テスト 85 件追加 (befacd8)。
  • ruff regression fix (222dad9) と test stub の新ゲート対応 (3240ca6) で機械的品質ゲートを保持。
03 · META-LABELING ANALYSIS (CUMULATIVE)

メタラベリング検証 — 累積データ

集計期間: 2026-04-08 〜 05-03 (累積 194 シグナル)。 今週分のサンプルだけでは小さすぎるため、運用開始後の累積データで判定する。 シグナル蓄積に伴って毎週この章は更新される。

TOTAL SIGNALS 194 EMA クロスで検出された全候補
ENTERED 45 実約定 (23.2%)
REJECTED BY META 65 メタラベリングが見送り (33.5%)
REJECTED OTHER 84 建玉上限 70 / カットオフ 14
VERDICT — DATA SAYS

確信度の崩壊は 2 週連続で悪化。 閾値 0.6 は今や逆フィルタ。

最良ビン (0.55–0.60) の shadow 勝率が 100% / 平均 +16.21 pips である一方、 閾値 0.60 を超えると勝率が 42.9% → 0% へ急落する傾向は W17 と同じ。 累計 194 シグナルに増えた今週は、上方の崩壊が さらに鮮明になった。 閾値 0.6 以上 59 件 (shadow 8 件) の合計は net -84.3 pips
一方で REJECTED_META 65 件のうち shadow が確定した 39 件は 25 勝 14 敗 / net +174.8 pips の機会損失。 「壊れていない」どころか、確信度が高いほど取らせない方がよく、低いほど取らせた方がよいという逆転が定着しつつある。 閾値を上げる方向は明確に間違い。W18 中に 0.60 → 0.52 へ引き下げ済みで、効果は W19 で検証する。並行してモデル再学習にも着手する。

下方リスク(実約定 ENTERED 45) 劣化 above 0.6 の shadow 8 件は net -84.3 pips。確信度が高い側が損失源
上方の取り切り(REJECTED_META 65) 不足 shadow 39 件で 25 勝 14 敗 / net +174.8 pips の機会損失
SIGNAL ALLOCATION (194 SIGNALS)
ENTERED4523.2%
REJECTED_META6533.5%
POSITION_FULL7036.1%
CUTOFF147.2%
PIPS OUTCOME — ENTERED 45 (shadow 確定 2 件)
1 勝 / 1 負 (shadow ベース) net -9.2 pips
+15.0p
-24.2p
注: ENTERED の shadow 確定はわずか 2 件。実約定 38 closed の累積実績は別途 +111.1 pips
PIPS OUTCOME — REJECTED_META 65 (shadow 確定 39 件)
25 勝 / 14 負 (would-have) net +174.8 pips
+363.8p
-189.0p
機会損失上限値。建玉上限を無視した shadow ベースで、メタが通しても全件 ENTRY できたわけではない

注: REJECTED_POSITION_FULL の shadow 6 件は 2 勝 4 敗 / net -75.1 pips、REJECTED_CUTOFF の shadow 1 件は 0 勝 1 敗 / -17.8 pips。 建玉上限とカットオフによる rejection は、shadow 上もマイナスで「弾いて正解」だったことが裏付けられる。

CALIBRATION

確信度は、勝率を予測しているか?

モデルが算出する確信度(meta_prob)と、実際の shadow 勝率の関係。 理想的には「確信度 0.6 → 勝率 60%」のように単調増加するはずだが、累積 194 件で逆相関が一段と鮮明になった。

確信度ビン 件数 shadow 勝率 平均 pips 判定
0.30 – 0.4015 66.7% +2.78 想定外: 低確信度なのに勝つ
0.40 – 0.5024 35.7% -2.01 想定通り: 弱い → 弱い
0.50 – 0.5567 75.0% +7.48 最大ボリューム帯。よく勝つ
0.55 – 0.6029 100.0% +16.21 ベスト帯。なのに見送られている
0.60 – 0.65 ⚠37 42.9% -7.54 閾値超え。なのに負ける
0.65 – 0.70 ⚠13 0.0% -31.50 高確信度なのに完全崩壊
0.70 – 1.009 shadow サンプル 0 (ENTERED 全件)
VERDICT — CALIBRATION COLLAPSE (W17 → W18)

崩壊は悪化。 0.65 – 0.70 帯の shadow 勝率は 0.0%

0.55 – 0.60 帯の勝率 100% (avg +16.21 pips) がベストで、閾値 0.60 を超えると勝率が 42.9% → 0.0% へと急落する傾向は前週から継続。サンプル数が増えた今週は、確信度が高いほど負けやすいという 逆転がさらに固定化された。
閾値 0.6 以上の shadow 8 件の合計は net -84.3 pips。 もし「確信度が高いシグナルだけを実発注する」運用に切り替えていたら、メタラベリングは「成績悪化フィルタ」として機能していた可能性が高い。 訓練データと本番分布の乖離が、運用 5 週目にして無視できないレベルで顕在化している。

04 · NEXT WEEK

翌週 (W19 / 5 月最初のフル稼働週) の運用方針

4/30 介入で導入した防御層(サーキットブレーカー / post-SL cooldown / バイアスメーター)は 5/1 から動作開始済み。 W19 はその効果計測と、calibration 崩壊への本格対応に踏み込む。

ACTION 01

モデル再トレーニング着手

calibration 崩壊が 2 週連続で確認され、累積 194 件で逆相関が固定化した。実運用 38 closed と REJECTED_META の shadow 39 件を訓練データに追加し、calibration plot で改善を確認してから本番投入する。

ACTION 02

閾値 0.52 運用結果の集計と次の調整判断

W18 中に META_THRESHOLD_OVERRIDE=0.52 を本番投入済み (0.60 → 0.52)。1 週間運用後に勝率・PF・取引頻度を集計し、現状維持 / 0.50 へさらに引き下げ / 再学習待ちで凍結 のいずれかを判断する。0.55–0.60 帯 (shadow 100% 勝率) を取り切れているかが評価軸。

ACTION 03

介入域防御層の運用結果集計

サーキットブレーカー 3 ゲート / post-SL cooldown / 円高/円安バイアスメーターは 5/1 から動作中。1 週間の発動回数・抑止できた損失額・誤発火の有無を集計し、ON/OFF 効果を客観的に判定する。

ACTION 04

継続観測・週次公開

本ページは毎週日曜更新。透明性は、改善判断を裏付けるためにある。次回 W19 (5/4 — 5/10) のレポートで、再学習着手状況と防御層の効果を追跡する。

注意: 今週のトレード集計は本番 DB から取得した、 JST 2026-04-27 〜 05-03 範囲・exit_time 確定済みのみのデータに基づく。 まだ未決済 (open) 9 件は集計対象外。
メタラベリング検証は累積データ (2026-04-08 〜 05-03 / 全 194 シグナル / shadow outcome 確定 48 件) を使用。 「機会損失 +174.8 pips」「閾値 0.6 以上 net -84.3 pips」等は建玉上限を無視した shadow ベースの理論値であり、実際に増減したであろう pips はこれより小さい。
4/30 介入事故の詳細・時系列・恒久対策は別ページ (2026-04-30 円高介入 incident report) で公開している。
サンプル数は依然として小さく、統計的に有意とは言い切れないため、傾向の指摘に留めている。 本ページは、判断をデータで裏付けるための参考材料であり、結論ではない。

ARCHIVE

過去のレポート

週次レポートのバックナンバー一覧。