BigQuant使用文档

117-TALIB指标策略

由small_q创建,最终由small_q 被浏览 196 用户

简介

本系列文章为大家介绍了技术分析指标,并且介绍了一些常见的使用技术指标构建的策略

量化投资中的技术分析

量化投资是通过数学模型和算法对市场数据进行分析和交易决策的投资方法。技术分析(Technical Analysis)是量化投资中的一个重要分支,旨在通过分析历史价格和交易量数据来预测未来的价格走势。技术分析假设所有市场信息都反映在价格中,价格走势有一定的模式和规律,因此可以通过数学方法进行分析和预测。

技术分析通过多种数学方法和指标对市场数据进行分析,帮助投资者识别市场趋势和交易信号。TA-Lib库提供了丰富的技术分析函数,方便投资者进行量化分析和策略开发。掌握这些技术指标的使用方法及其投资意义,对于量化投资者来说至关重要。

技术分析常用的工具和指标包括移动平均线、相对强弱指数(RSI)、布林带(Bollinger Bands)等。这些工具帮助投资者识别市场趋势、超买超卖状态以及价格波动区间,从而制定相应的交易策略。

TA-Lib库及其函数介绍

TA-Lib(Technical Analysis Library)是一个用于金融数据技术分析的开源库。它包含了许多常用的技术指标计算的Python函数,以下是一些常用函数:

  • 简单移动平均:SMA(data, timeperiod):移动平均线用于平滑价格数据,帮助识别长期趋势
  • 指数移动平均:EMA(data, timeperiod):加权平均,越近的历史时期权重越大
  • 投资意义:移动平均线用于平滑价格数据,帮助识别长期趋势。简单移动平均线(SMA)和指数移动平均线(EMA)是最常用的两种类型
  • 相对强弱指数:RSI(data, timeperiod):用于衡量价格变化的速度和幅度,帮助识别超买或超卖状态。一般认为,RSI大于70表示超买,小于30表示超卖
  • 布林带:BBANDS(data, timeperiod, nbdevup, nbdevdn, matype):布林带由中间的移动平均线和上下两条标准差线组成,反映了价格的波动范围。价格触及上轨或下轨时,往往预示着市场的逆转或继续趋势
  • 平滑异同移动平均线:MACD(data, fastperiod, slowperiod, signalperiod):通过短期和长期移动平均线的差值以及其信号线的关系,帮助识别价格趋势的强弱和逆转信号
  • 随机指标:STOCH(high, low, close, fastk_period, slowk_period, slowd_period):随机指标用于衡量收盘价在最近一段时间价格范围内的位置,帮助识别超买和超卖状态。一般认为,指标大于80表示超买,小于20表示超卖
  • 平衡交易量:OBV(data)(平衡交易量):结合价格走势用于确认趋势的强弱

DAI平台封装的技术指标算子

BigQuant将常用的TA-Lib技术指标算子移植到了DAI平台,让大家在编写策略的时候可以在“输入特征(DAI SQL)”模块中的“表达式特征”一栏中直接调用算子,计算出技术指标

这些技术指标算子都是以“m_ta”开头的,常见的有:

