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.来到聚宽网站后,通过导航栏-我的策略-策略列表,点击新建策略
2.进入策略编辑页,左侧就是策略代码编辑区域,初始会默认给你提供代码模板,全删除后写入我们的代码就好了。
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),频率设置成天。点击编译运行,运行结束后就可以看到结果
可以看到,若你20160601有初始资金100000元,每个交易日尝试买100股的平安银行,到20161231,你的收益曲线将如图中蓝线般增长。图中红线是基准收益(默认是沪深300指数,代表整个市场增长水平)
3、接下来,点击运行回测,运行结束后就可以看到更为详细的结果,包括下单记录、持仓记录等。
4、回测、编译运行、运行回测都是什么意思?
像刚刚那样,用一段时间内的历史的真实行情数据,来验证一个确定的交易策略在这段时间表现如何,这个过程叫回测。
运行回测就是是字面意思,让计算机运行这次回测,运行后会告诉你策略在这段时间表现情况,比如收益率、年化收益率、最大回撤、夏普比率等指标,而且一般也会包括下单记录、持仓记录等。
编译运行其实也是让计算机运行这次回测,不过相比于点击运行回测,编译运行的结果比运行回测要简单,只有收益率等指标,因此也速度更快。所以,当还不必要得到详细的结果时,或只是想调试下策略的代码,看是否无误可运行时,编译运行就比运行回测更方便。
python量化交易策略技巧与实战_量化交易策略基本框架相关推荐
- 量化初步-《python与量化投资从基础到实战》——优矿策略
python与量化投资从基础到实战--策略初步 量化数据获取 优矿介绍 使用方式 日行情数据 因子数据 数据处理 数据合并 数据透视 数据过滤 数据获取与整理 数据转化: 标准化 哑变量 通联数据回测 ...
- python django web典型模块开发实战_带你读《Python Django Web典型模块 开发实战》之一:从新浪微博聊起多端应用-阿里云开发者社区...
Python Django Web典型模块 开发实战 点击查看第二章 点击查看第三章 寇雪松 编著 第1章 从新浪微博聊起多端应用 当人们听到"新浪",脑海里第一个浮现的关联词是& ...
- python二手交易平台代码_PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二手急速响应捡垃圾平台_3(附源码持续更新)...
说明 文章首发于HURUWO的博客小站,本平台做同步备份发布. 如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览. 原文链接 PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二 ...
- Python和Java结合的项目实战_[项目实战] Python高级教程项目实战篇 Python和Java结合的项目实战 视频教程 [...
资源介绍 课程简介:xa0xa0 Python高级教程项目实战篇 Python和Java结合的项目实战 视频教程 教学视频 ----------------------课程目录 Python项目实战篇 ...
- python 策略回测期货_量化投资实战教程(1)—基于backtrader的简单买入卖出策略
都说Python可以用于量化投资,但是很多人都不知道该怎么做,甚至觉得是非常高深的知识,其实并非如此,任何人都可以在只有一点Python的基础上回测一个简单的策略. Backtrader是一个基于Py ...
- python数据可视化从入门到实战_《Python编程从入门到实践》json数据可视化练习详解...
<Python编程从入门到实践>16.2中,计算收盘价均值的程序有些不易看懂,结合我自己的理解进行一些说明. 使用的数据集:join格式的数据, 数据集是由多个字典为元素组成的列表.每个字 ...
- 嵩天python测验期末测试_Python数据分析实战_章节测验,期末考试,慕课答案查询公众号...
[问答题] 简述决策的程序 [问答题] 简述决策的程序 [单选] ()的功能在延长网络跨度,还可以根据帧的目的地址处于哪一段来进行转发和滤除. [单选] 综采工作面的采高应不大于支架的()支护高度. ...
- Python隐形马尔科夫实战_隐马尔科夫模型的Python3实现代码
下面给出计算隐马尔科夫模型的编程代码:from hmmlearn.hmm importGaussianHMMimportdatetimeimportnumpy as npfrom matplotlib ...
- python股票量化交易入门到实践_量化资料学习《Python与量化投资从基础到实战》+《量化交易之路用Python做股票量化分析》+《组织与管理研究的实证方法第2版》...
我们需要利用Python进行数据分析的指南,有大量的关于数据处理分析的应用,重点学习如何高效地利用Python解决投资策略问题,推荐学习<Python与量化投资从基础到实战>等电子资料. ...
- python量化实战_Python量化交易实战
(1)构建Python股票交易量化平台,实现交易量化技术;(2)详解股票交易主要模型.算法及其实现.应用;(3)量化交易工具提供云盘下载,方便读者学习 ¥62.40定价:¥79.00(7.9折)电子书 ...
最新文章
- 比特大陆发布第三代AI芯片,INT8算力达17.6Tops
- pd.read_csv读取txt时整型变成浮点型问题解决
- 一款精品Android手电筒应用
- 如何打开python的交互窗口-使用Python显示图形交互窗口
- golang中的os包
- 《算法基础》——2.3 求幂运算
- vue如何取消下拉框按回车自动下拉_Web自动化测试 | Select下拉框
- Array Sharpening CodeForces - 1291B(思维)
- 整数因子分解c语言递归,整数因子分解:计算一个整数所有的分解式(递归实现)...
- pg数据库开启远程连接_Postgresql开启远程访问的步骤全纪录
- “一个人自修没感觉!”
- python代码加密cython_利用Cython加密python脚本
- 洛谷——P1014 [NOIP1999 普及组] Cantor 表
- 惠普服务器G8系列做raid,hp g8服务器设置raid5
- Eclipse — 如何导入包
- Kvaser新品推介:一款坚固耐用的单通道CAN / CAN FD转USB接口-Kvaser U100 编码:73-30130-01173-1
- 数据分析岗位求职经验分享
- 单元測试中 Right-BICEP 和 CORRECT
- build.sh脚本
- logo免费在线设计,给自己的logo寻找灵感