stock-trek 0.8.8

Stock Trek time-series analysis
Documentation
use crate::util::serde_rounding_strategy;
use rust_decimal::RoundingStrategy;
use serde::{Deserialize, Serialize};
use strum::Display;

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CexPreferences {
    pub max_network_delay_millis: u32,
    pub rounding: Rounding,
    pub multi_leg: MultiLeg,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Rounding {
    #[serde(with = "serde_rounding_strategy")]
    pub activation_price_triggered_above: RoundingStrategy,
    #[serde(with = "serde_rounding_strategy")]
    pub activation_price_triggered_below: RoundingStrategy,
    #[serde(with = "serde_rounding_strategy")]
    pub price: RoundingStrategy,
    #[serde(with = "serde_rounding_strategy")]
    pub quantity: RoundingStrategy,
    #[serde(with = "serde_rounding_strategy")]
    pub callback_rate_bps: RoundingStrategy,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MultiLeg {
    pub if_different_symbol_unsupported: OnDifferent,
    pub if_different_price_unsupported: OnDifferent,
}

#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum OnDifferent {
    UseDataFromPrimary,
    SkipThisOrder,
    CancelEntireIteration,
}