打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
海龟交易体系的构建 - 看了它你就懂海龟交易了


暑假在家发现了Ricequant这个挖金矿的地方狠狠泡了些日子hunhunyushui地阅读API文档一步步把海龟的轮廓构建起来
选择实现海龟策略也是有原因的海龟交易法则不是仅仅停留在指标系统的阶段准确说它已经正真意义上的形成了交易系统的雏形它涵盖了交易的各个方面没有给交易员留下主观想象决策的余地这正好使得程序化操作该系统的优势得到发挥这一步步敲击代码的过程中收获还是不少今天我也来放上自己的思考和代码与大家伙分享


首先我们从趋势策略说起......
在国内A股浓厚的追涨杀跌气氛中第一感觉趋势追随策略简单粗暴有效不过我觉得看待一个策略就像看待一个人一段历史一样时间拉长作出评价才更加客观
我们先来看看API中自带的基于趋势指标MACD的策略关于MACD的介绍可以戳Technical Analysis from A to ZA Primer On The MACDMACD Histogram Helps Determine Trend Changes(http://www.investopedia.com/articles/technical/082701.asp)以及计算公式为消除选股因素影响交易标的使用日指数数据CSI300.INDX为和后续策略对比回测时间统一设定为20050104-20160310这十年时间源码https://www.ricequant.com/community/topic/62

十一年回测只用不到6秒时光时光慢些吧

回测收益 209.829%     回测年化收益  11.067%    基准收益 205.066%
Alpha  0.0305   Beta  0.441    Sharpe 0.3638      Sortino 0.3448
Information Ratio  -0.1163     Volatility 0.2007
最大回撤 50.77%      Tracking Error 0.2255    Downside Risk 0.2117



嗯...好像并没有想象那么好平时看交易软件上的MACD觉得靠谱得不要不要的不过这样看也没有那么神呐最大回撤快五十了额我是不敢把银子交给它...睡不着觉啊不过夏普0.80十年时间也不容易......也算差强人意了
好了下面切换到我们的正题海龟交易法则听我一本正经地娓娓道来

海龟交易法则背景



说到海龟交易不得不提他的创始人--Richard Dennis

Riachard Dennis是七八十年代著名的期货投机商是一位具有传奇色彩的人物在多年的投机生涯中Dennis出尽风头给人的感觉是常常可以在最低点买进然后在最高峰反手卖空

他相信优秀的交易员是后天培养而非天生的他在1983年12月招聘了23名新人昵称为海龟并对这些交易员进行了一个趋势跟踪交易策略培训随后给予每个新人100万美元的初始资金经5年的运作大部分海龟的业绩非常惊人其中最好的业绩达到1.72亿美元N年后海龟交易法则公布于世我们才有幸看到曾名噪一时的海龟交易法则全貌画外音能够开发出领先时代的交易模型收益是多么诱人


海龟交易法则内容海龟交易法则的原版书籍可以猛戳 http://bigpicture.typepad.com/comments/files/turtlerules.pdf

这里先画个简单的思维导图表示下海龟交易法则的基本框架

下面一个个具体来说

市场
海龟们都是期货交易者海龟们只选择有一定交易量流动性高的市场这里我选择日指数数据CSI300.INDX一方面是为了更好与基准比较另一方面也是因为该标的可以不用担心流动性的问题

头寸规模
头寸规模是海龟交易系统最重要的部分之一头寸规模是海龟交易系统最重要的部分之一头寸规模是海龟交易系统最重要的部分之一

海龟交易法则根据一个市场的绝对波动幅度来调整头寸规模也就是将头寸的绝对波动幅度进行了标准化比如投资标的的价值波动性较强时可以减少持有量相反当它的价值波动性较弱时候可以增加持有量总而言之市场的波动性与头寸规模可以相互抵消

海龟用一个被称为N的概念来表示某个市场根本的波动性它表示单个交易日某个特定市场所造成的价格波动的平均范围它同时也涵盖了开盘价的缺口其实这个所谓的N就是我们平常所熟悉的ATR关于ATR的介绍可以戳AVERAGE TRUE RANGE(http://www.metastock.com/Customer/Resources/TAAZ/Default.aspx?p=35)


以下为计算公式
TR=Max(H-L,H-PDC,PDC-L)
其中
      TR=真实波幅
      H=当日最高价
      L=当日最低价
      PDC=前一日收盘价

N(即ATR)的计算公式如下(其实就是前面计算所得TR的20日移动平均)
N=(19*PDN+TR)/20
其中
      PDN=前一日N值
      TR=当日的真实波动幅度

有了N之后下一步可以计算绝对波动幅度也就是用根本的市场价格波动性用N值定义表示的价值量波动性
绝对波动幅度=N*合约每一点所代表的价值
最后海龟按照我们所称的单位Units建立头寸使1N代表帐户净值的1%波幅调整后的头寸单位为
头寸规模单位=账户的1%/市场的绝对波动幅度


可以看出使用N作为市场波动标准化的度量并以此作为开仓量及持仓量的依据其背后的资金管理含义是即便当日投资标的跌幅达到N(ATR)的水平当日的损失都能控制在1%的总资产水平内即便当日投资标的跌幅达到N(ATR)的水平当日的损失都能控制在1%的总资产水平内 即便当日投资标的跌幅达到N(ATR)的水平当日的损失都能控制在1%的总资产水平内

以书中给的参考为例
2003年3月份民用燃料油合约
日期 | 最高价 | 最低价| 收盘价| 真实波幅| N值
-------- | ---
2002/12/2| 0.7375| 0.7227| 0.7359| 0.0148| 0.0134
2002/12/3|0.7447| 0.7310| 0.7389| 0.0137| 0.0134
2002/12/4 |0.7420|0.7140| 0.7162| 0.0280| 0.0141
-------- | ---

根据12月4日的N值0.0141计算头寸规模如下
N=0.0141
账户规模=1000000美元
每一点的价值=42000美元
头寸单位规模=0.011000000/0.014142000=16.88
舍去小数得16份合约

另外海龟被限制在任何时间持仓的单位(Units)数目在证券市场这种单一市场中最多持仓的单位数设为4个单位且海龟一般每周一计算一次N用于更新单位(Units)大小

入市
海龟的入市规则有两个系统我们可以根据自己的意愿决定将净值配置在何种系统上
系统一以20日突破为基础的偏短线系统
      突破定义为超过前20日的最高价或者最低价
      海龟总是在日间突破发生时进行交易而不会等到收盘或次日开盘
系统二以55日突破为基础的较简单的长线系统
      只要有一个信号显示价格超过了前55日的最高价和最低价就建立头寸

由于我的回测周期较长我选择了系统二即以55日突破为基础的较简单的长线系统

追踪
海龟交易系统不是一有突破信号就全仓介入而是根据最新市场价格变化进行逐步建仓
海龟在价格突破时只建立一个单位的头寸在建立头寸后根据前面指令的实际成交价为基础以每突破0.5N的间隔进行加仓

例如
      黄金N=2.5
      55日突破=310
      增加的第一个单位310.00
      第二个单位310.00+1/2个2.5即311.25
      第三个单位311.25+1/2个2.5即312.50
      第四个单位312.50+1/2个2.5即313.75
海龟被告知在接受入市信号时要非常连续因为一年中的大部分利润可能仅仅来自两三次大赢利

止损
对大多数人来说始终抱着亏损的交易终究会反转的愿望比干脆退出亏损头寸并承认交易失败要容易得多长期看不会止损的交易是不会成功的在你建立头寸之前你需要预先确定退出的点位如果市场波动触及你的价位你就必须每一次毫无例外的退出在这一立场上摇摆不定最终会导致灾难(画外音前段时间大家应该体会比较深刻吧)

止损标准
海龟以头寸风险为基础设置止损任何一笔交易不能出现2%以上的风险因为价格波动1N表示1%的账户净值容许风险为2%的最大止损就是价格波动2N为了保证全部头寸的风险最小如果另外增加了单位前面单位的止损需提高0.5N
例如
      原油N=1.255 日突破=28.30
      第一单位 28.30 25.90


离市

艰难的离市
对于大多数交易员海龟离市规则是系统法则中唯一最难的部分等待10或20新低出现通常意味着眼睁睁瞅着20%40%甚至100%的利润化为泡影
海龟交易法则对于系统一系统二有着不同的离市标准

系统一离市对于多头头寸为10日最低价对于空头头寸为10日最高价如果价格波动于头寸背离至10日突破头寸中所有单位都会退出


系统二离市对于多头头寸为20日最低价对于空头头寸为20日最高价如果价格波动与头寸背离至20日突破头寸中所有单位都会退出


海龟入市时一般不会设置离市止损价但会在日间盯着价格一旦价格穿过离市突破价就开始打电话下离市指令


规则告一段落
以上就是海龟交易系统的全套法则内容法则的每一部分及各部分的关联构成了一个交易系统下面我们一步步实现......

不考虑N仅根据突破信号构建的策略- 源码https://www.ricequant.com/community/topic/62
回测结果






夏普比率0.346比之前的MACD结果差些回撤表现也不好这个策略中只是粗暴地将每次买入卖出的量控制在初始资金的1/10当突破55日高点买入一份最新价跌破20日最低价卖出一份反正都是追涨杀跌大同小异

接下来我把上面策略其他部分保持不变仅引入头寸规模中N的概念来计算每次交易的单位(而不是仅简单以本金1/10来控制)看看会有什么效果



引入N根据突破信号构建的策略
- 源码同上link
回测结果


回测收益 453.756%
回测年化17.218%
收益基准收益 205.066%
Sharpe 0.7499
最大回撤 32.33%

夏普比率总算有大点儿提升了与之前没有引入N的策略相比表现有了很大提高最大回撤也由48降低到32这说明海龟体系中引入的N即根据过去价格波动幅度而调节开平仓的单位是经受得住数据考验的

海龟策略完全体系构建
最后的最后放上海龟体系的完全版Code里面包含了上一节中提到的所有环节注意本海龟策略是基于体系二的感兴趣的朋友可以尝试构建体系一
源码放送 https://www.ricequant.com/community/topic/180 
这个完全版是用Python写的以上的都是用Java写的
没用到python的一些黑法术的情况下java代码190行python代码120行
回测结果


回测收益287.019%
回测年化收益 13.384%
基准收益  205.066%
Sharpe 0.6562
最大回撤 23.54%

opps吐血虽然代码蛮长运行还是挺快哒终于搞定完整版的策略包括了按照海龟中的进场追踪止损离场所有细节然而并没有什么卵用结果没有想象那么漂亮不过继续在之前的基础上把最大回撤降低到22我想这还是因为止损大法好的原因宽慰一点点

多少自己还是体会到一个交易系统雏形构建的方方面面我这么对自己说成功完成了一次心理按摩

最后欢迎小伙伴就代码进行深度交流

引伸 
本身海龟策略是基于期货的与证券市场有一定的差异另外本来海龟应用于期货做空成本低而A股做空融券成本较高Cry这时刻还能融到券吗所以上面的都没有涉及到做空另外毕竟是上世纪的老策略效果也只能听天由命了不过新手学习瞻仰体会实现下收获还是很有我们尝试理解其内在逻辑结构框架以及体系各部分的相互制约是价值所在

海龟策略基于ATR的止损规则是有一定借鉴意义的感觉比僵硬设置止损线科学一些有兴趣可以专门控制变量进行下对比是骡子是马就清楚了馓

https://www.ricequant.com/community/topic/62
https://www.ricequant.com/community/topic/180 Python完全版


作者:Ricequant量化
链接:https://xueqiu.com/7381621247/65897287
来源:雪球
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
海龟交易法则读后感
海龟股票交易入局出局原则
一文读懂海龟交易法则 交易中,实现稳定盈利的前提是形成适合自己的交易系统,这里将柯蒂斯《海龟交易法则...
海龟交易法则
期指交易中CPPI和海龟交易法则的资金管理方法比较
原版海龟交易法则
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服