{
  "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": "edab76e18b7c03978b5b93930a36e6c8b870501c7944218171285dfc10c31bcb",
    "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-10-07 16:00:00",
    "last": "2026-08-21 12:00:00",
    "excluded_leading_warmup_rows": 0,
    "excluded_tail_rows": 1,
    "warnings": [
      "first bar 2017-10-07 is after TRAIN_START 2015-01-01 \u2014 indicator warm-up may be short",
      "2 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-08-21"
    ]
  ],
  "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": "cc6a4ea691b3f43037bb1ed821c3e67b3e86a6df624022c01754ed69fa0c1675",
    "strategies/strategy_activation_scores.py": "f8efc09fa67aa120e7980ad50731c70058065f885cc3bc207f993f51b550fcc0",
    "strategies/strategy_mlp_scores.py": "8aeee0d227ca14087ffc019eee260b41e67dc69237acfaff049db00acc3fcb8b",
    "tests/test_mlp_volatility_stop.py": "97e9162c8bb5e09b2dee82fcdccd27ae4384a67024984f960c883939015fd5db",
    "tools/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "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": "ffa23a1404651a8812b39111db4b8c8075c0fceec06e746dbcdc36acd380c4ee",
    "tools/validate_chart_data.py": "4886b165161778eb27640172e768fe9aa7e1f1570de156e0abced3271307616b"
  },
  "outputs_sha256": {
    "prerequisites.json": "7906332359d7008a07781282c52766c5939de535f2536a0e1c5640d9ebaa69fe",
    "calibration.json": "5f9f39b23d6f514d642428bb0636a77fa184a6b51acc2d1cfc27a5b9cc2c64ef",
    "selection.json": "c6669ad0e66609dfd015a412723d571b02b83b6d6f816597e579c2b228cbd641",
    "metrics.csv": "5e511f5794fe6d9018910674b83996ea1424db6b0548812d570b1da3605ef16b",
    "paired_metrics.csv": "6ceafe08a3a20f31afc82f77682fcb61810a2ddf3909b8e0e9d94a3edbc432ee",
    "bar_traces.csv.gz": "396be7a474e48cc4e20098bfc1d21c07a55d4a18ff9200da654a47513f68482c",
    "events.csv": "18dd1aa4d92c5a29c86fdc4590fa2dd718fd9fe5b52a524cd54d44dd46d9759b",
    "event_summary.csv": "356a905e8c6a59570f613468a5bd9d29a307bfe89e5922573ef08a1062f7e88f"
  }
}
