pub struct PositionRiskContribution {
pub id: String,
pub weight: f64,
pub marginal_risk_contribution: f64,
pub pct_risk_contribution: f64,
}Expand description
Per-position marginal risk contribution.
For a portfolio with covariance matrix Σ and weight vector w, the
marginal risk contribution of position i is:
MRC_i = w_i * (Σw)_i / σ_pwhere σ_p = sqrt(w' Σ w) is portfolio volatility.
The sum of all MRC_i equals portfolio volatility (Euler decomposition).
Fields§
§id: StringPosition identifier (e.g., ticker symbol).
weight: f64Portfolio weight in [0.0, 1.0] (short positions as negative).
marginal_risk_contribution: f64Marginal risk contribution as a fraction of portfolio volatility.
pct_risk_contribution: f64Percentage risk contribution: MRC_i / σ_p * 100.
Trait Implementations§
Source§impl Clone for PositionRiskContribution
impl Clone for PositionRiskContribution
Auto Trait Implementations§
impl Freeze for PositionRiskContribution
impl RefUnwindSafe for PositionRiskContribution
impl Send for PositionRiskContribution
impl Sync for PositionRiskContribution
impl Unpin for PositionRiskContribution
impl UnsafeUnpin for PositionRiskContribution
impl UnwindSafe for PositionRiskContribution
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