上一节中讲了单均线系统最优参数的寻找,这一节我们开讲双均线系统,在编程设计上,双均线系统相对于单均线系统来说多了一个均线循环,在短期均线循环里面再嵌套一个长期均线循环,其它方面和单均线系统变化不大,由于嵌套了一个循环,程序运算量大增,运行时间随着均线参数的增大而大大延长,所以本程序在设置的时候是把均线设计在4-40之间。有兴趣的朋友也可以自己修改参数,增加均线的数量,本文运行结果截取前五条记录,结果如下:

re  sma   lma

456  3092.20 20.0  21.0

187  2682.15  9.0  27.0

476  2593.25 21.0  22.0

435  2549.35 19.0  20.0

158  2545.83  8.0  29.0

最优的是20和21日均线,这和单均线策略系统的结果差不多,两者的收益点数都是第一,而且收益点数相差也不是太大,这说明从日线上来看,沪深300指数用20日均线来判断趋势行情比较有利。

下面是完整的程序代码:

import pandas aspdimport xlrdimport matplotlib.pyplotas pltimport numpy as npdef maCal(price,m): #求移动平均线的函数ma=pd.Series(0.0,index=list(price))for i in range(m-1,len(col)):ma[i]=sum(col[(i-m+1):(i+1)])/mreturn(ma)xls =xlrd.open_workbook('hs300.xls')#打开文件sheet = xls.sheets()[0]#打开表1col =sheet.col_values(0)#打开第一列nrows =sheet.nrows #行数m=40ma_re =pd.DataFrame(columns=['re', 'sma','lma'])#建立表格,三列分别表示收益点数,短期均线,长期均线参数row=0 for j inrange(4,m): #外循环代表短期均线Sma=[]Lma=[]Sma=maCal(col,j).values     for n in range(j+1,m+1):#内循环代表长期均线a=0 #用于判断是否持仓,0代表空仓 buy=[]sell=[]Lma=maCal(col,n).valuesfor k in range(j,nrows): ret=0if col[k]>Sma[k] andSma[k]>Lma[k]  and a==0:#收盘价在短期均线之上,短期均线在长期均线之上buy.append(col[k])a=1elif col[k]<Sma[k] andSma[k]<Lma[k]  and a==1:  #收盘价在短期均线之下,短期均线在长期均线之下sell.append(col[k])a=0               for l in range(0,len(sell)): #用卖出数列减去买入数列得到收益点数,然后对所有收益求和ret += sell[l]-buy[l]ma_re.loc[row] = [ret,j,n] #把收益点数和相应的均线参数存到表格中row+=1  ma_re =ma_re.sort_values(by='re', ascending=False) #把收益点数按降序排序print(ma_re)

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

  1. 循序渐进:用python做金融量化分析(五)MACD策略系统

    在这一节,我们引入库import talib,因为这个库里有很多的技术指标,可以直接引用,不用自己再编指标函数,非常的方便,只要一个语句macd, macdsignal, macdhist = tal ...

  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. 手动实现Spring中的IOC容器
  2. jenkins安装 新建节点(5)
  3. Flink 源码 | 自定义 Format 消费 Maxwell CDC 数据
  4. 网页常用字体 【参考】
  5. 普通音箱实现成为无线音箱
  6. excel如何输入身份证号码
  7. CCNA学习-路由器交换机的管理配置
  8. Web 开发人员需知的 Web 缓存知识
  9. 外卖返利系统/美团/饿了么外卖CPS联盟返利公众号小程序核心源码
  10. PS之人物磨皮与特效(适用于商业海报)
  11. java实现支付宝二维码支付(Spring Boot)
  12. 计算数据集的均值和方差(mean,std)
  13. originPro2021(8)在图中加直线方便查看数据
  14. 浅谈国产ARM遇上低成本FPGA的结合优势,源码自取!
  15. CentOS 7安装LMD杀毒软件
  16. 入行数据分析要知道什么是标准计分离差
  17. 计算机无法ping其他设备,局域网ping不到其他设备怎么办
  18. 基于USB总线的无线网卡驱动程序
  19. 光盘加密文件如何复制出来
  20. 软工实践第二次结对作业(作业五)

热门文章

  1. 软件测试工程师工资怎么样?高吗?
  2. 这款开源的人脸生成器,我爱了!
  3. 解决关于VMwareWorkstation下载以太网卡驱动不能用的问题
  4. 2048小游戏——简简单单利用js做出自己的游戏!!
  5. linux内存管理(七)-slab分配器
  6. 基于electron的音视频播放器
  7. WARN Error while fetching metadata with correlation id 1 : {hotitems=LEADER_NOT_AVAILABLE}
  8. 关于TASSEL_5的一个小问题
  9. cocos2d-luajit文件还原
  10. MTK 平台使用mtklogger 抓取日志