import { TradingDashboard, refreshTA, openAIAnalysis } from './ui/chart.js'; import { restoreSidebarState, toggleSidebar, initSidebarTabs, restoreSidebarTabState } from './ui/sidebar.js'; import { SimulationStorage } from './ui/storage.js'; import { showExportDialog, closeExportDialog, performExport, exportSavedSimulation } from './ui/export.js'; import { runSimulation, displayEnhancedResults, showSimulationMarkers, clearSimulationResults, getLastResults, setLastResults } from './ui/simulation.js'; import { renderStrategies, selectStrategy, loadStrategies, saveSimulation, renderSavedSimulations, loadSavedSimulation, deleteSavedSimulation, setCurrentStrategy } from './ui/strategies-panel.js'; import { initIndicatorPanel, getActiveIndicators, setActiveIndicators, drawIndicatorsOnChart, addIndicator, removeIndicatorById } from './ui/indicators-panel-new.js'; import { StrategyParams } from './strategies/config.js'; import { IndicatorRegistry } from './indicators/index.js'; window.dashboard = null; function setDefaultStartDate() { const startDateInput = document.getElementById('simStartDate'); if (startDateInput) { const sevenDaysAgo = new Date(); sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7); startDateInput.value = sevenDaysAgo.toISOString().slice(0, 16); } } function updateTimeframeDisplay() { const display = document.getElementById('simTimeframeDisplay'); if (display && window.dashboard) { display.value = window.dashboard.currentInterval.toUpperCase(); } } window.toggleSidebar = toggleSidebar; window.refreshTA = refreshTA; window.openAIAnalysis = openAIAnalysis; window.showExportDialog = showExportDialog; window.closeExportDialog = closeExportDialog; window.performExport = performExport; window.exportSavedSimulation = exportSavedSimulation; window.runSimulation = runSimulation; window.saveSimulation = saveSimulation; window.renderSavedSimulations = renderSavedSimulations; window.loadSavedSimulation = loadSavedSimulation; window.deleteSavedSimulation = deleteSavedSimulation; window.clearSimulationResults = clearSimulationResults; window.updateTimeframeDisplay = updateTimeframeDisplay; window.renderIndicatorList = function() { // Legacy function - replaced by initIndicatorPanel window.initIndicatorPanel(); }; // Export init function for global access window.initIndicatorPanel = initIndicatorPanel; window.addIndicator = addIndicator; window.toggleIndicator = addIndicator; window.StrategyParams = StrategyParams; window.SimulationStorage = SimulationStorage; window.IndicatorRegistry = IndicatorRegistry; document.addEventListener('DOMContentLoaded', async () => { window.dashboard = new TradingDashboard(); restoreSidebarState(); restoreSidebarTabState(); initSidebarTabs(); setDefaultStartDate(); updateTimeframeDisplay(); renderSavedSimulations(); await loadStrategies(); // Initialize new indicator panel window.initIndicatorPanel(); const originalSwitchTimeframe = window.dashboard.switchTimeframe.bind(window.dashboard); window.dashboard.switchTimeframe = function(interval) { originalSwitchTimeframe(interval); // Force redraw indicators after TF switch with multiple attempts setTimeout(() => { if (window.drawIndicatorsOnChart) { window.drawIndicatorsOnChart(); } }, 100); setTimeout(() => { if (window.drawIndicatorsOnChart) { window.drawIndicatorsOnChart(); } }, 300); setTimeout(() => { if (window.drawIndicatorsOnChart) { window.drawIndicatorsOnChart(); } }, 500); }; });