在这一节,我们引入库import talib,因为这个库里有很多的技术指标,可以直接引用,不用自己再编指标函数,非常的方便,只要一个语句macd, macdsignal, macdhist = talib.MACD(ma, fastperiod=12, slowperiod=26, signalperiod=9) 就可以直接返回MACD数据,其它的方面,只要把均线系统的程序稍微修改一下就能适用了,程序如下:有问题请加QQ群768592746,所有的数据都放在群文件中了

import pandas as pd
import xlrd
import matplotlib.pyplot as plt
import numpy as np
import talib
xls = xlrd.open_workbook('hs300.xls')#打开文件
sheet = xls.sheets()[0]#打开表1
col = sheet.col_values(0)#打开第一列
nrows = sheet.nrows #行数
ma_re = pd.DataFrame(columns=['ret','max_re','min_re','win_rate','winloss_rate'])
ma=np.array(col)
macd, macdsignal, macdhist = talib.MACD(ma, fastperiod=12, slowperiod=26, signalperiod=9) #利用talib库直接计算出MACD结果
buy=[]
sell=[]
ret=0
a=0  #用于判断是否持仓,0代表空仓
s=0  #用于胜率的计算
win=0 #总盈利
loss=0  #总亏损
row=0
for k in range(31,nrows):  if macdhist[k]>0 and a==0:  #出现红柱,空仓的时候买入
#    if macdhist[k]>0 and a==0:buy.append(col[k])a=1elif macdhist[k]<0 and a==1:  #出现绿柱,持仓的时候卖出   sell.append(col[k])a=0
for l in range(0,len(sell)): #用卖出数列减去买入数列得到收益点数,然后对所有收益求和ret += sell[l]-buy[l]sb=sell[l]-buy[l]if sb>0:s+=1win+=sbelse:loss+=sb
re=[sell[i]-buy[i] for i in range(len(sell))] #列表每次交易的收益
max_re=max(re)
min_re=min(re)
if s==len(sell):winloss_rate=win
elif (s==0.0):winloss_rate=0
else:winloss_rate=(win/s)/(abs(loss)/(len(sell)-s))
win_rate=s/len(sell)
ma_re.loc[row] = [ret,max_re,min_re,win_rate,winloss_rate] #把收益点数和相应的均线参数存到表格中
row+=1
print(ma_re)

循序渐进:用python做金融量化分析(五)MACD策略系统相关推荐

  1. 循序渐进:用python做金融量化分析(四)双均线系统策略

    上一节中讲了单均线系统最优参数的寻找,这一节我们开讲双均线系统,在编程设计上,双均线系统相对于单均线系统来说多了一个均线循环,在短期均线循环里面再嵌套一个长期均线循环,其它方面和单均线系统变化不大,由 ...

  2. 循序渐进:用python做金融量化分析(三)如何寻找均线系统的最优参数

    在上一节中我们讲述了简单的单移动平均线策略系统,看起来还是挺简单的,但是简单的代价就是不够智能,功能太少,如果要测试多条均线参数都要手工输入,现在我们就把它加以改进,增加一个自动寻找最佳均线的功能,有 ...

  3. python股票量化交易入门到实践_量化资料学习《Python与量化投资从基础到实战》+《量化交易之路用Python做股票量化分析》+《组织与管理研究的实证方法第2版》...

    我们需要利用Python进行数据分析的指南,有大量的关于数据处理分析的应用,重点学习如何高效地利用Python解决投资策略问题,推荐学习<Python与量化投资从基础到实战>等电子资料. ...

  4. 用Python做股票量化分析[附量化交易学习资料]

    量化交易的核心是筛选策略,策略也是依靠数学或物理模型来创造,把数学语言变成计算机语言.量化交易的流程是从数据的获取到数据的分析.处理. import pandas as pd import talib ...

  5. garch预测 python_【2019年度合辑】手把手教你用Python做股票量化分析

    引言 不知不觉,2019年已接近尾声,Python金融量化公众号也有一年零两个月.公众号自设立以来,专注于分享Python在金融量化领域的应用,发布了四十余篇原创文章,超过两万人关注.这一路走来,有过 ...

  6. day32 Python与金融量化分析(二)

    第一部分:金融与量化投资 股票: 股票是股份公司发给出资人的一种凭证,股票的持有者就是股份公司的股东. 股票的面值与市值 面值表示票面金额 市值表示市场价值 上市/IPO: 企业通过证券交易所公开向社 ...

  7. 用python做股票量化分析豆瓣_[转]构建基于R的交易系统(5)quantstrat包(中)(来源:豆瓣-数据铺子)...

    生命不息,学习不止~ 尊重原创,原帖地址(豆瓣-数据铺子): 感谢 数据铺子 的"构建基于R的交易系统"系列帖子. --- faruto按 (2)基于quantstrat包的回测: ...

  8. 用python做股票量化分析豆瓣_小白学 Python 爬虫(24):2019 豆瓣电影排行

    人生苦短,我用 Python 前文传送门: 引言 从本篇的标题各位同学应该已经猜到了,本篇又到了实战环节~~~ 2019 已经快过完了,按照本文推送的时间预估,到 2020 应该还有十来天的时间,又到 ...

  9. python与金融量化_day33 Python与金融量化分析(三)

    1 # 导入函数库2 import jqdata3 import numpy asnp4 5 # 初始化函数,设定基准等等6 def initialize(context):7 set_option( ...

最新文章

  1. Android中pendingIntent的深入理解
  2. python中opencv安装_怎么为python安装opencv模块-百度经验
  3. 处理字符串_9_合并多行到一行
  4. Cisco Nexus 1000V
  5. timer purge_Java Timer purge()方法与示例
  6. python使用pymysql连接mysql_python3使用PyMysql连接mysql数据库的简单示例
  7. macOS Sierra 10.12.6 odoo 10.0 开发环境配置
  8. java继承 值_java继承
  9. nginx中upstream的max_conns属性使用
  10. 耗时两周,纯手敲python入门级基础笔记
  11. 浅谈一下量化交易与程序化交易
  12. win7下MeGUI压片无声、卡死、音画不同步、无法转码、无法硬解的解决办法
  13. 应聘新要求:填写恋爱经历?
  14. 关于bit-banding的解释和相关作用(转载)
  15. 三国时期蜀国的巅峰实力
  16. 视觉SLAM(二):相机与图像
  17. 31、Java——JDBC实现账号密码登录
  18. ORA-01547、ORA-01194、ORA-01110
  19. 2022-01-05:有四种诗的韵律分别为: AABB、ABAB、ABBA、AAAA。 比如 : 1 1 3 3就属于AABB型的韵律、
  20. 【OpenCV 例程 300 篇】105. 湍流模糊退化模型

热门文章

  1. android获取ion信息,[RK3288][Android6.0] ION 流程和使用小结
  2. 视频知识点(17)- flv.js 实现播放本地视频文件的技巧
  3. 自我管理五维度,遇见更好的自己
  4. 数据仓库工具箱 第10节 金融服务
  5. 如何用foobar200转换无损wma!
  6. CJ Affiliate如何收款?多号操作怎么避免关联?
  7. 预测算法——指数平滑法
  8. c语言visit_数据结构(c语言)——入门数据结构的世界:顺序线性表(一)
  9. 量子计算 11 NSA的随机数阴谋
  10. 用netcat,SSH构建IP层Tunnel