Skip to content
Technical Analysis Library Time-Series
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE modified Jan 30, 2019
docs removed basic usage in readme Jun 10, 2019
example added example 11 basic usage Jun 2, 2019
jhtalib added def fib Jun 4, 2019
test modified for python 3 Mar 16, 2017
.gitignore modified Jan 30, 2019
CODE_OF_CONDUCT.md modified Jan 30, 2019
CONTRIBUTING.md modified Jan 30, 2019
LICENSE Initial commit Oct 1, 2016
PULL_REQUEST_TEMPLATE.md modified Jan 30, 2019
README.md removed basic usage in readme Jun 10, 2019
setup.py updated Jun 10, 2019

README.md

title author date
jhTAlib
Joost Hoeks
2019-06-10

jhTAlib

Technical Analysis Library Time-Series

You can use and import it for your:

  • Technical Analysis Software

  • Charting Software

  • Backtest Software

  • Trading Robot Software

  • Trading Software in general

Work in progress...


Depends only on


Docs


Install

From PyPI:

$ [sudo] pip3 install jhtalib

From source:

$ git clone https://github.com/joosthoeks/jhTAlib.git
$ cd jhTAlib
$ [sudo] pip3 install -e .

Update

From PyPI:

$ [sudo] pip3 install --upgrade jhtalib

From source:

$ cd jhTAlib
$ git pull [upstream master]

Examples

$ cd example/

Example 1

$ python3 example-1-plot.py

or

https://colab.research.google.com/github/joosthoeks/jhTAlib/blob/master/example/example-1-plot.ipynb


Example 2

$ python3 example-2-plot.py

or

https://colab.research.google.com/github/joosthoeks/jhTAlib/blob/master/example/example-2-plot.ipynb


Example 3

$ python3 example-3-plot.py

or

https://colab.research.google.com/github/joosthoeks/jhTAlib/blob/master/example/example-3-plot.ipynb


Example 4

$ python3 example-4-plot-quandl.py

or

https://colab.research.google.com/github/joosthoeks/jhTAlib/blob/master/example/example-4-plot-quandl.ipynb


Example 5

$ python3 example-5-plot-quandl.py

or

https://colab.research.google.com/github/joosthoeks/jhTAlib/blob/master/example/example-5-plot-quandl.ipynb


Example 6

$ python3 example-6-plot-quandl.py

or

https://colab.research.google.com/github/joosthoeks/jhTAlib/blob/master/example/example-6-plot-quandl.ipynb


Example 7

$ python3 example-7-quandl-2-df.py

or

https://colab.research.google.com/github/joosthoeks/jhTAlib/blob/master/example/example-7-quandl-2-df.ipynb


Example 8

$ python3 example-8-alphavantage-2-df.py

or

https://colab.research.google.com/github/joosthoeks/jhTAlib/blob/master/example/example-8-alphavantage-2-df.ipynb


Example 9

$ python3 example-9-cryptocompare-2-df.py

or

https://colab.research.google.com/github/joosthoeks/jhTAlib/blob/master/example/example-9-cryptocompare-2-df.ipynb


Example 10

DF NumPy Pandas

https://colab.research.google.com/github/joosthoeks/jhTAlib/blob/master/example/example-10-df-numpy-pandas.ipynb


Example 11

Basic Usage

https://colab.research.google.com/github/joosthoeks/jhTAlib/blob/master/example/example-11-basic-usage.ipynb


Test

$ cd test/
$ python3 test.py

Reference

import jhtalib as jhta

Behavioral Techniques

ATH | All Time High | DONE

  • dict of lists of floats = jhta.ATH(df, price='High')

LMC | Last Major Correction | DONE

  • dict of lists of floats = jhta.LMC(df, price='Low')

PP | Pivot Point | DONE


FIBOPR | Fibonacci Price Retracements | DONE

  • dict of lists of floats = jhta.FIBOPR(df, price='Close')

FIBTR | Fibonacci Time Retracements |


GANNPR | W. D. Gann Price Retracements | DONE

  • dict of lists of floats = jhta.GANNPR(df, price='Close')

GANNTR | W. D. Gann Time Retracements |


JDN | Julian Day Number | DONE


JD | Julian Date | DONE


SUNC | Sun Cycle |


MERCURYC | Mercury Cycle |


VENUSC | Venus Cycle |


EARTHC | Earth Cycle |


MARSC | Mars Cycle |


JUPITERC | Jupiter Cycle |


SATURNC | Saturn Cycle |


URANUSC | Uranus Cycle |


