cf2ad73343
Walk-forward "second opinion" stake multiplier (meta-labelling on 65 decision-time features, 3yr Oanda books @ $0.65) FAILED the pre-registered rule on M5 (clean null) and M15 (lift inside the label-shuffle null, explained by BUY-vs-SELL). Nothing that changes numbers ships; the 12-month M5 book re-run is byte-identical to the pinned one. Behaviour-neutral plumbing: - position_sizing.build_features (65 features; multiplier path returns 1.0, no artifact) - SignalReport.penalty_tags / penalty_total / momentum_fading (record-keeping) - TradeSetup.stake_multiplier = None (reserved) - gpu_backtest --export-features (default export stays the pinned 63 columns; extras forced to the tail even when the first trade lacks an indicator) Research tools (backtest/research): book_report, burst_map, burst_precursors, open_trade_bursts, calendar_impact, burst_indicator_map, sizing_model, watch_rule_eval. Findings recorded in backtest/research/sizing_campaign_2026-09.md: M5 stretch measures are positive in both halves; every open-trade protection against violent bars loses on both TFs; high-impact USD releases cause 20-31% of violent bars but trades held through them do better; violent bars come when price is already at an extreme, not from calm. Module 29 tests (13). Suite: 435 passed. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RWV2yLt3YXHHGVYHSQU2EE
70 lines
2.7 KiB
Plaintext
70 lines
2.7 KiB
Plaintext
Note down entery and exit Why we took trade?
|
|
What were each indicator signal on that specific time when we took trade
|
|
How many indicators agreed at trade time
|
|
Always backtest using engine.py and signal_aggregator.py
|
|
Dont take trades on weekends and Fridays
|
|
Keep TP small 1.3 Reward ratio
|
|
At the end of test make table of results and print all values you observed.
|
|
Trade context
|
|
|
|
Time of day and trading session (Asian/London/NY/overlap)
|
|
Day of week (track Mon/Tue/Wed/Thu performance separately)
|
|
Market regime at entry: trending, ranging, or choppy (use ATR or ADX)
|
|
Volatility level (ATR value or ATR percentile vs recent average)
|
|
Pair/instrument traded
|
|
News proximity (high-impact news within 30 min before/after entry)
|
|
|
|
Trade execution details
|
|
|
|
Spread at entry in pips
|
|
Slippage on entry and exit (planned vs actual fill)
|
|
Time in trade (minutes/hours from entry to exit)
|
|
Maximum Adverse Excursion (MAE): how far against you it went
|
|
Maximum Favorable Excursion (MFE): how far in profit before pullback
|
|
|
|
Risk metrics
|
|
|
|
Max consecutive losses (streak)
|
|
Max consecutive wins (streak)
|
|
Expectancy: (Win% x Avg Win) minus (Loss% x Avg Loss)
|
|
Expectancy per hour in trade
|
|
Recovery factor: Total R divided by Max DD
|
|
|
|
Indicator/signal analysis
|
|
|
|
Each indicator's standalone win rate when it agreed with the trade
|
|
Confluence level performance (2 vs 3 vs 4+ indicators agreeing)
|
|
Which indicator disagreed on losing trades (find the "canary")
|
|
|
|
Decision quality
|
|
|
|
Rate each setup A/B/C at entry, before knowing outcome
|
|
Verify A-grade setups actually win more often
|
|
Track system trades vs discretionary deviations separately
|
|
|
|
Process notes
|
|
|
|
Screenshot or chart snapshot at entry and exit
|
|
Emotional state (calm, FOMO, revenge, tired)
|
|
What would have happened if you held longer or exited sooner
|
|
|
|
Aggregate analysis at end of backtest
|
|
|
|
Equity curve, not just total R
|
|
Performance breakdown by session, day, volatility regime
|
|
Win rate over rolling 20-trade windows (check for edge decay)
|
|
|
|
Critical extra
|
|
"Do not trade" log: setups flagged but skipped, and what happened after
|
|
|
|
|
|
--- 2026-09-06: decision-time feature export ---
|
|
- `--export-features` appends stake_multiplier, r_sized and the 65 `f_*` decision-time
|
|
features (position_sizing.FEATURE_ORDER) AFTER the 63 pinned columns; default export is
|
|
byte-identical to the pinned books. Use backtest/research/book_report.py for weekday /
|
|
hour x weekday / session / streak / rolling-WR / feature-quintile (both halves) tables,
|
|
backtest/research/burst_map.py for the burst-by-hour map, and
|
|
backtest/research/sizing_model.py for the walk-forward + shuffle-control harness.
|
|
- Any sizing report must show the FLAT book and the SIZED book side by side and the
|
|
label-shuffle null; the 2026-09-06 campaign verdict (nothing ships) is the reference.
|