什么是K线?

海龟简介

海龟交易法是著名的公开交易系统,1983年著名的商品投机家理查德. 丹尼斯在一个交易员培训班上推广而闻名于世,它涵盖了交易系统的各个方面。其法则覆盖了交易的各个方面,并且不给交易员留下一点主观想象决策的余地。它具备一个完整的交易系统的所有成分。

海龟交易策略,利用唐安奇通道跟踪趋势产生买卖信号,利用ATR(真实波幅均值)分批加仓或者减仓,并且动态进行止盈和止损

唐奇安通道

在趋势信号的扑捉上,海龟交易法则使用了一个非常重要的技术指标—唐奇安通道(Donchian channel)。这个通道很类似我们熟悉的布林通道(Bollinger Bands),只是在具体计算方式上有些不一样。

唐奇安通道指标是Richard Donchian发明的,由3条不同颜色的曲线组成,该指标用周期(一般都是20,有的平台系统设置时可以改变的,有的则设置的不可以)内的最高价和最低价来显示市场价格的波动性,当其通道窄时表示市场波动较小,反之通道宽则表示市场波动比较大。

当价格冲破该通道的上轨道时,就是可能的买入信号;反之,冲破下轨时就是可能的卖出信号。

唐奇安通道的各项指标的计算方法为:

上轨=Max(最高低,n)
下轨=Min(最低价,n)
中线=(上轨+下轨)/2#短周期 上下轨 区间
DonchianHi = HighestFC(High[1],boLength);
DonchianLo = LowestFC(Low[1],boLength);
#长周期 上下轨 区间
fsDonchianHi = HighestFC(High[1],fsLength);
fsDonchianLo = LowestFC(Low[1],fsLength);

头寸计算

什么是ATR?
ATR又称真实波动幅度均值,很明显是衡量市场波动性的一种指标

海龟策略根据账户资金情况结合ATR动态调节投入的保证金计算手数。(保证金就是可以实现一个带杠杆的买卖方式)
什么是期货保证金交易?

建仓手数=(1%∗账户总资金)/N 首次建仓的时候,当捕捉到趋势,即价格突破唐奇安上轨时,买入1个unit。其意义就是,让一个N值的波动 与总资金1%的波动对应,如果买入1unit单位的资产,当天震幅使得总资产的变化不超过1%。

这个模块非常经典,很多CTA策略都在借鉴使用;

AvgTR = XAverage(TrueRange,ATRLength);
N = AvgTR[1];
TotalEquity = Portfolio_CurrentCapital() + Portfolio_UsedMargin();
TurtleUnits = (TotalEquity*RiskRatio/100) /(N * ContractUnit()*BigPointValue());
TurtleUnits = IntPart(TurtleUnits); // 对小数取整

动态止损

海龟交易策略充分利用了ATR指标,2倍ATR做为波幅来动态调整止损位置:

# 多头持仓,当价格跌破开仓价-2*ATR止损出场
Low <= preEntryPrice - 2 * N
# 空头持仓,当价格突破开仓价+2*ATR止损离场
High >= preEntryPrice + 2 * N

移动出场

海龟策略用10日的高低点作为离场条件:

ExitLowestPrice = LowestFC(Low[1],teLength);
ExitHighestPrice = HighestFC(High[1],teLength);
#多头持仓,跌破10日低点清空全部仓位
Low < ExitLowestPrice
#空头持仓,突破10日高点清空全部仓位
High > ExitHighestPrice

加仓模块

加仓模块比较有意思,它是一个循环加仓的设定,当有底仓的时候最新价格高于(低于)进场价格的0.5倍ATR并且小于最大加仓次数,则加仓。

while(High >= preEntryPrice + 0.5*N && CurrentEntries < nEntries) // 以最高价为标准,判断能进行几次增仓
{myEntryPrice = preEntryPrice + 0.5 * N;preEntryPrice = myEntryPrice;if(False == Buy(TurtleUnits,myEntryPrice)){break;}SendOrderThisBar = True;
}

经典海龟模型总结

