MACD策略python实现背离点的判断

话不多说直接贴代码和运行结果!!
****运行环境:**PyCharm2017.1

import baostock as bs
import pandas as pd
import talib as ta
import matplotlib.pyplot as plt
def computeMACD(code,startdate,enddate):login_result = bs.login(user_id='anonymous', password='123456')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)#剔除停盘数据#print(df)df2 = df[df['tradeStatus']=='1']#交易日#获取dif,dea,hist,它们的数据类似是tuple,且跟df2的date日期一一对应#记住了dif,dea,hist前33个为Nan,所以推荐用于计算的数据量一般为你所求日期之间数据量的3倍#这里计算的hist就是dif-dea,而很多证券商计算的MACD=hist*2=(dif-dea)*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'])df4 = pd.merge(df3, df2, on='date', how='left')#print(df)print(df2)print(df3)print(df4)df4.to_csv("./out_df4.csv", index=False)df2.to_csv("./out_df2.csv", index=False)hist=2*(df4['dif']-df4['dea'])df3.plot(title='MACD')plt.show()#寻找MACD金叉和死叉datenumber = int(df3.shape[0])lastdif=Nonelastclose = None#tlist = []print(df3.iloc[0,0])for i in range(datenumber-1):if (df4.iloc[i, 1]<=df4.iloc[i, 2])&\(df4.iloc[i+1, 1]>=df4.iloc[i+1, 2])&\greaterThan(lastdif, df4.iloc[i+1,1]) &\greaterThan(df4['close'][i+1],lastclose):#上一次下穿时间的收盘价小于当日收盘价lastdif = df4.iloc[i , 1]lastclose = df4['close'][i]#tlist.append(df3.index[i+1])print("期货代码:{},顶背离时间:{}, 价格:{}".format(code,df4['date'][i + 1], df4['close'][i+1]))if ((df4.iloc[i,1]>=df4.iloc[i,2])&(df4.iloc[i+1,1]<=df4.iloc[i+1,2])&greaterThan(df4.iloc[i+1,1],lastdif) &greaterThan(lastclose,df4['close'][i+1])):lastdif = df4['dif'][i]lastclose = df4['close'][i]#tlist.append(df4['date'][i+1])print("期货代码:{},底背离时间:{}, 价格:{}".format(code, df4['date'][i + 1], df4['close'][i+1]))bs.logout()return(dif,dea,hist)def greaterThan(a, b):if(not a )|( not b):return Trueelif(a > b):return Trueelse:return Falseif __name__ == '__main__':code = 'sh.600000'          #浦发银行股票代码startdate = '2019-06-08'enddate = '2020-01-08'(dif,dea,hist) = computeMACD(code,startdate,enddate)![在这里插入图片描述](https://img-blog.csdnimg.cn/20200110140633281.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNDIwOTI5,size_16,color_FFFFFF,t_70)


我测的是浦发银行的,日线。
引用到的包链接

