Advertisement

Python量化交易学习——Part3:Talib金融库常用技术指标1

阅读量:

Talib的中文翻译为技术分析库,是一种以python为基础的广泛用于量化交易的分析函数库。
从本节开始,我们针对常用的函数进行使用讲解。

talib.MA

函数名:MA
名称: 移动平均线
简介:移动平均线,Moving Average,简称MA,原本的意思是移动平均,由于我们将其制作成线形,所以一般称之为移动平均线,简称均线。它是将某一段时间的收盘价之和除以该周期。 比如日线MA5指5天内的收盘价除以5 。
real = MA(close, timeperiod=30, matype=0)

参数 类型 说明
close list 收盘价
timeperiod int 时间周期
matype int 采用不一样的加权方式对数据进行处理

close和timeperiod这两个参数指标很容易理解,Talib MA_Type这个参数我单独列出来讲解一下:

复制代码
     import talib
     from talib import MA_Type
    
    MA_Type: 0=SMA, 1=EMA, 2=WMA, 3=DEMA, 4=TEMA, 5=TRIMA, 6=KAMA, 7=MAMA, 8=T3 (Default=SMA)
    
    
      
      
      
      
    

常用MA均线主要有:

名称 含义
简单移动平均(英语:simple moving average,SMA) 是某变数之前n个数值的未作加权算术平均。例如,收市价的10日简单移动平均指之前10日收市价的平均数。
指数移动平均(英语:exponential moving average,EMA或EWMA) 是以指数式递减加权的移动平均。各数值的加权影响力随时间而指数式递减,越近期的数据加权影响力越重,但较旧的数据也给予一定的加权值
加权移动平均(英语:weighted moving average,WMA) 指计算平均值时将个别数据乘以不同数值,在技术分析中,n日WMA的最近期一个数值乘以n、次近的乘以n-1,如此类推,一直到0:
双指数移动平均(英语:double exponential moving average,DEMA)
三重指数移动平均(英语:trible exponential moving average,DEMA)
三角移动平均(英语:Triangular Moving Average)
考夫曼自适应移动平均(Kaufman Adaptive Moving Average,简称 KAMA) KAMA = KAMA(1)(ABS(Price-Price(1))(2/(Time Period+1))+KAMA(1)*(1-2/(Time Period+1))) 其中,KAMA(1)表示上一周期的KAMA值,Price表示当前价格,Price(1)表示上一周期的价格,Time Period表示KAMA指标的时间周期。
自适应移动平均(MESA Adaptive Moving Average,MAMA)
3是三重移动平均线,全称是Triple Exponential Moving Average。 T3 = 3 * EMA(close, n - (3 * EMA(EMA(close, n), n)) + EMA(EMA(EMA(close, n), n), n))其中,EMA表示指数移动平均线,close表示收盘价,n表示计算周期。

T3指标和TEMA指标的区别:
T3指标(Triple Exponential Moving Average)和TEMA指标(Triple Exponential Moving Average)都是基于指数移动平均线的技术指标,但它们之间有一些区别。
计算方法:T3指标使用三次指数移动平均线的计算方法,而TEMA指标使用了三次指数移动平均线和双重指数移动平均线的计算方法。
平滑性:T3指标相对于TEMA指标更加平滑,因为它使用了三次指数移动平均线的计算,使得指标对市场波动的反应相对较慢。
延迟性:由于T3指标的平滑性,它可能会产生较大的滞后,导致在市场趋势发生变化时,进出场信号的延迟。而TEMA指标相对于T3指标具有更快的响应速度,更容易捕捉到市场的变化。
适用性:T3指标适用于较长时间周期的市场,可以用于识别和跟踪长期趋势。而TEMA指标适用于各种市场和时间周期,因为它的计算方法结合了多个指数移动平均线,可以更好地适应不同的市场环境。

MA均线应用实例

复制代码
    from gm.api import *
    import talib
    import numpy as np
    # 与数据库进行通信,将账号密码加密后发送给服务器
    set_token("你自己的token")
    # 获取历史交易数据,海康威视近100工作日交易数据的收盘价)
    data = history_n(symbol="SZSE.002415",frequency="3600s",count=100,end_time="2024-05-31",fields="close",fill_missing="last",adjust=ADJUST_PREV,df=True)
    # 从字典中提取收盘价到数组中
    close = np.asarray(data["close"].values)
    # 对获取数据进行处理,得到3日SMA均线
    SMA3 = talib.MA(close,timeperiod = 3,matype = 0)
    # 将前方NAN值置为0,防止后续数据处理出错
    SMA3 = np.nan_to_num(SMA3)
    # 打印数据
    print(SMA3)
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    

EMA均线应用实例

前面我们说到过,可以采用将matype值置为1的形式获取EMA均线,但还有一种更简单的方案,talib库中提供了talib.EMA() 函数,可以直接获取数据地EMA均线。

复制代码
    import talib
    import numpy as np
    #MA_Type: 0=SMA, 1=EMA, 2=WMA, 3=DEMA, 4=TEMA, 5=TRIMA, 6=KAMA, 7=MAMA, 8=T3 (Default=SMA)
    # 与数据库进行通信,将账号密码加密后发送给服务器
    set_token("你自己的token")
    # 获取历史交易数据,海康威视近100工作日交易数据的收盘价)
    data = history_n(symbol="SZSE.002415",frequency="3600s",count=100,end_time="2024-05-31",fields="close",fill_missing="last",adjust=ADJUST_PREV,df=True)
    # 从字典中提取收盘价到数组中
    close = np.asarray(data["close"].values)
    # 方法1,选择matype=1,得到3日EMA均线
    SMA3 = talib.MA(close,timeperiod = 3,matype = 1)
    SMA3 = np.nan_to_num(SMA3)
    print(SMA3)
    # 方法2,采用talib.EMA函数,得到3日EMA均线
    EMA3= talib.EMA(close,timeperiod = 3)
    EMA3 = np.nan_to_num(EMA3)
    print(EMA)
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    

大家可以对比一下以上两种方法得到的结果,可以发现是一模一样的。
初次之外,talib库中还提供可很多技术分析指标,我这里仅罗列出来,后面会一一的进行讲解。

其他技术分析指标

Talib库中提供的技术分析技术指标有:
(在talib金融库中成为Overlap Studies)

复制代码
    BBANDS               Bollinger Bands #布林带
    DEMA                 Double Exponential Moving Average #双指数移动平均线
    EMA                  Exponential Moving Average #指数滑动平均
    HT_TRENDLINE         Hilbert Transform - Instantaneous Trendline #希尔伯特变换瞬时趋势
    KAMA                 Kaufman Adaptive Moving Average #卡玛考夫曼自适应移动平均
    MA                   Moving average #均线
    MAMA                 MESA Adaptive Moving Average #自适应移动平均 
    MAVP                 Moving average with variable period #变周期移动平均
    MIDPOINT             MidPoint over period #在周期的中点
    MIDPRICE             Midpoint Price over period #中间时段价格
    SAR                  Parabolic SAR #抛物线转向指标
    SAREXT               Parabolic SAR - Extended #抛物线转向指标 - 扩展
    SMA                  Simple Moving Average# 简单移动平均线
    T3                   Triple Exponential Moving Average (T3)
    TEMA                 Triple Exponential Moving Average#三次指数移动平均
    TRIMA                Triangular Moving Average# 三角形移动平均
    WMA                  Weighted Moving Average#加权移动平均线
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    

转载请注明出处:雪中嬉戏的柴犬

全部评论 (0)

还没有任何评论哟~