Announcement

Collapse
No announcement yet.

Opening range breakout -acd and supper combo

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Opening range breakout -acd and supper combo

    I am new to esignal system I used to trade with tradestation.
    Opening range break out are considered usually very sucessful.
    acd is one of them . Where a is the % of the opening range breakout c is the stoploss and d is the re-entry in opposite direction. Suppercombo runs aroud those ideas as well. I have the suppercombo system in Easy Language .
    Can some one help me with those systems.
    One of the problems are that there is a need to run optimization to find the "sweet spot " to enter the market. Can it be done with e-signal ?

  • #2
    You may want to try this search and see if any of these posts have what you are looking for.
    Regards,
    Jay F.
    Product Manager
    _____________________________________
    Have a suggestion to improve our products?
    Click Support --> Request a Feature in eSignal 11

    Comment


    • #3
      Jay
      Thanks
      My answer hasn't came out so I am posting again.
      rolling pivots are only very small part of ACD.
      What I am looking for is the day trading part.
      This is going like this :
      1. Opening range high and low for x time .
      2. Take the high for buying for example ( low -for selling is exactly the opposite) If the market is doing Opening range high+y buy.
      This is the A and it is calculated as % of ATR over 10 days.
      3. Stoploss is the low of the opening range.
      4 If there is breakout failure you came again in the opposite direction C.
      5. D is the stoploss of C.
      I have similar system which was developed (as an example)by Purrite in Easy Language which I can send.
      Can I be helped ?

      Thanks
      Doron

      Comment


      • #4
        It may help to post the ELA code here, either via zipped up attachment or just copy/paste the code. While I'm not familiar with translating ELA code, there are some here that can.
        Regards,
        Jay F.
        Product Manager
        _____________________________________
        Have a suggestion to improve our products?
        Click Support --> Request a Feature in eSignal 11

        Comment


        • #5
          The ELA of super combo.

          Inputs:waitPeriodMins(30),initTradesEndTime(1430), liqRevEndTime(1200),
          thrustPrcnt1(0.30),thrustPrcnt2(0.60),breakOutPrcn t(0.25),
          failedBreakOutPrcnt(0.25),protStopPrcnt1(0.25),pro tStopPrcnt2(0.15),
          protStopAmt(3.00),breakEvenPrcnt(0.50),avgRngLengt h(10),avgOCLength(10);

          Variables:averageRange(0),averageOCRange(0),canTra de(0),buyEasierDay(FALSE),
          sellEasierDay(FALSE),buyBOPoint(0),sellBOPoint(0), longBreakPt(0),
          shortBreakPt(0),longFBOPoint(0),shortFBOPoint(0),b arCount(0),
          intraHigh(0),intraLow(999999),buysToday(0),sellsTo day(0),
          currTrdType(0),longLiqPoint(0),shortLiqPoint(0),ye sterdayOCRRange(0),
          intraTradeHigh(0),intraTradeLow(999999);if(Date <> Date[1]) then {save time by doing these calculations once per day}
          begin
          averageRange = Average(Range,10) of Data2; {Data 2 points to daily bars}
          yesterdayOCRRange = AbsValue(Open of Data2-Close of Data2);
          averageOCRange = Average(AbsValue(Open of Data2-Close of Data2),10);
          print(date,time,yesterdayOCRRange,averageOCRange);
          canTrade = 0;
          if(yesterdayOCRRange< 0.80*averageOCRange) then canTrade = 1;
          buyEasierDay = FALSE;
          sellEasierDay = FALSE;

          if(Close of Data2 <= Close[1] of Data2) then buyEasierDay = TRUE;
          if(Close of Data2 > Close[1] of Data2) then sellEasierDay =TRUE;

          if(buyEasierDay) then
          begin
          buyBOPoint = Open of data1 + thrustPrcnt1*averageRange;
          sellBOPoint= Open of data1 - thrustPrcnt2*averageRange;
          end;
          if(sellEasierDay) then
          begin
          sellBOPoint= Open of data1 - thrustPrcnt1*averageRange;
          buyBOPoint = Open of data1 + thrustPrcnt2*averageRange;
          end;

          longBreakPt = High of Data2 + breakOutPrcnt*averageRange;
          shortBreakPt= Low of Data2 - breakOutPrcnt*averageRange;

          shortFBOPoint = High of Data2 - failedBreakOutPrcnt*averageRange;
          longFBOPoint= Low of Data2 + failedBreakOutPrcnt*averageRange;

          barCount = 0;
          intraHigh = 0;intraLow = 999999; {Didn't know you could do this}
          buysToday = 0;sellsToday = 0;{You can put multiple statements on one line}

          currTrdType = 0;
          end;
          if(High > intraHigh) then intraHigh = High;
          if(Low < intraLow ) then intraLow = Low;

          barCount = barCount + 1; {count the number of bars of intraday data}
          if(barCount >= waitPeriodMins/BarInterval and canTrade = 1) then {have we waited long enough}
          begin
          if(MarketPosition = 0) then
          begin
          intraTradeHigh = 0;
          intraTradeLow = 999999;
          end;

          if(MarketPosition = 1) then
          begin
          intraTradeHigh = MaxList(intraTradeHigh,High);
          buysToday = 1;
          end;
          if(MarketPosition =-1) then
          begin
          intraTradeLow = MinList(intraTradeLow,Low);
          sellsToday= 1;
          end;

          if(buysToday = 0 and Time < initTradesEndTime) then
          Buy("LBreakOut") next bar at buyBOPoint stop;
          if(sellsToday= 0 and Time < initTradesEndTime) then
          Sell("SBreakout") next bar at sellBOPoint stop;
          if(intraHigh > longBreakPt and sellsToday = 0 and Time < initTradesEndTime) then
          Sell("SfailedBO") next bar at shortFBOPoint stop;
          if(intraLow < shortBreakPt and buysToday = 0 and Time < initTradesEndTime) then
          Buy("BfailedBO") next bar at longFBOPoint stop;
          {The next module keeps track of positions and places protective stops}
          if(MarketPosition = 1) then
          begin
          longLiqPoint = EntryPrice-protStopPrcnt1*averageRange;
          longLiqPoint = MinList(longLiqPoint,EntryPrice - protStopAmt);
          if(MarketPosition(1) = -1 and BarsSinceEntry = 1 and
          High[1] >= shortLiqPoint and shortLiqPoint < shortFBOPoint) then
          currTrdType = -2; {we just got long from a short liq reversal}
          if(currTrdType = -2) then
          begin
          longLiqPoint = EntryPrice - protStopPrcnt2*averageRange;
          longLiqPoint = MinList(longLiqPoint,EntryPrice - protStopAmt);
          end;
          if(intraTradeHigh >= EntryPrice + breakEvenPrcnt*averageRange) then
          longLiqPoint = EntryPrice; {Breakeven trade}
          if(Time >= initTradesEndTime) then
          longLiqPoint = MaxList(longLiqPoint,Lowest(Low,3)); {Trailing stop}
          if(Time < liqRevEndTime and sellsToday = 0 and
          longLiqPoint <> EntryPrice and BarsSinceEntry >= 4) then
          begin
          Sell("LongLiqRev") next bar at longLiqPoint stop;
          end
          else begin
          ExitLong("LongLiq") next bar at longLiqPoint stop;
          end;
          end;
          if(MarketPosition =-1) then
          begin

          shortLiqPoint = EntryPrice+protStopPrcnt1*averageRange;
          shortLiqPoint = MaxList(shortLiqPoint,EntryPrice + protStopAmt);
          if(MarketPosition(1) = 1 and BarsSinceEntry(0) = 1 and
          Low [1] <= longLiqPoint and longLiqPoint > longFBOPoint) then
          currTrdType = +2; {we just got long from a short liq reversal}
          if(currTrdType = +2) then
          begin
          shortLiqPoint = EntryPrice + protStopPrcnt2*averageRange;
          shortLiqPoint = MaxList(shortLiqPoint,EntryPrice + protStopAmt);
          end;
          if(intraTradeLow <= EntryPrice - breakEvenPrcnt*averageRange) then
          shortLiqPoint = EntryPrice; {Breakeven trade}
          if(Time >= initTradesEndTime) then
          shortLiqPoint = MinList(shortLiqPoint,Highest(High,3)); {Trailing stop}
          if(Time < liqRevEndTime and buysToday = 0 and
          shortLiqPoint <> EntryPrice and BarsSinceEntry >= 4) then
          begin
          Buy("ShortLiqRev") next bar at shortLiqPoint stop;
          end
          else begin
          ExitShort("ShortLiq") next bar at shortLiqPoint stop;
          end;
          end;
          end;
          SetExitOnClose;

          Comment


          • #6
            error in code

            I get a line 17 error when I fun this code? What is the problem?

            Oz

            Comment


            • #7
              Oz

              The problem is wide spread through out the file. You will have to fixx a lot of the same errors.

              // should be used, instead of {...} for comments.

              Line 17 should be

              intraTradeHigh(0),intraTradeLow(999999);if(Date <> Date[1]) then //save time by doing these calculations once per day}

              all of the 'code' after the // is ignored til the next line.

              Comment

              Working...
              X