在投资界,海龟交易法颇受瞩目,此策略运用唐安奇通道和ATR等工具进行交易,其成效究竟如何?
策略起源
上世纪80年代,海龟交易策略诞生。交易大师丹尼斯与埃克哈特开展了一项实验,培训新手交易员几周后便让他们参与交易。这些新手被称为“海龟”。他们运用的策略便是海龟交易策略。在随后的市场操作中,海龟们表现优异,使得这一策略声名鹊起。
这不仅仅是一次勇敢的探索,更标志着量化交易领域新观念的诞生。许多人将其视为交易的至高境界,而有些人则认为它存在局限,但无论如何,它在交易的历史长河中留下了深刻的印记。
上轨=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);
唐奇安通道
唐奇安通道是由Richard Donchian所创,它由三条曲线组合而成。该通道通过20个周期(部分平台允许调整)的高低价来反映市场的波动情况。通道狭窄时,市场较为平静,交易量较小;而通道变宽时,市场则变得活跃,随之而来的机会和风险也相应增加。
当价格突破通道上限时,通常被视为买入良机。以股市为例,若某只股票在经历一段时间的波动后成功突破上限,便会吸引众多投资者参与,大家普遍认为这预示着股价将开始上涨。
AvgTR = XAverage(TrueRange,ATRLength);
N = AvgTR[1];
TotalEquity = Portfolio_CurrentCapital() + Portfolio_UsedMargin();
TurtleUnits = (TotalEquity*RiskRatio/100) /(N * ContractUnit()*BigPointValue());
TurtleUnits = IntPart(TurtleUnits); // 对小数取整
ATR 指标
ATR代表真实波动幅度的平均值,是评估市场波动的重要标准。海龟策略会根据账户的资金状况和ATR值来调整保证金,并据此确定开仓的手数。例如,对于拥有100万资金的账户,会根据ATR的动态变化来计算适合的入场手数。
# 多头持仓,当价格跌破开仓价-2*ATR止损出场
Low <= preEntryPrice - 2 * N
# 空头持仓,当价格突破开仓价+2*ATR止损离场
High >= preEntryPrice + 2 * N
设定N值波动与总资金1%的比例,若购买1单位资产,当天价格波动导致总资产变动不超过1%,这有助于有效降低风险,为投资者在市场的不确定性中提供保障。
ExitLowestPrice = LowestFC(Low[1],teLength);
ExitHighestPrice = HighestFC(High[1],teLength);
#多头持仓,跌破10日低点清空全部仓位
Low < ExitLowestPrice
#空头持仓,突破10日高点清空全部仓位
High > ExitHighestPrice
止损止盈
海龟策略通过将2倍ATR值作为依据,对止损点进行实时调整,相当于为投资设置了一个安全装置。在市场行情不利时,能迅速作出减仓决策,防止亏损加剧。同时,它还以10日内的最高点和最低点作为退出市场的标准。
while(High >= preEntryPrice + 0.5*N && CurrentEntries < nEntries) // 以最高价为标准,判断能进行几次增仓
{
myEntryPrice = preEntryPrice + 0.5 * N;
preEntryPrice = myEntryPrice;
if(False == Buy(TurtleUnits,myEntryPrice))
{
break;
}
SendOrderThisBar = True;
}
若股价连跌十天,便需依照规定退出。此举有助于投资者摆脱贪婪与恐惧,以理智的态度应对市场的起伏波动。
加仓模块
加仓模块与循环放大器相似。若持有底仓,且当前价格是入场价格的0.5倍以上(以下)ATR,并且加仓次数未达到上限,则进行加仓。在波动率增加的市场趋势,比如牛市中,这种策略能带来可观的利润,助力投资者实现收益的快速提升。
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=HLAverage0 and HLAverage>0;
策略优化
海龟策略的参数设置繁杂,这影响了其适用范围,同时增加了过拟合的风险。通常采用较短的周期进行开仓操作,而在较长的周期内,则需调整出场参数的滤波器。
在价格短期波动时,遵循预设的出场策略;若突破长期趋势,则调整收敛参数。在较短波段,利用收敛参数进行平仓和开仓操作,确保交易稳定,以防交易信号稀少而错失良机。