{
  "_meta": {
    "schema_version": 1,
    "last_updated": "2026-05-06",
    "note": "변경 시 별도 커밋. guards 단위테스트가 이 파일을 검증. 손으로 풀지 말고 항상 이 파일을 통해 조정."
  },

  "enabled": false,
  "kill_switch_file": "state/orders_disabled",

  "accounts_whitelist": ["일반", "ISA", "가희_일반", "가희_ISA"],
  "owner_accounts": ["일반", "ISA"],
  "spouse_accounts": ["가희_일반", "가희_ISA"],

  "limits": {
    "single_order_max_won": null,
    "daily_total_max_won": null,
    "balance_ratio_max": null,
    "price_band_pct_soft": null,
    "price_band_pct_hard": 30
  },

  "delays": {
    "between_orders_seconds": 5
  },

  "pin": {
    "owner_length": 4,
    "owner_charset": "digits",
    "spouse_length": 8,
    "spouse_charset": "alnum_no_confusing",
    "alnum_no_confusing_chars": "ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz23456789",
    "expiry_seconds": 120,
    "max_attempts": 1
  },

  "trading_hours": {
    "tz": "Asia/Seoul",
    "krx_regular_start": "09:00:30",
    "krx_regular_end": "15:20:00",
    "krx_closing_auction_start": "15:20:00",
    "krx_closing_auction_end": "15:30:00",
    "nxt_pre_start": "08:00:00",
    "nxt_pre_end": "09:00:00",
    "nxt_after_start": "15:30:00",
    "nxt_after_end": "20:00:00",
    "block_outside": true,
    "holiday_state_file": "state/market_holidays.json"
  },

  "routing": {
    "default": "AL",
    "force_options": ["AL", "NX", "KRX"],
    "suffix_AL": "_AL",
    "suffix_NX": "_NX",
    "suffix_KRX": ""
  },

  "market_order": {
    "allowed": true,
    "natural_language_market": ["시장가"],
    "natural_language_aggressive_limit": ["지금 바로", "즉시", "빨리", "당장"],
    "aggressive_limit_ticks": 1,
    "show_orderbook_depth": 3,
    "estimate_slippage": true
  },

  "guards": {
    "block_market_holidays": true,
    "block_trading_halt": true,
    "block_vi": true,
    "block_outside_trading_hours": true,
    "require_balance_check_for_buy": true,
    "require_position_check_for_sell": true,
    "block_market_order_when_orderbook_thin": false
  },

  "card": {
    "highlight_fields": ["side", "account", "symbol_name", "price"],
    "highlight_marker": "▶",
    "highlight_bold_markdown": true,
    "buy_emoji": "🛒",
    "sell_emoji": "💰",
    "warning_emoji": "⚠️",
    "show_orderbook_for_market": true,
    "orderbook_depth": 3,
    "show_balance_ratio": true
  },

  "ledger": {
    "log_file": "state/order_log.jsonl",
    "events": ["card_issued", "pin_issued", "amended", "approved", "rejected", "expired", "canceled", "submitted", "filled", "partial", "failed", "dryrun", "cancel_submitted", "cancel_rejected", "cancel_confirmed", "cancel_unconfirmed_timeout", "modify_submitted", "modify_rejected"],
    "mask_token_in_logs": true
  },

  "telegram": {
    "dm_only": true,
    "chat_id_whitelist_env": "OPENCLAW_OWNER_CHAT_ID",
    "block_groups": true,
    "block_when_agent_env_set": "OPENCLAW_AGENT"
  }
}
