{
  "non_promoting": true,
  "protocol": "docs/mlp_volatility_stop_protocol_2026_09_21.md",
  "inputs": {
    "tf": "4H",
    "data": "data/mlp/COINBASE_BTCUSD, 240.csv",
    "data_sha256": "d7901c4b1828a9620fce9c51f1db8d00775f6b98a27b0db4e4ed94a57a9711d2",
    "winner_sha256": "0c1a3d5acf8409d047c58d4fca4c2e32c8d6ef950fe95cebb540b34222a97aab",
    "weights_sha256": "81bdd437f7ebcaf5daa302eed574663e8070bd5e009d5e5894ad8ce5a6ec73e5",
    "params": {
      "mlp_weights_file": "/Users/jameslopez/projects/TradingBot25/strategies/params/mlp/mlp_weights_COINBASE_BTCUSD_4H_bb50_seed3020.json",
      "i_long_entry_activation_threshold": -190.0,
      "i_long_exit_activation_threshold": 220.0,
      "i_long_exit_activation_confirmation_threshold": -240.0,
      "i_trailing_stop_threshold": 5.0,
      "i_use_long_exit_confirmation": true,
      "i_use_long_entry_confirmation": false,
      "i_regime_window": 0.0,
      "i_regime_entry_min_score": -1000.0,
      "i_mvrv_suppress_bear": false,
      "i_exit_score_window": 1.0,
      "i_entry_score_window": 1.0,
      "Total Trades": "58",
      "Total P&L %": "1601.931224736312",
      "Sharpe Ratio": "0.7203648614036993",
      "Sortino Ratio": "1.19293427736661",
      "Calmar Ratio": "0.31084077346344097",
      "P&L/DD Ratio": "84.41573607398236",
      "Max Drawdown %": "-18.97668964625709",
      "% In Market": "16.813375408293197",
      "OOS_Total Trades": "3",
      "OOS_Total P&L %": "-10.310475067380253",
      "OOS_Sortino Ratio": "-0.984960164737144",
      "OOS_Bear_Pct": "23.857142857142858",
      "_pine_time_start": "2017-12-01"
    },
    "first": "2017-02-12 00:00:00",
    "last": "2026-09-24 12:00:00",
    "excluded_leading_warmup_rows": 252,
    "excluded_tail_rows": 1,
    "warnings": [
      "first bar 2017-01-01 is after TRAIN_START 2015-01-01 \u2014 indicator warm-up may be short",
      "3 time gaps > 1.5\u00d74H (largest 0 days 16:00:00)"
    ],
    "fresh": false,
    "untouched": false
  },
  "variants": [
    "baseline",
    "atr_5",
    "fixed_atr_5",
    "atr_7_5",
    "fixed_atr_7_5"
  ],
  "windows": [
    [
      "training",
      "training",
      "2017-12-01",
      "2020-12-31"
    ],
    [
      "validation",
      "2021-01",
      "2021-01-01",
      "2021-12-31"
    ],
    [
      "validation",
      "2022-01",
      "2022-01-01",
      "2022-12-31"
    ],
    [
      "validation",
      "2023-01",
      "2023-01-01",
      "2023-12-31"
    ],
    [
      "historical_evaluation",
      "2024-01",
      "2024-01-01",
      "2024-09-30"
    ],
    [
      "historical_evaluation",
      "2024-10",
      "2024-10-01",
      "2025-09-30"
    ],
    [
      "historical_evaluation",
      "2025-10",
      "2025-10-01",
      "2026-02-28"
    ],
    [
      "previously_inspected_later",
      "later_2026",
      "2026-03-01",
      "2026-09-24"
    ]
  ],
  "selection_sha256_before_evaluation": "c6669ad0e66609dfd015a412723d571b02b83b6d6f816597e579c2b228cbd641",
  "environment": {
    "python": "3.12.14",
    "numpy": "2.2.6",
    "pandas": "3.0.3"
  },
  "source_sha256": {
    "config.py": "2ad84bcf3427ec07afe436c54a8557245aabf72feb3e099c7b28fba86c1a72e0",
    "docs/mlp_volatility_stop_protocol_2026_09_21.md": "fad2e37d394d400d9ae9892cbd989a07ef23377746338c79f6a6e56f0e2e06fb",
    "strategies/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "strategies/library_activation_scores.py": "13ade8ebc5d635e2bd256caee9fb845321268050c508f44fdba5692ee8e01eff",
    "strategies/mlp_learned_exit.py": "aed0a256d2f7149562fd078df150b866af8602d14496571a958320a7086bc191",
    "strategies/mlp_score_structure.py": "0b1f90d3a1cad68b3792affa192717621757dee528f4122e46c81005d089f937",
    "strategies/mlp_state_policy.py": "1fe6e7019259719e7a99e7c8f39a04daa3cae04cfa9000a34031443c5457caa3",
    "strategies/mlp_temporal_features.py": "62779a1752356c022488099bd4934aae92996ddbdfdc58eb79f676771e6466b5",
    "strategies/mlp_volatility_stop.py": "488b7437acf2839fe4e6b0acaff31c63568fca1580525bdd462d29a0fab6075b",
    "strategies/strategy_activation_scores.py": "b5f3d7e96ac9b1b962a26496d0a240f4751cf2fff8dd8f7ed3095bc047a8b6a3",
    "strategies/strategy_mlp_scores.py": "8aeee0d227ca14087ffc019eee260b41e67dc69237acfaff049db00acc3fcb8b",
    "tests/test_mlp_volatility_stop.py": "798c3a6e0bff061015e337bff69d8215406376b6c4e3a6d764ff25b216c1a3ca",
    "tools/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "tools/check_pine.py": "b874d59d64ec33112dd7403d50b5f411bf0603dad63d16606e4b01f6dd253d29",
    "tools/run_mlp_learned_exit_experiment.py": "76a5480432c12b3d2fa070060d77e8160c08b8efcdcfd76f8b08642a5a75b40e",
    "tools/run_mlp_score_structure_experiment.py": "d954d6b63c29aa868712418cd2ff2005f530f50cd2d9ef618d3fd6474caf6bbb",
    "tools/run_mlp_state_policy_experiment.py": "87217bd1dcf56ccc369acc6071819ebab2b432d15dc1725e577ba942d6992964",
    "tools/run_mlp_volatility_stop_experiment.py": "f85f3abfbe7e45a240411df449712ab0a2a630617a354ac9d6ecc6a8fb5a9151",
    "tools/sync_params.py": "af6a856b863f3fbcad6043ef337ac4f0cfc300118b268c21b33a87fe71f822bb",
    "tools/validate_chart_data.py": "4886b165161778eb27640172e768fe9aa7e1f1570de156e0abced3271307616b"
  },
  "outputs_sha256": {
    "prerequisites.json": "7d748325b5bea843fc7b74615e7e59f0b5477d010a5db15b69e814badbcc428e",
    "calibration.json": "5f9f39b23d6f514d642428bb0636a77fa184a6b51acc2d1cfc27a5b9cc2c64ef",
    "selection.json": "c6669ad0e66609dfd015a412723d571b02b83b6d6f816597e579c2b228cbd641",
    "metrics.csv": "04704ec16198f84a2a1aeb32c73420a369dcc35e760710758b848623d4d3b43b",
    "paired_metrics.csv": "e4bb1673e981c6754067599f9fa13ee277054c59e30511ec562e2d603f4eaa05",
    "bar_traces.csv.gz": "fdfac3cca8172df66d117619aaef22ff162f18b07312e9acbb2c314c3720cbb0",
    "events.csv": "afc70f32700475b9fd2b7aa7c15a7a93b4c71093742ffb3e4eb42ecb60f381cd",
    "event_summary.csv": "1363941080efe4265ba36b042ede9707830406a71d7b460e63fb254c83ecdc4e"
  }
}
