Skip to main content

sandbox_quant/visualization/
types.rs

1use 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}