nautilus_risk/engine/
config.rs1use ahash::AHashMap;
19use nautilus_common::throttler::RateLimit;
20use nautilus_core::datetime::NANOSECONDS_IN_SECOND;
21use nautilus_model::identifiers::InstrumentId;
22use rust_decimal::Decimal;
23use serde::{Deserialize, Serialize};
24
25#[cfg_attr(
27 feature = "python",
28 pyo3::pyclass(module = "nautilus_trader.core.nautilus_pyo3.risk", from_py_object)
29)]
30#[cfg_attr(
31 feature = "python",
32 pyo3_stub_gen::derive::gen_stub_pyclass(module = "nautilus_trader.risk")
33)]
34#[derive(Debug, Clone, Deserialize, Serialize, bon::Builder)]
35#[serde(default, deny_unknown_fields)]
36pub struct RiskEngineConfig {
37 #[builder(default)]
38 pub bypass: bool,
39 #[builder(default = RateLimit::new(100, NANOSECONDS_IN_SECOND))]
40 pub max_order_submit: RateLimit,
41 #[builder(default = RateLimit::new(100, NANOSECONDS_IN_SECOND))]
42 pub max_order_modify: RateLimit,
43 #[builder(default)]
44 pub max_notional_per_order: AHashMap<InstrumentId, Decimal>,
45 #[builder(default)]
46 pub debug: bool,
47}
48
49impl Default for RiskEngineConfig {
50 fn default() -> Self {
51 Self::builder().build()
52 }
53}