废话不多说,下面就让我们直接来看看海龟交易法则(后面简称“海龟”)的原理~
如何选择市场
由于“海龟”起源于美国,要求高流动性,因此小编选择了国内商品期货作为交易标的,但是,要注意品种之间的相关性不要太强!
如何确定头寸
对于头寸,一定要进行波动性标准化处理。
简单点说就是要根据一个市场的绝对波动幅度来调整头寸的规模,也就是将头寸的绝对波动幅度标准化。
额,好像有点绕,算了,直接上算法吧。
为了确定波动性标准化处理后的头寸规模单位PsnLimit,首先必须知道几个变量:
真实波动幅度TR:
(备注:H表示当日最高价,L表示当日最低价,LPC表示前一日收盘价)
真实波动幅度均值N值:
(备注: ATR = 前一日的平均真实波动幅度,TR = 当日的真实波动幅度)
绝对波动幅度M值:
(备注:contractMulti表示合约乘数)
然后,波幅调整后的头寸规模单位 PsnLimit (Position Limit)就可以确定啦~
此外,我们对每个持仓头寸做限制如下:不超过4个头寸规模单位。
如何确定买卖点
一句话概括就是:以55日通道突破作为入市信号,以20日通道突破作为退出信号。
1、入市信号:
所谓“55日通道”是以55日的最高价和最低价为界,即以55日的最高价和最低价作为开仓突破点,当突破过去55日的最高点或最低点,立即入市交易(价格高于55日最高点则开多仓,低于55日最低点则开空仓)。
2、逐步建仓:
一旦信号产生,首先在突破点建立1个单位的头寸,然后按1/2×N的价格间隔一步一步扩大头寸逐步建仓。
3、退出信号:
同样的,“20日通道”是以20日的最高价和最低价为界。在建仓之后,以20日的最高价和最低价作为退市突破点。对于多头来说,当价格低于20日最低价(向下突破),或对于空头来说,当价格高于20日最高价(向上突破)时,将所有头寸单位清仓,退出市场。
如何确定止损
“海龟”根据头寸风险来设定止损标准。任何一笔交易的风险程度都不得超过2%。
由前面计算头寸的公式,我们可以知道,1N的价格变动代表账户净值的1%,那么,在2%的风险控制下,价格变动的上限就是2N,即“海龟”的止损标准为:
1、对于多头头寸来说,止损价比(最新)入市价低2N;
2、对于空头头寸来说,止损价比(最新)入市价高2N;
当市场价格达到这个价格时,“海龟”将清仓退出市场;
以上就是“海龟系统二”的内容啦。那下面就让我们来扒一扒源代码吧!
这次小编使用的海龟交易法则策略,订阅了8个相关度不是太高的商品期货主力连续合约,分别是:甲醇、鸡蛋、玉米、聚丙烯、热轧卷板、螺纹钢、黄金和铜。
使用了日收盘价、日最高价、日最低价、15分钟收盘价、15分钟最高价、15分钟最低价以及每个品种的合约乘数。
策略总资金设为2百万,但是策略只使用一半(1百万)资金。
依据之前说到的“海龟”原理编写策略,啥?你又忘了。。。记性不行啊,策略流程图,上!
看完了策略流程图,我们再来说一说平台吧。
朋友,你听说过安利么?咳,呸,重来。朋友,你听说过Quantrader么?
是的,“海龟”原理讲完了,公式也写出来了,但是,怎么能不说一下小编写策略的平台Quantrader呢?!轻松调用各种数据,一键策略回测,无缝对接模拟盘和实盘,更有各种策略API直接调用,结合数学界的神器Matlab,用起来不要太舒爽~
言归正传,在正式写代码之前,我们要把策略用到的参数先配置好。
小编的这个“海龟”策略每15分钟会调仓一次,根据之前提到的订阅的交易代码和数据,使用Quantrader可以直接配置如下:
数据准备好了之后,我们就可以开始码代码啦。
1、计算头寸单位。
2、突破55日通道开仓。
3、突破20日通道平仓。
4、考虑逐步加仓并且更新止损点。
代码当然不止这么多啦,要看完整版代码?下载地址在最后面哦~
策略写完了当然要用历史数据回测看看绩效。同样的,使用Quantrader,刷一下就回测完啦。
从绩效报告中可以看出,从13年1月到15年10月,这个“海龟“策略的收益都非常好而且很稳定,年化收益率接近50%。
每一个经典策略的背后,都有它值得被人称道的地方,因此才会让后人一直不断地去研究,海龟交易法则就是一个很好的例子。小编的这个“海龟系统二”策略到这里就全部讲完啦,赶紧在左下角点击“阅读原文”,下载源代码,然后导入Quantrader自己跑跑看吧~
戳原文,下载源代码!