{
  "version": "1.0",
  "agent_role": "NIFTY_OPTION_BUYING_AGENT",
  "global_rules": {
    "scan_interval_seconds": 180,
    "market_regime_required": false,
    "greek_entry_priority": false,
    "max_open_positions": 1,
    "allow_ce_and_pe_simultaneously": false,
    "confidence_levels": {
      "high_confidence": 80,
      "normal_trade": 65,
      "low_confidence": 55,
      "hold": 0
    }
  },
  "market_regimes": {
    "TRENDING_UP": {
      "preferred_option": "CE",
      "entry_confidence": 65,
      "required_conditions": ["spot_above_vwap", "ema20_above_ema50"],
      "confirmation_conditions": [
        "delta_rising",
        "gamma_rising",
        "oi_increasing",
        "volume_increasing",
        "atr_expanding"
      ],
      "minimum_confirmations": 2
    },
    "TRENDING_DOWN": {
      "preferred_option": "PE",
      "entry_confidence": 65,
      "required_conditions": ["spot_below_vwap", "ema20_below_ema50"],
      "confirmation_conditions": [
        "delta_rising",
        "gamma_rising",
        "oi_increasing",
        "volume_increasing",
        "atr_expanding"
      ],
      "minimum_confirmations": 2
    },
    "SIDEWAYS": {
      "preferred_option": "RANGE_REVERSAL",
      "support_trade": {
        "option": "CE",
        "required": ["near_support", "delta_rising", "gamma_rising"]
      },
      "resistance_trade": {
        "option": "PE",
        "required": ["near_resistance", "delta_rising", "gamma_rising"]
      }
    },
    "EXPIRY_DAY": {
      "preferred_data": ["oi_shift", "gamma_expansion", "volume_spike", "strike_migration"],
      "ignore_low_priority": ["rsi", "vega", "theta"],
      "minimum_confidence": 60
    }
  },
  "strike_selection": {
    "steps_from_atm": 5,
    "strikes_to_scan": [
      "ATM-5", "ATM-4", "ATM-3", "ATM-2", "ATM-1",
      "ATM",
      "ATM+1", "ATM+2", "ATM+3", "ATM+4", "ATM+5"
    ],
    "score_weights": {
      "delta": 25,
      "gamma": 25,
      "oi_change": 20,
      "volume_change": 15,
      "iv_change": 10,
      "liquidity": 5
    },
    "selection_rule": "highest_score"
  },
  "greek_entry_rules": {
    "required": ["delta_rising", "gamma_rising"],
    "preferred_delta_range": [0.35, 0.60],
    "confirmation_conditions": [
      "delta_rising",
      "gamma_rising",
      "oi_increasing",
      "volume_increasing"
    ],
    "minimum_confirmations": 2
  },
  "entry_rules": {
    "required_any_two": [
      "delta_rising",
      "gamma_rising",
      "oi_increasing",
      "volume_increasing",
      "breakout_candle",
      "vwap_cross",
      "oi_spike",
      "volume_spike",
      "opening_range_breakout",
      "previous_day_high_break",
      "previous_day_low_break"
    ],
    "minimum_required": 2,
    "enforce_minimum": false
  },
  "fallback_rules": [
    {
      "name": "missing_oi_confirmation",
      "allow_trade_if": ["delta_rising", "gamma_rising", "volume_spike"]
    },
    {
      "name": "missing_volume_confirmation",
      "allow_trade_if": ["delta_rising", "gamma_rising", "oi_increasing"]
    },
    {
      "name": "neutral_pcr",
      "action": "reduce_confidence_5_percent"
    },
    {
      "name": "weak_trend",
      "allow_trade_if": ["delta_rising", "gamma_rising"]
    }
  ],
  "exit_rules": {
    "profit_booking": {
      "high_confidence": { "partial_exit": 20, "full_exit": 35 },
      "normal_trade": { "partial_exit": 15, "full_exit": 25 },
      "low_confidence": { "full_exit": 12 }
    },
    "stop_loss": {
      "premium_loss_percent": 15,
      "gamma_collapse": true,
      "delta_reversal": true,
      "oi_unwinding": true
    },
    "time_based_exit": {
      "expiry_day_no_momentum_minutes": 10,
      "normal_day_no_momentum_minutes": 20
    },
    "trailing_stop": {
      "enabled": true,
      "activate_at_profit_percent": 3,
      "trail_from_peak_percent": 3,
      "momentum_trail_from_peak_percent": 5,
      "min_locked_profit_percent": 1.5
    },
    "quick_profit": {
      "enabled": true,
      "peak_activate_percent": 3,
      "giveback_from_peak_percent": 2.5,
      "min_locked_profit_percent": 1.5
    },
    "momentum_hold": {
      "enabled": true,
      "min_trend_strength": 40,
      "min_momentum_pct": 0.08,
      "defer_trend_break_exit": true,
      "defer_intrabar_profit_book": true,
      "giveback_multiplier": 1.8,
      "require_vwap_alignment": true
    },
    "runner_mode": {
      "enabled": true,
      "lookback_minutes": 10,
      "retrace_lookback_minutes": 10,
      "min_leg_move_points": { "NIFTY50": 60 },
      "min_premium_profit_percent": 8,
      "wide_trail_from_peak_percent": 6,
      "min_locked_profit_percent": 3,
      "full_exit_deferred_until_percent": 50,
      "retrace_disarm_percent": 30,
      "min_trend_strength": 38
    }
  },
  "rejection_rules": {
    "hard_reject": [
      "illiquid_option",
      "wide_spread",
      "gamma_falling",
      "delta_falling",
      "oi_unwinding",
      "market_closing"
    ]
  },
  "learning_rules": {
    "after_trade_close": [
      "store_entry_conditions",
      "store_market_regime",
      "store_delta",
      "store_gamma",
      "store_oi",
      "store_volume",
      "store_profit_loss"
    ],
    "daily_analysis": {
      "identify_most_profitable_regime": true,
      "identify_best_entry_signal": true,
      "identify_worst_signal": true,
      "adjust_signal_weighting": true
    }
  },
  "nifty50": {
    "symbol": "NIFTY50",
    "preferred_trading_hours": ["09:45-12:00", "13:00-15:00"],
    "expected_intraday_move_points": {
      "low_volatility": 80,
      "normal_volatility": 150,
      "high_volatility": 250
    }
  }
}
