sandbox-quant 1.0.8

Exchange-truth trading core for Binance Spot and Futures
Documentation
use std::path::PathBuf;

use crate::app::bootstrap::BinanceMode;
use crate::backtest_app::runner::{BacktestConfig, BacktestReport};
use crate::dataset::types::{
    BacktestDatasetSummary, BacktestRunSummaryRow, BookTickerRow, DerivedKlineRow,
    LiquidationEventRow, RecorderMetrics,
};
use crate::strategy::model::StrategyTemplate;

#[derive(Debug, Clone, PartialEq)]
pub struct DashboardQuery {
    pub mode: BinanceMode,
    pub base_dir: PathBuf,
    pub symbol: String,
    pub from: chrono::NaiveDate,
    pub to: chrono::NaiveDate,
    pub selected_run_id: Option<i64>,
    pub run_limit: usize,
}

#[derive(Debug, Clone, PartialEq)]
pub struct BacktestRunRequest {
    pub mode: BinanceMode,
    pub base_dir: PathBuf,
    pub symbol: String,
    pub from: chrono::NaiveDate,
    pub to: chrono::NaiveDate,
    pub template: StrategyTemplate,
    pub config: BacktestConfig,
    pub run_limit: usize,
}

#[derive(Debug, Clone, PartialEq)]
pub struct MarketSeries {
    pub symbol: String,
    pub liquidations: Vec<LiquidationEventRow>,
    pub book_tickers: Vec<BookTickerRow>,
    pub klines: Vec<DerivedKlineRow>,
    pub kline_interval: Option<String>,
}

#[derive(Debug, Clone, PartialEq)]
pub struct PricePoint {
    pub time_ms: i64,
    pub price: f64,
}

#[derive(Debug, Clone, PartialEq)]
pub struct EquityPoint {
    pub time_ms: i64,
    pub equity: f64,
}

#[derive(Debug, Clone, PartialEq, Eq)]
pub enum SignalKind {
    Entry,
    TakeProfit,
    StopLoss,
    OpenAtEnd,
    SignalExit,
}

#[derive(Debug, Clone, PartialEq)]
pub struct SignalMarker {
    pub time_ms: i64,
    pub price: f64,
    pub label: String,
    pub kind: SignalKind,
}

#[derive(Debug, Clone, PartialEq)]
pub struct DashboardSnapshot {
    pub mode: BinanceMode,
    pub base_dir: PathBuf,
    pub db_path: PathBuf,
    pub symbol: String,
    pub from: chrono::NaiveDate,
    pub to: chrono::NaiveDate,
    pub available_symbols: Vec<String>,
    pub recorder_metrics: RecorderMetrics,
    pub dataset_summary: BacktestDatasetSummary,
    pub market_series: MarketSeries,
    pub recent_runs: Vec<BacktestRunSummaryRow>,
    pub selected_report: Option<BacktestReport>,
    pub selected_run_id: Option<i64>,
}