Timeframe: 8H (TV fills 1 bar ahead = 0 days 08:00:00 offset) Loading TV trades from: data/mlp/MLPScores_COINBASE_BTCUSD_2026-09-24_8h.csv TV trades: 69 real signal + 0 margin-call Running Python strategy strategy_mlp_scores.py on: data/mlp/COINBASE_BTCUSD, 480.csv Python trades: 74 (Pine timeCondition 2017-12-01 → 2026-09-24; 74 total after time gate) Key params: Entry threshold: -120.0 (use_entry_conf=False) Exit threshold: 270.0 (use_exit_conf=1) Trailing stop: 20.0% ================================================================================ MATCH SUMMARY ================================================================================ Total TV real trades : 69 (coverage through 2026-08-20) Total Python trades : 74 Entry + exit matched : 57 (82.6% of TV) Entry matched, exit Δ : 11 Python-only (extra) : 6 (IS: 6, OOS after 2026-08-20: 0 — OOS are expected, not bugs) TV-only (missed) : 1 ================================================================================ TV/chart entry-marker check: TV entries with exported chart marker : 69/69 Chart executable markers in TV window : 74 (6 not present in TV trade list) First chart executable markers missing from TV: 2017-12-09 16:00:00 2019-02-20 08:00:00 2019-09-04 00:00:00 2022-02-02 00:00:00 2022-03-01 16:00:00 Python cumulative P&L (0.5%/side comm): 11,209.9% TV completed-trade cumulative P&L: 13,405.9% Excluded 1 open TV trade(s) from this completed-trade comparison. → ⚠️ trade paths differ (Python 74 vs TV 69); cumulative totals are NOT comparable. See per-trade table / unmatched section below. Python gross (no commission, reference): 23,605.0% ──────────────────────────────────────────────────────────────────────────────── FULLY MATCHED (57 trades) ──────────────────────────────────────────────────────────────────────────────── # Py Entry TV Entry Py Exit TV Exit Py P&L% TV P&L% Δ P&L% ------------------------------------------------------------------------------ 4 2019-05-12 2019-05-12 2019-05-12 2019-05-13 0.6% 0.6% +0.0% 5 2019-05-13 2019-05-14 2019-05-15 2019-05-15 0.1% 0.1% +0.0% 6 2019-05-17 2019-05-17 2019-05-28 2019-05-28 18.3% 18.2% +0.0% 8 2019-07-10 2019-07-10 2019-07-10 2019-07-11 -3.1% -3.1% +0.0% 10 2020-01-07 2020-01-07 2020-02-11 2020-02-11 30.2% 30.2% -0.0% 11 2020-02-12 2020-02-12 2020-03-07 2020-03-07 -13.3% -13.3% -0.0% 12 2020-03-24 2020-03-24 2020-05-01 2020-05-01 31.4% 31.3% +0.0% 13 2020-05-01 2020-05-02 2020-07-30 2020-07-31 24.6% 24.6% +0.0% 14 2020-07-31 2020-07-31 2020-08-02 2020-08-03 -1.7% -1.7% +0.0% 15 2020-08-18 2020-08-19 2020-09-02 2020-09-02 -2.8% -2.9% +0.0% 16 2020-09-17 2020-09-17 2020-09-17 2020-09-17 -1.4% -1.4% +0.0% 17 2020-09-30 2020-09-30 2020-10-24 2020-10-24 21.4% 21.4% -0.0% 18 2020-10-25 2020-10-25 2020-11-22 2020-11-22 41.5% 41.5% -0.0% 19 2020-12-03 2020-12-03 2020-12-16 2020-12-16 4.8% 4.8% +0.0% 20 2020-12-20 2020-12-20 2020-12-20 2020-12-20 0.0% 0.0% +0.0% 21 2020-12-20 2020-12-21 2021-01-09 2021-01-09 71.3% 71.3% -0.0% 22 2021-01-20 2021-01-20 2021-02-03 2021-02-04 4.5% 4.5% -0.0% 23 2021-02-05 2021-02-06 2021-02-11 2021-02-11 15.7% 15.6% +0.1% 26 2021-07-27 2021-07-27 2021-09-02 2021-09-03 31.3% 31.3% -0.0% 27 2021-09-05 2021-09-05 2021-09-06 2021-09-07 4.6% 4.6% -0.0% 28 2021-09-16 2021-09-16 2021-10-06 2021-10-06 5.4% 5.4% -0.0% 29 2021-10-08 2021-10-08 2021-10-17 2021-10-17 9.7% 9.7% -0.0% 30 2021-10-18 2021-10-18 2021-10-22 2021-10-22 1.2% 1.2% -0.0% 31 2021-11-10 2021-11-10 2021-11-10 2021-11-10 1.9% 1.9% -0.0% 35 2023-01-10 2023-01-10 2023-01-15 2023-01-15 19.5% 19.5% -0.0% 36 2023-01-16 2023-01-16 2023-01-22 2023-01-22 7.5% 7.5% -0.0% 38 2023-03-19 2023-03-20 2023-03-24 2023-03-24 -0.1% -0.1% +0.0% 39 2023-03-25 2023-03-25 2023-04-14 2023-04-14 10.7% 10.7% +0.0% 40 2023-04-15 2023-04-15 2023-04-29 2023-04-29 -4.5% -4.5% -0.0% 41 2023-05-04 2023-05-04 2023-05-30 2023-05-30 -5.1% -5.1% -0.0% 42 2023-06-22 2023-06-22 2023-07-15 2023-07-15 -0.3% -0.3% +0.0% 43 2023-08-09 2023-08-10 2023-08-10 2023-08-10 -1.3% -1.3% -0.0% 44 2023-08-30 2023-08-31 2023-11-11 2023-11-11 34.4% 34.4% -0.0% 45 2023-11-16 2023-11-16 2023-12-23 2023-12-23 19.0% 19.1% -0.0% 46 2023-12-25 2023-12-25 2024-01-12 2024-01-12 1.7% 1.7% -0.0% 47 2024-01-28 2024-01-28 2024-02-14 2024-02-15 21.5% 21.5% +0.0% 48 2024-02-15 2024-02-15 2024-03-13 2024-03-13 38.5% 38.5% -0.0% 49 2024-03-15 2024-03-15 2024-03-27 2024-03-28 0.9% 0.9% +0.0% 50 2024-04-08 2024-04-08 2024-04-10 2024-04-10 -2.9% -2.9% +0.0% 51 2024-05-16 2024-05-17 2024-06-07 2024-06-07 7.8% 7.8% -0.0% 52 2024-07-11 2024-07-11 2024-07-18 2024-07-18 11.5% 11.5% +0.0% 53 2024-07-24 2024-07-24 2024-07-30 2024-07-30 -0.8% -0.8% +0.0% 54 2024-08-14 2024-08-14 2024-08-25 2024-08-25 6.4% 6.4% +0.0% 55 2024-08-27 2024-08-27 2024-08-27 2024-08-27 -2.9% -2.9% +0.0% 56 2024-09-19 2024-09-19 2024-10-16 2024-10-16 5.0% 5.0% +0.0% 57 2024-10-18 2024-10-18 2024-11-13 2024-11-13 26.0% 26.0% +0.0% 58 2024-11-15 2024-11-15 2024-12-07 2024-12-07 11.8% 11.8% -0.0% 59 2024-12-08 2024-12-08 2024-12-18 2024-12-18 3.7% 3.6% +0.0% 60 2025-01-03 2025-01-03 2025-01-19 2025-01-19 6.7% 6.7% -0.0% 61 2025-04-14 2025-04-14 2025-04-24 2025-04-25 10.7% 10.7% +0.0% 62 2025-04-28 2025-04-28 2025-05-24 2025-05-24 14.9% 14.9% -0.0% 63 2025-05-26 2025-05-26 2025-08-13 2025-08-13 8.8% 8.8% -0.0% 64 2025-08-14 2025-08-15 2025-09-19 2025-09-19 -2.2% -2.2% -0.0% 65 2025-09-30 2025-10-01 2025-10-28 2025-10-28 -0.5% -0.5% +0.0% 66 2026-01-15 2026-01-15 2026-01-15 2026-01-15 -0.9% -0.9% +0.0% 67 2026-04-07 2026-04-07 2026-04-15 2026-04-15 6.6% 6.6% +0.0% 69 2026-08-19 2026-08-19 2026-08-19 2026-08-20 0.1% 0.1% +0.0% ──────────────────────────────────────────────────────────────────────────────── EXIT-MISMATCHED (same entry, different exit) — 11 trades ──────────────────────────────────────────────────────────────────────────────── TV#1: Python exit 2017-12-09 / TV exit 2017-12-10 (Δ +24h) Python P&L +46.0% / TV P&L +33.8% Trailing stop 20% active → TRAILING_STOP Python exit bar score: 98.9 Python trail_high uses bar high (same as Pine); stop triggered at close. Residual timing difference is intrinsic. bar time score mlp_score entry exit -------------------------------------------------------------------- 3177 2017-12-08 00:00:00 -171.37 -171.37 . . 3178 2017-12-08 08:00:00 103.24 103.24 . . 3179 2017-12-08 16:00:00 -264.63 -264.63 . . 3180 2017-12-09 00:00:00 5.57 5.57 . . 3181 2017-12-09 08:00:00 98.87 98.87 . X <<< 3182 2017-12-09 16:00:00 -451.24 -451.24 E . 3183 2017-12-10 00:00:00 -223.78 -223.78 . . 3184 2017-12-10 08:00:00 -523.30 -523.30 . . 3185 2017-12-10 16:00:00 -485.45 -485.45 . . TV#3: Python exit 2019-01-29 / TV exit 2019-05-11 (Δ +2464h) Python P&L -11.0% / TV P&L +84.2% Trailing stop 20% active → TRAILING_STOP Python exit bar score: -900.0 Python trail_high uses bar high (same as Pine); stop triggered at close. Residual timing difference is intrinsic. bar time score mlp_score entry exit -------------------------------------------------------------------- 4423 2019-01-27 16:00:00 -921.09 -921.09 . . 4424 2019-01-28 00:00:00 -912.49 -912.49 . . 4425 2019-01-28 08:00:00 -914.05 -914.05 . . 4426 2019-01-28 16:00:00 -873.25 -873.25 . . 4427 2019-01-29 00:00:00 -900.02 -900.02 . X <<< 4428 2019-01-29 08:00:00 -904.62 -904.62 . . 4429 2019-01-29 16:00:00 -899.42 -899.42 . . 4430 2019-01-30 00:00:00 -647.98 -647.98 . . 4431 2019-01-30 08:00:00 -853.21 -853.21 . . TV#7: Python exit 2019-06-30 / TV exit 2019-07-01 (Δ +32h) Python P&L +33.5% / TV P&L +25.0% Trailing stop 20% active → TRAILING_STOP Python exit bar score: -310.8 Python trail_high uses bar high (same as Pine); stop triggered at close. Residual timing difference is intrinsic. bar time score mlp_score entry exit -------------------------------------------------------------------- 4880 2019-06-29 00:00:00 -656.99 -656.99 . . 4881 2019-06-29 08:00:00 -721.91 -721.91 . . 4882 2019-06-29 16:00:00 -540.79 -540.79 . . 4883 2019-06-30 00:00:00 -539.53 -539.53 . . 4884 2019-06-30 08:00:00 -310.79 -310.78 . X <<< 4885 2019-06-30 16:00:00 -853.32 -853.32 . . 4886 2019-07-01 00:00:00 -791.23 -791.23 . . 4887 2019-07-01 08:00:00 -840.84 -840.84 . . 4888 2019-07-01 16:00:00 -863.85 -863.85 . . TV#9: Python exit 2019-08-15 / TV exit 2019-09-25 (Δ +984h) Python P&L -8.9% / TV P&L -21.0% Trailing stop 20% active → TRAILING_STOP Python exit bar score: -914.9 Python trail_high uses bar high (same as Pine); stop triggered at close. Residual timing difference is intrinsic. bar time score mlp_score entry exit -------------------------------------------------------------------- 5017 2019-08-13 16:00:00 -860.31 -860.31 . . 5018 2019-08-14 00:00:00 -883.24 -883.24 . . 5019 2019-08-14 08:00:00 -859.37 -859.37 . . 5020 2019-08-14 16:00:00 -892.24 -892.24 . . 5021 2019-08-15 00:00:00 -914.93 -914.93 . X <<< 5022 2019-08-15 08:00:00 -923.00 -923.00 . . 5023 2019-08-15 16:00:00 -899.58 -899.58 . . 5024 2019-08-16 00:00:00 -909.68 -909.68 . . 5025 2019-08-16 08:00:00 -905.59 -905.59 . . TV#24: Python exit 2021-02-26 / TV exit 2021-02-28 (Δ +64h) Python P&L -7.2% / TV P&L -10.4% Trailing stop 20% active → TRAILING_STOP Python exit bar score: -900.8 Python trail_high uses bar high (same as Pine); stop triggered at close. Residual timing difference is intrinsic. bar time score mlp_score entry exit -------------------------------------------------------------------- 6700 2021-02-24 16:00:00 -790.66 -790.66 . . 6701 2021-02-25 00:00:00 -792.13 -792.13 . . 6702 2021-02-25 08:00:00 -703.22 -703.22 . . 6703 2021-02-25 16:00:00 -731.41 -731.41 . . 6704 2021-02-26 00:00:00 -900.83 -900.83 . X <<< 6705 2021-02-26 08:00:00 -863.66 -863.66 . . 6706 2021-02-26 16:00:00 -820.68 -820.68 . . 6707 2021-02-27 00:00:00 -888.58 -888.58 . . 6708 2021-02-27 08:00:00 -866.36 -866.36 . . TV#25: Python exit 2021-04-22 / TV exit 2021-04-23 (Δ +16h) Python P&L -10.2% / TV P&L -16.8% Trailing stop 20% active → TRAILING_STOP Python exit bar score: -820.0 Python trail_high uses bar high (same as Pine); stop triggered at close. Residual timing difference is intrinsic. bar time score mlp_score entry exit -------------------------------------------------------------------- 6867 2021-04-21 08:00:00 -845.06 -845.06 . . 6868 2021-04-21 16:00:00 -856.53 -856.53 . . 6869 2021-04-22 00:00:00 -832.35 -832.35 . . 6870 2021-04-22 08:00:00 -852.45 -852.45 . . 6871 2021-04-22 16:00:00 -820.04 -820.04 . X <<< 6872 2021-04-23 00:00:00 -899.58 -899.58 . . 6873 2021-04-23 08:00:00 -874.36 -874.36 . . 6874 2021-04-23 16:00:00 -874.11 -874.11 . . 6875 2021-04-24 00:00:00 -885.86 -885.86 . . TV#32: Python exit 2022-01-22 / TV exit 2022-03-30 (Δ +1616h) Python P&L -20.2% / TV P&L +8.1% Trailing stop 20% active → TRAILING_STOP Python exit bar score: -917.6 Python trail_high uses bar high (same as Pine); stop triggered at close. Residual timing difference is intrinsic. bar time score mlp_score entry exit -------------------------------------------------------------------- 7691 2022-01-21 00:00:00 -917.81 -917.81 . . 7692 2022-01-21 08:00:00 -920.91 -920.91 . . 7693 2022-01-21 16:00:00 -901.64 -901.64 . . 7694 2022-01-22 00:00:00 -932.44 -932.44 . . 7695 2022-01-22 08:00:00 -917.58 -917.58 . X <<< 7696 2022-01-22 16:00:00 -921.53 -921.53 . . 7697 2022-01-23 00:00:00 -934.71 -934.71 . . 7698 2022-01-23 08:00:00 -916.27 -916.27 . . 7699 2022-01-23 16:00:00 -915.38 -915.38 . . TV#33: Python exit 2022-08-27 / TV exit 2022-09-07 (Δ +256h) Python P&L -19.4% / TV P&L -24.2% Trailing stop 20% active → TRAILING_STOP Python exit bar score: -924.3 Python trail_high uses bar high (same as Pine); stop triggered at close. Residual timing difference is intrinsic. bar time score mlp_score entry exit -------------------------------------------------------------------- 8342 2022-08-26 00:00:00 -808.76 -808.76 . . 8343 2022-08-26 08:00:00 -803.87 -803.87 . . 8344 2022-08-26 16:00:00 -852.03 -852.03 . . 8345 2022-08-27 00:00:00 -931.18 -931.18 . . 8346 2022-08-27 08:00:00 -924.27 -924.27 . X <<< 8347 2022-08-27 16:00:00 -945.06 -945.06 . . 8348 2022-08-28 00:00:00 -942.36 -942.36 . . 8349 2022-08-28 08:00:00 -945.94 -945.94 . . 8350 2022-08-28 16:00:00 -922.26 -922.26 . . TV#34: Python exit 2022-11-09 / TV exit 2022-11-10 (Δ +16h) Python P&L -16.3% / TV P&L -22.2% Trailing stop 20% active → TRAILING_STOP Python exit bar score: -883.5 Python trail_high uses bar high (same as Pine); stop triggered at close. Residual timing difference is intrinsic. bar time score mlp_score entry exit -------------------------------------------------------------------- 8564 2022-11-08 00:00:00 -840.69 -840.69 . . 8565 2022-11-08 08:00:00 -870.79 -870.79 . . 8566 2022-11-08 16:00:00 -901.34 -901.34 . . 8567 2022-11-09 00:00:00 -917.50 -917.50 . . 8568 2022-11-09 08:00:00 -883.55 -883.55 . X <<< 8569 2022-11-09 16:00:00 -871.60 -871.60 . . 8570 2022-11-10 00:00:00 -903.15 -903.15 . . 8571 2022-11-10 08:00:00 -894.86 -894.86 . . 8572 2022-11-10 16:00:00 -909.40 -909.40 . . TV#37: Python exit 2023-03-10 / TV exit 2023-03-18 (Δ +192h) Python P&L -14.3% / TV P&L +17.9% Trailing stop 20% active → TRAILING_STOP Python exit bar score: -911.2 Python trail_high uses bar high (same as Pine); stop triggered at close. Residual timing difference is intrinsic. bar time score mlp_score entry exit -------------------------------------------------------------------- 8926 2023-03-08 16:00:00 -892.62 -892.62 . . 8927 2023-03-09 00:00:00 -928.12 -928.12 . . 8928 2023-03-09 08:00:00 -905.73 -905.73 . . 8929 2023-03-09 16:00:00 -835.80 -835.80 . . 8930 2023-03-10 00:00:00 -911.20 -911.20 . X <<< 8931 2023-03-10 08:00:00 -844.60 -844.60 . . 8932 2023-03-10 16:00:00 -839.98 -839.98 . . 8933 2023-03-11 00:00:00 -850.51 -850.51 . . 8934 2023-03-11 08:00:00 -886.86 -886.86 . . TV#68: Python exit 2026-06-03 / TV exit 2026-06-05 (Δ +56h) Python P&L -16.1% / TV P&L -23.2% Trailing stop 20% active → TRAILING_STOP Python exit bar score: -886.5 Python trail_high uses bar high (same as Pine); stop triggered at close. Residual timing difference is intrinsic. bar time score mlp_score entry exit -------------------------------------------------------------------- 12470 2026-06-02 00:00:00 -880.47 -880.47 . . 12471 2026-06-02 08:00:00 -879.80 -879.80 . . 12472 2026-06-02 16:00:00 -900.55 -900.55 . . 12473 2026-06-03 00:00:00 -903.40 -903.40 . . 12474 2026-06-03 08:00:00 -886.50 -886.50 . X <<< 12475 2026-06-03 16:00:00 -901.57 -901.57 . . 12476 2026-06-04 00:00:00 -892.22 -892.22 . . 12477 2026-06-04 08:00:00 -896.93 -896.93 . . 12478 2026-06-04 16:00:00 -900.78 -900.78 . . ──────────────────────────────────────────────────────────────────────────────── PYTHON-ONLY / IS (6 trades — Python fires in IS period, TV does not) ──────────────────────────────────────────────────────────────────────────────── Entry 2017-12-09 Exit 2017-12-18 P&L +21.9% Python crossunder: 98.9 → -451.2 (threshold -120.0): YES TV exported score crossunder: 98.9 → -451.2: YES (TV should also fire) Entry 2019-02-20 Exit 2019-05-11 P&L +76.0% Python crossunder: 16.3 → -145.6 (threshold -120.0): YES TV exported score crossunder: 16.3 → -145.6: YES (TV should also fire) Entry 2019-09-04 Exit 2019-09-24 P&L -20.1% Python crossunder: -115.4 → -652.5 (threshold -120.0): YES TV exported score crossunder: -115.4 → -652.5: YES (TV should also fire) Entry 2022-02-02 Exit 2022-02-24 P&L -8.7% Python crossunder: 31.9 → -847.1 (threshold -120.0): YES TV exported score crossunder: 31.9 → -847.1: YES (TV should also fire) Entry 2022-03-01 Exit 2022-03-30 P&L +5.1% Python crossunder: 182.7 → -738.7 (threshold -120.0): YES TV exported score crossunder: 182.7 → -738.7: YES (TV should also fire) Entry 2023-03-13 Exit 2023-03-17 P&L +12.8% Python crossunder: 26.6 → -127.8 (threshold -120.0): YES TV exported score crossunder: 26.6 → -127.8: YES (TV should also fire) ──────────────────────────────────────────────────────────────────────────────── TV-ONLY (1 trades — TV fires, Python does not) ──────────────────────────────────────────────────────────────────────────────── TV#2 Entry 2017-12-12 Exit 2017-12-18 P&L +8.1% Python DID fire crossunder here (state diverged earlier?) ================================================================================ DIAGNOSTIC RECOMMENDATIONS ================================================================================ [UNMATCHED TRADES] 6 Python-only IS trades and 1 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] 0 TV entries lack a matching chart entry marker; 6 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. [11 TRAILING_STOP exits] Trailing stop 20% active. → Python trail_high uses bar high (same as Pine); timing difference from close-evaluation vs intrabar evaluation in Pine. Not a bug — intrinsic fill difference. → 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. ================================================================================