海龟交易作为经典策略,为交易者提供了完整的策略编写框架。在波动率放大的趋势中使用循环加仓模块可以带来非常爆炸的利润.
但是在波动率较窄的震荡市中可以把脸给你赔肿了。正所谓盈亏同源好坏参半,加仓模块的使用要非常谨慎,好不容易积累的利润因为加仓使得抗波动能力降低,稍有冲击利润回吐明显,最后可能亏损出场。
我认为海龟最大的一个问题就是利润回吐。除了加仓的问题,更多的是出场设计的比较鸡肋。移动止损和10日高低点极不适应市场,过于死板且并不理想。

改进思路

  • 开仓条件过于简单,如今市场的长期单边行情变少,更多的是量价在一定区间内类似均值回归,所以加入过滤模块;
  • 为了保住累计利润增加抗波动能力,屏蔽循环加仓;
  • 删除原有出场模块,使用动态出场替代;

过滤模块

海龟策略本身的参数较多,影响了普适性,模型出现过拟合可能性较高。为了不增加多余的优化参数,我们增加了一个的趋势模块过滤,本身都是通过HHV和LLV(N日最高最低)计算的,所以不用增加可变参数了。

condRHL=HL<>HL[1];If(condRHL){R_HL=HL[1];X=X+1;sumAG=sumAG+HL[1];If(X>2){HLAverage=sumAG/X;sumAG=0;X=0;}}

上面的是过滤模块的基础算法,在本这个模型中的使用方法

if(condRHLAverage)
{RHLAverage=HLAverage[1];
}
A_condD=HLAverage>RHLAverage and RHLAverage>0 and HLAverage>0;
A_condK=HLAverage<RHLAverage and RHLAverage>0 and HLAverage>0;

“宽窄”移动出场

我们知道,海龟的初始开仓分为短周期开仓和长周期开仓,这里我们默认只用短周期开仓,关于长周期的那个区间我们当作调节出场参数的滤波器来使用。

思路:长周期和短周期区间本身就是波动幅度变化的动态指标,持有仓位时如果价格在短区间内波动,使用默认出场参数。如>果突破了长周期,说明波动率开始放大了,这个时候我们开始调节收敛参数,保住利润。因为开仓条件简单,在趋势中即使止盈出场,也有很多机会再次加入趋势。有些模型在趋势中的交易次数太少,一旦踏空可能2,3个月没有信号。趋势拿的稳固然没错,但是交易信号太少,可操作性不大,波段循环操作更为合理一点。

策略源码
在极端的V型反转下也有不错的表现

一小段波段上使用收敛参数平仓,再开仓保证交易的稳定性

交易期货合约

回测净值资金曲线

策略评估指标

策略盈亏分布图

总结

  • 一个良好的交易系统一定是要有交易逻辑作为支撑
  • 单个交易系统不可能捕获所有行情,需要有取舍
  • 真实市场下一般需要对多品种交易,为了分散风险,需要选择相关性较弱的投资组合。
  • 投资有风险,入市需谨慎!