NEPTUNEC | Neptune Cycle |


PLUTOC | Pluto Cycle |


MOONC | Moon Cycle |


Candlestick

CDLBODYS | Candle Body Size | DONE


CDLWICKS | Candle Wick Size | DONE


CDLUPPSHAS | Candle Upper Shadow Size | DONE


CDLLOWSHAS | Candle Lower Shadow Size | DONE


CDLBODYP | Candle Body Percent | DONE

  • list of floats = jhta.CDLBODYP(p)

CDLBODYM | Candle Body Momentum | DONE

  • list of floats = jhta.CDLBODYM(df, n)

  • book: Trading Systems and Methods


QSTICK | Qstick | DONE


SHADOWT | Shadow Trends | DONE

  • dict of lists of floats = jhta.SHADOWT(df, n)

  • book: The New Technical Trader


IMI | Intraday Momentum Index | DONE


Cycle Indicators

HT_DCPERIOD | Hilbert Transform - Dominant Cycle Period |


HT_DCPHASE | Hilbert Transform - Dominant Cycle Phase |


HT_PHASOR | Hilbert Transform - Phasor Components |


HT_SINE | Hilbert Transform - SineWave |


HT_TRENDLINE | Hilbert Transform - Instantaneous Trendline |


HT_TRENDMODE | Hilbert Transform - Trend vs Cycle Mode |


TS | Trend Score | DONE


Data

CSV2DF | CSV file 2 DataFeed | DONE

  • dict of tuples of floats = jhta.CSV2DF(csv_file_path)

CSVURL2DF | CSV file url 2 DataFeed | DONE

  • dict of tuples of floats = jhta.CSVURL2DF(csv_file_url)

DF2CSV | DataFeed 2 CSV file | DONE

  • csv file = jhta.DF2CSV(df, csv_file_path)

DF2DFREV | DataFeed 2 DataFeed Reversed | DONE

  • dict of tuples of floats = jhta.DF2DFREV(df)

DF2DFWIN | DataFeed 2 DataFeed Window | DONE

  • dict of tuples of floats = jhta.DF2DFWIN(df, start=0, end=10)

DF_HEAD | DataFeed HEAD | DONE

  • dict of tuples of floats = jhta.DF_HEAD(df, n=5)

DF_TAIL | DataFeed TAIL | DONE

  • dict of tuples of floats = jhta.DF_TAIL(df, n=5)

DF2HEIKIN_ASHI | DataFeed 2 Heikin-Ashi DataFeed | DONE

  • dict of tuples of floats = jhta.DF2HEIKIN_ASHI(df)

Event Driven

ASI | Accumulation Swing Index (J. Welles Wilder) | DONE

  • list of floats = jhta.ASI(df, L)

  • book: New Concepts in Technical Trading Systems


SI | Swing Index (J. Welles Wilder) | DONE

  • list of floats = jhta.SI(df, L)

  • book: New Concepts in Technical Trading Systems


Experimental

JH_SAVGP | Swing Average Price - previous Average Price | DONE

  • list of floats = jhta.JH_SAVGP(df)

JH_SAVGPS | Swing Average Price - previous Average Price Summation | DONE

  • list of floats = jhta.JH_SAVGPS(df)

JH_SCO | Swing Close - Open | DONE

  • list of floats = jhta.JH_SCO(df)

JH_SCOS | Swing Close - Open Summation | DONE

  • list of floats = jhta.JH_SCOS(df)

JH_SMEDP | Swing Median Price - previous Median Price | DONE

  • list of floats = jhta.JH_SMEDP(df)

jh_SMEDPS | Swing Median Price - previous Median Price Summation | DONE

  • list of floats = jhta.JH_SMEDPS(df)

JH_SPP | Swing Price - previous Price | DONE

  • list of floats = jhta.JH_SPP(df, price='Close')

JH_SPPS | Swing Price - previous Price Summation | DONE

  • list of floats = jhta.JH_SPPS(df, price='Close')

JH_STYPP | Swing Typical Price - previous Typical Price | DONE

  • list of floats = jhta.JH_STYPP(df)

JH_STYPPS | Swing Typical Price - previous Typical Price Summation | DONE

  • list of floats = jhta.JH_STYPPS(df)

JH_SWCLP | Swing Weighted Close Price - previous Weighted Close Price | DONE

  • list of floats = jhta.JH_SWCLP(df)

JH_SWCLPS | Swing Weighted Close Price - previous Weighted Close Price Summation | DONE

  • list of floats = jhta.JH_SWCLPS(df)

General

NORMALIZE | Normalize | DONE


