sandbox_quant/visualization/
types.rs1use std::path::PathBuf;
2
3use crate::app::bootstrap::BinanceMode;
4use crate::backtest_app::runner::{BacktestConfig, BacktestReport};
5use crate::dataset::types::{
6 BacktestDatasetSummary, BacktestRunSummaryRow, BookTickerRow, DerivedKlineRow,
7 LiquidationEventRow, RecorderMetrics,
8};
9use crate::strategy::model::StrategyTemplate;
10
11#[derive(Debug, Clone, PartialEq)]
12pub struct DashboardQuery {
13 pub mode: BinanceMode,
14 pub base_dir: PathBuf,
15 pub symbol: String,
16 pub from: chrono::NaiveDate,
17 pub to: chrono::NaiveDate,
18 pub selected_run_id: Option<i64>,
19 pub run_limit: usize,
20}
21
22#[derive(Debug, Clone, PartialEq)]
23pub struct BacktestRunRequest {
24 pub mode: BinanceMode,
25 pub base_dir: PathBuf,
26 pub symbol: String,
27 pub from: chrono::NaiveDate,
28 pub to: chrono::NaiveDate,
29 pub template: StrategyTemplate,
30 pub config: BacktestConfig,
31 pub run_limit: usize,
32}
33
34#[derive(Debug, Clone, PartialEq)]
35pub struct MarketSeries {
36 pub symbol: String,
37 pub liquidations: Vec<LiquidationEventRow>,
38 pub book_tickers: Vec<BookTickerRow>,
39 pub klines: Vec<DerivedKlineRow>,
40 pub kline_interval: Option<String>,
41}
42
43#[derive(Debug, Clone, PartialEq)]
44pub struct PricePoint {
45 pub time_ms: i64,
46 pub price: f64,
47}
48
49#[derive(Debug, Clone, PartialEq)]
50pub struct EquityPoint {
51 pub time_ms: i64,
52 pub equity: f64,
53}
54
55#[derive(Debug, Clone, PartialEq, Eq)]
56pub enum SignalKind {
57 Entry,
58 TakeProfit,
59 StopLoss,
60 OpenAtEnd,
61 SignalExit,
62}
63
64#[derive(Debug, Clone, PartialEq)]
65pub struct SignalMarker {
66 pub time_ms: i64,
67 pub price: f64,
68 pub label: String,
69 pub kind: SignalKind,
70}
71
72#[derive(Debug, Clone, PartialEq)]
73pub struct DashboardSnapshot {
74 pub mode: BinanceMode,
75 pub base_dir: PathBuf,
76 pub db_path: PathBuf,
77 pub symbol: String,
78 pub from: chrono::NaiveDate,
79 pub to: chrono::NaiveDate,
80 pub available_symbols: Vec<String>,
81 pub recorder_metrics: RecorderMetrics,
82 pub dataset_summary: BacktestDatasetSummary,
83 pub market_series: MarketSeries,
84 pub recent_runs: Vec<BacktestRunSummaryRow>,
85 pub selected_report: Option<BacktestReport>,
86 pub selected_run_id: Option<i64>,
87}