ADX差值系统策略(TS版).docx
ADX差值策略(TS版)
1.策略概述
ADX指标:用于显示当前趋势的强度,不指示趋势方向。
非趋势期:ADX低或下降时,市场处于横盘状态。
趋势期:ADX增加时,市场趋势强劲。
2.策略构建
Delta平均值:通过生成4条指数平均值来平滑ADX差值。
市场进入与退出:基于Delta平均线穿过零来确定市场进入和退出点。
3.交易规则
设置:
计算ADX值。
计算ADX差值。
计算ADX差值的4柱指数平均值。
做多:
如果ADX差值的指数平均值低于零或越过零,找到该范围的4根柱线平均值,将该平均值除以2,然后将结果值添加到当前柱线的收盘价。
使用结果值设置止损单。
做空:
同样,如果ADX差值的指数平均值低于零或越过零,则找到范围的4柱平均值,将该平均值除以2,然后从收盘价中减去结果值。
使用结果值设置止损单。
退出:
在多头头寸的入场柱上,我们在最后8根柱子的最低低点处发出多头头寸的退出订单。
在多头头寸中,一旦入场柱关闭,计算范围的4柱平均值,将平均值除以4,然后从当前柱的低点减去该值。这是柱线2多头退出价格。
当处于多头头寸时,对于柱2之后的所有柱,获得先前计算的退出价格,并将最低价与先前止损价之间的差值添加到它的三分之一。
在每个柱线的末尾重复此操作,提供所有后续柱线的退出价格。
在空头头寸的入场柱上,在最近8根柱线中最高的高点处发出空头头寸的离场指令。
当处于空头位置时,一旦入场柱关闭,计算范围的4柱平均值并将其除以4。
然后,将此值添加到当前柱的最高价。这是对柱2的空头退出价格。
在空头头寸中,对于第2根柱线之后的所有柱线,获得先前计算的退出价格,并从中减去前一个止损价与当前柱线最高价之间的差值的三分之一。
在每个柱线结束时重复此操作将提供第3柱线及以上的退出价格。
策略还设置了资金管理保护性止损,其金额取决于交易的股票/合约的数量和数量。
策略代码注解:
输入参数:
ADXLen:用于计算ADX的柱数。
AvgLen:用于计算ADX差值平均值的柱数。
CH:在ADX差值越过零后保持挂单活跃的柱数。
变量:
UpCh:上通道。
DnCh:下通道。
MP:市场头寸。
StopPrice:止损价格。
DeltaADX:ADX差值。
DeltaAvg:ADX差值的平均值。
LastOrderBar:最后一个订单的柱编号。
Input:
ADXLen(14),
AvgLen(4),
CH(8);
Vars:
UpCh(0),
DnCh(0),
MP(0),
StopPrice(0),
DeltaADX(0),
DeltaAvg(0),
LastOrderBar(0);
MP=MarketPosition;//获取当前市场头寸
Value1=ADX(ADXLen);//计算ADX值
DeltaADX=Value1-Value1[1];//计算ADX差值
DeltaAvg=WAverage(DeltaADX,AvgLen);//计算ADX差值的指数平均值
//检查入场条件并计算入场价格
If(DeltaAvg0orDeltaAvgcrossesover0)andBarNumber1thenBegin
UpCh=Close+Average(Range,4)/2;//计算上通道
DnCh=Close-Average(Range,4)/2;//计算下通道
LastOrderBar=BarNumber;//记录最后一个订单的柱编号
End;
IfMP0thenLastOrderBar=-999;//如果当前有持仓,将最后一个订单的柱编号设为-999
//下达买入和卖出订单以及初始的退出订单
IfBarNumberLastOrderBar+CHthenBegin
BuynextbaratUpChstop;//在上通道处买入
sellshortnextbaratDnChstop;//在下通道处卖出
IfMP1thensell(LEntryStop)nextbaratLowest(Low,6)stop;//多头头寸退出
IfMP-1thenbuytocover(SEntryStop)nextbaratHighest(High,6)stop;//空头头寸退出
End;
//计算多头头寸的止损价格