Files
QuanTAlib/docs
2022-11-10 20:10:35 -08:00
..
2022-11-05 18:35:35 -07:00
2022-11-06 17:20:57 -08:00
2022-11-10 20:10:35 -08:00
2022-11-10 20:10:35 -08:00
2022-11-06 17:20:57 -08:00
2022-11-06 17:20:57 -08:00
2022-11-10 20:10:35 -08:00

QuanTAlib - quantitative technical indicators for Quantower and other C#-based trading platorms

Lines of Code Codacy grade codecov Security Rating CodeFactor

Nuget GitHub last commit Nuget GitHub watchers .NET7.0

Quantitative TA Library (QuanTAlib) is an easy-to-use C# library for quantitative technical analysis with base algorithms, charts, signals and strategies useful for trading securities with Quantower and other C#-based trading platforms.

QuanTAlib is written with some specific design criteria in mind - some reasons why there is 'yet another C# TA library':

  • Written in native C# - no code conversion from TA-LIB or other imported/converted TA libraries
  • No usage of Decimal datatypes, LINQ, interface abstractions, or static classes with tons of methods (all for performance reasons)
  • Supports both historical data analysis (working on bulk of historical arrays) and real-time analysis (adding one data item at the time without the need to re-calculate the whole history)
  • Calculate early data right - no hiding of incomplete calculations with NaN values (unless explicitly requested with useNan: true), data is as valid as mathematically possible from the first value
  • Usage of events - each data series is an event publisher, each indicator is a subscriber - this allows seamless data flow between indicators)
  • Seamlessly integrates with Polyglot notebooks (.NET Interactive) and used in Jupyter notebooks - see the examples and documentation.

QuanTAlib does not focus on sources of OHLCV quotes. There are some basic data feeds available to use in learning and strategy exploration: RND_Feed and GBM_Feed for random data feed, Yahoo_Feed and Alphavantage_Feed for quick grab of basic daily data of US stock market.

See Getting Started .NET interactive notebook to get a feel how library works. Developers can use QuanTAlib in .NET interactive or in console apps, but the best usage of the library is withing C#-enabled trading platforms - see QuanTower_Charts folder for Quantower examples.

Coverage

= Calculation is validated against other TA libraries

✔️= Calculation exists but has no cross-validation tests

= Not implemented (yet)

