pub struct PythonStatistic { /* private fields */ }Expand description
A PortfolioStatistic implemented in Python.
Wraps a user-defined Python object and dispatches each input category the analyzer feeds
to the method of the same name. A category the object does not define, or for which it
returns None, contributes no value.
Calculated values must be numeric, matching the f64 item type the analyzer collects.
Implementations§
Source§impl PythonStatistic
impl PythonStatistic
Sourcepub fn new(py: Python<'_>, statistic: Py<PyAny>) -> PyResult<Self>
pub fn new(py: Python<'_>, statistic: Py<PyAny>) -> PyResult<Self>
Creates a new PythonStatistic wrapping statistic.
The name is resolved once at construction, so it stays stable for the registration key and every later lookup.
§Errors
Returns an error if statistic has no name attribute resolving to a non-empty string.
Trait Implementations§
Source§impl Debug for PythonStatistic
impl Debug for PythonStatistic
Source§impl PortfolioStatistic for PythonStatistic
impl PortfolioStatistic for PythonStatistic
type Item = f64
Source§fn name(&self) -> String
fn name(&self) -> String
Returns the name of this statistic for display and identification purposes.
Source§fn calculate_from_returns(&self, returns: &Returns) -> Option<f64>
fn calculate_from_returns(&self, returns: &Returns) -> Option<f64>
Calculates the statistic from time-indexed returns data. Read more
Source§fn calculate_from_realized_pnls(&self, realized_pnls: &[f64]) -> Option<f64>
fn calculate_from_realized_pnls(&self, realized_pnls: &[f64]) -> Option<f64>
Calculates the statistic from realized profit and loss values. Read more
Source§fn calculate_from_positions(&self, positions: &[Position]) -> Option<f64>
fn calculate_from_positions(&self, positions: &[Position]) -> Option<f64>
Calculates the statistic from position data. Read more
Source§fn calculate_from_returns_with_benchmark(
&self,
returns: &Returns,
benchmark: &Returns,
) -> Option<f64>
fn calculate_from_returns_with_benchmark( &self, returns: &Returns, benchmark: &Returns, ) -> Option<f64>
Calculates the statistic from time-indexed strategy returns relative to a benchmark. Read more
Source§fn align_returns(&self, a: &Returns, b: &Returns) -> (Vec<f64>, Vec<f64>)
fn align_returns(&self, a: &Returns, b: &Returns) -> (Vec<f64>, Vec<f64>)
Aligns two returns series onto a common daily grid. Read more
Source§fn check_valid_returns(&self, returns: &Returns) -> bool
fn check_valid_returns(&self, returns: &Returns) -> bool
Validates that returns data is not empty.
Source§fn downsample_to_daily_bins(&self, returns: &Returns) -> Returns
fn downsample_to_daily_bins(&self, returns: &Returns) -> Returns
Downsamples high-frequency returns to daily bins by geometric compounding. Read more
Source§fn calculate_std(&self, returns: &Returns) -> f64
fn calculate_std(&self, returns: &Returns) -> f64
Calculates the standard deviation of returns with Bessel’s correction.
Auto Trait Implementations§
impl !RefUnwindSafe for PythonStatistic
impl Freeze for PythonStatistic
impl Send for PythonStatistic
impl Sync for PythonStatistic
impl Unpin for PythonStatistic
impl UnsafeUnpin for PythonStatistic
impl UnwindSafe for PythonStatistic
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more