-- dolphin_violet DDL — consolidated from the LIVE dolphin_pink schema -- (post-ALTER: includes maras_tp + provenance columns). Generated 2026-06-12. -- Apply via apply_violet_ddl.py (one statement per HTTP POST). CREATE TABLE IF NOT EXISTS dolphin_violet.trade_events ( `ts` DateTime64(6, 'UTC'), `trade_id` String DEFAULT '', `date` Date, `strategy` LowCardinality(String), `asset` LowCardinality(String), `side` LowCardinality(String), `entry_price` Float64, `exit_price` Float64 DEFAULT 0, `quantity` Float64, `pnl` Float64 DEFAULT 0, `pnl_pct` Float32 DEFAULT 0, `exit_reason` LowCardinality(String) DEFAULT '', `vel_div_entry` Float32, `boost_at_entry` Float32, `beta_at_entry` Float32, `posture` LowCardinality(String), `leverage` Float32, `conviction_multiplier` Float32 DEFAULT 0, `exchange_leverage` UInt8 DEFAULT 0, `exchange_leverage_mode` LowCardinality(String) DEFAULT '', `leverage_mapping_rule` LowCardinality(String) DEFAULT '', `account_capital` Float64 DEFAULT 0, `portfolio_capital` Float64 DEFAULT 0, `current_open_notional` Float64 DEFAULT 0, `remaining_notional_capacity` Float64 DEFAULT 0, `max_account_leverage` Float32 DEFAULT 0, `margin_required` Float64 DEFAULT 0, `ledger_authority` LowCardinality(String) DEFAULT '', `regime_signal` Int8 DEFAULT 0, `capital_before` Float64 DEFAULT 0, `capital_after` Float64 DEFAULT 0, `peak_capital` Float64 DEFAULT 0, `drawdown_at_entry` Float32 DEFAULT 0, `open_positions_count` UInt8 DEFAULT 0, `scan_uuid` String DEFAULT '', `bars_held` UInt16 DEFAULT 0, `entry_payload_json` String DEFAULT '', `exit_payload_json` String DEFAULT '', `execution_payload_json` String DEFAULT '', `friction_payload_json` String DEFAULT '', `event_payload_json` String DEFAULT '', `runtime_namespace` LowCardinality(String) DEFAULT '', `strategy_namespace` LowCardinality(String) DEFAULT '', `event_namespace` LowCardinality(String) DEFAULT '', `actor_name` LowCardinality(String) DEFAULT '', `exec_venue` LowCardinality(String) DEFAULT '', `data_venue` LowCardinality(String) DEFAULT '', `market_state_bundle_json` String DEFAULT '', `tp_base_pct` Float32 DEFAULT 0, `tp_effective_pct` Float32 DEFAULT 0, `our_leverage` Float32 DEFAULT 0, `fee` Float64 DEFAULT 0, `fee_source` LowCardinality(String) DEFAULT '', `is_maker` UInt8 DEFAULT 0, `slippage_bps` Float32 DEFAULT 0, `mark_at_submit` Float64 DEFAULT 0, `exchange_ts` Int64 DEFAULT 0, `pnl_source` LowCardinality(String) DEFAULT '' ) ENGINE = MergeTree PARTITION BY toYYYYMM(ts) ORDER BY (ts, asset) SETTINGS index_granularity = 8192;