真實(shí)波幅(ATR average true range)主要應(yīng)用于了解股價(jià)的震蕩幅度和節(jié)奏唱蒸,在窄幅整理行情中用于尋找突破時(shí)機(jī)及老。通常情況下股價(jià)的波動(dòng)幅度會(huì)保持在一定常態(tài)下摧玫,但是如果有主力資金進(jìn)出時(shí)顶岸,股價(jià)波幅往往會(huì)加劇盈电。另外,在股價(jià)橫盤整理燎斩、波幅減少到極點(diǎn)時(shí)虱歪,也往往會(huì)產(chǎn)生變盤行情。真實(shí)波幅(ATR)正是基于這種原理而設(shè)計(jì)的指標(biāo)栅表。使用Talib中的ATR函數(shù)進(jìn)行回測(cè)笋鄙。
計(jì)算方法:
1.TR=∣最高價(jià)-最低價(jià)∣和∣最高價(jià)-昨收∣和∣昨收-最低價(jià)∣的最大值
2.真實(shí)波幅(ATR)=TR的N日簡(jiǎn)單移動(dòng)平均
3.參數(shù)N設(shè)置為14日
使用方法:
如果當(dāng)前價(jià)格比之前的價(jià)格高一個(gè)ATR的漲幅,買入股票
如果之前的價(jià)格比當(dāng)前價(jià)格高一個(gè)ATR的漲幅怪瓶,賣出股票
import pandas as pd
import numpy as np
import talib as ta
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)
dw = ts.get_k_data("000001")
dw = dw[300:]
dw.index = range(len(dw))
dw['atr'] = ta.ATR(dw.high.values,dw.low.values,dw.close.values, timeperiod=14)
dw['di'] = dw.close.diff(-1)
dw = dw[14:]
dw.index = range(len(dw))
fig = plt.figure(figsize=(20,10))
fig.set_tight_layout(True)
ax1 = fig.add_subplot(111)
#fig.bar(dw.index, dw.volume, align='center', width=1.0)
ax1.plot(dw.index, dw.close, '-', color='g')
ax2 =ax1.twinx()
ax2.plot(dw.index, dw.atr, '-', color='r')
ax2.plot(dw.index, dw.di, '-.', color='b')
ax1.set_ylabel(u"股票價(jià)格(綠色)",fontproperties=myfont, fontsize=16)
ax2.set_ylabel(u"ATR參數(shù)",fontproperties=myfont, fontsize=16)
ax1.set_title(u"綠色是股票價(jià)格萧落,紅色(右軸)為ATR參數(shù)",fontproperties=myfont, fontsize=16)
# plt.xticks(bar_data.index.values, bar_data.barNo.values)
ax1.set_xlabel(u"ATR參數(shù)圖",fontproperties=myfont,fontsize=16)
ax1.set_xlim(left=-1,right=len(dw))
ax1.grid()
ATR