+
+
+ 主图:{" "}
+
+ {selectedTrade?.symbol || symbol}
+
+ {mainKlineLoading && (
+
+ )}
+ {mainKlineError && !mainHasData && (
+
+ {mainKlineError}
+
+ )}
+
+
+ {TIMEFRAMES.map((tf) => (
+
+ ))}
+
+
+
+
+
+ dispatchPlayback({
+ type: playbackState.isPlaying ? "pause" : "play",
+ })
+ }
+ onReset={() => {
+ if (!playbackBounds) return;
+ dispatchPlayback({
+ type: "reset",
+ resetTime: playbackBounds.minTime,
+ });
+ }}
+ onSetSpeed={(speed) =>
+ dispatchPlayback({ type: "setSpeed", speed })
+ }
+ onStepBackward={() => {
+ if (!playbackBounds) return;
+ dispatchPlayback({
+ type: "step",
+ direction: "backward",
+ stepMs: TIMEFRAME_MS[activeTimeframe],
+ minTime: playbackBounds.minTime,
+ maxTime: playbackBounds.maxTime,
+ });
+ }}
+ onStepForward={() => {
+ if (!playbackBounds) return;
+ dispatchPlayback({
+ type: "step",
+ direction: "forward",
+ stepMs: TIMEFRAME_MS[activeTimeframe],
+ minTime: playbackBounds.minTime,
+ maxTime: playbackBounds.maxTime,
+ });
+ }}
+ />
+
+
+
+