函数名 说明 用例
m_ta_2crows 时间序列上的两只乌鸦 m_ta_2crows(open, high, low, close)
m_ta_3black_crows 时间序列上的三只乌鸦 m_ta_3black_crows(open, high, low, close)
m_ta_3red_soldiers 时间序列上的红三兵 m_ta_3red_soldiers(open, high, low, close)
m_ta_ad 时间序列上的 Chaikin A/D (累积分布) 线 m_ta_ad(high, low, close, volume)
m_ta_adx 时间序列上该窗口内的平均趋向指数 m_ta_adx(high, low, close, 5)
m_ta_adxr 时间序列上该窗口内的平均趋向指数评估 m_ta_adxr(high, low, close, 5)
m_ta_aroon 时间序列上的阿隆 (Aroon) 指标, 返回 list: [aroon_down, aroon_up] m_ta_aroon(high, low, 14)
m_ta_aroon_d 时间序列上的阿隆 (Aroon) 指标中的 aroon_down m_ta_aroon_d(high, low, 14)
m_ta_aroon_u 时间序列上的阿隆 (Aroon) 指标中的 aroon_up m_ta_aroon_u(high, low, 14)
m_ta_aroonosc 时间序列上的阿隆振荡器 (Aroon Oscillator) 指标 m_ta_aroonosc(high, low, 14)
m_ta_atr 时间序列上该窗口内的真实波动幅度均值 m_ta_atr(high, low, close, 5)
m_ta_bbands 时间序列上的布林带, 返回 list: [upper_band, middle_band, lower_band] m_ta_bbands(close, timeperiod:=5, nbdevup:=2.0, nbdevdn:=2.0, matype:=0)
m_ta_bbands_l 时间序列上的布林带中的 lower_band m_ta_bbands_l(close, timeperiod:=5, nbdevup:=2.0, nbdevdn:=2.0, matype:=0)
m_ta_bbands_m 时间序列上的布林带中的 middle_band m_ta_bbands_m(close, timeperiod:=5, nbdevup:=2.0, nbdevdn:=2.0, matype:=0)
m_ta_bbands_u 时间序列上的布林带中的 upper_band m_ta_bbands_u(close, timeperiod:=5, nbdevup:=2.0, nbdevdn:=2.0, matype:=0)
m_ta_beta 时间序列上 x, y 在该窗口内的贝塔系数 m_ta_beta(open, close, 5)
m_ta_bias (close - sma) / sma m_ta_bias(close, 3)
m_ta_cci 时间序列上该窗口内的顺势指标 m_ta_cci(high, low, close, 5)
m_ta_dark_cloud_cover 时间序列上的乌云盖顶 m_ta_dark_cloud_cover(open, high, low, close, penetration:=0.5)
m_ta_dema 时间序列上 arg 在该窗口内的双指数移动平均 m_ta_dema(open, 5)
m_ta_ema 时间序列上 arg 在该窗口内的指数均值 m_ta_ema(open, 5)
m_ta_evening_star 时间序列上的黄昏之星 m_ta_evening_star(open, high, low, close, penetration:=0.3)
m_ta_ewm 时间序列上 arg 在窗口大小为 m 的指数加权移动平均, alpha=n/m, 有 NULL 则发生截断重新开始计算. 对应 bigexpr 中的 ta_sma2(x,M,N) m_ta_ewm(open, 3, 1)
m_ta_hammer 时间序列上的锤 m_ta_hammer(open, high, low, close)
m_ta_inverted_hammer 时间序列上的倒锤 m_ta_inverted_hammer(open, high, low, close)
m_ta_kama 时间序列上 arg 在该窗口内的 Kaufman 自适应移动平均 m_ta_kama(open, 5)
m_ta_kdj 时间序列上的 [K, D, J] 值. slowk_period, slowd_period 做变换 x -> 2x-1 后传入 ta_stoch m_ta_kdj(high, low, close, fastk_period:=9, slowk_period:=3, slowd_period:=3, slowk_matype:=1, slowd_matype:=1)
m_ta_kdj_d 时间序列上 kdj 中的 D 值. slowk_period, slowd_period 做变换 x -> 2x-1 后传入 ta_stoch m_ta_kdj_d(high, low, close, fastk_period:=9, slowk_period:=3, slowd_period:=3, slowk_matype:=1, slowd_matype:=1)
m_ta_kdj_j 时间序列上的 J 值 (= 3K - 2D). slowk_period, slowd_period 做变换 x -> 2x-1 后传入 ta_stoch m_ta_kdj_j(high, low, close, fastk_period:=9, slowk_period:=3, slowd_period:=3, slowk_matype:=1, slowd_matype:=1)
m_ta_kdj_k 时间序列上 kdj 中的 K 值. slowk_period, slowd_period 做变换 x -> 2x-1 后传入 ta_stoch m_ta_kdj_k(high, low, close, fastk_period:=9, slowk_period:=3, slowd_period:=3, slowk_matype:=1, slowd_matype:=1)
m_ta_macd 时间序列上的移动平均收敛/发散指标, 返回 list: [macd, macd_signal, macd_hist] m_ta_macd(close, fastperiod:=12, slowperiod:=26, signalperiod:=9)
m_ta_macd_dea 时间序列上的 macd 指标的第二列: '讯号线' (DEA), DIF 的 9 日移动平均 m_ta_macd_dea(close, fastperiod:=12, slowperiod:=26, signalperiod:=9)
m_ta_macd_dif 时间序列上的 macd 指标的第一列: '差离值' (DIF) m_ta_macd_dif(close, fastperiod:=12, slowperiod:=26, signalperiod:=9)
m_ta_macd_hist 时间序列上的 macd 指标的第三列的 2 倍: 放大后的柱状图 (HIST), (DIF - DEA) * 2 m_ta_macd_hist(close, fastperiod:=12, slowperiod:=26, signalperiod:=9)
m_ta_mfi 时间序列上该窗口内的货币流量指数 m_ta_mfi(high, low, close, volume, 5)
m_ta_mom 时间序列上 arg 在该窗口内的动量 m_ta_mom(open, 5)
m_ta_morning_star 时间序列上的早晨之星 m_ta_morning_star(open, high, low, close, penetration:=0.3)
m_ta_obv 时间序列上的能量潮 m_ta_obv(open, volume)
m_ta_roc 时间序列上 arg 在该窗口内的变化率 m_ta_roc(open, 5)
m_ta_rsi 时间序列上 arg 在该窗口内的相对强弱指数 m_ta_rsi(open, 5)
m_ta_sar 时间序列上的抛物线转向 (SAR) 指标 m_ta_sar(high, low, acceleration:=0.02, maximum:=0.2)
m_ta_shooting_star 时间序列上的流星线 m_ta_shooting_star(open, high, low, close)
m_ta_sma 时间序列上 arg 在该窗口内的简单平均值 m_ta_sma(open, 5)
m_ta_stoch 时间序列上的 K, D 值. slowk_period, slowd_period 做变换 x -> 2x-1 后传入 ta_stoch m_ta_stoch(high, low, close, fastk_period:=9, slowk_period:=3, slowd_period:=3, slowk_matype:=1, slowd_matype:=1)
m_ta_sum 时间序列上 arg 在该窗口内的和 m_ta_sum(open, 5)
m_ta_tema 时间序列上 arg 在该窗口内的三重指数移动平均 m_ta_tema(open, 5)
m_ta_trima 时间序列上 arg 在该窗口内的三角移动平均 m_ta_trima(open, 5)
m_ta_trix 时间序列上 arg 在该窗口内的三重指数平滑平均线 m_ta_trix(open, 5)
m_ta_willr 时间序列上该窗口内的威廉指标 m_ta_willr(high, low, close, 5)
m_ta_wma 时间序列上 arg 在该窗口内的加权均值 m_ta_wma(open, 5)

\

标签

量化投资交易策略

文档

117a-TALIB指标选股策略117b-基于MACD指标的事件策略因子构建与标注样例-TALIB库定义技术指标_自适应均线
{link}