python实现MACD策略背离点的判断相关推荐

  1. python抓取股票形态_利用Python实现MACD#39;顶底背离#39;形态,并实现自动化交易!...

    点及财经,股票期货专业投机者. 前言 股票或期货的价格波动,总会有一些可以规律可以遵循的.其中,"背离"也算是其中的一种,并且可以作为判断趋势结束或阶段调整的预警信号. 通常情况下 ...

  2. python量化自动交易_Python量化交易之MACD'顶底背离'形态的实现,自动

    点及财经,股票期货专业投机者. 前言 股票或期货的价格波动,总会有一些可以规律可以遵循的.其中,'背离'也算是其中的一种,并且可以作为判断趋势结束或阶段调整的预警信号. 通常情况下,我们所说的'背离' ...

  3. python程序化交易实例macd-量化投资原来这么简单(2)—MACD策略(+26.9%)

    上次,我们简单地用backtrader和最简单的买入卖出策略进行了一次量化投资分析: 这一次,让我们把策略变得复杂一点,使用MACD策略的信号线交叉交易法: 本系列教程源代码Github仓库:http ...

  4. python实现MACD均线择时策略

    本文采用了聚宽平台接口进行量化策略设置: 1 确定策略内容 在之前的教程中,我们学习了如何通过财务指标等对股票进行筛选等操作.今天我们将以MACD为例,探究如何利用技术指标进行策略的构建与实现. &g ...

  5. Python 量化投资实战教程(2) —MACD策略(+26.9%)

    量化投资系列文章: Backtrader 教程 - Python 量化投资实战教程(1) Python 量化投资实战教程(2) -MACD策略(+26.9%) Python 量化投资实战教程(3) - ...

  6. 【转】Python 量化投资实战教程(2) —MACD策略

    上次,我们简单地用Python 和 backtrader 使用最简单的买入卖出策略进行了一次量化投资分析: 这一次,让我们把策略变得复杂一点,使用MACD策略的信号线交叉交易法: 本系列教程源代码Gi ...

  7. Python 量化投资实战教程(3) —A股回测MACD策略

    量化投资系列文章: Backtrader 教程 - Python 量化投资实战教程(1) Python 量化投资实战教程(2) -MACD策略(+26.9%) Python 量化投资实战教程(3) - ...

  8. python 源代码 macd双底 高 低_MACD双底背离_选股公式,炒股软件,炒股公式,股票软件,股票公式_指标编写互助答疑论坛_理想论坛 - 股票论坛...

    请老师将以下公式双MACD背离时间不超过30天,写个选股,谢谢了 STICKLINE(100,90,0,5,0),COLOR666600; XIAO1:=REF((LOW+OPEN+CLOSE+HIG ...

  9. 量化交易策略 背离策略

    量化交易背离策略是指根据价格与指标(如RSI.MACD等)之间的背离关系,来预测价格的走势. 在市场上,当价格趋势强劲时,技术指标往往滞后于价格,此时价格与指标之间的关系是正相关的:相反,当价格趋势弱 ...

  10. 聚宽macd底背离_许多散户不知道:MACD月线金叉,MACD月金叉都会带来一波牛市!...

    MACD吸收了移动平均线的优点. 移动平均线的买卖交易在趋势明显时效果很好,但是一旦遇到牛皮盘整行情,移动平均线所发出的信号就过于频繁而且极其不准确,在期货市场的保证金杠杆效应下容易使投资者遭受致命损 ...

最新文章

  1. Web.Config文件配置之限制上传文件大小和时间
  2. exit函数_全面深入了解 Python 魔法函数
  3. php获取mysql数据菜鸟_PHP操作数据库
  4. 文献学习(part78-B)--A Survey of Clustering Algorithms for Big Data: T axonomy Empirical Analysis
  5. linux用m4重定向,liunx重定向控制台消息
  6. VS调试启动编辑并继续功能
  7. webdriver---API---(java版) 高级应用
  8. MVC三层架构在各框架中的特征
  9. 三维重建_基于图像的三维模型重建_稠密点云重建
  10. 索尼笔记本触摸板双指无效
  11. VM虚拟机同步.4开同步教程MouseWithoutBorders无界鼠标安装配置教程
  12. 以太网详解(三)-PHY Transceiver硬件设计注意事项
  13. j1900 nas安装windows蓝屏,无网卡连不上网
  14. 三十一 我在软件园的那些日子里
  15. #define private public
  16. 计算机网络.第三节课.笔记.信道复用、频分复用、统计时分复用、波分复用、时分复用、码分复用、双绞线带宽、双绞线
  17. 关于pfx证书和cer证书
  18. 个人管理:“唐僧”之五项修炼
  19. CSV文件及用Excel正确的打开方式
  20. 计算机通信常用的纠错方式,纠错

热门文章

  1. 基于Python制作实现的推箱子小游戏
  2. 微信Python自动回复代码
  3. 勒索病毒来袭!及时备份数据吧!
  4. 交易就是一路风雨兼程 一路披荆斩棘 谋士社区 老锅
  5. ES学习笔记八-聚合搜索
  6. 糖尿病11年的隔壁老王
  7. linux 没有dll文件,求助 hai.dll文件丢失 在线等
  8. 《影响中国大数据产业进程100人》 刘冬冬: 数据如何来支持新的商业战争
  9. 知道RSS的人越少,我就越希望它能被人知道!
  10. Riverbed宣布收购领先的Wi-Fi网络提供商Xirrus