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