1、量化策略开发流程 1 策略开发流程 2 工具和学习资料 3 单步调试策略 4 策略代码编写 5 复盘回测 6 实盘运行 策略开发流程 1 策略要有一个简单而且坚固的道理 突破趋势跟踪动量反动量均值回归 有潜质策略的特点 及格策略的标准 满杠杆年化收益率 30 不能比巴菲特差收益回撤比 3或者本金收益回撤比 2每手盈利 100越大越好不创新高天数 100越小越好 从思想到执行 利润的源泉是价格波动 价格波动和心理相互影响 心理 投机下注 波动 期货的杠杆使投机者在交易中表现出来的人性弱点放大 心理强化 心理很难度量 借助交易中可获得的数量信息 价格成交量持仓量盘口 价格序列K线形态指标交叉关系
2、衍生 推算 信号 快速均线上穿慢速均线 趋势 价格在箱体内震荡价格在布林带里震荡价格突破20日新高 突破 价格上涨 同时成交量上涨 价量规律 价格上涨 但是成交量下跌 价量规律 公司发布利好消息 但价格下跌 信息扩散 心理的中间产物 数学模型和市场现象 规律 市场规律 价格无效 非随机 可以被清晰的描述市场规律需要的信息是可以量化 且可以直接获得 或者根据直接数据衍生计算得到市场规律输出的结构是准确的信号 买 卖 空仓 状态机 量化策略开发本质上就是利用市场规律获利 简单的例子 红三兵策略连续3根阳线 做多 连续3根阴线做空 收盘前平仓 基础原理 趋势会延续心理分析 羊群效应 集体心理暗示 工whatsapp官网
3、具准备 2 开发调试监控工具VisualStudio2010MQ快期博易大师 策略开发工具 帮助体系MagicQuant策略开发指南DemoStrategyStrategyBoxMagicQuantAPIMagicQuant论坛MagicQuant群 233309671 1 安装 NETFrameWork3 5SP12 下载MQ 群 官方网站 3 下载VS20104 下载免费的Tick数据 复盘用 通过MQ盘后下载日线和分钟线 开发环境准备顺序 1 快速读一遍MQ策略开发指南 浏览DemoStrategy 掌握基本概念2 准备好策略开发环境后 跑通演示策略 熟悉软件操作3 重点理解事件概念 徒
4、手画出事件流图4 阅读StrategyBox里面的实盘策略源码 理解常规套路写法5 对原有策略进行改造 在策略范例框架上 换成自己的策略思想6 独立开发原创策略框架 学习顺序 将陡峭的学习曲线变平缓 通读策略开发指南 熟悉范例策略 MagicQuant策略开发指南MQ核心概念 策略 Tick Bar 事件 驱动方式 C 语法和逻辑结构 够用即可 开发 获取行情 下单 撤单 DemoStrategy熟悉适应代码风格以及常规写法从修改策略逐步向写策略进步掌握常用开发技巧 事件回报 循环遍历 字典 状态位等 VisualStudio2010 开发便捷功能强大智能感知快速编译断点调试 MagicQua
5、nt2 参考API StrategyOrderTradeTickBarBarSeriesFutureAccount 单步调试策略 3 调试方法 日志调试将策略运行中的信息输出到文件或者屏幕事后调试 实时性不强 不能动态观察内存中策略变量的变化状态 单步断点调试在策略运行中清晰地看到各个变量变化的过程通过断点迅速定位到出错的位置加深对策略运行过程细节的理解 怎么单步调试 1 附加进程2 设置断点3 启动策略 策略代码编写 4 复杂的逻辑是由简单的逻辑构成的 策略是怎么运行的 理解驱动的概念 每来一个数据 策略会执行一次计算当发生事件时 策略会作出相应的反应 驱动和数据是不一样的 驱动是策略运行的whatsapp网页版telegram中文版
6、基本节奏 一个策略只有一个驱动数据可以是不同周期的 一个策略可以调用多个周期的数据GetFutureBarSeries方法获取数据 程序的本质是一个流程 顺序流程 自上而下 一行一行走分支流程 根据条件 走不同的分支循环流程 对多个对象 按照一定的顺序逐个处理 条件If elseIf elseif 循环forforeach 做菜的原料哪里来 人工交易时的信息是看到的程序交易时的信息是程序通过特定的手段 接口 获取到的历史数据实时行情盘口掌握两个最重要的接口GetFutureBarSeriesOnTick Ticktick Tick和Bar K线 驱动方式TickBar 行情K线Tick盘口账户
7、可用金额持仓 输入信息 对象的属性获取信息 神奇的 点 交易指令 下单LimitOrder撤单CancelFutureOrder 牢记概念委托和撤单都是立即返回的能否成功完成要靠回报事件 开发策略 空策略模板 ParameterInitOnTick Ticktick OnBar Barbar Exit Task Time 10 00 OnTradeOnOrderOnOrderRejectOnOrderCanceledOnOrderCancelFailedOnSysWarning 基本思路 作为外汇市场上广为流行的一种突破交易策略 HANS123以其简洁的开盘后N根K线的高低点突破 作为交易信号
8、触发的评判标准 这也是一种入场较早的交易模式 配合适当过滤技术 或可提高其胜算 主要特点 首先建立一个开盘观察区间 例如从开盘到开盘后40分钟截止 对于股指就是9 15到9 55观察区间内上轨 观察区间内的高点 下轨 观察区间内的低点 用法 当价格突破上轨 买入开仓 当价格跌穿下轨 卖出开仓 核心代码 publicint计算策略模块信号 if LastPrice 向上突破线 return1 elseif LastPrice 向下突破线 return 1 else return状态机 TargetFlag 复盘回测 5 回测的目的 策略是否可行找出最优参数健壮参数的特点 好邻居原则 好的回测的特
9、点正确 不能得出错误的结论 快速真实还原交易场景 事件回报在复盘中也能重现 和实盘成交的匹配度高 每天用Tick数据复盘 然后和实盘逐单比对 为什么复盘和实盘有差距 1实盘和复盘从理论上不可能100 一致 复盘只是近似 2不能有未来数据 大陷阱 3滑点 小陷阱 4复盘精度 Tick还是K线 实际的一个结果 下图比较了该策略的回溯结果与实盘交易结果 为方便比较 都归化到杠杆率为1 如图所示 两者走势细节高度吻合 实盘结果略优于复盘结果的原因是复盘时对冲击成本采用趋严的标准 导致复盘成本偏高 单工程回测流程 1开发策略 编译生成dll2把dll加密导入到MQ中3基于策略创建工程4配置复盘 品种 成
10、本 参数5运行 单工程参数 参数调优流程 1开发策略 编译生成dll2把dll加密导入到MQ中 然后重启MQ3基于策略创建工程4配置复盘 品种 成本 参数 导出参数文件5新建调优器 导入参数文件 配置调优参数空间5运行 调参数 参数调优 并行度一般等于CPU核数为了调优速度快 可以考虑使用固态硬盘开启快速复盘 复盘参数的选择 参考 以股指期货为例 初始资金10万 固定1手保证金率1 使得策略能始终开仓交易成本0 5 交易所是0 25 这里加倍 把滑点考虑进去 最新价撮合模式 实盘运行 6 策略的落地是一整套复杂的工程 硬件准备 8核CPU固态硬盘8G内存 上期模拟测试 接近实盘环境情况下策略的
11、运行特点测试事件回报的响应逻辑测试策略的逻辑闭环 实盘注意 策略中多Print日志 便于查找信息盘中严密监控 密切关注快期的实际成交和策略日志 二者应该吻合一致系统速度考虑 当策略运行稳定后 关闭底层日志 关闭Tick落盘功能流控考虑 不能在1秒内操作过多 可以Wait 风险控制 IF每天开仓不能超过1200手 防止自成交尽量取Tick的时间戳 操作系统时间不一定和四个交易所时间一致先启动行情速度最快的账户 实盘注意 成交可能是分好几笔的开仓时 资金有可能不足撤单时 有可能撤不掉平仓时 有可能已经有平仓单了文件读写 数据库操作可能会让策略变慢避免频繁发起硬盘读写 查询账户等相对较慢的操作策略稳
12、定运行后关闭日志 提升速度性能策略停止后 内存中的数据是会消失的 ThankYou ThecontentsofthisPresentationareconfidentialandconstitutepropertyofMQSolutionsLimited ItisprovidedforyourexclusiveuseonthebasisthatitwillbeheldincompleteconfidenceandisusedsolelyforthepurposeofinformingyouonthesubjectofthisPresentation YouacknolwedgeandagreethatMQSolutionsLimitedretainsallintellectualpropertynoworhereinaftersubsitinginthePresentation
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。


