小呔 发表于 2014-11-23 09:21:49

关于oops交易系统,就是跳空回调后买入。 胜率挺高的,优化后能到60%以上,盈利能力也可以。就是交易次数有点少。就算在《完美的日内交易商2》书中给出的例子,82年4月到98年交易SP500也才177次。可以做为策略池中的一个。针对一日的缺口的代码:Params
        Numeric gapsize(2);    //缺口大小            
        Numeric breaksize(3);   //突破大小
        Numeric stoploss(10);   //止损
        Numeric takeprofit(20);   //止盈
Vars
    Bool isgap;
        Bool temp;
        Numeric enterprice;
        NumericSeries HighestAfterEntry(0);      
    NumericSeries LowestAfterEntry(0);
Begin
      isgap = OpenD(0)>HighD(1)+gapsize;   //高开
          temp = Low<HighD(1)-breaksize;         //跌破前日最高价
          enterprice = HighD(1)-breaksize-2;
          If(isgap And temp And MarketPosition==0)
          {
                  SellShort(1,enterprice);
                  LowestAfterEntry=Low;
          }           
      isgap = OpenD(0)<LowD(1)-gapsize;      //低开
          temp = High>LowD(1)+breaksize;         //涨破前日最低价
          enterprice = LowD(1)+breaksize+2;
      If(isgap And temp And MarketPosition==0)
          {
          Buy(1,enterprice);
                  HighestAfterEntry=High;
          }          
          /*止损止盈部分*/
          If (MarketPosition!=0 And BarsSinceEntry!=0)
          {
                  If(MarketPosition==-1)
              {
                  LowestAfterEntry = Min(LowestAfterEntry,Low);
                        If(High>EntryPrice And LowestAfterEntry>EntryPrice-takeprofit)
                        {
                           BuyToCover(1,EntryPrice-takeprofit);             //空单止盈
                           LowestAfterEntry=0;
                        } Else If(High>EntryPrice+stoploss)               //空单止损
                        {
                           BuyToCover(1,EntryPrice+stoploss);
                           LowestAfterEntry=0;
                        }
                  }                  
                  If(MarketPosition==1)
              {
                  HighestAfterEntry = Max(HighestAfterEntry,High);
            If(Low<EntryPrice And HighestAfterEntry>EntryPrice+takeprofit)
                        {
                           Sell(1,EntryPrice+takeprofit);                   //多单止盈
                           LowestAfterEntry=0;
                        } Else If(Low<EntryPrice-stoploss)
                        {
                          Sell(1,EntryPrice-stoploss);                  //多单止损
                                LowestAfterEntry=0;
                        }
                  }
                  If((Date[-1]!=InvalidInteger && Date!=Date[-1])||(Date[-1]==InvalidInteger && Date < CurrentDate))//当日平仓
          {
            Sell(1,Close);
                  BuyToCover(1,Close);
              }                  
        }
End


小呔 发表于 2014-11-23 09:22:27

开盘区间突破交易系统
    发现这个很好用啊,开始还挺鄙视这种交易系统,认为太简单了,看过 拉里.威廉斯的《短线交易秘诀》后感觉还挺好用的。比上一个好用多了。如果能够把日趋势考虑进去,做到日间的,收益率感觉还能上去。看的比较粗糙,分别用前一日开盘和收盘的差,以及最高和最低差表示波幅回测了下,发现用最高价最低价的差乘以0.25为区间效果不错。感觉以这个为基础可以实盘模拟啊。Params
   Numeric perc(0.1);
   Numeric stoploss(10);   //止损
   Numeric takeprofit(20);   //止盈
   
Vars
   Bool con1;    //开多条件
   Bool con2;    //开空条件
   Numeric enterprice;
   NumericSeries HighestAfterEntry(0);      
   NumericSeries LowestAfterEntry(0);
Begin
   con1 = high > OpenD(0) + perc*Abs(HighD(1)-LowD(1));    //先用开盘收盘表示前一日波幅
   con2 = Low< OpenD(0) - perc*Abs(HighD(1)-LowD(1));

   If(MarketPosition==0 And con1)
   {
       Buy(1,OpenD(0) + perc*Abs(OpenD(1)-CloseD(1)));
           HighestAfterEntry=High;
   }
   If(MarketPosition==0 And con2)
   {
       SellShort(1,OpenD(0) - perc*Abs(OpenD(1)-CloseD(1)));
           LowestAfterEntry=Low;
   }
   
   /*止损止盈部分*/
          If (MarketPosition!=0 And BarsSinceEntry!=0)
          {
                  If(MarketPosition==-1)
              {
                  LowestAfterEntry = Min(LowestAfterEntry,Low);
                        If(High>EntryPrice And LowestAfterEntry>EntryPrice-takeprofit)
                        {
                           BuyToCover(1,EntryPrice-takeprofit);             //空单止盈
                           LowestAfterEntry=0;
                        } Else If(High>EntryPrice+stoploss)               //空单止损
                        {
                           BuyToCover(1,EntryPrice+stoploss);
                           LowestAfterEntry=0;
                        }
                  }                  
                  If(MarketPosition==1)
              {
                  HighestAfterEntry = Max(HighestAfterEntry,High);
            If(Low<EntryPrice And HighestAfterEntry>EntryPrice+takeprofit)
                        {
                           Sell(1,EntryPrice+takeprofit);                   //多单止盈
                           LowestAfterEntry=0;
                        } Else If(Low<EntryPrice-stoploss)
                        {
                          Sell(1,EntryPrice-stoploss);                  //多单止损
                                LowestAfterEntry=0;
                        }
                  }
                  If((Date[-1]!=InvalidInteger && Date!=Date[-1])||(Date[-1]==InvalidInteger && Date < CurrentDate))//当日平仓
          {
            Sell(1,Close);
                  BuyToCover(1,Close);
              }
                }
EndPS:止损止盈从第一个粘贴过来的

小呔 发表于 2014-11-23 09:34:04

    《短线交易秘诀》里第八章中介绍的那个震荡系统和dual thrust系统个人感觉本质上是一样的吧,都是找多空的力量。只不过震荡系统用的是开盘价,dual thrust用的是收盘价,震荡系统用的是4日的均值,dual thrust用的是最值。应该都算开盘区间突破中的一种。不过二楼是通过前日波幅找这个区间,震荡系统和dual thrust是根据多空力量找这个区间。而《完美的日内交易商》中的30分钟突破发和《日内交易策略-谷物期货实战指南》则是通过开盘后的几根K线走出的高点和低点,并配合不同的确认条件来确定区间。

多空自动化 发表于 2014-11-23 10:54:21

学习啊   同行

纪律成就未来 发表于 2014-12-31 08:42:34

学习      

全不对 发表于 2014-12-31 17:34:24

回复就能涨积分吗
页: [1]
查看完整版本: