GithubHelp home page GithubHelp logo

gvc0461082002 / stockstats Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jealous/stockstats

0.0 1.0 0.0 176 KB

Supply a wrapper ``StockDataFrame`` based on the ``pandas.DataFrame`` with inline stock statistics/indicators support.

License: Other

Python 100.00%

stockstats's Introduction

Stock Statistics/Indicators Calculation Helper

image

image

image

VERSION: 0.2.0

Introduction

Supply a wrapper StockDataFrame based on the pandas.DataFrame with inline stock statistics/indicators support.

Supported statistics/indicators are:

  • change (in percent)
  • delta
  • permutation (zero based)
  • log return
  • max in range
  • min in range
  • middle = (close + high + low) / 3
  • SMA: simple moving average
  • EMA: exponential moving average
  • MSTD: moving standard deviation
  • MVAR: moving variance
  • RSV: raw stochastic value
  • RSI: relative strength index
  • KDJ: Stochastic oscillator
  • Bolling: including upper band and lower band.
  • MACD: moving average convergence divergence. Including signal and histogram. (see note)
  • CR:
  • WR: Williams Overbought/Oversold index
  • CCI: Commodity Channel Index
  • TR: true range
  • ATR: average true range
  • line cross check, cross up or cross down.
  • DMA: Different of Moving Average (10, 50)
  • DMI: Directional Moving Index, including
    • +DI: Positive Directional Indicator
    • -DI: Negative Directional Indicator
    • ADX: Average Directional Movement Index
    • ADXR: Smoothed Moving Average of ADX
  • TRIX: Triple Exponential Moving Average
  • VR: Volatility Volume Ratio

Installation

pip install stockstats

License

BSD

Tutorial

  • Initialize the StockDataFrame with the retype function which convert a pandas.DataFrame to a StockDataFrame.
stock = StockDataFrame.retype(pd.read_csv('stock.csv'))
  • There are some shortcuts for frequent used statistics/indicators like kdjk, boll_hb, macd, etc.
  • The indicators/statistics are generated on the fly when they are accessed. If you are accessing through Series, it may return not found error. The fix is to explicitly initialize it by accessing it like below:
_ = stock['macd']
# or
stock.get('macd')
  • Using get item to access the indicators. The item name following the pattern: {columnName_window_statistics}. Some statistics/indicators has their short cut. See examples below:
# volume delta against previous day
stock['volume_delta']

# open delta against next 2 day
stock['open_2_d']

# open price change (in percent) between today and the day before yesterday
# 'r' stands for rate.
stock['open_-2_r']

# CR indicator, including 5, 10, 20 days moving average
stock['cr']
stock['cr-ma1']
stock['cr-ma2']
stock['cr-ma3']

# volume max of three days ago, yesterday and two days later
stock['volume_-3,2,-1_max']

# volume min between 3 days ago and tomorrow
stock['volume_-3~1_min']

# KDJ, default to 9 days
stock['kdjk']
stock['kdjd']
stock['kdjj']

# three days KDJK cross up 3 days KDJD
stock['kdj_3_xu_kdjd_3']

# 2 days simple moving average on open price
stock['open_2_sma']

# MACD
stock['macd']
# MACD signal line
stock['macds']
# MACD histogram
stock['macdh']

# bolling, including upper band and lower band
stock['boll']
stock['boll_ub']
stock['boll_lb']

# close price less than 10.0 in 5 days count
stock['close_10.0_le_5_c']

# CR MA2 cross up CR MA1 in 20 days count
stock['cr-ma2_xu_cr-ma1_20_c']

# 6 days RSI
stock['rsi_6']
# 12 days RSI
stock['rsi_12']

# 10 days WR
stock['wr_10']
# 6 days WR
stock['wr_6']

# CCI, default to 14 days
stock['cci']
# 20 days CCI
stock['cci_20']

# TR (true range)
stock['tr']
# ATR (Average True Range)
stock['atr']

# DMA, difference of 10 and 50 moving average
stock['dma']

# DMI
# +DI, default to 14 days
stock['pdi']
# -DI, default to 14 days
stock['mdi]
# DX, default to 14 days of +DI and -DI
stock['dx']
# ADX, 6 days SMA of DX, same as stock['dx_6_ema']
stock['adx]
# ADXR, 6 days SMA of ADX, same as stock['adx_6_ema']
stock['adxr']

# TRIX, default to 12 days
stock['trix']
# MATRIX is the simple moving average of TRIX
stock['trix_9_sma']

# VR, default to 26 days
stock['vr']
# MAVR is the simple moving average of VR
stock['vr_6_sma']

To file issue, please visit:

https://github.com/jealous/stockstats

MACDH Note:

In July 2017 the code for MACDH was changed to drop an extra 2x multiplier on the final value to align better with calculation methods used in tools like cryptowatch, tradingview, etc.

Contact author:

stockstats's People

Contributors

jealous avatar mcowger avatar

Watchers

lulu_2002 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.