18 using MathNet.Numerics.Statistics;
48 public override bool IsReady => _targetReturns.IsReady && _referenceReturns.IsReady;
59 : base(name, targetSymbol, referenceSymbol, 2)
64 throw new ArgumentException($
"Period parameter for Beta indicator must be greater than 2 but was {period}.");
69 WarmUpPeriod += (period - 2) + 1;
80 : this($
"B({period})", targetSymbol, referenceSymbol, period)
94 : this(name, targetSymbol, referenceSymbol, period)
106 return (
double)(rollingWindow[0].Close.SafeDivision(rollingWindow[1].Close) - 1);
125 var varianceComputed = _referenceReturns.Variance();
126 var covarianceComputed = _targetReturns.Covariance(_referenceReturns);
129 var variance = !varianceComputed.IsNaNOrZero() ? varianceComputed : 1;
130 var covariance = !covarianceComputed.IsNaNOrZero() ? covarianceComputed : 0;
131 return (decimal)(covariance / variance);
139 _targetReturns.Reset();
140 _referenceReturns.Reset();