最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

量化经典 RangeBreak交易系统模型源代码一

来源:动视网 责编:小OO 时间:2025-10-02 10:45:42
文档

量化经典 RangeBreak交易系统模型源代码一

RangeBreak系统交易模型源代码--开拓者版本  RangeBreak系统交易模型是著名的交易系统,这里把他解析出来,供大家参考学习之用,这是个日内交易系统,收盘一定平仓; RangeBreak基于昨日振幅和今日开盘价的关系。 昨日振幅=昨日最高价-昨日最低价 上轨=今日开盘价+N*昨日振幅 下轨=今日开盘价-N*昨日振幅 当价格突破上轨,买入开仓。 当价格跌穿下轨,卖出开仓。 RangeBreak指标 Params NumericPercentOfRange(0.3); Vars Nu
推荐度:
导读RangeBreak系统交易模型源代码--开拓者版本  RangeBreak系统交易模型是著名的交易系统,这里把他解析出来,供大家参考学习之用,这是个日内交易系统,收盘一定平仓; RangeBreak基于昨日振幅和今日开盘价的关系。 昨日振幅=昨日最高价-昨日最低价 上轨=今日开盘价+N*昨日振幅 下轨=今日开盘价-N*昨日振幅 当价格突破上轨,买入开仓。 当价格跌穿下轨,卖出开仓。 RangeBreak指标 Params NumericPercentOfRange(0.3); Vars Nu
RangeBreak系统交易模型源代码--开拓者版本  

RangeBreak系统交易模型是著名的交易系统,这里把他解析出来,供大家参考学习之用,这是个日内交易系统,收盘一定平仓;

 RangeBreak基于昨日振幅和今日开盘价的关系。

 昨日振幅=昨日最高价-昨日最低价

 上轨 = 今日开盘价+N*昨日振幅

 下轨 = 今日开盘价-N*昨日振幅

 当价格突破上轨,买入开仓。

 当价格跌穿下轨,卖出开仓。

 

RangeBreak指标

 

Params

  Numeric PercentOfRange(0.3);

 Vars

  Numeric DayOpen;

  Numeric preDayRange;

  Numeric UpperBand;

  Numeric LowerBand;

 Begin

  DayOpen = OpenD(0);

  preDayRange = HighD(1) -  LowD(1);

  UpperBand = DayOpen + preDayRange*PercentOfRange;

  LowerBand = DayOpen - preDayRange*PercentOfRange;

 

 PlotNumeric("UpperBand",UpperBand);

  PlotNumeric("LowerBand",LowerBand);

  PlotNumeric("MidLine",DayOpen);

 End

 

 

 

RBS_V1

 

Params

  Numeric PercentOfRange(0.3);

  Numeric ExitOnCloseMins(14.59);

 Vars

  Numeric DayOpen;

  Numeric preDayRange;

  Numeric UpperBand;

  Numeric LowerBand;

  Numeric MyPrice;

 Begin

  DayOpen = OpenD(0);

  preDayRange = HighD(1) -  LowD(1);

  UpperBand = DayOpen + preDayRange*PercentOfRange;

  LowerBand = DayOpen - preDayRange*PercentOfRange;

  If(MarketPosition!=1 && High>=UpperBand)

    {

   MyPrice = UpperBand;

   If(Open > MyPrice) MyPrice = Open;

   Buy(1,MyPrice);

   Return;

  }

 

 

 

If(MarketPosition!=-1 && Low<=LowerBand)

  {

   MyPrice = LowerBand;

   If(Open < MyPrice) MyPrice = Open;

   SellShort(1,MyPrice);

   Return;

  }

 

 // 收盘平仓

  If(Time >=ExitOnCloseMins/100)

  {

   Sell(1,Open);

   BuyToCover(1,Open);

  }

  SetExitOnClose;

 End

 

 

 

必须考虑的特殊情况

 

如果前一日涨停或跌停,则会出现范围很小。

 解决方案:

 设定一个范围的最小值,假定为当前价格的0.2%。

 

 

 

代码中的改动

 

Params

     Numeric MinRange(0.2);

 Vars

     NumericSeries DayOpen;

     Numeric preDayHigh;

     Numeric preDayLow;  

     NumericSeries preDayRange;

 Begin

     preDayHigh = HighD(1);

     preDayLow = LowD(1);

     If(Date!=Date[1])

     {

         DayOpen = Open;

         preDayRange = preDayHigh - preDayLow;

         If(preDayRange < Open*MinRange*0.01)

              preDayRange = Open*MinRange*0.01;

     }Else

     {

         DayOpen = DayOpen[1];

         preDayRange = preDayRange[1];

     }

 

增加止损

 

有可能通道会比较宽,难道非要等到反转才平仓?

 考虑增加止损设置,有2种方案:

 1、亏损固定点数。

 2、亏损当前价格的百分比。

 考虑到商品价格变化的差异,我们采取第二种方式。

 

止损部分代码

 

先增加一个变量StopLine,用来保存止损位置。

 下面是做多时的止损代码:

 If(MarketPosition==1)

 {

  StopLine = AvgEntryPrice-DayOpen*StopLossSet*0.01;

  If(Low <= StopLine)

  {

   MyPrice = StopLine;

   If(Open < MyPrice) MyPrice = Open;

   Sell(Lots,MyPrice);  

  }

 }

 

 

 

下面是做空的止损代码:

 

Else If(MarketPosition==-1)

 {

  StopLine = AvgEntryPrice+DayOpen*StopLossSet*0.01;

  If(High >= StopLine)

  {

   MyPrice = StopLine;

   If(Open > MyPrice) MyPrice = Open;

   BuyToCover(Lots,MyPrice); 

  }

 }

 

 

 

文档

量化经典 RangeBreak交易系统模型源代码一

RangeBreak系统交易模型源代码--开拓者版本  RangeBreak系统交易模型是著名的交易系统,这里把他解析出来,供大家参考学习之用,这是个日内交易系统,收盘一定平仓; RangeBreak基于昨日振幅和今日开盘价的关系。 昨日振幅=昨日最高价-昨日最低价 上轨=今日开盘价+N*昨日振幅 下轨=今日开盘价-N*昨日振幅 当价格突破上轨,买入开仓。 当价格跌穿下轨,卖出开仓。 RangeBreak指标 Params NumericPercentOfRange(0.3); Vars Nu
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top