export interface TrumpPost { id: number text: string source: 'x' | 'truth' published_at: string sentiment: 'bullish' | 'bearish' | 'neutral' signal: 'buy' | 'sell' | 'short' | 'hold' | null ai_confidence: number ai_reasoning: string | null prefilter_reason: 'rt_only' | 'url_only' | 'empty' | 'parse_error' | 'api_error' | null analysis_version: string | null relevant: boolean price_impact: { asset: 'BTC' | 'ETH' m5: number | null // null = window still open (live rolling peak pending) m15: number | null m1h: number | null price_at_post: number correct_m5: boolean | null correct_m15: boolean | null correct_m1h: boolean | null } | null } export interface Candle { time: number open: number high: number low: number close: number volume: number } export interface BotTrade { id: number asset: 'BTC' | 'ETH' side: 'long' | 'short' entry_price: number exit_price: number pnl_usd: number hold_seconds: number trigger_post_id: number opened_at: string closed_at: string } export interface BotPerformance { period_days: number total_trades: number win_rate: number net_pnl_usd: number avg_hold_seconds: number max_drawdown_pct: number }