循序渐进:用python做金融量化分析(四)双均线系统策略
上一节中讲了单均线系统最优参数的寻找,这一节我们开讲双均线系统,在编程设计上,双均线系统相对于单均线系统来说多了一个均线循环,在短期均线循环里面再嵌套一个长期均线循环,其它方面和单均线系统变化不大,由于嵌套了一个循环,程序运算量大增,运行时间随着均线参数的增大而大大延长,所以本程序在设置的时候是把均线设计在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做金融量化分析(四)双均线系统策略相关推荐
- 循序渐进:用python做金融量化分析(五)MACD策略系统
在这一节,我们引入库import talib,因为这个库里有很多的技术指标,可以直接引用,不用自己再编指标函数,非常的方便,只要一个语句macd, macdsignal, macdhist = tal ...
- 循序渐进:用python做金融量化分析(三)如何寻找均线系统的最优参数
在上一节中我们讲述了简单的单移动平均线策略系统,看起来还是挺简单的,但是简单的代价就是不够智能,功能太少,如果要测试多条均线参数都要手工输入,现在我们就把它加以改进,增加一个自动寻找最佳均线的功能,有 ...
- python股票量化交易入门到实践_量化资料学习《Python与量化投资从基础到实战》+《量化交易之路用Python做股票量化分析》+《组织与管理研究的实证方法第2版》...
我们需要利用Python进行数据分析的指南,有大量的关于数据处理分析的应用,重点学习如何高效地利用Python解决投资策略问题,推荐学习<Python与量化投资从基础到实战>等电子资料. ...
- 用Python做股票量化分析[附量化交易学习资料]
量化交易的核心是筛选策略,策略也是依靠数学或物理模型来创造,把数学语言变成计算机语言.量化交易的流程是从数据的获取到数据的分析.处理. import pandas as pd import talib ...
- garch预测 python_【2019年度合辑】手把手教你用Python做股票量化分析
引言 不知不觉,2019年已接近尾声,Python金融量化公众号也有一年零两个月.公众号自设立以来,专注于分享Python在金融量化领域的应用,发布了四十余篇原创文章,超过两万人关注.这一路走来,有过 ...
- day32 Python与金融量化分析(二)
第一部分:金融与量化投资 股票: 股票是股份公司发给出资人的一种凭证,股票的持有者就是股份公司的股东. 股票的面值与市值 面值表示票面金额 市值表示市场价值 上市/IPO: 企业通过证券交易所公开向社 ...
- 用python做股票量化分析豆瓣_[转]构建基于R的交易系统(5)quantstrat包(中)(来源:豆瓣-数据铺子)...
生命不息,学习不止~ 尊重原创,原帖地址(豆瓣-数据铺子): 感谢 数据铺子 的"构建基于R的交易系统"系列帖子. --- faruto按 (2)基于quantstrat包的回测: ...
- 用python做股票量化分析豆瓣_小白学 Python 爬虫(24):2019 豆瓣电影排行
人生苦短,我用 Python 前文传送门: 引言 从本篇的标题各位同学应该已经猜到了,本篇又到了实战环节~~~ 2019 已经快过完了,按照本文推送的时间预估,到 2020 应该还有十来天的时间,又到 ...
- python与金融量化_day33 Python与金融量化分析(三)
1 # 导入函数库2 import jqdata3 import numpy asnp4 5 # 初始化函数,设定基准等等6 def initialize(context):7 set_option( ...
最新文章
- 手动实现Spring中的IOC容器
- jenkins安装 新建节点(5)
- Flink 源码 | 自定义 Format 消费 Maxwell CDC 数据
- 网页常用字体 【参考】
- 普通音箱实现成为无线音箱
- excel如何输入身份证号码
- CCNA学习-路由器交换机的管理配置
- Web 开发人员需知的 Web 缓存知识
- 外卖返利系统/美团/饿了么外卖CPS联盟返利公众号小程序核心源码
- PS之人物磨皮与特效(适用于商业海报)
- java实现支付宝二维码支付(Spring Boot)
- 计算数据集的均值和方差(mean,std)
- originPro2021(8)在图中加直线方便查看数据
- 浅谈国产ARM遇上低成本FPGA的结合优势,源码自取!
- CentOS 7安装LMD杀毒软件
- 入行数据分析要知道什么是标准计分离差
- 计算机无法ping其他设备,局域网ping不到其他设备怎么办
- 基于USB总线的无线网卡驱动程序
- 光盘加密文件如何复制出来
- 软工实践第二次结对作业(作业五)
热门文章
- 软件测试工程师工资怎么样?高吗?
- 这款开源的人脸生成器,我爱了!
- 解决关于VMwareWorkstation下载以太网卡驱动不能用的问题
- 2048小游戏——简简单单利用js做出自己的游戏!!
- linux内存管理(七)-slab分配器
- 基于electron的音视频播放器
- WARN Error while fetching metadata with correlation id 1 : {hotitems=LEADER_NOT_AVAILABLE}
- 关于TASSEL_5的一个小问题
- cocos2d-luajit文件还原
- MTK 平台使用mtklogger 抓取日志