STANDARDIZE | Standardize | DONE


SPREAD | Spread | DONE

  • list of floats = jhta.SPREAD(df1, df2, price1='Close', price2='Close')

CP | Comparative Performance | DONE


CRSI | Comparative Relative Strength Index | DONE


CS | Comparative Strength | DONE


HR | Hit Rate / Win Rate | DONE


PLR | Profit/Loss Ratio | DONE


EV | Expected Value | DONE


POR | Probability of Ruin (Table of Lucas and LeBeau) | DONE

  • int = jhta.POR(hitrade_float, profit_loss_ratio_float)

  • book: Computer Analysis of the Futures Markets


Information

INFO | Print df Information | DONE

  • print = jhta.INFO(df, price='Close')

INFO_TRADES | Print Trades Information | DONE

  • print = jhta.INFO_TRADES(profit_trades_list, loss_trades_list)

Math Functions

EXP | Exponential | DONE

  • list of floats = jhta.EXP(df, price='Close')

LOG | Logarithm | DONE

  • list of floats = jhta.LOG(df, price='Close')

LOG10 | Base-10 Logarithm | DONE

  • list of floats = jhta.LOG10(df, price='Close')

SQRT | Square Root | DONE

  • list of floats = jhta.SQRT(df, price='Close')

ACOS | Arc Cosine | DONE

  • list of floats = jhta.ACOS(df, price='Close')

ASIN | Arc Sine | DONE

  • list of floats = jhta.ASIN(df, price='Close')

ATAN | Arc Tangent | DONE

  • list of floats = jhta.ATAN(df, price='Close')

COS | Cosine | DONE

  • list of floats = jhta.COS(df, price='Close')

SIN | Sine | DONE

  • list of floats = jhta.SIN(df, price='Close')

TAN | Tangent | DONE

  • list of floats = jhta.TAN(df, price='Close')

ACOSH | Inverse Hyperbolic Cosine | DONE

  • list of floats = jhta.ACOSH(df, price='Close')

ASINH | Inverse Hyperbolic Sine | DONE

  • list of floats = jhta.ASINH(df, price='Close')

ATANH | Inverse Hyperbolic Tangent | DONE

  • list of floats = jhta.ATANH(df, price='Close')

COSH | Hyperbolic Cosine | DONE

  • list of floats = jhta.COSH(df, price='Close')

SINH | Hyperbolic Sine | DONE

  • list of floats = jhta.SINH(df, price='Close')

TANH | Hyperbolic Tangent | DONE

  • list of floats = jhta.TANH(df, price='Close')

PI | Mathematical constant PI | DONE

  • float = jhta.PI()

E | Mathematical constant E | DONE

  • float = jhta.E()

TAU | Mathematical constant TAU | DONE

  • float = jhta.TAU()

PHI | Mathematical constant PHI | DONE

  • float = jhta.PHI()

FIB | Fibonacci series up to n | DONE

  • list of ints = jhta.FIB(n)

CEIL | Ceiling | DONE

  • list of floats = jhta.CEIL(df, price='Close')

FLOOR | Floor | DONE

  • list of floats = jhta.FLOOR(df, price='Close')

DEGREES | Radians to Degrees | DONE

  • list of floats = jhta.DEGREES(df, price='Close')

RADIANS | Degrees to Radians | DONE

  • list of floats = jhta.RADIANS(df, price='Close')

ADD | Addition High + Low | DONE

  • list of floats = jhta.ADD(df)

DIV | Division High / Low | DONE

  • list of floats = jhta.DIV(df)

MAX | Highest value over a specified period | DONE

  • list of floats = jhta.MAX(df, n, price='Close')

MAXINDEX | Index of highest value over a specified period | DONE

  • list of ints = jhta.MAXINDEX(df, n, price='Close')

MIN | Lowest value over a specified period | DONE

  • list of floats = jhta.MIN(df, n, price='Close')

MININDEX | Index of lowest value over a specified period | DONE

  • list of ints = jhta.MININDEX(df, n, price='Close')

MINMAX | Lowest and Highest values over a specified period | DONE

  • dict of lists of floats = jhta.MINMAX(df, n, price='Close')

MINMAXINDEX | Indexes of lowest and highest values over a specified period | DONE

  • dict of lists of ints = jhta.MINMAXINDEX(df, n, price='Close')

MULT | Multiply High * Low | DONE

  • list of floats = jhta.MULT(df)

SUB | Subtraction High - Low | DONE

  • list of floats = jhta.SUB(df)