BASIC TRANSFORMS QuanTAlib TA-LIB Skender
✔️ OC2 - (Open+Close)/2 .OC2 GetBaseQuote
HL2 - Median Price .HL2 MEDPRICE GetBaseQuote
HLC3 - Typical Price .HLC3 TYPPRICE
✔️ OHL3 - (Open+High+Low)/3 .OHL3
OHLC4 - Average Price .OHLC4 AVGPRICE GetBaseQuote
HLCC4 - Weighted Price .HLCC4 WCLPRICE
✔️ ZL - De-lagged price (Zero-Lag) ZL_Series
MAX - Max value MAX_Series MAX
MID - Midpoint value MIDPOINT
MIDP - Midpoint price MIDPRICE
MIN - Min value MIN_Series MIN
ADD - Addition ADD_Series ADD
SUB - Subtraction SUB_Series SUB
MUL - Multiplication MUL_Series MUL
DIV - Division DIV_Series DIV
STATISTICS & NUMERICAL ANALYSIS QuanTAlib TA-LIB Skender
✔️ BIAS - Bias BIAS_Series
CORREL - Pearson's Correlation Coefficient CORREL GetCorrelation
COVAR - Covariance GetCorrelation
✔️ ENTP - Entropy ENTP_Series
✔️ KURT - Kurtosis KURT_Series
LINREG - Linear Regression LINREG_Series GetSlope
MAD - Mean Absolute Deviation MAD_Series GetSma
MAPE - Mean Absolute Percent Error MAPE_Series GetSma
✔️ MED - Median value MED_Series
✔️ MSE - Mean Squared Error MSE_Series GetSma
SKEW - Skewness
SDEV - Standard Deviation (Volatility) SDEV_Series
✔️ SSDEV - Sample Standard Deviation SSDEV_Series
✔️ SMAPE - Symmetric Mean Absolute Percent Error SMAPE_Series
✔️ VAR - Population Variance VAR_Series
✔️ SVAR - Sample Variance SVAR_Series
QUANT - Quantile
✔️ WMAPE - Weighted Mean Absolute Percent Error WMAPE_Series
ZSCORE - Number of standard deviations from mean
TREND INDICATORS & AVERAGES QuanTAlib TA-LIB Skender
AFIRMA - Autoregressive Finite Impulse Response Moving Average
ALMA - Arnaud Legoux Moving Average ALMA_Series GetAlma
ARIMA - Autoregressive Integrated Moving Average
DEMA - Double EMA Average DEMA_Series DEMA GetDema
EMA - Exponential Moving Average EMA_Series GetEma
EPMA - Endpoint Moving Average GetEpma
FWMA - Fibonacci's Weighted Moving Average
✔️ HEMA - Hull/EMA Average HEMA_Series
Hilbert Transform Instantaneous Trendline HT_TRENDLINE GetHtTrendline
HMA - Hull Moving Average HMA_Series GetHma
HWMA - Holt-Winter Moving Average
✔️ JMA - Jurik Moving Average JMA_Series
KAMA - Kaufman's Adaptive Moving Average KAMA_Series KAMA GetKama
LSMA - Least Squares Moving Average
MACD - Moving Average Convergence/Divergence MACD_Series MACD GetMacd
MAMA - MESA Adaptive Moving Average MAMA GetMama
MMA - Modified Moving Average
PPMA - Pivot Point Moving Average
PWMA - Pascal's Weighted Moving Average
✔️ RMA - WildeR's Moving Average RMA__Series
SINWMA - Sine Weighted Moving Average
SMA - Simple Moving Average SMA_Series
SMMA - Smoothed Moving Average SMMA_Series
SSF - Ehler's Super Smoother Filter
SUP - Supertrend
SWMA - Symmetric Weighted Moving Average
T3 - Tillson T3 Moving Average
TEMA - Triple EMA Average TEMA_Series
TRIMA - Triangular Moving Average
VIDYA - Variable Index Dynamic Average
WMA - Weighted Moving Average WMA_Series
✔️ ZLEMA - Zero Lag EMA Average ZLEMA_Series
VOLATILITY INDICATORS QuanTAlib TA-LIB Skender
ADL - Chaikin Accumulation Distribution Line ADL_Series AD GetAdl
ADOSC - Chaikin Accumulation Distribution Oscillator ADOSC_Series ADOSC GetAdl
ATR - Average True Range ATR_Series ATR GetAtr
ATRP - Average True Range Percent ATRP_Series GetAtr
✔️ BETA - Beta coefficient BETA GetBeta
BBANDS - Bollinger Bands® BBANDS_Series BBANDS GetBollingerBands
CRSI - Connor RSI GetConnorsRsi
DON - Donchian Channels GetDonchian
FCB - Fractal Chaos Bands GetFcb
HV - Historical Volatility
ICH - Ichimoku GetIchimoku
KEL - Keltner Channels GetKeltner
NATR - Normalized Average True Range NATR GetAtr
RSI - Relative Strength Index RSI_Series
SAR - Parabolic Stop and Reverse SAR GetParabolicSar
SRSI - Stochastic RSI
STARC - Starc Bands
TR - True Range TR_Series
UI - Ulcer Index
VSTOP - Volatility Stop
MOMENTUM INDICATORS & OSCILLATORS QuanTAlib TA-LIB Skender
AC - Acceleration Oscillator
ADX - Average Directional Movement Index ADX GetAdx
ADXR - Average Directional Movement Index Rating ADXR GetAdx
AO - Awesome Oscillator GetAwesome
APO - Absolute Price Oscillator APO
AROON - Aroon oscillator AROON GetAroon
BOP - Balance of Power BOP GetBop
CCI - Commodity Channel Index CCI_Series CCI GetCci
CFO - Chande Forcast Oscillator
CMF - Chaikin Money Flow
CMO - Chande Momentum Oscillator CMO GetCmo
COG - Center of Gravity
CTI - Ehler's Correlation Trend Indicator
DPO - Detrended Price Oscillator GetDpo
DMI - Directional Movement Index DX GetAdx
EFI - Elder Ray's Force Index GetElderRay
GAT - Alligator oscillator GetGator
HURST - Hurst Exponent GetHurst
KRI - Kairi Relative Index
KVO - Klinger Volume Oscillator
MFI - Money Flow Index MFI GetMfi
ROC - Rate of Change (Momentum) MOM GetRoc
NVI - Negative Volume Index
PO - Price Oscillator
PPO - Percentage Price Oscillator PPO
PMO - Price Momentum Oscillator
PVI - Positive Volume Index
RVGI - Relative Vigor Index
SMI - Stochastic Momentum Index
STOCH - Stochastic Oscillator
TRIX - 1-day ROC of TEMA
TSI - True Strength Index
UO - Ultimate Oscillator
WGAT - Williams Alligator
VOLUME INDICATORS QuanTAlib TA-LIB Skender
AOBV - Archer On-Balance Volume
OBV - On-Balance Volume OBV GetObv
PRS - Price Relative Strength
PVOL - Price-Volume
PVO - Percentage Volume Oscillator
PVR - Price Volume Rank
PVT - Price Volume Trend
VP - Volume Profile
VWAP - Volume Weighted Average Price
VWMA - Volume Weighted Moving Average
Unsorted QuanTAlib TA-LIB Skender
CHN - Price Channel
COPPOCK - Coppock Curve
EOM - Ease of Movement
HILO - Gann High-Low Activator
HT - HT Trendline
MCGD - McGinley Dynamic
STC - Schaff Trend Cycle
WILLR - Larry Williams' %R
VOR - Vortex Indicator
PVT - Pivot Points
KDJ - KDJ Index
CHAND - Chandelier Exit