document.addEventListener('DOMContentLoaded', function() { // Set last update time const now = new Date(); document.getElementById('last-update').textContent = now.toLocaleString(); // Mock data for commodity matrix const commodities = [ { input: "Fab construction", proxy: "Copper", symbol: "HG", risk: "High", sensitivity: "0.78" }, { input: "Advanced packaging", proxy: "Silver", symbol: "SI", risk: "Medium", sensitivity: "0.65" }, { input: "Power consumption", proxy: "Natural Gas", symbol: "NG", risk: "Critical", sensitivity: "0.92" }, { input: "Cleanroom materials", proxy: "Aluminum", symbol: "AL", risk: "Low", sensitivity: "0.45" }, { input: "Export controls", proxy: "Industrial Metals", symbol: "INDU", risk: "High", sensitivity: "0.81" }, { input: "Wafer production", proxy: "Silicon Metal", symbol: "SI-F", risk: "Medium", sensitivity: "0.58" }, { input: "Chip testing", proxy: "Gold", symbol: "GC", risk: "Low", sensitivity: "0.32" } ]; // Populate commodity matrix const matrixTable = document.getElementById('commodity-matrix'); commodities.forEach(commodity => { const row = document.createElement('tr'); row.className = 'border-b border-gray-700 hover:bg-gray-700'; row.innerHTML = ` ${commodity.input} ${commodity.proxy} ${commodity.symbol} ${commodity.risk} `; matrixTable.appendChild(row); }); // Mock trade signals const signals = [ { commodity: "Copper (HG)", direction: "Bullish", confidence: "High", rationale: "Capex acceleration + flat price structure", date: "2 hours ago" }, { commodity: "Natural Gas (NG)", direction: "Volatility", confidence: "Medium", rationale: "Rising energy stress + Taiwan power issues", date: "1 day ago" }, { commodity: "Silver (SI)", direction: "Bearish", confidence: "Low", rationale: "Advanced packaging demand slowing", date: "3 days ago" } ]; // Populate trade signals const signalsContainer = document.getElementById('trade-signals'); signals.forEach(signal => { const signalEl = document.createElement('div'); signalEl.className = 'bg-gray-700 p-4 rounded-lg'; signalEl.innerHTML = `

${signal.commodity} - ${signal.direction}

${signal.rationale}

${signal.confidence} confidence

${signal.date}

`; signalsContainer.appendChild(signalEl); }); // Update active signals count document.getElementById('active-signals').textContent = signals.length; // Update critical alerts count const criticalAlerts = commodities.filter(c => c.risk === 'Critical').length; document.getElementById('critical-alerts').textContent = criticalAlerts; // Set market state document.getElementById('market-state').textContent = criticalAlerts > 2 ? 'Elevated' : criticalAlerts > 0 ? 'Watch' : 'Neutral'; if (criticalAlerts > 2) { document.getElementById('market-state').classList.add('text-red-500'); } else if (criticalAlerts > 0) { document.getElementById('market-state').classList.add('text-yellow-500'); } else { document.getElementById('market-state').classList.add('text-green-500'); } });