nautilus_indicators/python/momentum/
pressure.rs1use nautilus_model::data::Bar;
17use pyo3::prelude::*;
18
19use crate::{average::MovingAverageType, indicator::Indicator, momentum::pressure::Pressure};
20
21#[pymethods]
22impl Pressure {
23 #[new]
24 #[pyo3(signature = (period, ma_type=None, atr_floor=None))]
25 #[must_use]
26 pub fn py_new(
27 period: usize,
28 ma_type: Option<MovingAverageType>,
29 atr_floor: Option<f64>,
30 ) -> Self {
31 Self::new(period, ma_type, atr_floor)
32 }
33
34 fn __repr__(&self) -> String {
35 format!("Pressure({},{})", self.period, self.ma_type)
36 }
37
38 #[getter]
39 #[pyo3(name = "name")]
40 fn py_name(&self) -> String {
41 self.name()
42 }
43
44 #[getter]
45 #[pyo3(name = "period")]
46 const fn py_period(&self) -> usize {
47 self.period
48 }
49
50 #[getter]
51 #[pyo3(name = "has_inputs")]
52 fn py_has_inputs(&self) -> bool {
53 self.has_inputs()
54 }
55
56 #[getter]
57 #[pyo3(name = "value")]
58 const fn py_value(&self) -> f64 {
59 self.value
60 }
61
62 #[getter]
63 #[pyo3(name = "value_cumulative")]
64 const fn py_value_cumulative(&self) -> f64 {
65 self.value_cumulative
66 }
67
68 #[getter]
69 #[pyo3(name = "initialized")]
70 const fn py_initialized(&self) -> bool {
71 self.initialized
72 }
73
74 #[pyo3(name = "update_raw")]
75 fn py_update_raw(&mut self, high: f64, low: f64, close: f64, volume: f64) {
76 self.update_raw(high, low, close, volume);
77 }
78
79 #[pyo3(name = "handle_bar")]
80 fn py_handle_bar(&mut self, bar: &Bar) {
81 self.handle_bar(bar);
82 }
83
84 #[pyo3(name = "reset")]
85 fn py_reset(&mut self) {
86 self.reset();
87 }
88}