循序渐进:用python做金融量化分析(五)MACD策略系统
在这一节,我们引入库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策略系统相关推荐
- 循序渐进:用python做金融量化分析(四)双均线系统策略
上一节中讲了单均线系统最优参数的寻找,这一节我们开讲双均线系统,在编程设计上,双均线系统相对于单均线系统来说多了一个均线循环,在短期均线循环里面再嵌套一个长期均线循环,其它方面和单均线系统变化不大,由 ...
- 循序渐进:用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( ...
最新文章
- Android中pendingIntent的深入理解
- python中opencv安装_怎么为python安装opencv模块-百度经验
- 处理字符串_9_合并多行到一行
- Cisco Nexus 1000V
- timer purge_Java Timer purge()方法与示例
- python使用pymysql连接mysql_python3使用PyMysql连接mysql数据库的简单示例
- macOS Sierra 10.12.6 odoo 10.0 开发环境配置
- java继承 值_java继承
- nginx中upstream的max_conns属性使用
- 耗时两周,纯手敲python入门级基础笔记
- 浅谈一下量化交易与程序化交易
- win7下MeGUI压片无声、卡死、音画不同步、无法转码、无法硬解的解决办法
- 应聘新要求:填写恋爱经历?
- 关于bit-banding的解释和相关作用(转载)
- 三国时期蜀国的巅峰实力
- 视觉SLAM(二):相机与图像
- 31、Java——JDBC实现账号密码登录
- ORA-01547、ORA-01194、ORA-01110
- 2022-01-05:有四种诗的韵律分别为: AABB、ABAB、ABBA、AAAA。 比如 : 1 1 3 3就属于AABB型的韵律、
- 【OpenCV 例程 300 篇】105. 湍流模糊退化模型
热门文章
- android获取ion信息,[RK3288][Android6.0] ION 流程和使用小结
- 视频知识点(17)- flv.js 实现播放本地视频文件的技巧
- 自我管理五维度,遇见更好的自己
- 数据仓库工具箱 第10节 金融服务
- 如何用foobar200转换无损wma!
- CJ Affiliate如何收款?多号操作怎么避免关联?
- 预测算法——指数平滑法
- c语言visit_数据结构(c语言)——入门数据结构的世界:顺序线性表(一)
- 量子计算 11 NSA的随机数阴谋
- 用netcat,SSH构建IP层Tunnel