python量化交易策略技巧与实战_量化交易策略基本框架

一、搭建一个简单的交易策略

1、策略

先看一个非常简单的交易策略:

每天买100股的平安银行。

为了让这个策略能让计算机执行,首先,要使策略符合“初始化+周期循环”框架,像这样:

初始化:选定要交易的股票为平安银行

每天循环:买100股的平安银行

2、什么是“初始化+周期循环”框架?

为了将投资灵感高效地转化成计算机可执行的量化策略,必须基于一种模式来写,框架就是指这种模式。而此框架包含两个部分即初始化与周期循环:

初始化即指策略最开始运行前要做的事。比如,准备好要交易的股票。

周期循环即指策略开始后,随着时间一周期一周期地流逝时,每个周期要做的事。如例中,周期为天,周期循环的则是每天买100股的平安银行。

能帮助你理解这一框架的是,其实人本身日常做交易就是符合“初始化+周期循环”框架的,初始化就是已存在人脑的交易思想与知识,周期循环就是每天或每分钟地查看行情、判断、下单等行为。

3、如何把策略变成计算机可执行的程序?

通过编程将策略写成计算机可识别的代码,具体说,我们这里是用python这门编程语言。

另外可以用聚宽的向导式策略生成器,这种方法是不需编程的,但灵活性上难免是远不如写代码的。

4、如何将策略写成代码?

“初始化+周期循环”框架代码的两种写法:

1.写法一

definitialize(context):

这里是用来写初始化代码的地方,例子中就是选定要交易的股票为平安银行defhandle_data(context,data):

这里是用来写周期循环代码的地方,例子中就是买100股的平安银行

2.写法二

definitialize(context):

run_daily(period,time='every_bar')

这里是用来写初始化代码的地方,例子中就是选定要交易的股票为平安银行defperiod(context):

这里是用来写周期循环代码的地方,例子中就是买100股的平安银行

5、代码应该往哪里写

1.来到聚宽网站后,通过导航栏-我的策略-策略列表,点击新建策略

1449477-20190222162637653-93390974.png

2.进入策略编辑页,左侧就是策略代码编辑区域,初始会默认给你提供代码模板,全删除后写入我们的代码就好了。

1449477-20190222162906101-1731952552.png

6、两种写法用哪个好?

写法一是从前的老写法,将逐步弃用,写法二是聚宽系统改进后的新写法,推荐使用写法二。

二、利用框架编写完整的策略

1、编写代码

1.选定要交易的股票为平安银行

g.security = '000001.XSHE'

2.买100股的平安银行(市价单写法):

order(g.security, 100)

3.以写法二为例把剩下的代码补上后,完整代码为

#导入函数库

from jqdata import *

#初始化函数,设定基准等等

definitialize(context):

run_daily(period,time='every_bar')#选定要交易的股票为平安银行

g.security = '000001.XSHE'

defperiod(context):#买100股的平安银行(市价单写法)

order(g.security, 100)

2、设置好初始资金与起止时间

比如初始资金100000元,起止时间20160601-20161231),频率设置成天。点击编译运行,运行结束后就可以看到结果

1449477-20190222164359641-572084683.png

可以看到,若你20160601有初始资金100000元,每个交易日尝试买100股的平安银行,到20161231,你的收益曲线将如图中蓝线般增长。图中红线是基准收益(默认是沪深300指数,代表整个市场增长水平)

3、接下来,点击运行回测,运行结束后就可以看到更为详细的结果,包括下单记录、持仓记录等。

1449477-20190222164640688-1794769944.png

4、回测、编译运行、运行回测都是什么意思?

像刚刚那样,用一段时间内的历史的真实行情数据,来验证一个确定的交易策略在这段时间表现如何,这个过程叫回测。

运行回测就是是字面意思,让计算机运行这次回测,运行后会告诉你策略在这段时间表现情况,比如收益率、年化收益率、最大回撤、夏普比率等指标,而且一般也会包括下单记录、持仓记录等。

编译运行其实也是让计算机运行这次回测,不过相比于点击运行回测,编译运行的结果比运行回测要简单,只有收益率等指标,因此也速度更快。所以,当还不必要得到详细的结果时,或只是想调试下策略的代码,看是否无误可运行时,编译运行就比运行回测更方便。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值