當前交易日最高價與最低價差值,前一交易日收盤價與當前交易日最高價間的差值,前一交易日收盤價與當前交易日最低價的差值,這三者中的最大值為真實波幅。
即真實波動幅度 = max(最大值,昨日收盤價) − min(最小值,昨日收盤價),
平均真實波動幅度等於真實波動幅度的N日指數移動平均數。波動幅度可以顯示出交易者的期望和熱情。波動幅度的急劇增加表示交易者在當天可能准備持續買進或賣出股票,波動幅度的減少則表示交易者對股市沒有太大的興趣。波動率指標可用於衡量價格的波動情況,輔助判斷趨勢改變的可能性,市場的交易氛圍,也可以利用波動性指標來幫助止損止盈。
ATR : Average True Range 平均真實波動幅度 : ta.ATR(high, low, close, timeperiod=14)
NATR : Normalized Average True Range 歸一化的平均真實波動幅度:ta.NATR(high, low, close, timeperiod=14)
TRANGE : True Range 真實波動幅度 :ta.TRANGE(high, low, close)
import pandas as pd import numpy as np import matplotlib.pyplot as plt import talib as ta import tushare as ts plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False def get_data(code, start='2015-01-01'): df = ts.get_k_data(code, start) df.index = pd.to_datetime(df.date) df = df.sort_index() return df df = get_data('sh')[['open', 'close', 'high', 'low']] df['atr'] = ta.ATR(df.high, df.low, df.close, timeperiod=14) df['natr'] = ta.NATR(df.high, df.low, df.close, timeperiod=14) df['trange'] = ta.TRANGE(df.high, df.low, df.close) df.tail() df[['close', 'atr', 'natr', 'trange'] ].plot(figsize=(16,12), subplots=True, layout=(2,2)) plt.subplots_adjust(wspace=0, hspace=0.2)
上證指數走勢及波動率指標

