Skip to content

Financial market technical analysis & indicators in Julia

License

Notifications You must be signed in to change notification settings

dysonance/Indicators.jl

Repository files navigation

Build Status Coverage Status codecov.io

Indicators

Indicators is a Julia package offering efficient implementations of many technical analysis indicators and algorithms. This work is inspired by the TTR package in R and the Python implementation of TA-Lib, and the ultimate goal is to implement all of the functionality of these offerings (and more) in Julia. This package has been written to be able to interface with both native Julia Array types, as well as the TS time series type from the Temporal package. Contributions are of course always welcome for wrapping any of these functions in methods for other types and/or packages out there, as are suggestions for other indicators to add to the lists below.

Implemented

Moving Averages

  • SMA (simple moving average)
  • WMA (weighted moving average)
  • EMA (exponential moving average)
  • TRIMA (triangular moving average)
  • KAMA (Kaufman adaptive moving average)
  • MAMA (MESA adaptive moving average, developed by John Ehlers)
  • HMA (Hull moving average)
  • ALMA (Arnaud-Legoux moving average)
  • SWMA (sine-weighted moving average)
  • DEMA (double exponential moving average)
  • TEMA (triple exponential moving average)
  • ZLEMA (zero-lag exponential moving average)
  • MMA (modified moving average)
  • VWMA (volume-weighted moving average)
  • MLR (moving linear regression)
    • Prediction
    • Slope
    • Intercept
    • Standard error
    • Upper & lower bound
    • R-squared

Momentum Indicators

  • Momentum (n-day price change)
  • ROC (rate of change)
  • MACD (moving average convergence-divergence)
  • RSI (relative strength index)
  • ADX (average directional index)
  • Heikin-Ashi (Heiken Ashi)
  • Parabolic SAR (stop and reverse)
  • Fast & slow stochastics
  • SMI (stochastic momentum indicator)
  • KST (Know Sure Thing)
  • Williams %R
  • CCI (commodity channel index)
  • Donchian channel
  • Ichimoku Kinko Hyo
  • Aroon indicator + oscillator

Volatility Indicators

  • Bollinger Bands
  • Average True Range
  • Keltner Bands

Other

  • Rolling/running mean
  • Rolling/running standard deviation
  • Rolling/running variance
  • Rolling/running covariance
  • Rolling/running correlation
  • Rolling/running maximum
  • Rolling/running minimum
  • Rolling/running MAD (mean absolute deviation)
  • Rolling/running quantiles

Wish List

To-Do

  • Hamming moving average
  • VWAP (volume-weighted average price)
  • EVWMA (elastic, volume-weighted moving average)
  • VMA (variable-length moving average)
  • Chaikin Money Flow
  • Ultimate Oscillator
  • OBV (on-balance volume)
  • Too many more to name...always happy to hear suggestions though!

Done

  • Moving Linear Regression
  • KAMA (Kaufman adaptive moving average)
  • DEMA (double exponential moving average)
  • TEMA (tripe exponential moving average)
  • ALMA (Arnaud Legoux moving average)
  • Parabolic SAR
  • Williams %R
  • KST (know sure thing)
  • CCI (commodity channel index)
  • ROC (rate of change)
  • Momentum
  • Donchian Channel
  • Aroon Indicator / Aroon Oscillator
  • Stochastics
    • Slow Stochastics
    • Fast Stochastics
    • Stochastic Momentum Index
  • MMA (modified moving average)
  • ZLEMA (zero lag exponential moving average)
  • VWMA (volume-weighted moving average)

Examples

Randomly generated data:

alt text

Apple (AAPL) daily data from 2015:

alt text

Corn futures daily data

alt text

Gold Futures Moving Regression

alt text