100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Python实现某只股票的MACD KDJ指标的单双金叉点判定

Python实现某只股票的MACD KDJ指标的单双金叉点判定

时间:2022-02-19 21:39:30

相关推荐

Python实现某只股票的MACD KDJ指标的单双金叉点判定

金叉理论介绍

在股票K线图中,短期的收盘价均线向上穿越长期均线即为金叉,但如果长期均线向下或变缓,同时短期均线向上穿越就不能称之为金叉。

对于MACD指标,若差离值线由下向上突破移动平均线,即DIF值前一天小于DEA值,当天大于DEA值,可视为金叉;对于KDJ指标,若K线由下向上突破D线,即K值前一天小于D值,当天大于J值,可视为金叉。

参考链接:/item/%E5%9D%87%E7%BA%BF%E9%87%91%E5%8F%89

/p/110334826#

数据获取

选取某一只股票,在一些常见的数据库(如锐思数据库)中下载该股票各交易日的最高价、最低价、收盘价数据(如下图所示),整理成csv格式文件

数据分析代码

指标计算代码参考了这位博主首页的两篇相关文章

/yifengdongying?type=blog

import pandas as pd'''---- 读入源数据 ----'''data=pd.read_csv('sourceData.csv',sep=',',encoding='unicode_escape',header='infer')#此处文件名需要根据自己的路径进行修改'''--- MACD指标计算 ---'''data['ema12']=data['Clpr'].ewm(span=12).mean()data['ema26']=data['Clpr'].ewm(span=26).mean()data['DIFF']=data['ema12']-data['ema26']data['DEA']=data['DIFF'].ewm(span=9).mean()data['MACD']=2*(data['DIFF']-data['DEA'])'''--- KDJ指标计算 ---'''data['low9']=data['Lopr'].rolling(9).min()data['high9']=data['Hipr'].rolling(9).max()data['rsv']=(data['Clpr']-data['low9'])/(data['high9']-data['low9'])data['K']=data['rsv'].ewm(com=2).mean()data['D']=data['K'].ewm(com=2).mean()data['J']=3.0*data['K']-2.0*data['D']'''--- 金叉情况判断 ---'''# 创建金叉情况标记列data['MACD_jincha']='0'data['KDJ_jincha']='0'data['MACD_KDJ_jincha']='None'for i in range(9,len(data)):# 从第9条数据开始遍历(前一天开始有kdj值,保持统一)# 如果DIFF线上穿DEA线,MACD指标金叉 if data['DIFF'][i-1]<data['DEA'][i-1] and data['DIFF'][i]>data['DEA'][i]:data['MACD_jincha'][i]='1'for j in range(9,len(data)):# 从第9条数据开始遍历(前一天开始有kdj值)# 如果K线上穿D线,KDJ指标金叉if data['K'][j-1]<data['D'][j-1] and data['K'][j]>data['D'][j]:data['KDJ_jincha'][j]='1'for k in range(9,len(data)):# 优先判断双指标金叉,其次判断单指标金叉if data['MACD_jincha'][k]=='1' and data['KDJ_jincha'][k]=='1':print(data['Date'][k]+'双指标金叉')data['MACD_KDJ_jincha'][k]='Double'elif data['MACD_jincha'][k]=='1' or data['KDJ_jincha'][k]=='1':#print(data['Date'][k]+'单指标金叉')data['MACD_KDJ_jincha'][k]='Single'#导出结果数据data.to_csv('resultData.csv')

结果示例如下。经过在股票软件上观察日K线图,可以做数据分析结果的进一步检验。

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