From e0c2a31cff3fc5e9e491a629b0fe1a355de4e036 Mon Sep 17 00:00:00 2001 From: Sean Date: Thu, 19 Feb 2026 18:49:29 -0500 Subject: [PATCH] Beta calculation should check for zero variance before dividing --- MarketData/MarketDataLib/Numerics/Numerics.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/MarketData/MarketDataLib/Numerics/Numerics.cs b/MarketData/MarketDataLib/Numerics/Numerics.cs index 2ac2af2..fa86d49 100755 --- a/MarketData/MarketDataLib/Numerics/Numerics.cs +++ b/MarketData/MarketDataLib/Numerics/Numerics.cs @@ -1356,7 +1356,9 @@ namespace MarketData.Numerical /// The revised code (i.e.) Beta=Covariance(x,y)/Variance(x) was taken from Investopedia public static double Beta(ref double[] assetReturns, ref double[] benchmarkReturns) { - return Covariance(ref assetReturns, ref benchmarkReturns) / Variance(ref benchmarkReturns); + double variance = Variance(ref benchmarkReturns); + if(0.00 == variance)return double.NaN; + return Covariance(ref assetReturns, ref benchmarkReturns) / variance; } /// ApplyDecay - Apply exponential weighting. /// the samples to weight.