200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > [量化交易64] MACD指标购买股票

[量化交易64] MACD指标购买股票

时间:2019-11-27 09:16:49

相关推荐

[量化交易64] MACD指标购买股票

import baostock as bsimport pandas as pdimport talib as taimport matplotlib.pyplot as pltdef computeMACD(code, startdate, enddate):login_result = bs.login()print(login_result)# 获取股票日 K 线数据rs = bs.query_history_k_data(code,"date,code,close,tradeStatus",start_date=startdate,end_date=enddate,frequency="d", adjustflag="3")# 打印结果集result_list = []while (rs.error_code == '0') & rs.next():# 获取一条记录,将记录合并在一起result_list.append(rs.get_row_data())df = pd.DataFrame(result_list, columns=rs.fields)# 剔除停盘数据df2 = df[df['tradeStatus'] == '1']# 获取 dif,dea,hist,它们的数据类似是 tuple,且跟 df2 的 date 日期一一对应# 记住了 dif,dea,hist 前 33 个为 Nan,所以推荐用于计算的数据量一般为你所求日期之间数据量的 3 倍# 这里计算的 hist 就是 dif-dea,而很多证券商计算的 MACD=hist*2=(difdea)*2dif, dea, hist = ta.MACD(df2['close'].astype(float).values, fastperiod=12, slowperiod=26, signalperiod=9)df3 = pd.DataFrame({'dif': dif[33:], 'dea': dea[33:], 'hist': hist[33:]}, index=df2['date'][33:],columns=['dif', 'dea', 'hist'])df3.plot(title='MACD')plt.show()# 寻找 MACD 金叉和死叉 买卖BuySellDate = []BuySellPoint = []datenumber = int(df3.shape[0])for i in range(datenumber - 1):if ((df3.iloc[i, 0] <= df3.iloc[i, 1]) & (df3.iloc[i + 1, 0] >= df3.iloc[i + 1, 1])):print("MACD 金叉的日期:" + df3.index[i + 1])BuySellDate.append(df3.index[i + 1])BuySellPoint.append(1)if ((df3.iloc[i, 0] >= df3.iloc[i, 1]) & (df3.iloc[i + 1, 0] <= df3.iloc[i + 1, 1])):print("MACD 死叉的日期:" + df3.index[i + 1])BuySellDate.append(df3.index[i + 1])BuySellPoint.append(0)bs.logout()return BuySellDate,BuySellPointif __name__ == '__main__':code = 'sh.600000'startdate = '-01-01'enddate = '-12-01'BuySellDate,BuySellPoint = computeMACD(code, startdate, enddate)print(BuySellDate)print(BuySellPoint)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。