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 controller;
25pub mod sessions;
26pub mod strategy;
27
28#[cfg(feature = "examples")]
29mod examples;
30
31use pyo3::{prelude::*, pymodule};
32
33#[pymodule]
39pub fn trading(_: Python<'_>, m: &Bound<'_, PyModule>) -> PyResult<()> {
40 m.add_class::<crate::sessions::ForexSession>()?;
41 m.add_function(wrap_pyfunction!(sessions::py_fx_local_from_utc, m)?)?;
42 m.add_function(wrap_pyfunction!(sessions::py_fx_next_start, m)?)?;
43 m.add_function(wrap_pyfunction!(sessions::py_fx_prev_start, m)?)?;
44 m.add_function(wrap_pyfunction!(sessions::py_fx_next_end, m)?)?;
45 m.add_function(wrap_pyfunction!(sessions::py_fx_prev_end, m)?)?;
46 m.add_class::<strategy::PyStrategy>()?;
47 m.add_class::<crate::controller::ImportableControllerConfig>()?;
48 m.add_class::<crate::strategy::StrategyConfig>()?;
49 m.add_class::<crate::strategy::ImportableStrategyConfig>()?;
50 m.add_class::<algorithm::PyExecutionAlgorithm>()?;
51 m.add_class::<crate::algorithm::ExecutionAlgorithmConfig>()?;
52 m.add_class::<crate::algorithm::ImportableExecutionAlgorithmConfig>()?;
53 #[cfg(feature = "examples")]
54 m.add_class::<crate::examples::strategies::CompositeMarketMakerConfig>()?;
55 #[cfg(feature = "examples")]
56 m.add_class::<crate::examples::strategies::EmaCrossConfig>()?;
57 #[cfg(feature = "examples")]
58 m.add_class::<crate::examples::strategies::GridMarketMakerConfig>()?;
59 #[cfg(feature = "examples")]
60 m.add_class::<crate::examples::strategies::DeltaNeutralVolConfig>()?;
61 #[cfg(feature = "examples")]
62 m.add_class::<crate::examples::strategies::HurstVpinDirectionalConfig>()?;
63 #[cfg(feature = "examples")]
64 m.add_class::<crate::examples::actors::BookImbalanceActorConfig>()?;
65 Ok(())
66}