python技术分析指标_集成80多种技术分析指标的Python 3 Pandas扩展库

Technical Analysis Library in Python 3.7

Pandas Technical Analysis (Pandas TA) is an easy to use library that is built upon Python's Pandas library with more than 100 Indicators. These indicators are commonly used for financial time series datasets with columns or labels similar to: datetime, open, high, low, close, volume, et al. Many commonly used indicators are included, such as: Simple Moving Average (SMA) Moving Average Convergence Divergence (MACD), Hull Exponential Moving Average (HMA), Bollinger Bands (BBANDS), On-Balance Volume (OBV), Aroon & Aroon Oscillator (AROON) and more.

This version contains both the orignal code branch as well as a newly refactored branch with the option to use Pandas DataFrame Extension mode. All the indicators return a named Series or a DataFrame in uppercase underscore parameter format. For example, MACD(fast=12, slow=26, signal=9) will return a DataFrame with columns: ['MACD_12_26_9', 'MACDh_12_26_9', 'MACDs_12_26_9'].

Features

Has 100+ indicators and utility functions.

Option to use multiprocessing when using df.ta.strategy(). See below.

Example Jupyter Notebook under the examples directory.

A new 'ta' method called 'strategy' that be default, runs all the indicators.

Abbreviated Indicator names as listed below.

Extended Pandas DataFrame as 'ta'.

Easily add prefixes or suffixes or both to columns names.

Categories similar to TA-lib.

Recent Changes

New DataFrame Method:

strategy (strategy)

Added indicators:

Bias (bias)

Choppiness Index (chop)

Chande Kroll Stop (cksp)

Doji (cdl_doji)

Entropy (entropy)

Heikin-Ashi Candles (ha)

Inertia (inertia)

KDJ (kdj)

Parabolic Stop and Reverse (psar)

Price Distance (pdist)

Psycholigical Line (psl)

Percentage Volume Oscillator (pvo)

Relative Volatility Index (rvi)

Supertrend (supertrend)

Weighted Closing Price (wcp)

Added utilities:

Above (above)

Above Value (above_value)

Below (below)

Below Value (below_value)

Cross Value (cross_value)

User Added Indicators:

Aberration (aberration)

BRAR (brar)

Corrected Indicators:

Absolute Price Oscillator (apo)

Aroon & Aroon Oscillator (aroon)

* Fixed indicator and included oscillator in returned dataframe

Bollinger Bands (bbands)

Commodity Channel Index (cci)

Chande Momentum Oscillator (cmo)

Relative Vigor Index (rvgi)

Symmetric Weighted Moving Average (swma)

What is a Pandas DataFrame Extension?

A Pandas DataFrame Extension, extends a DataFrame allowing one to add more functionality and features to Pandas to suit your needs. As such, it is now easier to run Technical Analysis on existing Financial Time Series without leaving the current DataFrame. This extension by default returns the Indicator result or it can append the result to the existing DataFrame by including the parameter 'append=True' in the method call. Examples below.

Getting Started and Examples

Installation (python 3)

$ pip install pandas_ta

Latest Version

$ pip install -U git+https://github.com/twopirllc/pandas-ta

Quick Start using the DataFrame Extension

import pandas as pd

import pandas_ta as ta

# Load data

df = pd.read_csv('symbol.csv', sep=',')

# Calculate Returns and append to the df DataFrame

df.ta.log_return(cumulative=True, append=True)

df.ta.percent_return(cumulative=True, append=True)

# New Columns with results

df.columns

# Take a peek

df.tail()

# vv Continue Post Processing vv

Module and Indicator Help

import pandas as pd

import pandas_ta as ta

# Help about this, 'ta', extension

help(pd.DataFrame().ta)

# List of all indicators

pd.DataFrame().ta.indicators()

# Help about the log_return indicator

help(ta.log_return)

New DataFrame Method: strategy with Multiprocessing

Strategy is a new Pandas (TA) method to facilitate bulk indicator processing. By default, running df.ta.strategy() will append all applicable indicators to DataFrame df. Utility methods like above, below et al are not included.

The ta.strategy() method is still under development. Future iterations will allow you to load a ta.json config file with your specific strategy name and parameters to automatically run you bulk indicators.

# This property only effects df.ta.strategy(). When set to True,

# it enables multiprocessing when processing "ALL" the indicators.

# Default is False

df.ta.mp = True

# Runs and appends all indicators to the current DataFrame by default

# The resultant DataFrame will be large.

df.ta.strategy()

# Or equivalently use name='all'

df.ta.strategy(name='all')

# Use verbose if you want to make sure it is running.

df.ta.strategy(verbose=True)

# Use timed if you want to see how long it takes to run.

df.ta.strategy(timed=True)

# You can change the number of cores to use. Though the

# default will usually be best

df.ta.strategy(cores=4)

# Maybe you do not want certain indicators.

# Just exclude (a list of) them.

df.ta.strategy(exclude=['bop', 'mom', 'percent_return', 'wcp', 'pvi'], verbose=True)

# Perhaps you want to use different values for indicators.

# This will run ALL indicators that have fast or slow as parameters.

# Check your results and exclude as necessary.

df.ta.strategy(fast=10, slow=50, verbose=True)

# Sanity check. Make sure all the columns are there

