nautilus_trading/python/
mod.rs1#![expect(
19 clippy::missing_errors_doc,
20 reason = "errors documented on underlying Rust methods"
21)]
22
23pub mod algorithm;
24pub mod sessions;
25pub mod strategy;
26
27use pyo3::{prelude::*, pymodule};
28
29#[pymodule]
35pub fn trading(_: Python<'_>, m: &Bound<'_, PyModule>) -> PyResult<()> {
36 m.add_class::<crate::sessions::ForexSession>()?;
37 m.add_function(wrap_pyfunction!(sessions::py_fx_local_from_utc, m)?)?;
38 m.add_function(wrap_pyfunction!(sessions::py_fx_next_start, m)?)?;
39 m.add_function(wrap_pyfunction!(sessions::py_fx_prev_start, m)?)?;
40 m.add_function(wrap_pyfunction!(sessions::py_fx_next_end, m)?)?;
41 m.add_function(wrap_pyfunction!(sessions::py_fx_prev_end, m)?)?;
42 m.add_class::<strategy::PyStrategy>()?;
43 m.add_class::<crate::strategy::StrategyConfig>()?;
44 m.add_class::<crate::strategy::ImportableStrategyConfig>()?;
45 m.add_class::<crate::algorithm::ImportableExecAlgorithmConfig>()?;
46 #[cfg(feature = "examples")]
47 m.add_class::<crate::examples::strategies::EmaCrossConfig>()?;
48 #[cfg(feature = "examples")]
49 m.add_class::<crate::examples::strategies::GridMarketMakerConfig>()?;
50 #[cfg(feature = "examples")]
51 m.add_class::<crate::examples::strategies::DeltaNeutralVolConfig>()?;
52 #[cfg(feature = "examples")]
53 m.add_class::<crate::examples::strategies::HurstVpinDirectionalConfig>()?;
54 #[cfg(feature = "examples")]
55 m.add_class::<crate::examples::actors::BookImbalanceActorConfig>()?;
56 Ok(())
57}