Timeframe: 6H (TV fills 1 bar ahead = 0 days 06:00:00 offset) Loading TV trades from: data/mlp/MLPScores_COINBASE_BTCUSD_2026-09-24_6h.csv TV trades: 56 real signal + 0 margin-call Running Python strategy strategy_mlp_scores.py on: data/mlp/COINBASE_BTCUSD, 360.csv Python trades: 59 (Pine timeCondition 2017-12-01 → 2026-09-24; 59 total after time gate) Key params: Entry threshold: 90.0 (use_entry_conf=False) Exit threshold: 210.0 (use_exit_conf=1) Trailing stop: 20.0% ================================================================================ MATCH SUMMARY ================================================================================ Total TV real trades : 56 (coverage through 2026-01-16) Total Python trades : 59 Entry + exit matched : 53 (94.6% of TV) Entry matched, exit Δ : 1 Python-only (extra) : 5 (IS: 5, OOS after 2026-01-16: 0 — OOS are expected, not bugs) TV-only (missed) : 2 ================================================================================ TV/chart entry-marker check: TV entries with exported chart marker : 54/56 Chart executable markers in TV window : 59 (5 not present in TV trade list) First TV entries without chart marker: TV#2 signal 2019-05-03 00:00:00 (fill 2019-05-03 06:00:00) — no exported Entry marker on adjusted entry bar TV#22 signal 2021-09-30 18:00:00 (fill 2021-10-01 00:00:00) — no exported Entry marker on adjusted entry bar First chart executable markers missing from TV: 2019-06-27 00:00:00 2019-08-20 00:00:00 2020-05-29 00:00:00 2021-10-18 06:00:00 2024-10-30 00:00:00 Python cumulative P&L (0.5%/side comm): 2,848.7% TV completed-trade cumulative P&L: 13,818.2% → ⚠️ trade paths differ (Python 59 vs TV 56); cumulative totals are NOT comparable. See per-trade table / unmatched section below. Python gross (no commission, reference): 5,219.5% ──────────────────────────────────────────────────────────────────────────────── FULLY MATCHED (53 trades) ──────────────────────────────────────────────────────────────────────────────── # Py Entry TV Entry Py Exit TV Exit Py P&L% TV P&L% Δ P&L% ------------------------------------------------------------------------------ 1 2017-12-06 2017-12-07 2017-12-08 2017-12-08 7.4% 7.4% -0.0% 3 2019-07-03 2019-07-03 2019-07-14 2019-07-15 -9.8% -9.8% -0.1% 4 2019-10-01 2019-10-01 2019-11-18 2019-11-18 -0.5% -0.5% -0.0% 5 2019-11-21 2019-11-21 2019-11-21 2019-11-21 -4.2% -4.2% +0.0% 6 2019-12-05 2019-12-05 2020-01-15 2020-01-15 18.8% 18.8% -0.0% 7 2020-01-16 2020-01-16 2020-01-28 2020-01-29 7.1% 7.0% +0.0% 8 2020-01-29 2020-01-29 2020-02-17 2020-02-17 2.9% 2.9% -0.0% 9 2020-03-02 2020-03-02 2020-03-06 2020-03-06 3.4% 3.4% -0.0% 10 2020-03-24 2020-03-24 2020-05-28 2020-05-28 35.6% 35.6% +0.0% 11 2020-06-01 2020-06-01 2020-08-31 2020-08-31 21.7% 21.7% -0.0% 12 2020-09-24 2020-09-24 2020-09-24 2020-09-24 0.2% 0.2% -0.0% 13 2020-11-04 2020-11-04 2020-11-04 2020-11-04 1.5% 1.5% +0.0% 14 2020-11-05 2020-11-05 2020-11-13 2020-11-13 9.3% 9.4% -0.0% 15 2020-11-17 2020-11-17 2020-12-14 2020-12-14 11.3% 11.3% -0.0% 16 2020-12-23 2020-12-23 2020-12-30 2020-12-31 24.0% 24.0% -0.0% 17 2020-12-31 2020-12-31 2021-01-03 2021-01-03 19.3% 19.3% -0.0% 18 2021-01-08 2021-01-08 2021-01-08 2021-01-08 7.7% 7.6% +0.0% 19 2021-01-28 2021-01-28 2021-02-23 2021-02-23 45.8% 45.7% +0.1% 20 2021-03-02 2021-03-02 2021-04-14 2021-04-14 30.8% 30.8% +0.0% 21 2021-07-28 2021-07-28 2021-09-15 2021-09-15 15.5% 15.5% +0.0% 23 2021-10-28 2021-10-28 2021-11-08 2021-11-08 10.6% 10.6% -0.0% 24 2021-11-09 2021-11-09 2021-11-09 2021-11-09 -2.2% -2.2% -0.0% 25 2021-11-29 2021-11-29 2021-11-29 2021-11-29 2.0% 2.0% -0.0% 26 2022-03-01 2022-03-01 2022-03-29 2022-03-29 8.7% 8.7% +0.0% 27 2023-01-25 2023-01-25 2023-02-16 2023-02-16 9.0% 9.1% -0.0% 28 2023-03-14 2023-03-14 2023-04-27 2023-04-27 17.1% 17.1% +0.0% 29 2023-04-28 2023-04-28 2023-04-28 2023-04-28 -1.0% -1.0% +0.0% 30 2023-05-03 2023-05-03 2023-05-29 2023-05-29 -4.0% -4.0% +0.0% 31 2023-06-21 2023-06-21 2023-08-30 2023-08-30 -6.4% -6.4% -0.0% 32 2023-09-07 2023-09-07 2023-09-15 2023-09-15 2.5% 2.5% +0.0% 33 2023-09-18 2023-09-18 2023-10-30 2023-10-30 26.7% 26.7% +0.0% 34 2023-11-01 2023-11-01 2023-11-21 2023-11-21 7.2% 7.2% +0.0% 35 2023-12-01 2023-12-02 2023-12-02 2023-12-02 -0.8% -0.8% +0.0% 36 2023-12-03 2023-12-03 2023-12-05 2023-12-05 4.9% 5.0% -0.0% 37 2023-12-07 2023-12-07 2023-12-22 2023-12-22 -1.7% -1.6% -0.0% 38 2024-01-11 2024-01-11 2024-01-23 2024-01-23 -16.6% -16.6% +0.0% 39 2024-01-30 2024-01-30 2024-01-30 2024-01-30 -1.3% -1.3% +0.0% 40 2024-02-28 2024-02-28 2024-03-18 2024-03-18 13.1% 13.1% +0.0% 41 2024-03-20 2024-03-20 2024-03-25 2024-03-25 13.6% 13.6% -0.0% 42 2024-03-29 2024-03-29 2024-03-29 2024-03-29 -1.1% -1.1% -0.0% 43 2024-04-23 2024-04-23 2024-04-23 2024-04-23 -1.7% -1.7% +0.0% 44 2024-05-03 2024-05-03 2024-06-04 2024-06-04 17.4% 17.4% -0.0% 45 2024-07-01 2024-07-01 2024-07-01 2024-07-01 0.6% 0.6% +0.0% 46 2024-07-26 2024-07-27 2024-07-27 2024-07-27 -1.0% -1.0% -0.0% 47 2024-08-05 2024-08-05 2024-09-04 2024-09-04 9.1% 9.1% +0.0% 49 2024-11-06 2024-11-06 2025-01-18 2025-01-18 36.1% 36.1% +0.0% 50 2025-03-04 2025-03-04 2025-05-21 2025-05-21 25.4% 25.4% -0.0% 51 2025-05-30 2025-05-31 2025-06-17 2025-06-17 0.6% 0.6% +0.0% 52 2025-06-20 2025-06-21 2025-07-31 2025-07-31 12.8% 12.8% -0.0% 53 2025-08-01 2025-08-01 2025-11-07 2025-11-07 -14.0% -14.0% -0.0% 54 2025-11-28 2025-11-28 2025-11-28 2025-11-28 -1.8% -1.8% -0.0% 55 2025-12-29 2025-12-29 2025-12-31 2025-12-31 0.7% 0.7% +0.0% 56 2026-01-15 2026-01-16 2026-01-16 2026-01-16 -0.9% -0.9% -0.0% ──────────────────────────────────────────────────────────────────────────────── EXIT-MISMATCHED (same entry, different exit) — 1 trades ──────────────────────────────────────────────────────────────────────────────── TV#48: Python exit 2024-09-27 / TV exit 2024-10-31 (Δ +822h) Python P&L +11.8% / TV P&L +23.3% Python exit bar score: -815.7 → SCORE_CROSSUNDER_MISMATCH TV and Python exited on different score-crossunder events. If score parity passes, this is usually downstream of an earlier lifecycle/export mismatch. bar time score mlp_score entry exit -------------------------------------------------------------------- 13522 2024-09-26 06:00:00 -827.77 -827.77 . . 13523 2024-09-26 12:00:00 -540.85 -540.85 . . 13524 2024-09-26 18:00:00 288.43 288.43 . . 13525 2024-09-27 00:00:00 -692.22 -692.22 . . 13526 2024-09-27 06:00:00 -815.72 -815.72 . X <<< 13527 2024-09-27 12:00:00 -794.67 -794.67 . . 13528 2024-09-27 18:00:00 -781.98 -781.98 . . 13529 2024-09-28 00:00:00 -837.64 -837.64 . . 13530 2024-09-28 06:00:00 -865.67 -865.67 . . ──────────────────────────────────────────────────────────────────────────────── PYTHON-ONLY / IS (5 trades — Python fires in IS period, TV does not) ──────────────────────────────────────────────────────────────────────────────── Entry 2019-06-27 Exit 2019-06-27 P&L -6.5% Python crossunder: 211.9 → -539.5 (threshold 90.0): YES TV exported score crossunder: 211.9 → -539.5: YES (TV should also fire) Entry 2019-08-20 Exit 2019-09-24 P&L -21.5% Python crossunder: 160.6 → -372.4 (threshold 90.0): YES TV exported score crossunder: 160.6 → -372.4: YES (TV should also fire) Entry 2020-05-29 Exit 2020-05-29 P&L -2.2% Python crossunder: 377.5 → -285.7 (threshold 90.0): YES TV exported score crossunder: 377.5 → -285.7: YES (TV should also fire) Entry 2021-10-18 Exit 2021-10-18 P&L +0.4% Python crossunder: 554.6 → -346.4 (threshold 90.0): YES TV exported score crossunder: 554.6 → -346.4: YES (TV should also fire) Entry 2024-10-30 Exit 2024-10-31 P&L -1.4% Python crossunder: 230.6 → -37.0 (threshold 90.0): YES TV exported score crossunder: 230.6 → -37.0: YES (TV should also fire) ──────────────────────────────────────────────────────────────────────────────── TV-ONLY (2 trades — TV fires, Python does not) ──────────────────────────────────────────────────────────────────────────────── TV#2 Entry 2019-05-03 Exit 2019-06-27 P&L +117.8% Python score at signal bar: -639.9 (prev 56.9, threshold 90.0) → Score was already below threshold (no prior above-threshold bar) TV#22 Entry 2021-10-01 Exit 2021-10-18 P&L +39.5% Python score at signal bar: -0.0 (prev -71.6, threshold 90.0) → Score was already below threshold (no prior above-threshold bar) ================================================================================ DIAGNOSTIC RECOMMENDATIONS ================================================================================ [UNMATCHED TRADES] 5 Python-only IS trades and 2 TV-only trades remain. → Do not treat this run as trade-list parity. First confirm the chart export covers the full TV trade-list range and that the Strategy Tester export was generated from the same symbol, timeframe, preset, and script revision. [TV/CHART EXPORT MISMATCH] 2 TV entries lack a matching chart entry marker; 5 chart executable markers are absent from the TV trade list. → The exported Data Window and Strategy Tester files do not describe the same Pine lifecycle, or the Strategy Tester export is from a different preset/script revision. Re-export both from the same chart state before interpreting Python lifecycle differences. [1 SCORE_CROSSUNDER_MISMATCH exits] TV/Python exits landed on different score-crossunder events. → First check score parity. If it passes, treat these as downstream lifecycle/export-state effects from an earlier unmatched entry or exit, not as score-computation drift. → Use --exit-detail flag to see score context on exit bars. Tip: run with --verbose for score context tables on all divergent trades. activation_scores: run tools/diagnose_tv_parity.py for per-component breakdown. MLP: run tools/check_mlp_parity.py before interpreting trade-list differences. ================================================================================