大伊人青草狠狠久久-大伊香蕉精品视频在线-大伊香蕉精品一区视频在线-大伊香蕉在线精品不卡视频-大伊香蕉在线精品视频75-大伊香蕉在线精品视频人碰人

您現(xiàn)在的位置:程序化交易>> 期貨公式>> 交易開拓者(TB)>> 開拓者公式>>正文內容

RangeBreak系統(tǒng)交易模型[開拓者公式]

標簽:公式 交易 開拓者 期貨 RangeBreak系統(tǒng) 交易模型 交易系統(tǒng)

 

這是個日內交易系統(tǒng),收盤一定平倉;
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

 


必須考慮的特殊情況

如果前一日漲停或跌停,則會出現(xiàn)范圍很小。
解決方案:
設定一個范圍的最小值,假定為當前價格的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、虧損固定點數(shù)。
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);  
 }
}

 

入場時間的考慮


突破的時效性,發(fā)生在上午和下午意義是不同的。
不同的商品時效屬性不盡相同
為此我們增加最后交易時間參數(shù),可供優(yōu)化測試來確定最佳值。


實現(xiàn)代碼


增加參數(shù):
Numeric LastTradeMins(14.00);
開倉條件處增加一個時間條件。
If(MarketPosition!=1 && High>=UpperBand && Time < LastTradeMins/100)
{
// 多頭開倉
}

If(MarketPosition!=-1 && Low<=LowerBand && Time < LastTradeMins/100)
{
// 空頭開倉
}

 

止贏規(guī)則

為了防止較大的盈利被吞噬,增加跟蹤止贏。
設定跟蹤止贏的起始點。
設定跟蹤止贏的回撤值。
或者可以選擇百分比跟蹤止贏。
這里我們采取回撤值。

跟蹤止損的編碼可配合前面的止損編碼一起控制。
If(HigherAfterEntry>=AvgEntryPrice+DayOpen*TrailingStart*0.01)
{
 StopLine = HigherAfterEntry - DayOpen*TrailingStop*0.01;
}Else // 止損
{
 StopLine = AvgEntryPrice-DayOpen*StopLossSet*0.01;
}
  
If(Low <= StopLine)
{
 MyPrice = StopLine;
 If(Open < MyPrice) MyPrice = Open;
 Sell(1,MyPrice);   
}
做空的代碼類似。

 


再進場原則


當我們止損或跟蹤止損之后,有兩種情況我們需要加以控制:
止損后,再次突破上軌或下軌;
追蹤止贏后,價格仍符合最初的開倉條件,出場后,馬上又會開倉入場。
同時,為了不錯失大的波段,我們也需要再次入場,只是進場需要更高的條件。我們增加一條:
再次進場必須在突破前期的高點\低點。


代碼的修改

我們需要標記止損動作,并要記錄高低位。
新建兩個布爾型序列變量: 
BoolSeries  bLongStoped;
BoolSeries  bShortStoped;
在腳本開始位置增加處理,保證其值向后傳遞。
增加HigherAfterEntry和LowerAfterEntry在平倉后的值傳遞。

 


初次進場和再次進場

在原始開倉位置增加條件,開多倉時bLongStoped不能為True,開空倉時bShortStoped不能為True。
發(fā)出交易指令處理這兩個序列變量。
增加再次入場的代碼:

If(bLongStoped && MarketPosition==0 && High >=UpperBand && High > HigherAfterEntry && Time < LastTradeMins/100)
{
 MyPrice = Max(HigherAfterEntry,UpperBand) + MinPoint;
 If(Open > MyPrice) MyPrice = Open;
 Buy(1,MyPrice);
 bLongStoped = False;
 Return;
}

 

// 做空再次入場代碼:
If(bShortStoped && MarketPosition==0 && Low<=LowerBand  && Low < LowerAfterEntry && Time < LastTradeMins/100 && bInBoardRange==false)
{
 MyPrice = Min(LowerAfterEntry,LowerBand) - MinPoint;
 If(Open < MyPrice) MyPrice = Open;
 SellShort(1,MyPrice);
 bShortStoped = False;
 Return;
}


漲跌停的控制

接近漲跌停板不應開倉。
若有持倉,價格到達漲跌停板馬上平倉。


判斷是否接近漲跌停

我們新建一個布爾變量bInBoardRange,默認值設置為False。
bInBoardRange =
(Open < Q_LowerLimit + DayOpen*StopLossSet*0.02) Or
( Open > Q_UpperLimit - DayOpen*StopLossSet*0.02);

在開倉條件中加入(bInBoardRange==false)


漲跌停板平倉

為了在價格達到漲跌停價馬上平倉,我們需要在增加如下代碼:
做多時:
If(Open == Q_UpperLimit)  Sell(1,Open);
做空時:
If(Open == Q_LowerLimit)  BuyToCover(Lots,Open);

 

交易次數(shù)控制

增加失敗次數(shù)限制,防止單日虧損無限制擴大。

增加二個變量記錄失敗的次數(shù)。
 NumericSeries LongFailureCnts;
 NumericSeries ShortFailureCnts;
增加一個參數(shù)設置最大次數(shù)。
 Numeric FailureLimit(2);

 

實現(xiàn)代碼

在腳本開始部分增加序列變量值的向后傳遞處理。
在平倉時增加是否虧損的判斷,如果虧損則將計數(shù)+1.
 If(PositionProfit < 0 ) LongFailureCnts = LongFailureCnts + 1;
在開倉時增加次數(shù)限定。
   LongFailureCnts < FailureLimit

 

 

 

 

如果以上指標公式不適用于您常用的行情軟件

或者您想改編成選股公式,以便快速選出某種形態(tài)個股的話,

可以聯(lián)系我們相關技術人員 QQ: 262069696  點擊在線交流進行 有償 改編!

 


【字體: 】【打印文章】【查看評論

相關文章

    沒有相關內容
  主站蜘蛛池模板: 凹凸精品视频分类国产品免费 | 99久久影视 | 加勒比亚洲精品久久久久久久久久 | 欧美激情久久久久久久久 | 亚洲午夜一级毛片 | 精品一区二区三区四区乱码90 | 一区二区三区四区五区 | 一级欧美毛片成人 | 精品视频在线免费看 | 中文字幕天堂久久精品 | 国产成人99精品免费视频麻豆 | 福利视频午夜 | 久久精品免看国产 | 亚洲日本一区二区三区高清在线 | 国产成人精品免费久久久久 | 91视频国产一区 | 免费看片aⅴ免费大片 | 久久影视在线观看 | 青青久| 91在线网址| 久久综合九色综合97_ 久久久 | 亚洲欧美日韩中文字幕在线一区 | 视频在线a | 国产精品久久久久久久牛牛 | 久久久久久久久国产 | 天天干夜夜艹 | 一级肉体毛片视频免费看看 | 国产伦理久久精品久久久久 | 四虎网站在线 | 国产精品麻豆久久久 | 特级aav毛片日本免费视频 | 日韩一区二区三区在线免费观看 | 国产一级持黄大片99久久 | 久久成| 四虎精品永久在线网址 | 九色视频极品论坛区 | 欧美一级永久免费毛片在线 | 成年人国产视频 | 91国在线视频 | 色激情综合网 | 日韩 欧美 亚洲 国产 |