- 0
- 0
- 约4.85千字
- 约 57页
- 2019-05-19 发布于天津
- 举报
做菜的原料哪里来 人工交易时的信息是看到的 程序交易时的信息是程序通过特定的手段(接口)获取到的 历史数据 实时行情 盘口 掌握两个最重要的接口 GetFutureBarSeries OnTick(Tick tick) Tick和Bar(K线) 驱动方式 Tick Bar 行情 K线 Tick 盘口 账户 可用金额 持仓 输入信息 对象的属性获取信息神奇的“点” 交易指令 下单 LimitOrder 撤单 CancelFutureOrder 牢记概念 委托和撤单都是立即返回的 能否成功完成要靠回报事件 开发策略-空策略模板 Parameter Init OnTick(Tick tick) OnBar(Bar bar) Exit [Task(Time=“10:00”)] OnTrade OnOrder OnOrderReject OnOrderCanceled OnOrderCancelFailed OnSysWarning 基本思路 作为外汇市场上广为流行的一种突破交易策略,HANS123以其简洁的开盘后N根K线的高低点突破,作为交易信号触发的评判标准。这也是一种入场较早的交易模式,配合适当过滤技术,或可提高其胜算。 主要特点: 首先建立一个开盘观察区间,例如从开盘到开盘后40分钟截止,对于股指就是9:15到9:55 观察区间内 上轨=观察区间内的高点; 下轨=观察区间内的低点; 用法: 当价格突破上轨,买入开仓; 当价格跌穿下轨,卖出开仓。 核心代码 public int 计算策略模块信号( ) { if (LastPrice = 向上突破线) { return 1; } else if (LastPrice = 向下突破线) { return -1; } else { return 状态机.TargetFlag; } } 复盘回测 5 回测的目的 策略是否可行 找出最优参数 健壮参数的特点(好邻居原则) 好的回测的特点 正确(不能得出错误的结论) 快速 真实还原交易场景(事件回报在复盘中也能重现) 和实盘成交的匹配度高(每天用Tick数据复盘,然后和实盘逐单比对) 为什么复盘和实盘有差距? 1实盘和复盘从理论上不可能100%一致(复盘只是近似) 2不能有未来数据(大陷阱) 3滑点(小陷阱) 4复盘精度(Tick还是K线) 实际的一个结果 下图比较了该策略的回溯结果与实盘交易结果,为方便比较,都归化到杠杆率为1。如图所示,两者走势细节高度吻合。实盘结果略优于复盘结果的原因是复盘时对冲击成本采用趋严的标准,导致复盘成本偏高。 单工程回测流程 1开发策略,编译生成dll 2把dll加密导入到MQ中 3基于策略创建工程 4配置复盘、品种、成本、参数 5运行,单工程参数 参数调优流程 1开发策略,编译生成dll 2把dll加密导入到MQ中,然后重启MQ 3基于策略创建工程 4配置复盘、品种、成本、参数,导出参数文件 5新建调优器,导入参数文件,配置调优参数空间 5运行,调参数 参数调优 并行度一般等于CPU核数 为了调优速度快,可以考虑 使用固态硬盘 开启快速复盘 复盘参数的选择(参考,以股指期货为例) 初始资金10万,固定1手 保证金率1%,使得策略能始终开仓 交易成本0.5%(交易所是0.25%,这里加倍,把滑点考虑进去) 最新价撮合模式 实盘运行 6 策略的落地是一整套复杂的工程 硬件准备 8核CPU 固态硬盘 8G内存 上期模拟测试 接近实盘环境情况下策略的运行特点 测试事件回报的响应逻辑 测试策略的逻辑闭环 实盘注意 策略中多Print日志,便于查找信息 盘中严密监控,密切关注快期的实际成交和策略日志,二者应该吻合一致 系统速度考虑:当策略运行稳定后,关闭底层日志,关闭Tick落盘功能 流控考虑:不能在1秒内操作过多(可以Wait) 风险控制:IF每天开仓不能超过1200手,防止自成交 尽量取Tick的时间戳,操作系统时间不一定和四个交易所时间一致 先启动行情速度最快的账户 实盘注意 成交可能是分好几笔的 开仓时,资金有可能不足 撤单时,有可能撤不掉 平仓时,有可能已经有平仓单了 文件读写,数据库操作可能会让策略变慢 避免频繁发起硬盘读写,查询账户等相对较慢的操作 策略稳定运行后关闭日志,提升速度性能 策略停止后,内存中的数据是会消失的 Thank You The content
原创力文档

文档评论(0)