SUM | Summation | DONE

  • list of floats = jhta.SUM(df, n, price='Close')

Momentum Indicators

ADX | Average Directional Movement Index |


ADXR | Average Directional Movement Index Rating |


APO | Absolute Price Oscillator | DONE


AROON | Aroon |


AROONOSC | Aroon Oscillator |


BOP | Balance Of Power |


CCI | Commodity Channel Index |


CMO | Chande Momentum Oscillator |


DX | Directional Movement Index |


MACD | Moving Average Convergence/Divergence |


MACDEXT | MACD with controllable MA type |


MACDFIX | Moving Average Convergence/Divergence Fix 12/26 |


MFI | Money Flow Index |


MINUS_DI | Minus Directional Indicator |


MINUS_DM | Minus Directional Movement |


MOM | Momentum | DONE


PLUS_DI | Plus Directional Indicator |


PLUS_DM | Plus Directional Movement |


PPO | Percentage Price Oscillator |


RMI | Relative Momentum Index | DONE


ROC | Rate of Change | DONE

  • list of floats = jhta.ROC(df, n, price='Close')

ROCP | Rate of Change Percentage | DONE

  • list of floats = jhta.ROCP(df, n, price='Close')

ROCR | Rate of Change Ratio | DONE

  • list of floats = jhta.ROCR(df, n, price='Close')

ROCR100 | Rate of Change Ratio 100 scale | DONE


RSI | Relative Strength Index | DONE


STOCH | Stochastic | DONE


STOCHF | Stochastic Fast |


STOCHRSI | Stochastic Relative Strength Index |


TRIX | 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA |


ULTOSC | Ultimate Oscillator |


WILLR | Williams' %R | DONE


Overlap Studies

BBANDS | Bollinger Bands | DONE


BBANDW | Bollinger Band Width | DONE


DEMA | Double Exponential Moving Average |


EMA | Exponential Moving Average | DONE


ENVP | Envelope Percent | DONE


KAMA | Kaufman Adaptive Moving Average |


MA | Moving Average |


MAMA | MESA Adaptive Moving Average |


MAVP | Moving Average with Variable Period |


MIDPOINT | MidPoint over period | DONE


MIDPRICE | MidPoint Price over period | DONE


MMR | Mayer Multiple Ratio | DONE


SAR | Parabolic SAR | DONE

  • list of floats = jhta.SAR(df, af_step=.02, af_max=.2)

  • book: New Concepts in Technical Trading Systems


SAREXT | Parabolic SAR - Extended |


SMA | Simple Moving Average | DONE


T3 | Triple Exponential Moving Average (T3) |


TEMA | Triple Exponential Moving Average |


TRIMA | Triangular Moving Average | DONE


WMA | Weighted Moving Average


Pattern Recognition

CDL2CROWS | Two Crows |

CDL3BLACKCROWS | Three Black Crows |

CDL3INSIDE | Three Inside Up/Down |

CDL3LINESTRIKE | Three-Line Strike |

CDL3OUTSIDE | Three Outside Up/Down |

CDL3STARSINSOUTH | Three Stars In The South |

CDL3WHITESOLDIERS | Three Advancing White Soldiers |

CDLABANDONEDBABY | Abandoned Baby |

CDLADVANCEBLOCK | Advance Block |

CDLBELTHOLD | Belt-hold |

CDLBREAKAWAY | Breakaway |

CDLCLOSINGMARUBOZU | Closing Marubozu |

CDLCONSEALBABYSWALL | Concealing Baby Swallow |

CDLCOUNTERATTACK | Counterattack |

CDLDARKCLOUDCOVER | Dark Cloud Cover |

CDLDOJI | Doji |

CDLDOJISTAR | Doji Star |

CDLDRAGONFLYDOJI | Dragonfly Doji |

CDLENGULFING | Engulfing Pattern |

CDLEVENINGDOJISTAR | Evening Doji Star |

CDLEVENINGSTAR | Evening Star |

CDLGAPSIDESIDEWHITE | Up/Down-gap side-by-side white lines |

CDLGRAVESTONEDOJI | Gravestone Doji |

CDLHAMMER | Hammer |

CDLHANGINGMAN | Hanging Man |

CDLHARAMI | Harami Pattern |

CDLHARAMICROSS | Harami Cross Pattern |

CDLHIGHWAVE | High-Wave Candle |

CDLHIKKAKE | Hikkake Pattern |

CDLHIKKAKEMOD | Modified Hikkake Pattern |

CDLHOMINGPIGEON | Homing Pigeon |

CDLIDENTICAL3CROWS | Identical Three Crows |

