nautilus_analysis/python/statistics/
sharpe_ratio.rs1use std::collections::BTreeMap;
17
18use pyo3::prelude::*;
19
20use super::transform_returns;
21use crate::{statistic::PortfolioStatistic, statistics::sharpe_ratio::SharpeRatio};
22
23#[pymethods]
24impl SharpeRatio {
25 #[new]
26 #[pyo3(signature = (period=None))]
27 fn py_new(period: Option<usize>) -> Self {
28 Self::new(period)
29 }
30
31 fn __repr__(&self) -> String {
32 self.to_string()
33 }
34
35 #[getter]
36 #[pyo3(name = "name")]
37 fn py_name(&self) -> String {
38 self.name()
39 }
40
41 #[pyo3(name = "calculate_from_returns")]
42 fn py_calculate_from_returns(&mut self, raw_returns: BTreeMap<u64, f64>) -> Option<f64> {
43 self.calculate_from_returns(&transform_returns(raw_returns))
44 }
45
46 #[pyo3(name = "calculate_from_realized_pnls")]
47 fn py_calculate_from_realized_pnls(&mut self, _realized_pnls: Vec<f64>) -> Option<f64> {
48 None
49 }
50
51 #[pyo3(name = "calculate_from_positions")]
52 fn py_calculate_from_positions(&mut self, _positions: Vec<Py<PyAny>>) -> Option<f64> {
53 None
54 }
55}