价格突破通道策略(TB版)_第1页
价格突破通道策略(TB版)_第2页
价格突破通道策略(TB版)_第3页
价格突破通道策略(TB版)_第4页
价格突破通道策略(TB版)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

价格突破通道策略(TB版)该策略主要基于价格通道的突破以及动态跟踪止损来制定交易决策,其核心交易思路可概括为以下几点:1.**价格通道构建**:首先,策略计算了一定周期长度内的平均真实波动范围(ATR),并以此为基础构建通道上下轨。上轨为N周期前高点的均线,下轨为N周期前低点的均线,同时计算中轨作为参考。2.**入场条件**:-**多头入场**:当上一根K线的中点(MedianPrice)位于前一根K线的最高点之上,且当前K线振幅大于前一根,表明强势突破,若此时收盘价高于N周期前高点的均线加上一个特定倍数的ATR,且存在成交量支持,则开仓买入。-**空头入场**:与多头入场类似,但条件相反,即当上一根K线中点低于前一根K线低点,且当前K线收盘价低于N周期前低点的均线减去特定倍数的ATR,同时伴随成交量,开仓卖出做空。3.**动态止损**:-入场后,策略采用动态止损机制。最初几根K线内,止损设在中轨附近;之后,止损线会根据行情变化动态调整,使用一种类似抛物线止损的方法,随着盈利增加,止损线逐渐收紧,但若价格回调,止损线的收紧速度也会加快。4.**出场条件**:-对于多头仓位,当价格跌破动态跟踪的止损价时,策略执行平仓操作。-对于空头仓位,当价格升破动态跟踪的止损价时,策略执行平仓买入操作。5.**盈利跟踪与加速机制**:-在持有多头或空头仓位时,策略会跟踪盈利的最高点(HighValue)或最低点(LowValue),并根据这些点位动态调整止损水平。当盈利继续扩大时,止损点位的调整会更加激进(加速因子AF会逐步增加),以保护更多的盈利。综上,该策略通过识别价格突破通道的信号来决定入场,并利用动态跟踪止损来管理风险和锁定利润,特别强调了在趋势延续过程中的盈利保护与适时退出机制。做多代码ParamsNumericLength(10);NumericTrigger(0.79);NumericAcceleration(0.05);NumericFirstBarMultp(5);VarsNumericSeriesATR;NumericSeriesStopPrice;NumericSeriesHighValue;NumericSeriesAF;BoolSeriesCondition1(False);NumericStopATR;BeginIf(!CallAuctionFilter())Return;ATR=AvgTrueRange(Length);Condition1=High>Highest(High[1],Length);If(Condition1[1]){If(High>=Close[1]+ATR[1]*TriggerAndVol>0){Buy(0,Max(Open,Close[1]+ATR[1]*Trigger));}}StopATR=Average(TrueRange,3);If(MarketPosition==1AndBarsSinceEntry==0){StopPrice=Low-StopATR*FirstBarMultp;AF=Acceleration;HighValue=High;}ElseIf(MarketPosition==1AndBarsSinceEntry>0){If(High>HighValue)HighValue=High;If(HighValue>HighValue[1]AndAF<0.2){AF=AF+Min(Acceleration,0.2-AF);}StopPrice=StopPrice+AF*(HighValue-StopPrice);}PlotNumeric("StopPrice",StopPrice);If(MarketPosition==1AndBarsSinceEntry>0AndLow<=StopPrice[1]AndVol>0){Sell(0,Min(Open,StopPrice[1]));}End做多代码解读:ParamsNumericLength(10);//声明数值参数Length,初值10,用于计算ATR和新高价的Bar数。//NumericTrigger(0.79);//声明数值参数Trigger,初值0.79,用于计算多头进场价的驱动系数。//NumericAcceleration(0.05);//声明数值参数Acceleration,初值0.05,抛物线的加速系数。//NumericFirstBarMultp(5);//声明数值参数FirstBarMultp,初值5,用于计算在进场Bar设置止损价的系数。//VarsNumericSeriesATR;//声明数值序列变量ATR。//NumericSeriesStopPrice;//声明序列变量StopPrice,即跟踪止损价。//NumericSeriesHighValue;//声明数值序列变量HighValue,即多头进场之后的盈利峰值价。//NumericSeriesAF;//声明数值序列变量AF。//BoolSeriesCondition1(False);//声明布尔型序列变量Condition1,初值为假。//NumericStopATR;//声明数值变量StopATR。//BeginIf(!CallAuctionFilter())Return;//集合竞价和小节休息过滤。////初始设置。//ATR=AvgTrueRange(Length);//变量ATR的求法,就是之前解读的抛物线了。//Condition1=High>Highest(High[1],Length);//先求Highest(High[1],Length)值,再与当前High比较,判断当前最高价大于成立的,则把值赋值给布尔型变量Condition1值。////上一根Bar创新高后且当前Bar最高价突破上一根Bar收盘价加上ATR的一定倍数多头入场。//If(Condition1[1])//假如前一个布尔型序列变量Condition1[1]为真。//{If(High>=Close[1]+ATR[1]*TriggerAndVol>0)//假如当前最高价>=前一收盘价Close[1]+前一ATR[1]*0.79,并且成交量Vol>0.//{Buy(0,Max(Open,Close[1]+ATR[1]*Trigger));//开仓买入了。//}}//记录盈利峰值价和跟踪止损价。//StopATR=Average(TrueRange,3);//函数TrueRange,求真实波动值了。函数Average,求平均值。这些都是前面解读过的,都是把相应数值代回去求值就行。//If(MarketPosition==1AndBarsSinceEntry==0)//假如持有多单,并且建仓位等于0.//{StopPrice=Low-StopATR*FirstBarMultp;//止损价StopPrice=最低价Low-变量StopATR*5.//AF=Acceleration;//代入值,即AF=0.05//HighValue=High;//序列变量HighValue=当前最高价High。//}ElseIf(MarketPosition==1AndBarsSinceEntry>0)//假如持有多单,并且建仓位大于0.//{If(High>HighValue)HighValue=High;//假如当前最高价大于变量HighValue值,则变量HighValue=当前High值。//If(HighValue>HighValue[1]AndAF<0.2)//假如当前变量HighValue值大于前一个HighValue[1]值的,并且AF<0.2//{AF=AF+Min(Acceleration,0.2-AF);//代入相应值了,依据起始建仓位AF=Acceleration=0.05,这代码意思先求括号里的最小值,再加上AF值,最后再赋值给系数AF了。//}StopPrice=StopPrice+AF*(HighValue-StopPrice);//这个StopPrice也是依据起始建仓位算得的值,这里也就是把相应值给代进去算了。//}PlotNumeric("StopPrice",StopPrice);//画出跟踪止损价。////向下突破跟踪止损价多头出场。//If(MarketPosition==1AndBarsSinceEntry>0AndLow<=StopPrice[1]AndVol>0)//假如持有多单,并且建仓位大于0,并且最低价小于等于前一个止损价StopPrice值,并且成交量大于0.//{Sell(0,Min(Open,StopPrice[1]));//卖出平仓。//}End策略说明:1.计算价格通道2.收盘价加上ATR的一定倍数作为进场价入场条件:1.上一根Bar创新高2.当前Bar最高价突破上一根Bar收盘价加上ATR的一定倍数出场条件:1.记录多头进场后的跟踪止损价2.价格向下突破跟踪止损价多头出场做空代码ParamsNumericLength(10);NumericTrigger(0.5);NumericAcceleration(0.06);NumericFirstBarMultp(2);VarsNumericSeriesATR;NumericSeriesStopPrice;NumericSeriesLowValue;NumericSeriesAF;BoolSeriesCondition2(False);NumericStopATR;BeginIf(!CallAuctionFilter())Return;ATR=AvgTrueRange(Length);Condition2=Low<Lowest(Low[1],Length);If(Condition2[1]){If(Low<=Close[1]-ATR[1]*TriggerAndVol>0){SellShort(0,Min(Open,Close[1]-ATR[1]*Trigger));}}StopATR=Average(TrueRange,3);If(MarketPosition==-1AndBarsSinceEntry==0){StopPrice=High+StopATR*FirstBarMultp;AF=Acceleration;LowValue=Low;}ElseIf(MarketPosition==-1AndBarsSinceEntry>0){If(Low<LowValue)LowValue=Low;If(LowValue<LowValue[1]AndAF<0.2){AF=AF+Min(Acceleration,0.2-AF);}StopPrice=StopPrice-AF*(StopPrice-LowValue);}PlotNumeric("StopPrice",StopPrice);If(MarketPosition==-1AndBarsSinceEntry>0AndHigh>=StopPrice[1]AndVol>0){BuyToCover(0,Max(Open,StopPrice[1]));}End做空代码解读Params//定义数值型参数Length并初始化为10,用于计算ATR和判断新低价的Bar数NumericLength(10);//定义数值型参数Trigger并初始化为0.5,用于计算空头进场价的驱动系数NumericTrigger(0.5);//定义数值型参数Acceleration并初始化为0.06,抛物线的加速系数NumericAcceleration(0.06);//定义数值型参数FirstBarMultp并初始化为2,用于计算在进场Bar设置止损价的系数NumericFirstBarMultp(2);Vars//声明数值序列变量ATR,用于存储平均真实波动范围值NumericSeriesATR;//声明数值序列变量StopPrice,用于存储跟踪止损价NumericSeriesStopPrice;//声明数值序列变量LowValue,用于存储空头进场之后的盈利低谷价NumericSeriesLowValue;//声明数值序列变量AFNumericSeriesAF;//声明布尔型序列变量Condition2并初始化为FalseBoolSeriesCondition2(False);//声明数值变量StopATRNumericStopATR;Begin//如果不满足集合竞价过滤条件,则返回If(!CallAuctionFilter())Return;//计算平均真实波动范围(ATR),使用指定的Length参数ATR=AvgTrueRange(Length);//判断当前最低价是否小于过去Length个周期中的最低价,结果存储在Condition2中Condition2=Low<Lowest(Low[1],Length);//如果前一周期的Condition2为真If(Condition2[1]){//如果当前最低价小于等于前一收盘价减去ATR乘以Trigger且成交量大于0If(Low<=Close[1]-ATR[1]*TriggerAndVol>0){//以最小的开盘价或前一收盘价减去ATR乘以Trigger的值进行卖空操作SellShort(0,Min(Open,Close[1]-ATR[1]*Trigger));}}//计算真实波动范围的平均值,并存储在StopATR中StopATR=Average(TrueRange,3);//如果当前仓位为空头且建仓周期为0If(MarketPosition==-1AndBarsSinceEntry==0){//计算止损价为最高价加上StopATR乘以FirstBarMultpStopPrice=High+StopATR*FirstBarMultp;//将Acceleration的值赋给AFAF=Acceleration;//将当前最低价赋给LowVa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论