{
 "schema_version": 1,
 "selected_on": "ETH development entry fold mean, >=20 trades",
 "frozen_config_ids": {
  "1": "4941d5d4a317",
  "3": "65c35983c839",
  "5": "115cad5fc8f8",
  "15": "fb01a045c2be"
 },
 "parameters": {
  "1m": {
   "period": 40,
   "memory": 6,
   "threshold": 40,
   "regime": "range",
   "atr_min": 60,
   "atr_max": 100,
   "mtf": "align",
   "cooldown": 3,
   "sigma": 2.25,
   "weight_sigma_both": 0,
   "weight_sigma_div": 3,
   "weight_rsi": 1,
   "weight_bb": 1,
   "weight_stoch": 0,
   "weight_macd": 0,
   "weight_supertrend": 0,
   "weight_ribbon": 0,
   "weight_volume": 0,
   "weight_box": 0
  },
  "3m": {
   "period": 40,
   "memory": 8,
   "threshold": 40,
   "regime": "box_left",
   "atr_min": 0,
   "atr_max": 100,
   "mtf": "none",
   "cooldown": 3,
   "sigma": 2.0,
   "weight_sigma_both": 0,
   "weight_sigma_div": 3,
   "weight_rsi": 1,
   "weight_bb": 1,
   "weight_stoch": 0,
   "weight_macd": 0,
   "weight_supertrend": 0,
   "weight_ribbon": 0,
   "weight_volume": 0,
   "weight_box": 0
  },
  "5m": {
   "period": 60,
   "memory": 6,
   "threshold": 40,
   "regime": "box_left",
   "atr_min": 0,
   "atr_max": 100,
   "mtf": "none",
   "cooldown": 3,
   "sigma": 1.75,
   "weight_sigma_both": 2,
   "weight_sigma_div": 0,
   "weight_rsi": 1,
   "weight_bb": 1,
   "weight_stoch": 1,
   "weight_macd": 0,
   "weight_supertrend": 0,
   "weight_ribbon": 0,
   "weight_volume": 0,
   "weight_box": 0
  },
  "15m": {
   "period": 60,
   "memory": 1,
   "threshold": 40,
   "regime": "range",
   "atr_min": 60,
   "atr_max": 100,
   "mtf": "none",
   "cooldown": 3,
   "sigma": 1.75,
   "weight_sigma_both": 0,
   "weight_sigma_div": 3,
   "weight_rsi": 1,
   "weight_bb": 1,
   "weight_stoch": 0,
   "weight_macd": 0,
   "weight_supertrend": 0,
   "weight_ribbon": 0,
   "weight_volume": 0,
   "weight_box": 0
  }
 },
 "keys": {
  "period": "Price SMA/population SD period; RSI14 and RSI bands20 fixed.",
  "memory": "Vote expires when event age >= this many signal-TF bars.",
  "threshold": "Absolute confluence score required, 0 < threshold <= 100.",
  "regime": "any; trend=aligned ribbon; range=neutral ribbon; counter=opposed ribbon; box_left=matching range-box departure within memory bars.",
  "atr_min": "Minimum trailing ATR14 rank percentile, inclusive, last 200 valid observations including current.",
  "atr_max": "Maximum trailing ATR14 rank percentile, inclusive.",
  "mtf": "none, align or counter against latest fully closed 15m ribbon.",
  "cooldown": "Minimum signal-TF bars between published entry/reversal events.",
  "sigma": "Both-sigma threshold; divergence price threshold is sigma - 0.5.",
  "weight_sigma_both": "Nonnegative weight for sigma_both; zero disables it. Score=100*sum(weight*recent_side)/sum(active weights).",
  "weight_sigma_div": "Nonnegative weight for sigma_div; zero disables it. Score=100*sum(weight*recent_side)/sum(active weights).",
  "weight_rsi": "Nonnegative weight for rsi; zero disables it. Score=100*sum(weight*recent_side)/sum(active weights).",
  "weight_bb": "Nonnegative weight for bb; zero disables it. Score=100*sum(weight*recent_side)/sum(active weights).",
  "weight_stoch": "Nonnegative weight for stoch; zero disables it. Score=100*sum(weight*recent_side)/sum(active weights).",
  "weight_macd": "Nonnegative weight for macd; zero disables it. Score=100*sum(weight*recent_side)/sum(active weights).",
  "weight_supertrend": "Nonnegative weight for supertrend; zero disables it. Score=100*sum(weight*recent_side)/sum(active weights).",
  "weight_ribbon": "Nonnegative weight for ribbon; zero disables it. Score=100*sum(weight*recent_side)/sum(active weights).",
  "weight_volume": "Nonnegative weight for volume; zero disables it. Score=100*sum(weight*recent_side)/sum(active weights).",
  "weight_box": "Nonnegative weight for box; zero disables it. Score=100*sum(weight*recent_side)/sum(active weights)."
 },
 "execution": {
  "closed_bars_only": true,
  "fill": "next bar open",
  "exits": "Opposite entry signal; execution also enforces step-1 bracket/120-bar cap/liquidation.",
  "warmup": "ATR percentile needs 213 bars; recursive indicators need complete seeded history.",
  "forming_bar": "Ignored; never changes state or flags."
 }
}
