ta
是一个有用的技术分析库,用于从金融时间序列数据集(开盘价、收盘价、最高价、最低价、成交量)中进行特征工程。它建立在Pandas和Numpy之上。
https://github.com/bukosabino/ta
安装方法:
pip install --upgrade ta
使用案例
提取所有特征
import pandas as pd
from ta import add_all_ta_features
from ta.utils import dropna
# Load datas
df = pd.read_csv('ta/tests/data/datas.csv', sep=',')
# Clean NaN values
df = dropna(df)
# Add all ta features
df = add_all_ta_features(
df, open="Open", high="High", low="Low", close="Close", volume="Volume_BTC")
提取特定特征
# Initialize Bollinger Bands Indicator
indicator_bb = BollingerBands(close=df["Close"], window=20, window_dev=2)
# Add Bollinger Bands features
df['bb_bbm'] = indicator_bb.bollinger_mavg()
df['bb_bbh'] = indicator_bb.bollinger_hband()
df['bb_bbl'] = indicator_bb.bollinger_lband()
# Add Bollinger Band high indicator
df['bb_bbhi'] = indicator_bb.bollinger_hband_indicator()
# Add Bollinger Band low indicator
df['bb_bbli'] = indicator_bb.bollinger_lband_indicator()
# Add Width Size Bollinger Bands
df['bb_bbw'] = indicator_bb.bollinger_wband()
# Add Percentage Bollinger Bands
df['bb_bbp'] = indicator_bb.bollinger_pband()
时序指标介绍
Volume
资金流量指数(Money Flow Index, MFI)
MFI 是一种动量指标,用于测量特定时间内买卖力量的相对强度。它结合了价格和交易量信息,通常用于识别超买或超卖市场条件。
累积/分配指数(Accumulation/Distribution Index, ADI)
ADI 是基于价格变动和交易量来衡量资金流入和流出的指标。它可以帮助识别市场趋势的强度和潜在的转折点。
能量潮(On-Balance Volume, OBV)
OBV 通过将每天的交易量加到前一天的总量上(如果价格上涨)或从前一天的总量中减去(如果价格下跌)来计算。这个指标用于预测价格趋势的强度和可能的持续时间。
柴金资金流量(Chaikin Money Flow, CMF)
CMF 是基于资金流量的指标,它通过比较特定时间内的交易量和价格变动来衡量市场的资金流入和流出。
力度指数(Force Index, FI)
FI 是一个动量指标,它通过比较当前收盘价和前一收盘价的变化量与当前交易量和前一交易量的变化量来衡量市场力量。
易动指数(Ease of Movement, EoM 或 EMV)
EoM 是一个动量指标,它使用价格范围和交易量来衡量价格移动的“容易程度”。它通常用于识别市场趋势的强度和可能的反转信号。
量价趋势(Volume-price Trend, VPT)
VPT 是一个结合了交易量和价格变动的指标,用于衡量价格趋势的强度和可能的持续性。
负量指数(Negative Volume Index, NVI)
NVI 是一个市场广度指标,它追踪下跌日的交易量。它通常用于识别市场顶部和底部。
成交量加权平均价格(Volume Weighted Average Price, VWAP)
VWAP计算了特定时间内所有交易的平均价格,同时考虑了每笔交易的交易量。它用于确定市场的平均成本,并可以作为交易决策的参考点。
Volatility
平均真实范围(Average True Range, ATR)
ATR 是一个衡量市场波动性的指标,它计算特定时间内价格波动的平均幅度。ATR 通常用于设置止损点和确定市场波动性的增加或减少。
布林带(Bollinger Bands, BB)
布林带由中轨(通常为移动平均线)、上轨和下轨组成,用于衡量价格的高低波动范围。上轨和下轨通常为中轨加上或减去两倍的ATR。布林带可以显示价格的波动范围,并提供潜在的买卖信号。
肯特纳通道(Keltner Channel, KC)
肯特纳通道类似于布林带,但是它基于平均真实范围(ATR)来计算波动性,而不是标准差。肯特纳通道通常用于识别趋势和潜在的反转点。
唐奇安通道(Donchian Channel, DC)
唐奇安通道由特定时间内的最高价和最低价组成,形成一个价格波动的通道。这个指标用于识别市场趋势的强度和潜在的突破点。
溃疡指数(Ulcer Index, UI)
UI 是一个衡量市场下跌风险的指标,它基于价格下跌的幅度和下跌的持续时间。UI 值越高,表示市场下跌的风险越大,反之亦然。
Trend
这些指标是技术分析中用于识别趋势、动量和潜在的买卖点的常用工具。下面是每个指标的简要介绍:
简单移动平均线(Simple Moving Average, SMA)
SMA 是将特定周期内的价格平均值连成的一条线,用于识别市场趋势的方向。
指数移动平均线(Exponential Moving Average, EMA)
EMA 给予近期价格更多的权重,因此对价格变动的反应比SMA更快。
加权移动平均线(Weighted Moving Average, WMA)
WMA 在计算时给予周期内每一天不同的权重,通常更重视近期的价格。
移动平均收敛发散(Moving Average Convergence Divergence, MACD)
MACD 是一个趋势跟踪动量指标,显示两个移动平均线之间的关系。MACD_diff 是MACD线与其信号线之间的差值。
平均方向性指数(Average Directional Movement Index, ADX)
ADX 用于衡量趋势的强度,但不指示价格的方向。ADX_pos 和 ADX_neg 分别表示正负方向指标。
涡流指标(Vortex Indicator, VI)
VI 用于衡量市场趋势的强度和方向,由两个指标组成,分别表示负向和正向的动量。
TRIX指标(TRIX)
TRIX 是一个动量振荡器,用于识别超买和超卖条件,以及潜在的趋势反转。
质量指数(Mass Index, MI)
MI 用于识别趋势的强度和潜在的反转点,通过比较不同周期的移动平均线的发散和收敛。
商品通道指数(Commodity Channel Index, CCI)
CCI 用于识别资产价格相对于其统计平均值的偏离程度,用于发现超买和超卖情况。
去趋势振荡器(Detrended Price Oscillator, DPO)
DPO 是一个衡量价格与其移动平均线偏离程度的指标,用于识别趋势反转。
KST振荡器(KST Oscillator, KST)
KST 是一个综合动量指标,结合了不同周期的移动平均线,用于识别市场趋势和潜在的买卖点。
一目均衡表(Ichimoku Kinkō Hyō, Ichimoku)
Ichimoku 是一个复杂的图表分析系统,提供了多个指标来识别趋势、支撑和阻力水平。
抛物线转向指标(Parabolic Stop And Reverse, Parabolic SAR)
Parabolic SAR 是一个趋势跟踪系统,用于设置止损点和识别趋势反转。
Schaff趋势周期(Schaff Trend Cycle, STC)
STC 是一个动量指标,用于识别市场趋势和潜在的买卖点。
Aroon指标
Aroon 指标由两个部分组成,用于识别趋势的强度和潜在的趋势变化。
Momentum
相对强弱指数(Relative Strength Index, RSI)
RSI 是一个动量振荡器,用于衡量价格变动的速度和变化,通常用于识别超买和超卖条件。
随机相对强弱指数(Stochastic RSI, SRSI)
SRSI 是 RSI 的一个变种,它使用随机振荡器的概念来平滑 RSI,以减少信号的噪音。
真实强度指数(True Strength Index, TSI)
TSI 是一个动量指标,它使用价格的移动平均线来衡量动量,通常用于识别趋势的强度和潜在的反转。
终极振荡器(Ultimate Oscillator, UO)
UO 是一个动量指标,结合了不同周期的动量和成交量,用于衡量市场的买卖压力。
随机振荡器(Stochastic Oscillator, SR)
随机振荡器是一种动量指标,用于衡量收盘价与一定周期内价格范围的相对位置,通常用于识别超买和超卖条件。
威廉指标(Williams %R, WR)
WR 是一个动量指标,类似于随机振荡器,但计算方式略有不同,也用于识别超买和超卖条件。
神奇振荡器(Awesome Oscillator, AO)AO 是一个动量指标,使用两个不同周期的移动平均线来衡量市场的动量。
考夫曼自适应移动平均线(Kaufman's Adaptive Moving Average, KAMA)
KAMA 是一个自适应的移动平均线,它会根据价格的变动速度调整其平滑程度,以更好地跟踪价格趋势。
变动率指标(Rate of Change, ROC)
ROC 是一个动量指标,用于衡量价格在特定周期内的变化率,通常用于识别趋势的强度。
百分比价格振荡器(Percentage Price Oscillator, PPO)
PPO 是一个动量指标,它衡量价格与其移动平均线的百分比差异,用于识别趋势的强度和潜在的反转。
百分比成交量振荡器(Percentage Volume Oscillator, PVO)
PVO 是一个动量指标,它衡量成交量与其移动平均线的百分比差异,用于识别成交量趋势的强度和潜在的反转。