mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-12 23:58:04 +00:00
Refactor documentation for various filters and indicators to enhance clarity and consistency
- Updated Bessel, Bilateral, Blma, Butter, Conv, Ema, Kama, LSMA, MAMA, MGDI, SSF, USF, ATR, ADL, and ADOSC documentation to use bullet points for key concepts and features. - Added a new Qodana configuration file for code analysis. - Removed coverage configuration from Quantower.Tests.csproj to streamline testing setup.
This commit is contained in:
+68
-66
@@ -1,44 +1,44 @@
|
||||
- **Core concepts**
|
||||
- [Architecture](architecture.md)
|
||||
- [API](api.md)
|
||||
- [Benchmarks](benchmarks.md)
|
||||
- [Indicators](indicators.md)
|
||||
- [Usage Guides](usage.md)
|
||||
- [Integration](integration.md)
|
||||
- [Validation](validation.md)
|
||||
- [MA Qualities](ma-qualities.md)
|
||||
* **Core concepts**
|
||||
* [Architecture](architecture.md)
|
||||
* [API](api.md)
|
||||
* [Benchmarks](benchmarks.md)
|
||||
* [Indicators](indicators.md)
|
||||
* [Usage Guides](usage.md)
|
||||
* [Integration](integration.md)
|
||||
* [Validation](validation.md)
|
||||
* [MA Qualities](ma-qualities.md)
|
||||
|
||||
- **Trends**
|
||||
- [Overview](../lib/trends/_index.md)
|
||||
- [Trend Comparison](trendcomparison.md)
|
||||
- [AFIRMA - Autoregressive FIR MA](../lib/trends/afirma/Afirma.md)
|
||||
- [ALMA - Arnaud Legoux MA](../lib/trends/alma/Alma.md)
|
||||
- [BESSEL - Bessel Filter](../lib/trends/bessel/Bessel.md)
|
||||
- [BILATERAL - Bilateral Filter](../lib/trends/bilateral/Bilateral.md)
|
||||
- [BLMA - Blackman Window MA](../lib/trends/blma/Blma.md)
|
||||
- [BUTTER - Butterworth Filter](../lib/trends/butter/Butter.md)
|
||||
- [CONV - Convolution](../lib/trends/conv/Conv.md)
|
||||
- [DEMA - Double Exponential MA](../lib/trends/dema/Dema.md)
|
||||
- [DWMA - Double Weighted MA](../lib/trends/dwma/Dwma.md)
|
||||
- [EMA - Exponential MA](../lib/trends/ema/Ema.md)
|
||||
- [HMA - Hull MA](../lib/trends/hma/Hma.md)
|
||||
- [HTIT - Hilbert Transform Instant Trendline](../lib/trends/htit/Htit.md)
|
||||
- [JMA - Jurik MA](../lib/trends/jma/Jma.md)
|
||||
- [KAMA - Kaufman Adaptive MA](../lib/trends/kama/Kama.md)
|
||||
- [LSMA - Least Squares MA](../lib/trends/lsma/Lsma.md)
|
||||
- [MAMA - MESA Adaptive MA](../lib/trends/mama/Mama.md)
|
||||
- [MGDI - McGinley Dynamic](../lib/trends/mgdi/Mgdi.md)
|
||||
- [PWMA - Pascal Weighted MA](../lib/trends/pwma/Pwma.md)
|
||||
- [RMA - Rolling MA](../lib/trends/rma/Rma.md)
|
||||
- [SMA - Simple MA](../lib/trends/sma/Sma.md)
|
||||
- [SSF - Ehlers Super Smooth Filter](../lib/trends/ssf/Ssf.md)
|
||||
- [SUPER - SuperTrend](../lib/trends/super/Super.md)
|
||||
- [T3 - Tillson T3 MA](../lib/trends/t3/T3.md)
|
||||
- [TEMA - Triple Exponential MA](../lib/trends/tema/Tema.md)
|
||||
- [TRIMA - Triangular MA](../lib/trends/trima/Trima.md)
|
||||
- [USF - Ehlers Ultimate Smoother Filter](../lib/trends/usf/Usf.md)
|
||||
- [VIDYA - Variable Index Dynamic Average](../lib/trends/vidya/Vidya.md)
|
||||
- [WMA - Weighted MA](../lib/trends/wma/Wma.md)
|
||||
* **Trends**
|
||||
* [Overview](../lib/trends/_index.md)
|
||||
* [Trend Comparison](trendcomparison.md)
|
||||
* [AFIRMA - Autoregressive FIR MA](../lib/trends/afirma/Afirma.md)
|
||||
* [ALMA - Arnaud Legoux MA](../lib/trends/alma/Alma.md)
|
||||
* [BESSEL - Bessel Filter](../lib/trends/bessel/Bessel.md)
|
||||
* [BILATERAL - Bilateral Filter](../lib/trends/bilateral/Bilateral.md)
|
||||
* [BLMA - Blackman Window MA](../lib/trends/blma/Blma.md)
|
||||
* [BUTTER - Butterworth Filter](../lib/trends/butter/Butter.md)
|
||||
* [CONV - Convolution](../lib/trends/conv/Conv.md)
|
||||
* [DEMA - Double Exponential MA](../lib/trends/dema/Dema.md)
|
||||
* [DWMA - Double Weighted MA](../lib/trends/dwma/Dwma.md)
|
||||
* [EMA - Exponential MA](../lib/trends/ema/Ema.md)
|
||||
* [HMA - Hull MA](../lib/trends/hma/Hma.md)
|
||||
* [HTIT - Hilbert Transform Instant Trendline](../lib/trends/htit/Htit.md)
|
||||
* [JMA - Jurik MA](../lib/trends/jma/Jma.md)
|
||||
* [KAMA - Kaufman Adaptive MA](../lib/trends/kama/Kama.md)
|
||||
* [LSMA - Least Squares MA](../lib/trends/lsma/Lsma.md)
|
||||
* [MAMA - MESA Adaptive MA](../lib/trends/mama/Mama.md)
|
||||
* [MGDI - McGinley Dynamic](../lib/trends/mgdi/Mgdi.md)
|
||||
* [PWMA - Pascal Weighted MA](../lib/trends/pwma/Pwma.md)
|
||||
* [RMA - Rolling MA](../lib/trends/rma/Rma.md)
|
||||
* [SMA - Simple MA](../lib/trends/sma/Sma.md)
|
||||
* [SSF - Ehlers Super Smooth Filter](../lib/trends/ssf/Ssf.md)
|
||||
* [SUPER - SuperTrend](../lib/trends/super/Super.md)
|
||||
* [T3 - Tillson T3 MA](../lib/trends/t3/T3.md)
|
||||
* [TEMA - Triple Exponential MA](../lib/trends/tema/Tema.md)
|
||||
* [TRIMA - Triangular MA](../lib/trends/trima/Trima.md)
|
||||
* [USF - Ehlers Ultimate Smoother Filter](../lib/trends/usf/Usf.md)
|
||||
* [VIDYA - Variable Index Dynamic Average](../lib/trends/vidya/Vidya.md)
|
||||
* [WMA - Weighted MA](../lib/trends/wma/Wma.md)
|
||||
|
||||
- **Momentum**
|
||||
- [Overview](../lib/momentum/_index.md)
|
||||
@@ -57,36 +57,38 @@
|
||||
- [RSX - Jurik Relative Strength X](../lib/momentum/rsx/Rsx.md)
|
||||
- [VEL - Jurik Velocity](../lib/momentum/vel/Vel.md)
|
||||
|
||||
- **Volatility**
|
||||
- [Overview](../lib/volatility/_index.md)
|
||||
- [ATR - Average True Range](../lib/volatility/atr/Atr.md)
|
||||
* **Volatility**
|
||||
* [Overview](../lib/volatility/_index.md)
|
||||
* [ATR - Average True Range](../lib/volatility/atr/Atr.md)
|
||||
|
||||
- **Volume**
|
||||
- [Overview](../lib/volume/_index.md)
|
||||
- [ADL - Accumulation/Distribution Line](../lib/volume/adl/Adl.md)
|
||||
- [ADOSC - Chaikin A/D Oscillator](../lib/volume/adosc/Adosc.md)
|
||||
* **Volume**
|
||||
* [Overview](../lib/volume/_index.md)
|
||||
* [ADL - Accumulation/Distribution Line](../lib/volume/adl/Adl.md)
|
||||
* [ADOSC - Chaikin A/D Oscillator](../lib/volume/adosc/Adosc.md)
|
||||
|
||||
- **Channels**
|
||||
- [Overview](../lib/channels/_index.md)
|
||||
* **Channels**
|
||||
* [Overview](../lib/channels/_index.md)
|
||||
* [ABBER - Aberration Bands](../lib/channels/abber/abber.md)
|
||||
* [ACCBANDS - Acceleration Bands](../lib/channels/accbands/accbands.md)
|
||||
|
||||
- **Statistics**
|
||||
- [Overview](../lib/statistics/_index.md)
|
||||
- [CMA - Cumulative MA](../lib/statistics/cma/Cma.md)
|
||||
- [COVARIANCE - Covariance](../lib/statistics/covariance/Covariance.md)
|
||||
- [LINREG - Linear Regression Curve](../lib/statistics/linreg/LinReg.md)
|
||||
- [MEDIAN - Rolling Median](../lib/statistics/median/Median.md)
|
||||
- [SKEW - Skewness](../lib/statistics/skew/Skew.md)
|
||||
- [SUM - Rolling Sum](../lib/statistics/sum/Sum.md)
|
||||
- [VARIANCE - Population and Sample Variance](../lib/statistics/variance/Variance.md)
|
||||
* **Statistics**
|
||||
* [Overview](../lib/statistics/_index.md)
|
||||
* [CMA - Cumulative MA](../lib/statistics/cma/Cma.md)
|
||||
* [COVARIANCE - Covariance](../lib/statistics/covariance/Covariance.md)
|
||||
* [LINREG - Linear Regression Curve](../lib/statistics/linreg/LinReg.md)
|
||||
* [MEDIAN - Rolling Median](../lib/statistics/median/Median.md)
|
||||
* [SKEW - Skewness](../lib/statistics/skew/Skew.md)
|
||||
* [SUM - Rolling Sum](../lib/statistics/sum/Sum.md)
|
||||
* [VARIANCE - Population and Sample Variance](../lib/statistics/variance/Variance.md)
|
||||
|
||||
- **Numerics**
|
||||
- [Overview](../lib/numerics/_index.md)
|
||||
* **Numerics**
|
||||
* [Overview](../lib/numerics/_index.md)
|
||||
|
||||
- **Errors**
|
||||
- [Overview](../lib/errors/_index.md)
|
||||
* **Errors**
|
||||
* [Overview](../lib/errors/_index.md)
|
||||
|
||||
- **Forecasts**
|
||||
- [Overview](../lib/forecasts/_index.md)
|
||||
* **Forecasts**
|
||||
* [Overview](../lib/forecasts/_index.md)
|
||||
|
||||
- **Cycles**
|
||||
- [Overview](../lib/cycles/_index.md)
|
||||
* **Cycles**
|
||||
* [Overview](../lib/cycles/_index.md)
|
||||
|
||||
+4
-4
@@ -179,13 +179,13 @@ The initial portion of the output contains "cold" values.
|
||||
|
||||
**How many values are cold?**
|
||||
|
||||
- **Fixed-Window** (SMA, RSI): `WarmupPeriod` (usually `period - 1`).
|
||||
- **Recursive** (EMA, MACD): Technically infinite, practically `3-4 * period`.
|
||||
* **Fixed-Window** (SMA, RSI): `WarmupPeriod` (usually `period - 1`).
|
||||
* **Recursive** (EMA, MACD): Technically infinite, practically `3-4 * period`.
|
||||
|
||||
**Checking Validity:**
|
||||
|
||||
- **Property:** Use `WarmupPeriod` to determine how many initial values to skip.
|
||||
- **Process API:** The returned instance's `IsHot` property confirms if the batch was long enough.
|
||||
* **Property:** Use `WarmupPeriod` to determine how many initial values to skip.
|
||||
* **Process API:** The returned instance's `IsHot` property confirms if the batch was long enough.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -50,10 +50,10 @@ Extends streaming mode with full event infrastructure. Indicators raise events w
|
||||
|
||||
The library uses a Structure of Arrays (SoA) approach for its core data structures.
|
||||
|
||||
- **TSeries**: Internally maintains two `List<T>` collections:
|
||||
- `List<long> _t`: Timestamps (ticks)
|
||||
- `List<double> _v`: Values
|
||||
- **Access**: Data is exposed via `ReadOnlySpan<double>` properties, allowing zero-copy access to the underlying memory for SIMD operations.
|
||||
* **TSeries**: Internally maintains two `List<T>` collections:
|
||||
* `List<long> _t`: Timestamps (ticks)
|
||||
* `List<double> _v`: Values
|
||||
* **Access**: Data is exposed via `ReadOnlySpan<double>` properties, allowing zero-copy access to the underlying memory for SIMD operations.
|
||||
|
||||
This layout is cache-friendly. When calculating an average, the CPU loads a cache line filled entirely with values, without wasting space on interleaved timestamps or object headers.
|
||||
|
||||
@@ -61,9 +61,9 @@ This layout is cache-friendly. When calculating an average, the CPU loads a cach
|
||||
|
||||
QuanTAlib leverages .NET's `System.Runtime.Intrinsics` to access hardware-specific instructions (AVX2, AVX-512).
|
||||
|
||||
- **Vectorization**: Operations like summation, min/max finding, and element-wise arithmetic are vectorized.
|
||||
- **Fallback**: The library checks for hardware support at runtime. If AVX2 is not available, it falls back to scalar implementations, ensuring compatibility with older hardware (though at reduced speed).
|
||||
- **Zero-Allocation**: SIMD operations are performed on `Span<T>` and `ReadOnlySpan<T>`, ensuring no heap allocations occur during the calculation phase.
|
||||
* **Vectorization**: Operations like summation, min/max finding, and element-wise arithmetic are vectorized.
|
||||
* **Fallback**: The library checks for hardware support at runtime. If AVX2 is not available, it falls back to scalar implementations, ensuring compatibility with older hardware (though at reduced speed).
|
||||
* **Zero-Allocation**: SIMD operations are performed on `Span<T>` and `ReadOnlySpan<T>`, ensuring no heap allocations occur during the calculation phase.
|
||||
|
||||
## Design Philosophy
|
||||
|
||||
|
||||
+11
-11
@@ -4,10 +4,10 @@ Performance claims require measurement. QuanTAlib is benchmarked against establi
|
||||
|
||||
## Test Environment
|
||||
|
||||
- **Data**: 500,000 bars
|
||||
- **Parameters**: Period 220 (sufficient scale to expose algorithmic inefficiencies)
|
||||
- **Framework**: NET 10.0.0 (10.0.25.52411), X64 AOT AVX-512F+CD+BW+DQ+VL+VBMI
|
||||
- **Hardware**: AMD Ryzen 9 9950X 16-Core Processor (4.30 GHz) supporting **AVX-512** SIMD and **FMA** (Fused Multiply-Add)
|
||||
* **Data**: 500,000 bars
|
||||
* **Parameters**: Period 220 (sufficient scale to expose algorithmic inefficiencies)
|
||||
* **Framework**: NET 10.0.0 (10.0.25.52411), X64 AOT AVX-512F+CD+BW+DQ+VL+VBMI
|
||||
* **Hardware**: AMD Ryzen 9 9950X 16-Core Processor (4.30 GHz) supporting **AVX-512** SIMD and **FMA** (Fused Multiply-Add)
|
||||
|
||||
These results represent what current-generation server CPUs achieve in production.
|
||||
|
||||
@@ -15,9 +15,9 @@ These results represent what current-generation server CPUs achieve in productio
|
||||
|
||||
The library automatically detects and utilizes the highest available instruction set (AVX-512, AVX2, or NEON). This allows processing multiple data points simultaneously:
|
||||
|
||||
- **AVX-512**: Processes 8 `double` values per cycle (512-bit vectors).
|
||||
- **AVX2**: Processes 4 `double` values per cycle (256-bit vectors).
|
||||
- **NEON**: Processes 2 `double` values per cycle (128-bit vectors).
|
||||
* **AVX-512**: Processes 8 `double` values per cycle (512-bit vectors).
|
||||
* **AVX2**: Processes 4 `double` values per cycle (256-bit vectors).
|
||||
* **NEON**: Processes 2 `double` values per cycle (128-bit vectors).
|
||||
|
||||
QuanTAlib also leverages **Fused Multiply-Add (FMA)** instructions (FMA3) wherever possible - for scalar and vector math. FMA performs a multiplication and addition in a single CPU cycle (`a * b + c`) with a single rounding step. This provides two distinct advantages:
|
||||
|
||||
@@ -93,10 +93,10 @@ Even QuanTAlib's slowest mode (Eventing with complete event infrastructure and 1
|
||||
|
||||
[BenchmarkDotNet](https://benchmarkdotnet.org/) is used for all performance testing. This ensures:
|
||||
|
||||
- Warmup iterations to stabilize JIT compilation
|
||||
- Statistical analysis of results (mean, standard deviation)
|
||||
- Memory allocation tracking
|
||||
- Environment isolation
|
||||
* Warmup iterations to stabilize JIT compilation
|
||||
* Statistical analysis of results (mean, standard deviation)
|
||||
* Memory allocation tracking
|
||||
* Environment isolation
|
||||
|
||||
## How to Run Benchmarks Yourself
|
||||
|
||||
|
||||
+54
-49
@@ -21,9 +21,9 @@ QuanTAlib provides technical indicators organized into mathematical families. Un
|
||||
|
||||
The categories aren't rigid boundaries—many indicators could fit multiple categories. KAMA is both a trend indicator and uses momentum calculations. Keltner Channels combine trends (moving average centerline) with volatility (ATR bands). The organization helps you understand what analytical problem each indicator solves rather than memorizing which arbitrary category someone assigned it to.
|
||||
|
||||
- **New to TA?** Start with **Trends**, **Volatility**, and **Momentum**. These provide the foundation most traders need.
|
||||
- **Building a Strategy?** Use **Statistics** for pairs trading, **Volume** for confirmation, and **Channels** for breakouts.
|
||||
- **Advanced Quant?** **Numerics**, **Errors**, and **Cycles** provide the raw mathematical tools for custom signal processing and model validation.
|
||||
* **New to TA?** Start with **Trends**, **Volatility**, and **Momentum**. These provide the foundation most traders need.
|
||||
* **Building a Strategy?** Use **Statistics** for pairs trading, **Volume** for confirmation, and **Channels** for breakouts.
|
||||
* **Advanced Quant?** **Numerics**, **Errors**, and **Cycles** provide the raw mathematical tools for custom signal processing and model validation.
|
||||
|
||||
## Mathematical Families Explanation
|
||||
|
||||
@@ -31,23 +31,23 @@ The categories aren't rigid boundaries—many indicators could fit multiple cate
|
||||
|
||||
Moving averages are low-pass filters. They remove high-frequency noise (random price fluctuations) to reveal the underlying low-frequency signal (trend).
|
||||
|
||||
- **SMA**: Equal weight to all points. Slowest to react.
|
||||
- **EMA/WMA**: More weight to recent data. Faster reaction.
|
||||
- **HMA/JMA/ALMA**: Advanced math to reduce lag while maintaining smoothness.
|
||||
* **SMA**: Equal weight to all points. Slowest to react.
|
||||
* **EMA/WMA**: More weight to recent data. Faster reaction.
|
||||
* **HMA/JMA/ALMA**: Advanced math to reduce lag while maintaining smoothness.
|
||||
|
||||
### Oscillators (Momentum)
|
||||
|
||||
Oscillators measure the velocity of price changes. They are typically bounded (e.g., 0-100) or centered around zero.
|
||||
|
||||
- **RSI**: Ratio of average gains to average losses.
|
||||
- **MACD**: Difference between two moving averages (convergence/divergence).
|
||||
* **RSI**: Ratio of average gains to average losses.
|
||||
* **MACD**: Difference between two moving averages (convergence/divergence).
|
||||
|
||||
### Dispersion (Volatility)
|
||||
|
||||
These measure the spread of data points around the mean.
|
||||
|
||||
- **StdDev**: Standard statistical measure of variance.
|
||||
- **ATR**: Volatility measure that accounts for gaps (high-low range).
|
||||
* **StdDev**: Standard statistical measure of variance.
|
||||
* **ATR**: Volatility measure that accounts for gaps (high-low range).
|
||||
|
||||
## Implemented Indicators
|
||||
|
||||
@@ -66,51 +66,56 @@ These measure the spread of data points around the mean.
|
||||
|
||||
### Trends
|
||||
|
||||
- [**AFIRMA**](../lib/trends/afirma/Afirma.md) - Autoregressive FIR MA
|
||||
- [**ALMA**](../lib/trends/alma/Alma.md) - Arnaud Legoux MA
|
||||
- [**BESSEL**](../lib/trends/bessel/Bessel.md) - Bessel Filter
|
||||
- [**BILATERAL**](../lib/trends/bilateral/Bilateral.md) - Bilateral Filter
|
||||
- [**BLMA**](../lib/trends/blma/Blma.md) - Blackman Window MA
|
||||
- [**BUTTER**](../lib/trends/butter/Butter.md) - Butterworth Filter
|
||||
- [**CONV**](../lib/trends/conv/Conv.md) - Convolution MA
|
||||
- [**DEMA**](../lib/trends/dema/Dema.md) - Double Exponential MA
|
||||
- [**DWMA**](../lib/trends/dwma/Dwma.md) - Double Weighted MA
|
||||
- [**EMA**](../lib/trends/ema/Ema.md) - Exponential MA
|
||||
- [**HMA**](../lib/trends/hma/Hma.md) - Hull MA
|
||||
- [**HTIT**](../lib/trends/htit/Htit.md) - Hilbert Transform Instantaneous Trend
|
||||
- [**JMA**](../lib/trends/jma/Jma.md) - Jurik MA
|
||||
- [**KAMA**](../lib/trends/kama/Kama.md) - Kaufman Adaptive MA
|
||||
- [**LSMA**](../lib/trends/lsma/Lsma.md) - Least Squares MA
|
||||
- [**MAMA**](../lib/trends/mama/Mama.md) - MESA Adaptive MA
|
||||
- [**MGDI**](../lib/trends/mgdi/Mgdi.md) - McGinley Dynamic
|
||||
- [**PWMA**](../lib/trends/pwma/Pwma.md) - Pascal Weighted MA
|
||||
- [**RMA**](../lib/trends/rma/Rma.md) - wildeR MA
|
||||
- [**SMA**](../lib/trends/sma/Sma.md) - Simple MA
|
||||
- [**SSF**](../lib/trends/ssf/Ssf.md) - Ehlers Super Smooth Filter
|
||||
- [**SUPER**](../lib/trends/super/Super.md) - SuperTrend
|
||||
- [**T3**](../lib/trends/t3/T3.md) - Tillson T3 MA
|
||||
- [**TEMA**](../lib/trends/tema/Tema.md) - Triple Exponential MA
|
||||
- [**TRIMA**](../lib/trends/trima/Trima.md) - Triangular MA
|
||||
- [**USF**](../lib/trends/usf/Usf.md) - Ehlers Ultimate Smoother Filter
|
||||
- [**VIDYA**](../lib/trends/vidya/Vidya.md) - Variable Index Dynamic Average
|
||||
- [**WMA**](../lib/trends/wma/Wma.md) - Weighted MA
|
||||
* [**AFIRMA**](../lib/trends/afirma/Afirma.md) - Autoregressive FIR MA
|
||||
* [**ALMA**](../lib/trends/alma/Alma.md) - Arnaud Legoux MA
|
||||
* [**BESSEL**](../lib/trends/bessel/Bessel.md) - Bessel Filter
|
||||
* [**BILATERAL**](../lib/trends/bilateral/Bilateral.md) - Bilateral Filter
|
||||
* [**BLMA**](../lib/trends/blma/Blma.md) - Blackman Window MA
|
||||
* [**BUTTER**](../lib/trends/butter/Butter.md) - Butterworth Filter
|
||||
* [**CONV**](../lib/trends/conv/Conv.md) - Convolution MA
|
||||
* [**DEMA**](../lib/trends/dema/Dema.md) - Double Exponential MA
|
||||
* [**DWMA**](../lib/trends/dwma/Dwma.md) - Double Weighted MA
|
||||
* [**EMA**](../lib/trends/ema/Ema.md) - Exponential MA
|
||||
* [**HMA**](../lib/trends/hma/Hma.md) - Hull MA
|
||||
* [**HTIT**](../lib/trends/htit/Htit.md) - Hilbert Transform Instantaneous Trend
|
||||
* [**JMA**](../lib/trends/jma/Jma.md) - Jurik MA
|
||||
* [**KAMA**](../lib/trends/kama/Kama.md) - Kaufman Adaptive MA
|
||||
* [**LSMA**](../lib/trends/lsma/Lsma.md) - Least Squares MA
|
||||
* [**MAMA**](../lib/trends/mama/Mama.md) - MESA Adaptive MA
|
||||
* [**MGDI**](../lib/trends/mgdi/Mgdi.md) - McGinley Dynamic
|
||||
* [**PWMA**](../lib/trends/pwma/Pwma.md) - Pascal Weighted MA
|
||||
* [**RMA**](../lib/trends/rma/Rma.md) - wildeR MA
|
||||
* [**SMA**](../lib/trends/sma/Sma.md) - Simple MA
|
||||
* [**SSF**](../lib/trends/ssf/Ssf.md) - Ehlers Super Smooth Filter
|
||||
* [**SUPER**](../lib/trends/super/Super.md) - SuperTrend
|
||||
* [**T3**](../lib/trends/t3/T3.md) - Tillson T3 MA
|
||||
* [**TEMA**](../lib/trends/tema/Tema.md) - Triple Exponential MA
|
||||
* [**TRIMA**](../lib/trends/trima/Trima.md) - Triangular MA
|
||||
* [**USF**](../lib/trends/usf/Usf.md) - Ehlers Ultimate Smoother Filter
|
||||
* [**VIDYA**](../lib/trends/vidya/Vidya.md) - Variable Index Dynamic Average
|
||||
* [**WMA**](../lib/trends/wma/Wma.md) - Weighted MA
|
||||
|
||||
### Volatility
|
||||
|
||||
- [**ATR**](../lib/volatility/atr/Atr.md) - Average True Range
|
||||
* [**ATR**](../lib/volatility/atr/Atr.md) - Average True Range
|
||||
|
||||
### Volume
|
||||
|
||||
- [**ADL**](../lib/volume/adl/Adl.md) - Accumulation/Distribution Line
|
||||
- [**ADOSC**](../lib/volume/adosc/Adosc.md) - Chaikin A/D Oscillator
|
||||
* [**ADL**](../lib/volume/adl/Adl.md) - Accumulation/Distribution Line
|
||||
* [**ADOSC**](../lib/volume/adosc/Adosc.md) - Chaikin A/D Oscillator
|
||||
|
||||
### Channels
|
||||
|
||||
* [**ABBER**](../lib/channels/abber/abber.md) - Aberration Bands
|
||||
* [**ACCBANDS**](../lib/channels/accbands/accbands.md) - Acceleration Bands
|
||||
|
||||
### Statistics
|
||||
|
||||
- [**CMA**](../lib/statistics/cma/Cma.md) - Cumulative Moving Average
|
||||
- [**COVARIANCE**](../lib/statistics/covariance/Covariance.md) - Covariance
|
||||
- [**LINREG**](../lib/statistics/linreg/LinReg.md) - Linear Regression Curve
|
||||
- [**MEDIAN**](../lib/statistics/median/Median.md) - Rolling Median
|
||||
- [**SKEW**](../lib/statistics/skew/Skew.md) - Skewness
|
||||
- [**STDDEV**](../lib/statistics/stddev/StdDev.md) - Standard Deviation
|
||||
- [**SUM**](../lib/statistics/sum/Sum.md) - Rolling Sum
|
||||
- [**VARIANCE**](../lib/statistics/variance/Variance.md) - Population and Sample Variance
|
||||
* [**CMA**](../lib/statistics/cma/Cma.md) - Cumulative Moving Average
|
||||
* [**COVARIANCE**](../lib/statistics/covariance/Covariance.md) - Covariance
|
||||
* [**LINREG**](../lib/statistics/linreg/LinReg.md) - Linear Regression Curve
|
||||
* [**MEDIAN**](../lib/statistics/median/Median.md) - Rolling Median
|
||||
* [**SKEW**](../lib/statistics/skew/Skew.md) - Skewness
|
||||
* [**STDDEV**](../lib/statistics/stddev/StdDev.md) - Standard Deviation
|
||||
* [**SUM**](../lib/statistics/sum/Sum.md) - Rolling Sum
|
||||
* [**VARIANCE**](../lib/statistics/variance/Variance.md) - Population and Sample Variance
|
||||
|
||||
+5
-5
@@ -7,13 +7,13 @@ QuanTAlib is designed to be platform-agnostic. It can be integrated into any .NE
|
||||
Quantower allows custom indicators via C#.
|
||||
|
||||
1. **Reference the DLL**:
|
||||
- Build QuanTAlib or download the NuGet package.
|
||||
- In your Quantower indicator project, add a reference to `QuanTAlib.dll`.
|
||||
* Build QuanTAlib or download the NuGet package.
|
||||
* In your Quantower indicator project, add a reference to `QuanTAlib.dll`.
|
||||
|
||||
2. **Wrapper Class**:
|
||||
- Create a class that inherits from `Indicator`.
|
||||
- Instantiate the QuanTAlib indicator in `OnInit`.
|
||||
- Call `Update` in `OnUpdate`.
|
||||
* Create a class that inherits from `Indicator`.
|
||||
* Instantiate the QuanTAlib indicator in `OnInit`.
|
||||
* Call `Update` in `OnUpdate`.
|
||||
|
||||
```csharp
|
||||
using Quantower.API.Indicators;
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
Scale 1–10 where **10 = better** for every column. Detailed evaluation criteria at the bottom of this doc.
|
||||
|
||||
- **Accuracy**: Preserve true movement structure (major trends and turning points) without distortion or artificial patterns.
|
||||
- **Timeliness**: Minimal lag. Fast response to genuine movement changes and reversals.
|
||||
- O**vershoot Control**: Remain within min/max of input, avoid generating artificial over-reaching levels and false threshold triggers.
|
||||
- **Smoothness**: Noise suppression. Stable output with smooth derivatives (no erratic velocity/acceleration).
|
||||
* **Accuracy**: Preserve true movement structure (major trends and turning points) without distortion or artificial patterns.
|
||||
* **Timeliness**: Minimal lag. Fast response to genuine movement changes and reversals.
|
||||
* O**vershoot Control**: Remain within min/max of input, avoid generating artificial over-reaching levels and false threshold triggers.
|
||||
* **Smoothness**: Noise suppression. Stable output with smooth derivatives (no erratic velocity/acceleration).
|
||||
|
||||
| Indicator | Accuracy | Timeliness | Overshoot Control | Smoothness | Notes (revised) |
|
||||
| :--- | :---: | :---: | :---: | :---: | :--- |
|
||||
|
||||
+2
-2
@@ -2,9 +2,9 @@
|
||||
|
||||
| Indicator | QuanTAlib | TA-Lib | Tulip | Skender | Ooples |
|
||||
| :--- | :--- | :---: | :---: | :---: | :---: |
|
||||
| **Aberration** | Abber | - | - | - | - |
|
||||
| **Aberration Bands** | [Abber](../lib/channels/abber/abber.md) | - | - | - | - |
|
||||
| **Absolute Price Oscillator** | [Apo](../lib/momentum/apo/apo.md) | ✔️ | ✔️ | - | ✔️ |
|
||||
| **Acceleration Bands** | Accbands | - | - | - | ❔ |
|
||||
| **Acceleration Bands** | [AccBands](../lib/channels/accbands/accbands.md) | - | - | - | - |
|
||||
| **Acceleration Oscillator** | Ac | - | - | - | ❔ |
|
||||
| **Accumulation/Distribution Line** | [Adl](../lib/volume/adl/adl.md) | ✔️ | ✔️ | ✔️ | ✔️ |
|
||||
| **Accumulation/Distribution Oscillator** | [Adosc](../lib/volume/adosc/adosc.md) | ✔️ | ✔️ | ✔️ | ✔️ |
|
||||
|
||||
Reference in New Issue
Block a user