def add_MACD(data, Ns=None):
'''
:param data: DataFrame containing stock price info in the second column
:param Ns: List of short term long term EMA to use and look-back window of MACD's EMA
:return:
'''
if Ns is None:
Ns = [12, 26, 9]
symbol = data.columns.values[1] # assuming stock price is in the second column in data
MACD = cal_EMA(data.loc[:, symbol], N=Ns[0]) - cal_EMA(data.loc[:, symbol], N=Ns[1])
data['MACD'] = MACD
signal = cal_EMA(data.MACD[Ns[1]:], N=Ns[2])
# # normalized them
# MACD = (MACD - np.nanmean(MACD))/(2*np.nanstd(MACD))
# signal = (signal - np.nanmean(signal))/(2*np.nanstd(signal))
# data['MACD'] = MACD
data['Signal'] = 'NaN'
data.loc[Ns[1]:, 'Signal'] = signal
return data
评论列表
文章目录