Amit, thanks for posting the chart. This will really help people to "see" the method.
I do not have the historical data for these dates, but I am guessing that these were dates on which there was no opening range breakout in the first 25 minutes.
I do not have the historical data for these dates, but I am guessing that these were dates on which there was no opening range breakout in the first 25 minutes.
Hope this explanation is clear. The Opening Range is the most important concept in any ORB method. It is simple stuff, but maybe the way that I am explaining makes it sound complex.
- keep small SL (to limit my upfront loss)
- have more winning trades (to keep one motivated to continue using this system)
Following changes has yielded excellent results...
EntryTimeStart has been changed to 30. So Opening Range to watch would be 30 minutes.
EntryTimeEnd has been changed to 150. So now you can enter in trade in first 3 hours (30 minute range & 150 minutes of trade entry time)
Initial SL has been kept as below i.e. if range is greater than 20 than other side of range + 9 point filter. If range is lower than 20 than 18 points stop loss.
The other side of range is not something that I have seriously considered. The reason is that on some days the range is very narrow, and a small pullback will hit your stop loss. On other days, the range can be very wide, increasing the risk. If we want to use the other side of range, then it will be good to avoid trades on days when the range is very narrow or very wide. Just my thoughts, but I have not evaluated seriously.
Code:
ORBDiff = ORBH - ORBL ;
ORBTooHigh = 50; //Optimize("ORBTooHigh", 50, 30, 60, 1);
ORBTooLow = 10; //Optimize("ORBTooLow", 10, 10, 20, 1);
SLNum = 6; //Optimize("SLNum", 6, 1, 20, 1);
ORBHSL=IIf(ORBDiff > ORBTooLow , ORBL - SLNum, ORBH - (SLNum * 2));
ORBHSL=IIf(ORBDiff < ORBTooHigh , ORBL - SLNum, ORBH - (SLNum * 2));
ORBLSL=IIf(ORBDiff > ORBTooLow , ORBH + SLNum, ORBH + (SLNum * 2));
ORBLSL=IIf(ORBDiff < ORBTooHigh, ORBH + SLNum, ORBH + (SLNum * 2));
ProfitPoints = 140; //Optimize("ProfitPoints0", 140, 40, 160, 5);
ORBHTarget = ORBH + ProfitPoints ;
ORBLTarget = ORBL - ProfitPoints ;
TRStop = 45; //Optimize("TrailingStop", 45, 25, 80,1);
ApplyStop(stopTypeTrailing, stopModePoint, TRStop, 1, False, 0);
SetPositionSize(100, spsShares);