第一部分 策略的研发
量化模型= (技术指标) + (下单条件等交易内容)+(头寸管理内容,包括止损、加减仓、给模型分配资金、根据权益变化做风控等)
一、技术指标和量化模型的区别
量化模型= (技术指标) + (下单条件等交易内容)+(头寸管理内容,包括止损、加减仓、给模型分配资金、根据权益变化做风控等)
技术指标在 k 线图上是一根价格趋势的曲线,策略模型在 k 线图上是一根收益、资金权益变化的曲线
1、如何把指标转化为模型?
第一步:指标公式中加入交易指令
写法范例:COND,SIG; //满足 COND 条件时,立即发出 SIG 信号
交易指令
如果交易过程中,并不是一直持仓,那么用 BK、SP、SK、BP;如果交易过程中一直保持有持仓,非多即空,那么用 BPK、SPK
第二步:加入头寸管理
指标是盯着价格,模型是盯着持仓盈亏,二者的核心区别在于头寸管理部分
例如:价格回撤进行止损
CLOSE<=BKPRICE-N*MINPRICE,SP; //亏损 N 跳止损平多
CLOSE>=SKPRICE+N*MINPRICE,BP; //亏损 N 跳止损平空
例如:权益回撤进行持仓风控
MONEYTOT<=INITMONEY*(1-10/100),SP; //权益回撤 10%,多头
MONEYTOT<=INITMONEY*(1-10/100),BP; //权益回撤 10%,空头
二、量化模型编写
(一)模型的基本框架
1. 开仓语句(条件,BK/SK/BPK/SPK)和平仓语句(条件,SP/BP)是模型必须要有的部分
2.信号优先级高于指令:
信号包括:BK/SK/BP/SP/BPK/SPK;
指令包括:ADD_LONG/LOWER_LONG/ADD_SHORT/LOWER_SHORT;
3. 从开仓信号到平仓信号视为一个完整的交易过程,减仓指令不视为交易结束,必须出现平仓信号才算交易结束;
4. 开仓信号、平仓信号一个交易过程中只能出现一对,期间可以出现 0~N 次的加减仓指令
5. 加仓不能作为一次交易的开始,需要 BK/SK/BPK/SPK 开仓之后,才能出加仓指令;
6. 加仓不能作为一次交易的开始,需要 BK/SK/BPK/SPK 开仓之后,才能出加仓指令;
7. 加减仓指令只有在持仓不为 0 时才生效;
8. 默认以 K 线最后一笔价格来确定信号下单,即 K 线走完出信号,于下一根 K 线开始时下单;
(二)优化编写:止损止盈
1、常见的止损思路
思路 1:固定点差或固定比例止损
固定点差止损
CLOSE<=BKPRICE-N*MINPRICE,SP;//亏损 N 跳平多
CLOSE>=SKPRICE+N*MINPRICE,BP;//亏损 N 跳平空
固定百分比止损
CLOSE<=BKPRICE*(1-N/100),SP;//下跌百分之 N 止损平多
CLOSE>=SKPRICE*(1+N/100),BP;//上涨百分之 N 止损平空
思路 2:动态追踪止损
CLOSE<=BKHIGH-N*MINPRICE,SP;//从开多后最高点下跌回撤 N 跳平多
CLOSE>=SKLOW+N*MINPRICE,BP;//从开空后最低点上涨回撤 N 跳平空
2、常见的止盈思路
思路 1:固定点差或固定比例止盈
固定点差止盈
CLOSE>=BKPRICE+M*MINPRICE,SP;//盈利 M 跳平多
CLOSE<=SKPRICE-M*MINPRICE,BP;//盈利 M 跳平空
固定百分比止盈
CLOSE>=BKPRICE*(1+M/100),SP;//上涨百分之 M 止盈平多
CLOSE<=SKPRICE*(1-M/100),BP;//下跌百分之 M 止盈平空
思路 2:保本止盈
BKHIGH>BKPRICE+NMINPRICE&&CLOSE<=BKPRICE+MMINPRICE,SP;//开多后最高上涨超过N跳后回到开仓价加 M 跳价位保本平多
SKLOW<SKPRICE-N*MINPRICE&&CLOSE>=SKPRICE-M*MINPRICE,BP;//开空后最低下跌超过 N 跳后回到开仓价减 M 跳价位保本平空
可以用C来表示,这样C高时止盈点高
(三)优化编写 2 - 头寸管理
思路 1:权益回撤控制
权益回撤比,超过一定比例,停止模型运行
HM:=HHV(MONEYTOT,BARPOS);
QY:(HM-MONEYTOT)/HM;//权益回撤比
QY>0.2,SP;//权益回撤超过 20%,多头止损
QY>0.2,BP;//权益回撤超过 20%,空头止损
思路 2:开仓仓位管理
按资金使用率计算下单手数
SETDEALPERCENT(fPercent,N):按理论资金比例下单,每次按当前理论资金的 fPercent比例下单,且最大为 N 手。
思路 3:根据上一次交易的盈亏,动态调整开仓手数
(四)优化编写 3 - 运行优化
对模型运行进行优化,在 k 线还没有走完但是买入开仓条件已经满足的情况下发出交易指令,不需要等这根 k 线走完
思路 1:优化进出场点
思路 2:盘中立即止损
(五)优化编写 4 - 分批进出场
如果开仓后盈利了再加大仓位分批进场。离场也是一样,根据持仓盈亏的情况动态调整,亏损则灵活减仓,降低持仓风险
思路:分批进场,盈利加仓,亏损减仓
(六)跨周期跨合约引用数据
1、跨周期引用数据
将跨周期模型加载到分钟周期上,在小周期引用大周期的数据综合判断趋势走向,既可以过 滤掉逆向信号和“假趋势”,也可以在更小级别上精准入场,降低策略的滞后性
2、跨合约引用数据
根据板块指数分析市场大趋势,再结合交易合约行情寻找入场机会,宏观和微观层面相结合,增强策略的稳定性
三、策略的调试
(一)历史信号调试
场景 1:核对信号,检验模型编写的准确性
场景 2:自主选择交易开始的时间调试策略
场景 3:切换合约对比策略表现
选择什么 k 线周期交易?
越小的周期,交易机会越多,但是随之而来的是更多的手续成本和滑点损失;越大的周期,趋势越明显,单笔盈利空间越大,但是相应的需要承担的回撤风险也越大
(二)实时信号调试
场景:多周期、多合约、多模型监测信号
1、页面盒子信号监测的适用范围
以下列表中为不支持在页面盒子做信号监测的函数
四、策略的回测
(一)主连链回测
场景:针对多个年度主力月份合约连续交易效果回测
主连链回测对主力换月的处理方式
主力换月时,旧主力,新主力根据月份合约 K 线数据重新计算开仓信号,以此规避换月时新旧合约趋势相反导致移仓方向做反而产生的风险,同时又能保证策略连续性
操作方法
模型不要写入 TRADE_OTHER('AUTO')语句,把模型直接加载到品种主连上
在研究模型时,先在某一个 具体的月份合约上做回测研究,模型在月份合约上有良好的表现后,再进行主连链回测
(二)360 度检验策略有效性
在实盘运用前需要解决:过度拟合、幸存者偏差
场景 1:多指标、多维度分析模型实盘可行性
策略是否具备获利能力
收益、收益率、扣除最大亏损后收益率
策略风险情况(是否有爆仓风险)
权益最大回撤、损益最大回撤、最大持续亏损次数、平均每次亏损、最大每手亏损、单次最大亏损
策略是否稳定
胜率、盈亏比率、R 方、夏普比率、索提诺比率
策略可行性,实盘中能否坚持执行
信号个数、空仓周期数、最长连续空仓周期数、最大持续亏损次数、单次最大亏损
策略成本是否偏高,资金使用率高不高
平均资金使用率、最大资金使用率、手续费、滑点损耗
场景 2:动态分析策略执行的可行性
分析在实盘中面临这样的回撤或亏损压力
场景 3:总结策略阶段性表现
时段统计图表可从收益、胜率、盈亏比、回撤全方位评估策略的表现,对策略不同时间段内的表现情况进行统计总结
典型问题解答
是否支持逐笔回测?
模型中写入 SIGCHECK 函数时,支持逐笔回测
胜率和盈亏比哪个更重要?
理论上盈亏比和胜率的乘积大于 0.6 的模型就是可以盈利的,乘积越大代表模型越好
对于长线趋势策略而言
一个品种一年中出现明显趋势的次数并不多,模型能否成功的关键是抓住大的趋势波动,所以胜率是很难达到很高的水平的,这时想办法提高盈亏比,让利润充分奔跑,更容易获得较高的收益
什么是杠杆倍数?
杠杆倍数 = 最大资金使用率 / 保证金率
一个模型的收益率,必须是在一个合理的杠杆倍数下才有参考意义
权益和损益有什么区别?
权益计算的是账户可用资金和持仓保证金,是包含了浮动盈亏的
损益计算的是每次持仓为 0 时,账户的可用资金,是不包括浮动盈亏的
一般损益回撤更能体现本金真实的回撤情况
夏普比率是什么意思?
夏普比率代表了每承受一个单位的风险,会产生多少的超额收益。夏普比率大于 1,代表收益高于风险
收益相同的两个模型,一般会选择夏普比率更高的模型,因为这个模型相对风险较低
五、模型定参
参数越多越好吗
参数设置的越多,就越会有过度拟合的风险
(一)枚举
(1)设置参数关系减少参数优化时间
(2)根据参考标准占比综合筛选参数组
(二)遗传
场景 1:优选更高适应性的参数
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://ly.tttmy.cn/news/4259.html