pub struct Alpha { /* private fields */ }Expand description
Calculates Jensen’s alpha of portfolio returns relative to a benchmark.
Alpha measures the excess return of a portfolio over the return predicted by its beta exposure to the benchmark (CAPM). The per-period alpha is:
alpha = (mean_portfolio - rf) - beta * (mean_benchmark - rf)
where beta is the sample (ddof = 1) beta of the portfolio against the benchmark.
The per-period alpha is then annualized geometrically over period (default 252):
alpha_annual = (1 + alpha)^period - 1
The risk-free rate rf is specified per period (default 0.0).
§References
- Jensen, M. C. (1968). “The Performance of Mutual Funds in the Period 1945-1964”. Journal of Finance, 23(2), 389-416.
- CFA Institute Investment Foundations, 3rd Edition
Implementations§
Trait Implementations§
Source§impl PortfolioStatistic for Alpha
impl PortfolioStatistic for Alpha
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<Self::Item>
fn calculate_from_returns(&self, _returns: &Returns) -> Option<Self::Item>
Calculates the statistic from time-indexed returns data. Read more
Source§fn calculate_from_realized_pnls(
&self,
_realized_pnls: &[f64],
) -> Option<Self::Item>
fn calculate_from_realized_pnls( &self, _realized_pnls: &[f64], ) -> Option<Self::Item>
Calculates the statistic from realized profit and loss values. Read more
Source§fn calculate_from_positions(
&self,
_positions: &[Position],
) -> Option<Self::Item>
fn calculate_from_positions( &self, _positions: &[Position], ) -> Option<Self::Item>
Calculates the statistic from position data. Read more
Source§fn calculate_from_returns_with_benchmark(
&self,
returns: &Returns,
benchmark: &Returns,
) -> Option<Self::Item>
fn calculate_from_returns_with_benchmark( &self, returns: &Returns, benchmark: &Returns, ) -> Option<Self::Item>
Calculates the statistic from time-indexed strategy returns relative to a benchmark. Read more
Source§fn calculate_from_orders(
&self,
orders: Vec<Box<dyn Order>>,
) -> Option<Self::Item>
fn calculate_from_orders( &self, orders: Vec<Box<dyn Order>>, ) -> Option<Self::Item>
Calculates the statistic from order data. 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 Freeze for Alpha
impl RefUnwindSafe for Alpha
impl Send for Alpha
impl Sync for Alpha
impl Unpin for Alpha
impl UnsafeUnpin for Alpha
impl UnwindSafe for Alpha
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