import './SymbolCard.css'; import { PriceChart } from './PriceChart'; import { Badge, ProductStatusBadge } from './ui/Primitives'; interface SymbolCardProps { symbol: string; data: { price: number; change24h: number; changeToday: number; session: string; volatility: string; signal: string; signalTime?: number; tradingMode?: 'Paper' | 'Live' | 'Alerts'; activePosition?: { side: 'BUY' | 'SELL'; entryPrice: number; size: number; stopLoss: number; takeProfit: number; unrealizedPnl?: number; unrealizedPnlPercent?: number; marketValue?: number; } | null; priceHistory: Array<{ timestamp: number; price: number }>; rules: { [ruleName: string]: { passed: boolean; reason: string; isPending?: boolean; isSkipped?: boolean; metadata?: any; }; }; profileSignals?: { [profileId: string]: { profileName?: string; signal: string; passed: boolean; reason?: string; execution?: { status: 'EXECUTED' | 'BLOCKED' | 'SKIPPED'; code: string; reason: string; orderId?: string; }; rules?: { [ruleName: string]: { passed: boolean; reason: string; metadata?: any; }; }; }; }; indicators: { ema20_1h?: number; ema20_15m?: number; ema50_4h?: number; ema200_4h?: number; rsi_1h?: number; rsi_15m?: number; }; }; } const ruleDisplayNames: { [key: string]: string } = { 'TrendBiasRule': 'Trend', 'SessionRule': 'Session', 'ZoneRule': 'Zone', 'MomentumRule': 'Momentum', 'EntryTriggerRule': 'Entry', 'AIAnalysisRule': 'AI', 'RiskManagementRule': 'Risk' }; export const SymbolCard = ({ symbol, data }: SymbolCardProps) => { const profileSignalEntries = Object.entries(data.profileSignals || {}); return (
{profileSignal.execution.code}