6 均线的使用

在接下来这个教程中,我们将给大家讲讲如何使用python中Talib模块,来完成策略中各类指标运算。内容主要涵盖以下几点

  • 熟悉学习ta-lib的api
  • 使用ta-lib写一个MACD策略

Ta-lib是金融软件中应用广泛的专门用来计算技术指标的开源库,涵盖了200多种市场常见的技术指标运算。它支持java,C,C++,Perl,Python等多种语言。在Ta-lib的library中,计算平均移动均线的指标叫做SMA (simple moving average)

sma = talib.SMA(close, timeperiod=30)

Ta-lib的语法总结起来,就是数组(支持numpy.array)进,数组出
function中的第一个参数close是一个数组序列,可以想象成是一个股票很长一段时间以来的收市价的曲线。计算结果sma也是一个数组序列,因为她也是一条曲线,
假设我们的close数组中共有最近100天的收市价,我们现在要计算这只股票30天的移动平均线。sma这条移动平均线上共有71个点,因为从第30天开始才能计算30天均值。我们能获得的,是包括今天在内的总共71天的30天平均值
如果我们要获得最近一天(今天)的移动平均值,就是获取sma这条曲线上的最后一个点,相当于数列中的最后一个值。昨天的平均值就是数列中的倒数第二个点,以此类推。

均线有很多不同的计算方法,比如EMA(指数移动平均值)和WMA(加权移动平均值)他们在计算均值时相对均会把更多的权重放在较近的日期,因此会比普通均线更灵敏,更能捕捉到市场的变化。那么我们如何选择到底要使用哪种均线呢?

Ta-lib考虑到这点,专门设计了matype这个变量,用数字代表均线计算方式,可以涵盖多种均线的计算方法。我们画出来看看

#MA_Type: 0=SMA, 1=EMA, 2=WMA, 3=DEMA, 4=TEMA, 5=TRIMA, 6=KAMA, 7=MAMA, 8=T3 (Default=SMA)

    SMA = talib.MA(close,30,matype=0)
    EMA = talib.MA(close,30,matype=1)
    WMA = talib.MA(close,30,matype=2)
    DEMA = talib.MA(close,30,matype=3)
    TEMA = talib.MA(close,30,matype=4)

下面将绘制完整的均线图

import pandas as pd
import numpy as np
import talib as ta
import statsmodels
import tushare as ts
import matplotlib.pyplot as plt
from matplotlib import rc
rc('mathtext', default='regular')
import seaborn as sns
sns.set_style('white')
from matplotlib import dates
import matplotlib as mpl
%matplotlib inline
myfont =mpl.font_manager.FontProperties(fname=r"c:\windows\fonts\simsun.ttc",size=14)
plt.rcParams["figure.figsize"] = (20,10)
#MA_Type: 0=SMA, 1=EMA, 2=WMA, 3=DEMA, 4=TEMA, 5=TRIMA, 6=KAMA, 7=MAMA, 8=T3 (Default=SMA)
dw = ts.get_k_data("600600")
close = dw.close.values
dw['avg'] = ta.SMA(close, timeperiod=30)
dw['SMA'] = talib.MA(close,30,matype=0)
dw['EMA'] = talib.MA(close,30,matype=1)
dw['WMA'] = talib.MA(close,30,matype=2)
dw['DEMA'] = talib.MA(close,30,matype=3)
dw['TEMA'] = talib.MA(close,30,matype=4)
dw[['close','avg','EMA','WMA','DEMA','TEMA']].plot()
6 均线的使用_第1张图片
均线图

你可能感兴趣的:(6 均线的使用)