CDLINNECK | In-Neck Pattern |

CDLINVERTEDHAMMER | Inverted Hammer |

CDLKICKING | Kicking |

CDLKICKINGBYLENGTH | Kicking - bull/bear determined by the longer marubozu |

CDLLADDERBOTTOM | Ladder Bottom |

CDLLONGLEGGEDDOJI | Long Legged Doji |

CDLLONGLINE | Long Line Candle |

CDLMARUBOZU | Marubozu |

CDLMATCHINGLOW | Matching Low |

CDLMATHOLD | Mat Hold |

CDLMORNINGDOJISTAR | Morning Doji Star |

CDLMORNINGSTAR | Morning Star |

CDLONNECK | On-Neck Pattern |

CDLPIERCING | Piercing Pattern |

CDLRICKSHAWMAN | Rickshaw Man |

CDLRISEFALL3METHODS | Rising/Falling Three Methods |

CDLSEPARATINGLINES | Separating Lines |

CDLSHOOTINGSTAR | Shooting Star |

CDLSHORTLINE | Short Line Candle |

CDLSPINNINGTOP | Spinning Top |

CDLSTALLEDPATTERN | Stalled Pattern |

CDLSTICKSANDWICH | Stick Sandwich |

CDLTAKURI | Takuri (Dragonfly Doji with very long lower shadow) |

CDLTASUKIGAP | Tasuki Gap |

CDLTHRUSTING | Thrusting Pattern |

CDLTRISTAR | Tristar Pattern |

CDLUNIQUE3RIVER | Unique 3 River |

CDLUPSIDEGAP2CROWS | Upside Gap Two Crows |

CDLXSIDEGAP3METHODS | Upside/Downside Gap Three Methods |

Price Transform

AVGPRICE | Average Price | DONE


MEDPRICE | Median Price | DONE


TYPPRICE | Typical Price | DONE


WCLPRICE | Weighted Close Price | DONE


Statistic Functions

MEAN | Arithmetic mean (average) of data | DONE

  • list of floats = jhta.MEAN(df, n, price='Close')

HARMONIC_MEAN | Harmonic mean of data | DONE

  • list of floats = jhta.HARMONIC_MEAN(df, n, price='Close')

MEDIAN | Median (middle value) of data | DONE

  • list of floats = jhta.MEDIAN(df, n, price='Close')

MEDIAN_LOW | Low median of data | DONE

  • list of floats = jhta.MEDIAN_LOW(df, n, price='Close')

MEDIAN_HIGH | High median of data | DONE

  • list of floats = jhta.MEDIAN_HIGH(df, n, price='Close')

MEDIAN_GROUPED | Median, or 50th percentile, of grouped data | DONE

  • list of floats = jhta.MEDIAN_GROUPED(df, n, price='Close', interval=1)

MODE | Mode (most common value) of discrete data | DONE

  • list of floats = jhta.MODE(df, n, price='Close')

PSTDEV | Population standard deviation of data | DONE

  • list of floats = jhta.PSTDEV(df, n, price='Close', mu=None)

PVARIANCE | Population variance of data | DONE

  • list of floats = jhta.PVARIANCE(df, n, price='Close', mu=None)

STDEV | Sample standard deviation of data | DONE

  • list of floats = jhta.STDEV(df, n, price='Close', xbar=None)

VARIANCE | Sample variance of data | DONE

  • list of floats = jhta.VARIANCE(df, n, price='Close', xbar=None)

COV | Covariance | DONE


COVARIANCE | Covariance | DONE


COR | Correlation | DONE

  • float = jhta.COR(list1, list2)

CORRELATION | Correlation | DONE

  • list of floats = jhta.CORRELATION(df1, df2, n, price1='Close', price2='Close')

PCOR | Population Correlation | DONE

  • float = jhta.PCOR(list1, list2)

PCORRELATION | Population Correlation | DONE

  • list of floats = jhta.PCORRELATION(df1, df2, n, price1='Close', price2='Close')

BETA | Beta | DONE


BETAS | Betas | DONE


LSR | Least Squares Regression | DONE


SLR | Simple Linear Regression | DONE


Uncategorised

Volatility Indicators

ATR | Average True Range | DONE


NATR | Normalized Average True Range |


RVI | Relative Volatility Index | DONE


INERTIA | Inertia |


TRANGE | True Range | DONE


Volume Indicators

AD | Chaikin A/D Line | DONE


ADOSC | Chaikin A/D Oscillator |


OBV | On Balance Volume | DONE


You can’t perform that action at this time.