简易波动指标(Ease of Movement Value)又称EMV指标,它是由RichardW.ArmJr.根据等量图和压缩图的原理设计而成,目的是将价格与成交量的变化结合成一个波动指标来反映股价或指数的变动状况。由于股价的变化和成交量的变化都可以引发该指标数值的变动,因此,EMV实际上也是一个量价合成指标。
计算公式 EVM=(Current High Price - Current Low Price)/2 - (Prior High Price - Prior Low Price)/2 - # Load the necessary packages and modules
- import pandas as pd
- import pandas.io.data as web
- import matplotlib.pyplot as plt
- # Ease of Movement
- def EVM(data, ndays):
- dm = ((data['High'] + data['Low'])/2) - ((data['High'].shift(1) + data['Low'].shift(1))/2)
- br = (data['Volume'] / 100000000) / ((data['High'] - data['Low']))
- EVM = dm / br
- EVM_MA = pd.Series(pd.rolling_mean(EVM, ndays), name = 'EVM')
- data = data.join(EVM_MA)
- return data
- # Retrieve the AAPL data from Yahoo finance:
- data = web.DataReader('AAPL',data_source='yahoo',start='1/1/2015', end='1/1/2016')
- data = pd.DataFrame(data)
- # Compute the 14-day Ease of Movement for AAPL
- n = 14
- AAPL_EVM = EVM(data, n)
- EVM = AAPL_EVM['EVM']
- # Plotting the Price Series chart and the Ease Of Movement below
- fig = plt.figure(figsize=(7,5))
- ax = fig.add_subplot(2, 1, 1)
- ax.set_xticklabels([])
- plt.plot(data['Close'],lw=1)
- plt.title('AAPL Price Chart')
- plt.ylabel('Close Price')
- plt.grid(True)
- bx = fig.add_subplot(2, 1, 2)
- plt.plot(EVM,'k',lw=0.75,linestyle='-',label='EVM(14)')
- plt.legend(loc=2,prop={'size':9})
- plt.ylabel('EVM values')
- plt.grid(True)
- plt.setp(plt.gca().get_xticklabels(), rotation=30)
复制代码
|