# strategy.yaml — Cerberus Bite golden config v1.0.0 # # Source of truth for every threshold consumed by the rule engine. # Modifying this file is an explicit decision of Adriano. Each change # bumps `config_version`, regenerates `config_hash` (cerbero-bite # config hash), and lands as a separate commit with the motivation in # the commit message. config_version: "1.0.0" config_hash: "f4bfebbb048bed7efa5c0fb71dc188619264edbe8dd09bb195bba8350e609d9c" last_review: "2026-04-26" last_reviewer: "Adriano" asset: symbol: "ETH" exchange: "deribit" entry: cron: "0 14 * * MON" skip_holidays_country: "IT" capital_min_usd: "720" dvol_min: "35" dvol_max: "90" funding_perp_abs_max_annualized: "0.80" eth_holdings_pct_max: "0.30" no_position_concurrent: true exclude_macro_severity: ["high"] exclude_macro_countries: ["US", "EU"] trend_window_days: 30 trend_bull_threshold_pct: "0.05" trend_bear_threshold_pct: "-0.05" funding_bull_threshold_annualized: "0.20" funding_bear_threshold_annualized: "-0.20" iron_condor_dvol_min: "55" iron_condor_adx_max: "20" iron_condor_trend_neutral_band_pct: "0.05" structure: dte_target: 18 dte_min: 14 dte_max: 21 short_strike: delta_target: "0.12" delta_min: "0.10" delta_max: "0.15" distance_otm_pct_min: "0.15" distance_otm_pct_max: "0.25" spread_width: target_pct_of_spot: "0.04" min_pct_of_spot: "0.03" max_pct_of_spot: "0.05" credit_to_width_ratio_min: "0.30" liquidity: open_interest_min: 100 volume_24h_min: 20 bid_ask_spread_pct_max: "0.15" book_depth_top3_min: 5 slippage_pct_of_credit_max: "0.08" sizing: kelly_fraction: "0.13" cap_per_trade_eur: "200" cap_aggregate_open_eur: "1000" max_concurrent_positions: 1 max_contracts_per_trade: 4 dvol_adjustment: - {dvol_under: "45", multiplier: "1.00"} - {dvol_under: "60", multiplier: "0.85"} - {dvol_under: "80", multiplier: "0.65"} dvol_no_entry_threshold: "80" exit: profit_take_pct_of_credit: "0.50" stop_loss_mark_x_credit: "2.50" vol_stop_dvol_increase: "10" time_stop_dte_remaining: 7 time_stop_skip_if_close_to_profit_pct: "0.70" delta_breach_threshold: "0.30" adverse_move_4h_pct: "0.05" monitor_cron: "0 2,14 * * *" user_confirmation_timeout_min: 30 escalate_on_timeout: - "CLOSE_STOP" - "CLOSE_VOL" - "CLOSE_DELTA" execution: environment: "testnet" # testnet|mainnet — kill switch on broker mismatch eur_to_usd: "1.075" # default FX rate for sizing engine; override at boot combo_only: true initial_limit: "mid" reprice_step_ticks: 1 reprice_max_steps: 3 reprice_max_steps_urgent: 5 order_tif: "GTC" order_expiry_min: 30 ack_timeout_s: 300 monitoring: health_check_interval_s: 300 health_failures_before_kill: 3 health_failures_before_restart: 5 daily_digest_cron: "0 8 * * *" monthly_report_cron: "0 12 1 * *" storage: sqlite_path: "data/state.sqlite" log_path: "data/log/" log_retention_days: 365 backup_path: "data/backups/" backup_retention_days: 30 mcp: config_file: "~/.config/cerbero-suite/mcp.json" call_timeout_s: 8 retry_max: 3 retry_base_delay_s: 1 required_versions: cerbero-deribit: "^2.0.0" cerbero-hyperliquid: "^1.5.0" cerbero-memory: "^4.0.0" cerbero-portfolio: "^1.2.0" cerbero-macro: "^1.0.0" cerbero-sentiment: "^1.0.0" cerbero-telegram: "^1.0.0" cerbero-brain-bridge: "^1.0.0" telegram: parse_mode: "MarkdownV2" confirmation_timeout_min: 60 exit_confirmation_timeout_min: 30 backup_channel_on_critical: true kelly_recalibration: lookback_days: 365 min_sample_low_confidence: 30 min_sample_high_confidence: 100 weight_when_medium_confidence: "0.50"