策略分享

您所在的位置:网站首页 加仓的原理 策略分享

策略分享

2024-06-30 13:23| 来源: 网络整理| 查看: 265

什么是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 移动出场

海龟策略用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=HLHL[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=HLAverage0 and HLAverage>0;

img

“宽窄”移动出场

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

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

策略源码 在极端的V型反转下也有不错的表现 在这里插入图片描述 在一小段波段上使用收敛参数平仓,再开仓保证交易的稳定性 在这里插入图片描述 交易期货合约 image-20210420192919736 回测净值资金曲线 在这里插入图片描述 策略评估指标 在这里插入图片描述 策略盈亏分布图 在这里插入图片描述 image-20210420193248422

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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3