Skip to main content

PythonStatistic

Struct PythonStatistic 

Source
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

Source

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

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PortfolioStatistic for PythonStatistic

Source§

type Item = f64

Source§

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>

Calculates the statistic from time-indexed returns data. Read more
Source§

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>

Calculates the statistic from position data. Read more
Source§

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>)

Aligns two returns series onto a common daily grid. Read more
Source§

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

Downsamples high-frequency returns to daily bins by geometric compounding. Read more
Source§

fn calculate_std(&self, returns: &Returns) -> f64

Calculates the standard deviation of returns with Bessel’s correction.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Ungil for T
where T: Send,