策略分享-基于海龟交易模型的优化 暂存相关推荐

  1. 天勤python_天勤量化策略库:海龟交易法则(难度:中级)

    什么是海龟交易法则 海龟交易法是著名的公开交易系统,其法则覆盖了交易的各个方面,并且不给交易员留下一点主观想象决策的余地.它是一套非常完整的趋势跟随型的自动化交易策略,具备一个完整的交易系统的所有成分 ...

  2. 【手把手教你】用backtrader量化回测海龟交易策略

    01 引言 海龟交易策略是比较经典的趋势交易系统之一,涵盖了从入场交易(品种选择).仓位管理(基于ATR加减仓).离场(触发条件)的整个过程.机械套用海龟交易法则在A股上进行交易可能效果不佳,但其交易 ...

  3. 交易模型的定义及理论基础

    反趋势为基础的交易模型 该类模型是根据设计者的数据统计,然后假定市场需要调整,并在相反方向建仓交易的系统.它与趋势交易模型的区别在于,趋势交易模型可以自动调整,而反趋势交易模型由于与主要趋势相反操作经 ...

  4. 基于动态径向基函数(DRBF)代理模型的优化策略

    基于动态径向基函数(DRBF)代理模型的优化策略 在工程计算中,我们经常遇到需要求解优化问题,尤其在现在十分有前景的机器学习领域,如何快速.高效的求解优化问题,成为机器学习算法是否高效.准确的必要条件 ...

  5. 通达信交易接口实现海龟交易法则核心策略分享

    今天说一下著名的海龟交易法则,验证下交易思路与方法,检验其在中国市场的表现和简单的策略代码分享 海龟的核心交易法则就是唐奇安趋势突破交易法,这个指标是在该标的20天内的最高价和最低价来显示市场价格的波 ...

  6. 基于语义嵌入模型与交易信息的智能合约自动分类系统

    摘要: 作为区块链技术的一个突破性扩展,智能合约允许用户在区块链上实现个性化的代码逻辑从而使得区块链技术更加的简单易用.在智能合约代码信息迅速增长的背景下,如何管理和组织海量智能合约代码变得更具挑战性 ...

  7. 【深入YoloV5(开源)】基于YoloV5的模型优化技术与使用OpenVINO推理实现

    [深入YoloV5(开源)]基于YoloV5的模型优化技术与使用OpenVINO推理实现 前言 CV调包侠自己的深度学习交流群中一位兄弟在看我以前的github和博客:https://blog.csd ...

  8. matlab 数值解 期权顶级啊,潮盈期权院高胜率交易技巧系列之二----期权交易策略及基于MATLAB统计套利介绍...

    主题: 高胜率交易技巧系列之二----期权交易策略及基于MATLAB统计套利介绍 会场流程: 13:30--14:00:参会嘉宾到场签名 14:00--14:45:期权知识 14:45--15:·25 ...

  9. SF25 | 日内交易策略开发(一)黄金日内交易模型

    致力于分享量化策略,培训视频,Python,算法研究等相关内容. 这一期SF策略我们来开发一个日内模型,交易品种为黄金: 手续费滑跳设定为实盘标准: 步骤一:波动率过滤 我们发现黄金在2019年以前的 ...

  10. 说说海龟交易法则的基本原理,如何实现海龟交易策略?

    原文地址:https://www.fmz.cn/digest-topic/8978 什么是海龟策略? 几乎所有的宽客(Quant)都听说过海龟交易策略,该策略以海龟交易法则为核心.海龟交易法则,起源于 ...

最新文章

  1. BCH独立日最好的礼物——Token发行已实现
  2. nginx 如何处理请求系列1-Nginx安装
  3. asp.net 页面之间跳转的几种方法及区别(转)
  4. python中sorted的用法append_Python中高阶函数sorted()用法
  5. 使用Settings Bundle为程序添加设置项
  6. desktop docker 无法卸载_Docker容器无法停止或移除-权限被拒绝错误
  7. Spring IOC之Bean初始化篇
  8. unity镜头边缘羽化_【JTRP】屏幕空间深度边缘光 Screen Space Depth Rimlight
  9. cube云原生机器学习平台-架构(四)
  10. ATM系统之问题描述与词汇表
  11. 锁屏界面提示某些设置已隐藏_OPPO手机忘记锁屏密码怎么办?教你一招轻松解开!...
  12. 万能声卡驱动win10_主流最新驱动程序下载地址分享 和垃圾驱动下载软件说再见...
  13. 晶体二极管 三极管 MOS原理
  14. Linux平台提取DSDT,关于DSDT修改-提取软件以及使用方法【详解】
  15. 计算当前日期,经过一段工作日后的日期(跳过节假日)
  16. 名词用作动词举例_英语中名词做动词用的55个例句
  17. 打破国外垄断 数字音频国家标准DRA颁布
  18. python-Excel多个表格合并
  19. Excel批量导出当前工作表所有图片的快捷操作
  20. wire和reg的区别

热门文章

  1. 自定义拍照时 拍照界面_女研究生劝父亲盖房时把围墙退后三尺,新房成网红,一天20人拍照...
  2. tp6多表联合查询的几种方式(模糊搜索+分页+字段限制)
  3. 图层重命名快捷键_Principle快捷键大全
  4. Windows备份文件夹脚本.bat
  5. 第十五周助教工作总结——NWNU李泓毅
  6. Mac下复制粘贴的快捷键是什么?随记
  7. python 猴子偷桃问题
  8. 请说明Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?
  9. Html5之canvas重叠矩形、getContext、fillStyle、fillRect
  10. 新物种IMO:踩在腾讯和阿里之间