失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 自己做量化交易软件(7)通通量化回测设计2-双均线策略回测

自己做量化交易软件(7)通通量化回测设计2-双均线策略回测

时间:2022-05-16 20:30:36

相关推荐

自己做量化交易软件(7)通通量化回测设计2-双均线策略回测

前一篇介绍了回测类的设计,我们这篇简单介绍一下回测程序设计。

我们以5日均线和20日均线的交叉作为买卖点策略,来计算对一只股票交易的收益情况。这里仅仅是一个双均线策略演示的例子。读者可以在此基础上,修改为自己的策略。

程序test_df01.py 是双均线回测程序,用户自己修改为自己的策略。里面有完整的说明信息,我们不再介绍设计原理了。我们给出全部程序代码和结果。

我们使用了聚宽数据,用户需要修改为自己的用户和密码。

##修改为自己的聚宽用户或密码x=auth('电话号码,'密码')

程序test_df01.py全部代码如下。

import pandas as pd import numpy as npimport datetime as dtimport timeimport matplotlib.pyplot as pltimport mathfrom jqdatasdk import *import HP_lib as mylibfrom HP_sys import *##修改为自己的聚宽用户或密码x=auth('18578755056','??????')code=normalize_code('000001')ds='-01-01'de=time.strftime('%Y-%m-%d',time.localtime(time.time()))df1 = get_price(code,start_date=ds,end_date=de, frequency='daily') # 日线数据##数据规格化 df1.dropna(inplace=True)df2=df1df2.insert(0,'date',df2.index)df2=df2.reset_index(level=None, drop=True ,col_level=0, col_fill='') ##双均线交易策略 df2=mylib.MA(df2,'close',5,'C5') #把5日均线存放到C5列中df2=mylib.MA(df2,'close',20,'C20') #把20日均线存放到C20列中df2=mylib.CROSS(df2,'C5','C20','B1') #把5日均线上穿20日均线,存放列B1,买入信号df2=mylib.CROSS(df2,'C20','C5','S1') #把5日均线下穿20日均线,存放列S1,卖出信号##回测tt=hpQuant() ##初始化类#下面是用户可设置信息。# self.money2=1000000.00 #总资金# self.code="" #证券代码# self.stamp_duty=0.001 #印花税 0.1%# self.trading_Commission=0.0005 #交易佣金0.05%# self.stop_loss_on=True #允许止损# self.stop_loss_max=50 #止损3次,就停止交易# self.stop_loss_range=0.05 #止损幅度tt.code=code #证券代码,必须输入tt.stop_loss_on=False #关闭自动止损df3=tt.Trade_testing(df2,'B1','S1','HL') #开始回测print('\n打印交易过程')tt.PrintTrade() #打印交易过程print('\n打印持仓信息')tt.PrintSecurity() #打印持仓信息print('\n 打印内部交易记录信息')print(tt.text)#打印交易信息######下面是绘图# 开启一个双图例的窗口,定义为211和212plt.figure(2, figsize=(12,8), dpi=80)ax1 = plt.subplot(211)ax2 = plt.subplot(212)plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False #用来正常显示负号# ax1(211窗口)plt.sca(ax1)plt.title(code+' 价格均线') # 显示网格:grid='on'df3.close.plot(color='red', grid='on')df3['C20'].plot(color='blue', grid='on')ax2.axhline(0, color='blue')# ax2(212窗口)plt.sca(ax2)df3.HL.plot(color='orange', grid='on')df3.B1.plot(color='red')df3.S1.plot(color='blue')#添加标题plt.title(code+' 获利')plt.show()

程序运行结果如下:

如果读者有什么问题咨询,可加我QQ:2775205,或着加我的QQ群:524949939

进行交流。

如果觉得《自己做量化交易软件(7)通通量化回测设计2-双均线策略回测》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。