mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-13 16:18:05 +00:00
feat(dynamics): add PlusDI, MinusDI, PlusDM, MinusDM indicators
Complete thin Dx-composition wrapper indicators with full test coverage: - PlusDi/MinusDi: Directional Indicator wrappers (DiPlus/DiMinus from Dx) - PlusDm/MinusDm: Directional Movement wrappers (DmPlus/DmMinus from Dx) - Individual validation tests per indicator directory (TALib, Skender, bounds) - Combined unit tests (DiDm.Tests.cs) and validation tests (DiDm.Validation.Tests.cs) - Quantower wrappers + tests for all 4 indicators - PineScript v6 implementations with compensated RMA - Normalized .md documentation for all indicators and categories - 182 tests passing, 0 failures
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
# Errors
|
||||
|
||||
> "All models are wrong. Error metrics tell you how wrong." Adapted from George Box
|
||||
|
||||
Error metrics and loss functions for model/strategy evaluation. All error indicators accept two input series (actual and predicted values) and compute rolling error metrics over a configurable period.
|
||||
|
||||
## Indicators
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# Huber: Huber Loss
|
||||
|
||||
> *The Goldilocks of loss functions: not too sensitive, not too robust, just right.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "The Goldilocks of loss functions: not too sensitive, not too robust, just right."
|
||||
|
||||
Huber Loss is a hybrid loss function that combines the best properties of Mean Squared Error (MSE) and Mean Absolute Error (MAE). For small errors, it behaves quadratically like MSE; for large errors, it behaves linearly like MAE.
|
||||
|
||||
## Historical Context
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# Log-Cosh: Logarithm of Hyperbolic Cosine Loss
|
||||
|
||||
> *The smooth operator that acts like L2 for small errors and L1 for large ones.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "The smooth operator that acts like L2 for small errors and L1 for large ones."
|
||||
|
||||
Log-Cosh Loss combines the best properties of L1 (absolute) and L2 (squared) error metrics through the logarithm of the hyperbolic cosine function. It provides smooth gradients everywhere while remaining robust to outliers.
|
||||
|
||||
## Historical Context
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# MAAPE: Mean Arctangent Absolute Percentage Error
|
||||
|
||||
> *When percentage errors need boundaries, arctangent provides the walls.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "When percentage errors need boundaries, arctangent provides the walls."
|
||||
|
||||
Mean Arctangent Absolute Percentage Error (MAAPE) transforms percentage errors through the arctangent function, naturally bounding the metric between 0 and π/2. This eliminates the unbounded nature of MAPE while preserving its scale-independence.
|
||||
|
||||
## Historical Context
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# MAE: Mean Absolute Error
|
||||
|
||||
> *When you need to know how wrong you are on average, without the drama of squared errors.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "When you need to know how wrong you are on average, without the drama of squared errors."
|
||||
|
||||
Mean Absolute Error (MAE) measures the average magnitude of errors in a set of predictions, without considering their direction. It represents the average of the absolute differences between actual and predicted values.
|
||||
|
||||
## Historical Context
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# MAPD: Mean Absolute Percentage Deviation
|
||||
|
||||
> *Like MAPE, but divides by what you predicted instead of what actually happened.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "Like MAPE, but divides by what you predicted instead of what actually happened."
|
||||
|
||||
Mean Absolute Percentage Deviation (MAPD) measures the average absolute percentage difference between actual and predicted values, using the predicted value as the denominator. This is the key difference from MAPE, which uses the actual value.
|
||||
|
||||
## Historical Context
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# MAPE: Mean Absolute Percentage Error
|
||||
|
||||
> *The metric that lets you compare apples to oranges, as long as you don't have any zeros.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "The metric that lets you compare apples to oranges, as long as you don't have any zeros."
|
||||
|
||||
Mean Absolute Percentage Error (MAPE) measures the average absolute percentage difference between actual and predicted values. It expresses accuracy as a percentage, making it scale-independent and easy to interpret.
|
||||
|
||||
## Historical Context
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# MASE: Mean Absolute Scaled Error
|
||||
|
||||
> *A good forecast is one that's better than guessing. MASE tells you exactly how much better.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires `period + 1` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "A good forecast is one that's better than guessing. MASE tells you exactly how much better."
|
||||
|
||||
Mean Absolute Scaled Error (MASE) normalizes forecast errors by the average error of a naive "random walk" forecast (using the previous value as the prediction). This makes MASE scale-independent and interpretable across different time series.
|
||||
|
||||
## Architecture & Physics
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# MdAE: Median Absolute Error
|
||||
|
||||
> *When outliers scream but you need to hear the whisper of typical performance.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "When outliers scream but you need to hear the whisper of typical performance."
|
||||
|
||||
Median Absolute Error (MdAE) measures the middle value of all absolute errors. Unlike MAE which averages errors, MdAE finds the median, providing exceptional robustness against outliers and extreme values.
|
||||
|
||||
## Historical Context
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# MdAPE: Median Absolute Percentage Error
|
||||
|
||||
> *When you need relative errors but can't trust the outliers.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "When you need relative errors but can't trust the outliers."
|
||||
|
||||
Median Absolute Percentage Error (MdAPE) combines the scale-independence of percentage errors with the robustness of median statistics. It provides a measure of typical relative prediction accuracy that remains stable even when some predictions are dramatically wrong.
|
||||
|
||||
## Historical Context
|
||||
|
||||
+2
-2
@@ -1,5 +1,7 @@
|
||||
# ME: Mean Error (Mean Bias Error)
|
||||
|
||||
> *Sometimes you need to know not just how wrong you are, but which direction you're wrong in.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "Sometimes you need to know not just how wrong you are, but which direction you're wrong in."
|
||||
|
||||
Mean Error (ME), also known as Mean Bias Error, measures the average error between actual and predicted values while preserving the sign. Unlike MAE, ME reveals systematic bias in predictions: whether a model consistently over-predicts or under-predicts.
|
||||
|
||||
## Historical Context
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# MPE: Mean Percentage Error
|
||||
|
||||
> *MAPE tells you how wrong you are; MPE tells you which direction you're wrong in.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "MAPE tells you how wrong you are; MPE tells you which direction you're wrong in."
|
||||
|
||||
Mean Percentage Error measures the average percentage difference between actual and predicted values while preserving the sign. Unlike MAPE, which takes absolute values, MPE reveals systematic bias in predictions—whether a model consistently over-predicts or under-predicts.
|
||||
|
||||
## Architecture & Physics
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# MRAE: Mean Relative Absolute Error
|
||||
|
||||
> *When you need to understand your error in the context of what you're predicting.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "When you need to understand your error in the context of what you're predicting."
|
||||
|
||||
Mean Relative Absolute Error (MRAE) measures the average magnitude of errors relative to the actual values. This normalization makes the metric scale-independent and easier to interpret across different datasets.
|
||||
|
||||
## Historical Context
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# MSE: Mean Squared Error
|
||||
|
||||
> *The metric that makes outliers pay dearly for their transgressions.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "The metric that makes outliers pay dearly for their transgressions."
|
||||
|
||||
Mean Squared Error (MSE) measures the average of the squares of the errors between actual and predicted values. By squaring errors, MSE penalizes large deviations more heavily than small ones.
|
||||
|
||||
## Historical Context
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# MSLE: Mean Squared Logarithmic Error
|
||||
|
||||
> *When your data spans orders of magnitude, MSLE keeps outliers from hijacking your loss function.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "When your data spans orders of magnitude, MSLE keeps outliers from hijacking your loss function."
|
||||
|
||||
Mean Squared Logarithmic Error transforms both actual and predicted values through logarithms before computing squared error. This compression makes MSLE robust to outliers and particularly suited for data with exponential growth patterns or wide dynamic ranges.
|
||||
|
||||
## Architecture & Physics
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# Pseudo-Huber: Smooth Huber Approximation
|
||||
|
||||
> *All the robustness of Huber, none of the discontinuities.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "All the robustness of Huber, none of the discontinuities."
|
||||
|
||||
Pseudo-Huber Loss (also called Charbonnier Loss) is a smooth approximation to the Huber loss function. Unlike Huber which has a piecewise definition with a kink at δ, Pseudo-Huber is continuously differentiable everywhere, making it ideal for gradient-based optimization.
|
||||
|
||||
## Historical Context
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# Quantile Loss: Pinball Loss Function
|
||||
|
||||
> *When over-prediction and under-prediction carry different costs, quantiles find the balance.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "When over-prediction and under-prediction carry different costs, quantiles find the balance."
|
||||
|
||||
Quantile Loss (also called Pinball Loss) measures prediction accuracy with asymmetric penalties for over-prediction versus under-prediction. It's essential for probabilistic forecasting where different quantiles of the distribution matter.
|
||||
|
||||
## Historical Context
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# RAE: Relative Absolute Error
|
||||
|
||||
> *How much better than just guessing the mean? RAE gives you the ratio.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "How much better than just guessing the mean? RAE gives you the ratio."
|
||||
|
||||
Relative Absolute Error (RAE) measures the total absolute error of predictions relative to the total absolute error of a simple baseline predictor that always predicts the mean of actual values. This provides a normalized performance metric.
|
||||
|
||||
## Architecture & Physics
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# RMSE: Root Mean Squared Error
|
||||
|
||||
> *MSE's more interpretable sibling that speaks the language of your data.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "MSE's more interpretable sibling that speaks the language of your data."
|
||||
|
||||
Root Mean Squared Error (RMSE) is the square root of MSE, providing an error metric in the same units as the original data while retaining sensitivity to large errors.
|
||||
|
||||
## Mathematical Foundation
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# RMSLE: Root Mean Squared Logarithmic Error
|
||||
|
||||
> *RMSLE: because sometimes your errors need to be measured in decades, not dollars.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "RMSLE: because sometimes your errors need to be measured in decades, not dollars."
|
||||
|
||||
Root Mean Squared Logarithmic Error is the square root of MSLE, providing an error metric in log-scale units. This makes RMSLE more interpretable than MSLE while retaining all its benefits for data spanning multiple orders of magnitude.
|
||||
|
||||
## Architecture & Physics
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# RSE: Relative Squared Error
|
||||
|
||||
> *The squared error version of RAE. RSE and R² are two sides of the same coin: R² = 1 - RSE.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "The squared error version of RAE. RSE and R² are two sides of the same coin: R² = 1 - RSE."
|
||||
|
||||
Relative Squared Error (RSE) measures the total squared error of predictions relative to the total squared error of a simple baseline predictor that always predicts the mean. RSE is directly related to the coefficient of determination (R²).
|
||||
|
||||
## Architecture & Physics
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# R²: Coefficient of Determination
|
||||
|
||||
> *R² tells you how much of the variance in actual values is explained by your predictions. It's the statistician's favorite metric for good reason.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "R² tells you how much of the variance in actual values is explained by your predictions. It's the statistician's favorite metric for good reason."
|
||||
|
||||
The Coefficient of Determination (R²) measures the proportion of variance in the actual values that is predictable from the predicted values. R² ranges from negative infinity to 1, where 1 indicates perfect predictions.
|
||||
|
||||
## Architecture & Physics
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# SMAPE: Symmetric Mean Absolute Percentage Error
|
||||
|
||||
> *MAPE punishes based on who's right; SMAPE punishes based on how different they are.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "MAPE punishes based on who's right; SMAPE punishes based on how different they are."
|
||||
|
||||
Symmetric Mean Absolute Percentage Error addresses a fundamental asymmetry in MAPE: the fact that over-predictions and under-predictions of the same magnitude receive different penalties. SMAPE uses the average of actual and predicted values in the denominator, creating a metric that treats both directions equally.
|
||||
|
||||
## Architecture & Physics
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# Theil's U: Theil's U Statistic
|
||||
|
||||
> *The forecast that matters is the one that beats a naive guess.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "The forecast that matters is the one that beats a naive guess."
|
||||
|
||||
Theil's U Statistic measures forecast accuracy relative to a naive no-change forecast. A value below 1 indicates the model outperforms simply predicting that tomorrow equals today; above 1 means you'd be better off not forecasting at all.
|
||||
|
||||
## Historical Context
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# Tukey's Biweight: Robust Loss Function
|
||||
|
||||
> *When outliers need to be silenced, not just quieted.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "When outliers need to be silenced, not just quieted."
|
||||
|
||||
Tukey's Biweight (also called Bisquare) is a redescending M-estimator that completely ignores errors beyond a threshold. Unlike Huber loss which still penalizes large errors linearly, Tukey's biweight treats extreme outliers as if they don't exist.
|
||||
|
||||
## Historical Context
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# WMAPE: Weighted Mean Absolute Percentage Error
|
||||
|
||||
> *When not all errors are created equal, weight them by what matters.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "When not all errors are created equal, weight them by what matters."
|
||||
|
||||
Weighted Mean Absolute Percentage Error (WMAPE) adjusts MAPE by weighting each error by the magnitude of the actual value. This produces a single, interpretable percentage that represents overall accuracy weighted by importance.
|
||||
|
||||
## Historical Context
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# WRMSE: Weighted Root Mean Squared Error
|
||||
|
||||
> *Not all errors are created equal—WRMSE lets you decide which ones matter most.*
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Error Metric |
|
||||
@@ -16,8 +18,6 @@
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "Not all errors are created equal—WRMSE lets you decide which ones matter most."
|
||||
|
||||
WRMSE extends the classic RMSE by incorporating weights for each observation, enabling analysts to emphasize critical data points such as recent observations, high-volume periods, or specific market regimes. When all weights are equal, WRMSE reduces exactly to RMSE, making it a strict generalization. This implementation uses dual RingBuffers for O(1) streaming updates with periodic resync to manage floating-point drift.
|
||||
|
||||
## Historical Context
|
||||
|
||||
Reference in New Issue
Block a user