df.columns

New DataFrame kwargs: prefix and suffix

prehl2 = df.ta.hl2(prefix="pre")

print(prehl2.name) # "pre_HL2"

endhl2 = df.ta.hl2(suffix="post")

print(endhl2.name) # "HL2_post"

bothhl2 = df.ta.hl2(prefix="pre", suffix="post")

print(bothhl2.name) # "pre_HL2_post"

New DataFrame Properties: reverse & datetime_ordered

# The 'reverse' is a helper property that returns the DataFrame

# in reverse order

df = df.ta.reverse

# The 'datetime_ordered' property returns True if the DataFrame

# index is of Pandas datetime64 and df.index[0] < df.index[-1]

# Otherwise it return False

time_series_in_order = df.ta.datetime_ordered

DataFrame Property: adjusted

# Set ta to default to an adjusted column, 'adj_close', overriding default 'close'

df.ta.adjusted = 'adj_close'

df.ta.sma(length=10, append=True)

# To reset back to 'close', set adjusted back to None

df.ta.adjusted = None

Technical Analysis Indicators (by Category)

Candles (2)

Doji: cdl_doji

Heikin-Ashi: ha

Momentum (27)

Awesome Oscillator: ao

Absolute Price Oscillator: apo

Bias: bias

Balance of Power: bop

BRAR: brar

Commodity Channel Index: cci

Center of Gravity: cg

Chande Momentum Oscillator: cmo

Coppock Curve: coppock

Fisher Transform: fisher

Inertia: inertia

KDJ: kdj

KST Oscillator: kst

Moving Average Convergence Divergence: macd

Momentum: mom

Percentage Price Oscillator: ppo

Psychological Line: psl

Percentage Volume Oscillator: pvo

Rate of Change: roc

Relative Strength Index: rsi

Relative Vigor Index: rvgi

Slope: *slope

Stochastic Oscillator: stoch

Trix: trix

True strength index: tsi

Ultimate Oscillator: uo

Williams %R: willr

Moving Average Convergence Divergence (MACD)

Overlap (26)

Double Exponential Moving Average: dema

Exponential Moving Average: ema

Fibonacci's Weighted Moving Average: fwma

High-Low Average: hl2

High-Low-Close Average: hlc3

Commonly known as 'Typical Price' in Technical Analysis literature

Hull Exponential Moving Average: hma

Ichimoku Kinkō Hyō: ichimoku

Use: help(ta.ichimoku). Returns two DataFrames.

Kaufman's Adaptive Moving Average: kama

Linear Regression: linreg

Midpoint: midpoint

Midprice: midprice

Open-High-Low-Close Average: ohlc4

Pascal's Weighted Moving Average: pwma

William's Moving Average: rma

Sine Weighted Moving Average: sinwma

Simple Moving Average: sma

Supertrend: supertrend

Symmetric Weighted Moving Average: swma

T3 Moving Average: t3

Triple Exponential Moving Average: tema

Triangular Moving Average: trima

Volume Weighted Average Price: vwap

Volume Weighted Moving Average: vwma

Weighted Closing Price: wcp

Weighted Moving Average: wma

Zero Lag Moving Average: zlma

Simple Moving Averages (SMA) and Bollinger Bands (BBANDS)

Performance (3)

Use parameter: cumulative=True for cumulative results.

Log Return: log_return

Percent Return: percent_return

Trend Return: trend_return

Percent Return (Cumulative) with Simple Moving Average (SMA)

Statistics (9)

Entropy: entropy

Kurtosis: kurtosis

Mean Absolute Deviation: mad

Median: median

Quantile: quantile

Skew: skew

Standard Deviation: stdev

Variance: variance

Z Score: zscore

Z Score

Trend (14)

Average Directional Movement Index: adx

Archer Moving Averages Trends: amat

Aroon & Aroon Oscillator: aroon

Choppiness Index: chop

Chande Kroll Stop: cksp

Decreasing: decreasing

Detrended Price Oscillator: dpo

Increasing: increasing

Linear Decay: linear_decay

Long Run: long_run

Parabolic Stop and Reverse: psar

Q Stick: qstick

Short Run: short_run

Vortex: vortex

Average Directional Movement Index (ADX)

Utility (5)

Above: above

Above Value: above_value

Below: below

Below Value: below_value

Cross: cross

Volatility (11)

Aberration: aberration

Acceleration Bands: accbands

Average True Range: atr

Bollinger Bands: bbands

Donchian Channel: donchian

Keltner Channel: kc

Mass Index: massi

Normalized Average True Range: natr

Price Distance: pdist

Relative Volatility Index: rvi

True Range: true_range

Average True Range (ATR)

Volume (13)

Accumulation/Distribution Index: ad

Accumulation/Distribution Oscillator: adosc

Archer On-Balance Volume: aobv

Chaikin Money Flow: cmf

Elder's Force Index: efi

Ease of Movement: eom

Money Flow Index: mfi

Negative Volume Index: nvi

On-Balance Volume: obv

Positive Volume Index: pvi

Price-Volume: pvol

Price Volume Trend: pvt

Volume Profile: vp

On-Balance Volume (OBV)

Contributors

Inspiration

Please leave any comments, feedback, suggestions, or indicator requests.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值