diff --git a/web/src/backtest/components/BacktestConfigurator.tsx b/web/src/backtest/components/BacktestConfigurator.tsx index a3657b2..db6a8ab 100644 --- a/web/src/backtest/components/BacktestConfigurator.tsx +++ b/web/src/backtest/components/BacktestConfigurator.tsx @@ -7,6 +7,7 @@ import type { } from '../types'; import { parseSymbolsInput, toDateInputValue } from '../utils'; import { Button, Input, Select } from '../../components/ui/Primitives'; +import { HistoricalPresetPicker } from './HistoricalPresetPicker'; type SourceType = 'csv' | 'json' | 'replay' | 'kraken'; @@ -35,6 +36,21 @@ const defaultTo = toDateInputValue(now); const [timeframe, setTimeframe] = useState('15m'); const [fromDate, setFromDate] = useState(defaultFrom); const [toDate, setToDate] = useState(defaultTo); + const [activePresetId, setActivePresetId] = useState(null); + + const handlePresetSelect = (presetFrom: string, presetTo: string, presetId: string) => { + setFromDate(presetFrom); + setToDate(presetTo); + setActivePresetId(presetId); + }; + const handleFromDateChange = (event: React.ChangeEvent) => { + setFromDate(event.target.value); + setActivePresetId(null); + }; + const handleToDateChange = (event: React.ChangeEvent) => { + setToDate(event.target.value); + setActivePresetId(null); + }; const [sourceType, setSourceType] = useState('csv'); const [sourcePayload, setSourcePayload] = useState(null); const [sourceName, setSourceName] = useState(''); @@ -163,7 +179,7 @@ const defaultTo = toDateInputValue(now); setFromDate(event.target.value)} + onChange={handleFromDateChange} controlSize="sm" /> @@ -172,11 +188,15 @@ const defaultTo = toDateInputValue(now); setToDate(event.target.value)} + onChange={handleToDateChange} controlSize="sm" /> +
+ setBacktestModalSetupId(null)} + profile={(() => { + if (!backtestModalSetupId) return null; + const setup = savedSetups.find((s) => String(s.stock_instance_id || '') === backtestModalSetupId) || null; + if (!setup) return null; + return profiles.find((p) => p.id === String(setup.profile_id || '')) || null; + })()} + symbolOverride={(() => { + if (!backtestModalSetupId) return undefined; + const setup = savedSetups.find((s) => String(s.stock_instance_id || '') === backtestModalSetupId); + return setup?.symbol ? String(setup.symbol) : undefined; + })()} + /> ); }