1 Min Trading Strategy
Forums › ProRealTime English forum › ProOrder support › 1 Min Trading Strategy
- This topic has 219 replies, 29 voices, and was last updated 7 years ago by Leo.
-
-
07/15/2017 at 6:07 AM #40695
Hi Juanj,
I have attached the 200.000 bars test. As it is pretty erratic, I add a MA + a stop trailing…Hope you do not mind.
Attached are the results.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125//Stategy: Scalping Candles//Market: EUR/USD//Timeframe: 1min//Spread: 0.8//Author: Juan Jacobs (Jd3gjacobs@gmail.com)Defparam cumulateorders = falseIf longonmarket and close < positionprice and (barindex-tradeindex) > 720 Then //Time Stop set to 12 hoursSell at marketEndIf//Candle Paramatersbody=close-openabody=abs(body)if range>0 thenratio=abody/rangeelseratio=0endifbodytop=max(open, close)bodybottom=min(open, close)shadowtop=high-bodytoplongcandle= (ratio>0.6)Bull = 0//Bullish SignalsBullishHarami=(body[1]<0 and body>0 and longcandle[1] and bodybottom>bodybottom[1] and bodytop<bodytop[1])MorningStar=(body[2]<0 and body>0 and longcandle[2] and open[1]<close[2] and open>close[1] and ratio[1]<0.3 and abody[1]<abody[2] and abody[1]<abody and low[1]<low and low[1]<low[2] and high[1]<open[2] and high[1]<close)if MorningStar thenBull = 1 //PositiveendifThreeInsideUp=(body[2]<0 and body[1]>0 and body>0 and BullishHarami[1] and close>close[1])if ThreeInsideUp thenBull = 1 //PositiveendifThreeOutsideUp=(body[2]<0 and body[1]>0 and body>0 and BullishEngulfing[1] and close>close[1])if ThreeOutsideUp thenBull = 1 //PositiveendifBullishEngulfing=(body[1]<0 and body>0 and bodybottom<bodybottom[1] and bodytop>bodytop[1] and longcandle)if BullishEngulfing thenBull = 1 //PositiveendifBullSash=(body[1]<0 AND longcandle[1] AND body>0 AND longcandle AND open>close[1] AND open<open[1] AND close>open[1] AND shadowtop<0.1*abody)if BullSash thenBull = 1 //PositiveendifIf (high - low) = 0 Then //Prevents potential division by zeroHiLo = 1ElseHiLo = (high - low)EndIfHammerUp = min(open[1],close[1])>high[1]-(high[1]-low[1])/3HammerUpNeg= max(open,close)<min(open[1],close[1]) and abs(open-close)/HiLo>0.5 //Bullish Hammer Negated = Bearish (used for exit signal)HammerDown = max(open[1],close[1])<low[1]+(high[1]-low[1])/3HammerDownNeg = min(open,close)>max(open[1],close[1]) and abs(open-close)/HiLo>0.5 //Bearish Hammer Negated = Bullish (used for exit signal)If HammerUp and HammerUpNeg Then//Bull = 0ElsIf HammerDown and HammerDownNeg ThenBull = 1EndIfdojibull2 = open[2]<close[2] and abs(open[2]-close[2])/(high[2]-low[2])<0.6dojibull1 = open[1]<close[1] and abs(open[1]-close[1])/(high[1]-low[1])<0.6dojibear2 = open[2]>close[2] and abs(open[2]-close[2])/(high[2]-low[2])<0.6dojibear1 = open[1]>close[1] and abs(open[1]-close[1])/(high[1]-low[1])<0.6hammerup2 = min(open,close)>high-(high-low)/2 //and max(open,close) < min(open[1],close[1])hammerdown2 = max(open,close)<low+(high-low)/2 //and max(open,close)<min(open[1],close[1])//and timeokIf (dojibull2 and dojibull1) and hammerdown2 ThenBull = 1ElsIf (dojibear2 and dojibear1) and hammerup2 Then//Bull = 0EndIf//Entry/Exit Criteriapossize = 1ATR = AverageTrueRange[4](close)LongMA = Average[50,2](close)NearMA = Average[6,2](close)RSIChk = RSI[4](close) >= 80StoChk = Stochastic[14,3](close) >= 75Trendma = average[2000,2]If countofposition = 0 and Bull = 1 and close > LongMA and NearMA > LongMA and LongMA[1] > LongMA[20] and NearMA[1] > NearMA[3] and ATR[1] > ATR[2] and RSIChk and StoChk and Trendma > trendma [1]ThenBuy possize contract at marketEndIf//trailing stoptrailingstop = 24if not onmarket thenMAXPRICE = 0priceexit = 0endif//LONG orderif longonmarket thenMAXPRICE = MAX(MAXPRICE,close) //saving the MFE of the current tradeif MAXPRICE-tradeprice(1)>=trailingstop*pointsize then //if the MFE is higher than the trailingstop thenpriceexit = MAXPRICE-trailingstop*pointsize //set the exit price at the MFE - trailing stop price levelendifendif//exit on trailing stop price levelsif onmarket and priceexit>0 thenEXITSHORT AT priceexit STOPSELL AT priceexit STOPendifSet Target $profit 98Set Stop $Loss 1501 user thanked author for this post.
07/15/2017 at 9:26 AM #40704Very odd indeed. Maybe @Nicolas could provide us with a possibe explanation. What is odd to me is the fact that your wins is bigger than your losses with a low win rate. Whereas with the logic provided it would make sense to have results closer to those posted by me with a high win rate.
Can I suggest everyone try playing around with the Stop and Target values using WF optimisation and then posting your results?
07/15/2017 at 9:33 AM #40705@inertia I like the idea of using a the longer trend MA such as 2000 (the longer the better) but because of the limited bars available I refrained from using it myself. Also technically speaking a trailing stop should not be necessary with a strategy with such low target. Either you take profit asap or get stopped out.
Remember I only posted an idea for a 1 min scalping strategy, you guys are welcome to build onto that with your own ideas. Hopefully together we stumble upon something that works for everyone!
1 user thanked author for this post.
07/15/2017 at 9:40 AM #40706You both with IG? I am with IG and my PRT Platform is direct from IG. Attached is latest version etc.
im with IG and PRT CFD and yes exacly the same version.
07/15/2017 at 9:41 AM #40707We need a version recording method already! :).
I propose using the Post Link or can you think of a better way?
Code authors, modifiers and optimisers are contributing enough. So each time a new version / sub version is posted, please could somebody / anybody copy and paste the Table below and add the new version and Post Link at the bottom.
Then – by scrolling up to find latest post showing the Table – we will all know where we are up to re Versions, as follows …
Juanj V1 click #40559
Juanj V2 click #40653 modified by #40675
Inertia V2.2 click #40695Inertia is your 1st image (left) Juanj V2 and your 2nd image (right) is Inertia V2.2?
GraHal
PS idea ‘falls at the 1st hurdle’ ? … the links aren’t clickable? Or are they for you, is it that I am still in the post screen or something weird?
1 user thanked author for this post.
07/15/2017 at 10:24 AM #40709Aha my fault I think (I wont bore you how / why! 😉 ) … if you click on this Link you should get back to Page 1 #40559 ?
I will correct on the next itteration of the Table.
Mmm still not working, we may have to use the full link address as below?? Nicolas any ideas why this is not working … the link is copied from Page 1 of this Thread but clicking on the link (or even right click new Tab) does not take me back to Page 1??
We may have use the full Link Address??
https://www.prorealcode.com/topic/1-min-trading-strategy/#post-40559
07/15/2017 at 7:42 PM #4073407/15/2017 at 7:44 PM #4074007/15/2017 at 7:50 PM #40742Hi Juanj,
Thank you for your kind message. You did a great job !
Well noted for the scalping vs surfing the trend…
Once the WF done, I will play around with your original idea.
I may reduce the risk/reward…to 40/10 (0.25).
Keep in touch.
Thanks
07/16/2017 at 10:18 AM #40757I just realised that running this strategy on a 1min time frame vs. Something like a 5min time frame is actually less effective due to the fact that trends and candle stick patterns are actually more pronounced in the higher time frames. Also the profit target level is time frame independent and thus you still get the benefit of immediate position closing if the target profit level is hit.
07/16/2017 at 11:06 AM #4075907/16/2017 at 12:08 PM #40761Ok guys. Here is a version for the Dax. I set time filter for it works only during time with low spread ( 1 pts).
I optimized only SL and TP with WF on 200k units. It’s just version 1 (But it starts to become sexy ; ) ) . I’ll still work on it but I optimize only with WF so it takes time.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332DEFPARAM CumulateOrders = False // Cumul des positions désactivénoEntryBeforeTime = 090000timeEnterBefore = time >= noEntryBeforeTimenoEntryAfterTime = 173000timeEnterAfter = time < noEntryAfterTimedaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0If longonmarket and close < positionprice and (barindex-tradeindex) > 650 ThenSell at marketElsIf shortonmarket and close > positionprice and (barindex-tradeindex) > 60 thenExitshort at marketEndIfbody=close-openabody=abs(body)if range>0 thenratio=abody/rangeelseratio=0endifmiddle=(open+close)/2bodytop=max(open, close)bodybottom=min(open, close)shadowtop=high-bodytopshadowbottom=bodybottom-lowlongcandle= (ratio>0.6)Bull = 0Bear = 0//Bullish SignalsMorningStar=(body[2]<0 and body>0 and longcandle[2] and open[1]<close[2] and open>close[1] and ratio[1]<0.3 and abody[1]<abody[2] and abody[1]<abody and low[1]<low and low[1]<low[2] and high[1]<open[2] and high[1]<close)if MorningStar thenBull = 1 //PositiveendifPiercingLine=(body[1]<0 and body>0 and longcandle[1] and longcandle and open<low[1] and close>middle[1] and close<open[1])if PiercingLine thenBull = 1 //NoneendifAbandonedBabyBottom=(body[2]<0 and body>0 and longcandle[2] and ratio[1]<0.3 and high[1]<low[2] and high[1]<low)if AbandonedBabyBottom thenBull = 1 //NoneendifThreeInsideUp=(body[2]<0 and body[1]>0 and body>0 and BullishHarami[1] and close>close[1])if ThreeInsideUp thenBull = 1 //PositiveendifThreeOutsideUp=(body[2]<0 and body[1]>0 and body>0 and BullishEngulfing[1] and close>close[1])if ThreeOutsideUp thenBull = 1 //PositiveendifThreeWhiteSoldiers=(body[2]>0 and body[1]>0 and body>0 and high[1]>high[2] and high>high[1] and close[1]>close[2] and close>close[1] and open[1]>open[2] and open[1]<close[2] and open>open[1] and open<close[1])if ThreeWhiteSoldiers then//Bull = 1 //Increase DrawdownendifConcealingBabySwallow=(body[3]<0 and body[2]<0 and body[1]<0 and body<0 and ratio[3]>0.8 and ratio[2]>0.8 and ratio>0.8 and open[1]<close[2] and high[1]>close[2] and shadowtop[1]>0.6*(abody[1]+shadowbottom[1]) and bodybottom<bodybottom[1] and bodytop>high[1])if ConcealingBabySwallow thenBull = 1 //NoneendifBullishHarami=(body[1]<0 and body>0 and longcandle[1] and bodybottom>bodybottom[1] and bodytop<bodytop[1])if BullishHarami then//Bull = 1 //Negative ImpactendifHomingPigeon=(body[1]<0 and body<0 and longcandle[1] and bodybottom>bodybottom[1] and bodytop<bodytop[1])if HomingPigeon thenBull = 1 //NoneendifBullishEngulfing=(body[1]<0 and body>0 and bodybottom<bodybottom[1] and bodytop>bodytop[1] and longcandle)if BullishEngulfing thenBull = 1 //PositiveendifLastEngulfingBottom=(body[1]>0 and body<0 and bodybottom<bodybottom[1] and bodytop>bodytop[1] and longcandle)if LastEngulfingBottom thenBull = 1 //NoneendifDragonflyDojiBottom=(body[1]<0 and longcandle[1] and low<low[1] and shadowbottom>3*abody and shadowtop<shadowbottom/3)if DragonflyDojiBottom thenBull = 1 //NoneendifGravestoneDojiBottom=(body[1]<0 and longcandle[1] and low<low[1] and shadowtop>3*abody and shadowbottom<shadowtop/3)if GravestoneDojiBottom thenBull = 1 //NoneendifDojiStarBottom=(body[1]<0 AND longcandle[1] AND low<low[1] AND open<close[1] AND ratio<0.3 AND range<0.3*range[1])if DojiStarBottom thenBull = 1 //NoneendifBullishHaramiCross=(body[1]<0 and longcandle[1] and bodybottom>bodybottom[1] and bodytop<bodytop[1] and ratio<0.3 and range<0.3*range[1])if BullishHaramiCross thenBull = 1 //NoneendifThreeStarsInTheSouth=(body[2]<0 and body[1]<0 and body<0 and shadowtop[2]<range[2]/4 and shadowbottom[2]>abody[2]/2 and low[1]>low[2] and high[1]<high[2] and abody[1]<abody[2] and shadowtop[1]<range[1]/4 and shadowbottom[1]>abody[1]/2 and low>low[1] and high<high[1] and abody<abody[1] and shadowtop<range/4 and shadowbottom<range/4)if ThreeStarsInTheSouth thenBull = 1 //NoneendifBullishBreakaway=(body[4]<0 and body[3]<0 and body>0 and open[3]<close[4] and close[2]<close[3] and close[1]<close[2] and longcandle and close<close[4] and close>open[3])if BullishBreakaway thenBull = 1 //NoneendifHammer=(body[1]<0 and longcandle[1] and low<low[1] and shadowbottom>2*abody and shadowtop<0.3*abody)if Hammer thenBull = 1 //NoneendifInvertedHammer=(body[1]<0 and longcandle[1] and low<low[1] and shadowtop>2*abody and shadowbottom<0.3*abody)if InvertedHammer thenBull = 1 //NoneendifRisingThreeMethods=(body[4]>0 and body[3]<0 and body[1]<0 and body>0 and longcandle[4] and longcandle and close[2]<close[3] and close[1]<close[2] and high[2]<high[3] and high[1]<high[2] and low[1]>low[4] and open>close[1] and close>high[4] and close>high[3] and close>high[2] and close>high[1])if RisingThreeMethods thenBull = 1 //NoneendifBullishThreeLineStrike=(body[3]>0 and body[2]>0 and body[1]>0 and body<0 and longcandle[3] and longcandle[2] and longcandle[1] and close[2]>close[3] and close[1]>close[2] and open>close[1] and close<open[3])if BullishThreeLineStrike thenBull = 1 //NoneendifBullishMatHold=(body[4]>0 and body[3]<0 and body[1]<0 and body>0 and longcandle[4] and close[3]>close[4] and close[2]<close[3] and close[1]<close[2] and high[2]<high[3] and high[1]<high[2] and low[1]>low[4] and open>close[1] and close>high[4] and close>high[3] and close>high[2] and close>high[1])if BullishMatHold thenBull = 1 //NoneendifBullSash=(body[1]<0 AND longcandle[1] AND body>0 AND longcandle AND open>close[1] AND open<open[1] AND close>open[1] AND shadowtop<0.1*abody)if BullSash thenBull = 1 //PositiveendifBullSeparatingLine=(body[1]<0 AND longcandle[1] AND body>0 AND longcandle AND open>=open[1] AND shadowtop<0.1*abody)if BullSeparatingLine thenBull = 1 //NoneendifBullishCounterAttack=(body[1]<0 AND longcandle[1] AND body>0 AND longcandle AND close<=close[1])if BullishCounterAttack thenBull = 1 //NoneendifBullishKicking=(body[1]<0 AND longcandle[1] AND body>0 AND longcandle AND open>=open[1] AND shadowtop=0 AND shadowbottom=0)if BullishKicking thenBull = 1 //Noneendif//Bearish SignalEveningStar=(body[2]>0 AND body<0 and longcandle[2] and open[1]>close[2] and open<close[1] and ratio[1]<0.3 and abody[1]<abody[2] and abody[1]<abody and high[1]>high and high[1]>high[2] and low[1]>open[2] and low[1]>close)if EveningStar thenBear = 1endifDarkCloudCover=(body[1]>0 and body<0 and longcandle[1] and longcandle and open>high[1] and close<middle[1] and close>open[1])if DarkCloudCover thenBear = 1endifAbandonedBabyTop=(body[2]>0 and body<0 and longcandle[2] and ratio[1]<0.3 and low[1]>high[2] and low[1]>high)if AbandonedBabyTop thenBear = 1endifThreeInsideDown=(body[2]>0 and body[1]<0 and body<0 and bearishharami[1] and close<close[1])if ThreeInsideDown thenBear = 1endifThreeOutsideDown=(body[2]>0 and body[1]<0 and body<0 and bearishengulfing[1] and close<close[1])if ThreeOutsideDown thenBear = 1endifThreeBlackCrows=(body[2]<0 and body[1]<0 and body<0 and longcandle[2] and longcandle[1] and longcandle and low[1]<low[2] and low<low[1] and close[1]<close[2] and close<close[1] and open[1]<open[2] and open[1]>close[2] and open<open[1] and open>close[1])if ThreeBlackCrows thenBear = 1endifUpsideGapTwoCrows=(body[2]>0 and body[1]<0 and body<0 and longcandle[2] and open[1]>close[2] and bodytop>bodytop[1] and bodybottom<bodybottom[1] and close>close[2])if UpsideGapTwoCrows thenBear = 1endifBearishHarami=(body[1]>0 and body<0 and longcandle[1] and bodybottom>bodybottom[1] and bodytop<bodytop[1])if BearishHarami thenBear = 1endifDescendingHawk=(body[1]>0 and body>0 and longcandle[1] and bodybottom>bodybottom[1] and bodytop<bodytop[1])if DescendingHawk thenBear = 1endifBearishEngulfing=(body[1]>0 and body<0 and bodybottom<bodybottom[1] and bodytop>bodytop[1] and longcandle)if BearishEngulfing thenBear = 1endifLastEngulfingTop=(body[1]<0 and body>0 and bodybottom<bodybottom[1] and bodytop>bodytop[1] and longcandle)if LastEngulfingTop thenBear = 1endifDragonflyDojiTop=(body[1]>0 and longcandle[1] and high>high[1] and shadowbottom>3*abody and shadowtop<shadowbottom/3)if DragonflyDojiTop thenBear = 1endifGravestoneDojiTop=(body[1]>0 and longcandle[1] and high>high[1] and shadowtop>3*abody and shadowbottom<shadowtop/3)if GravestoneDojiTop thenBear = 1endifDojiStarTop=(body[1]>0 AND longcandle[1] AND high>high[1] AND open>close[1] AND ratio<0.3 AND range<0.3*range[1])if DojiStarTop thenBear = 1endifBearishHaramiCross=(body[1]>0 and longcandle[1] and bodybottom>bodybottom[1] and bodytop<bodytop[1] and ratio<0.3 and range<0.3*range[1])if BearishHaramiCross thenBear = 1endifAdvanceBlock=(body[2]>0 and body[1]>0 and body>0 and high[2]<high[1] and high[1]<high and open[1]>bodybottom[2] and open[1]<bodytop[2] and open>bodybottom[1] and open<bodytop[1] and abody[1]<abody[2] and abody<abody[1])if AdvanceBlock thenBear = 1endifTwoCrows=(body[2]>0 and body[1]<0 and body<0 and longcandle[2] and open[1]>close[2] and close[1]>close[2] and open<bodytop[1] and open>bodybottom[1] and close<bodytop[2] and close>bodybottom[2])if TwoCrows thenBear = 1endifBearishBreakaway=(body[4]>0 and body[3]>0 and body<0 and open[3]>close[4] and close[2]>close[3] and close[1]>close[2] and longcandle and close>close[4] and close<open[3])if BearishBreakaway thenBear = 1endifShootingStar=(body[1]>0 and longcandle[1] and high>high[1] and shadowtop>2*abody and shadowbottom<0.3*abody)if ShootingStar thenBear = 1endifHangingMan=(body[1]>0 and longcandle[1] and high>high[1] and shadowbottom>2*abody and shadowtop<0.3*abody)if HangingMan thenBear = 1endifFallingThreeMethods=(body[4]<0 and body[3]>0 and body[1]>0 and body<0 and longcandle[4] and longcandle and close[2]>close[3] and close[1]>close[2] and low[2]>low[3] and low[1]>low[2] and high[1]<high[4] and open<close[1] and close<low[4] and close<low[3] and close<low[2] and close<low[1])if FallingThreeMethods thenBear = 1endifBearishThreeLineStrike=(body[3]<0 and body[2]<0 and body[1]<0 and body>0 and longcandle[3] and longcandle[2] and longcandle[1] and close[2]<close[3] and close[1]<close[2] and open<close[1] and close>open[3])if BearishThreeLineStrike thenBear = 1endifBearishMatHold=(body[4]<0 and body[3]>0 and body[1]>0 and body<0 and longcandle[4] and close[3]<close[4] and close[2]>close[3] and close[1]>close[2] and low[2]>low[3] and low[1]>low[2] and high[1]<high[4] and open<close[1] and close<low[4] and close<low[3] and close<low[2] and close<low[1])if BearishMatHold thenBear = 1endifBearSash=(body[1]>0 AND longcandle[1] AND body<0 AND longcandle AND open>open[1] AND open<close[1] AND close<open[1] AND shadowbottom<0.1*abody)if BearSash thenBear = 1endifBearSeparatingLine=(body[1]>0 AND longcandle[1] AND body<0 AND longcandle AND open<=open[1] AND shadowbottom<0.1*abody)if BearSeparatingLine thenBear = 1endifBearishCounterAttack=(body[1]>0 AND longcandle[1] AND body<0 AND longcandle AND close>=close[1])if BearishCounterAttack thenBear = 1endifBearishKicking=(body[1]>0 AND longcandle[1] AND body<0 AND longcandle AND open<=open[1] AND shadowtop=0 AND shadowbottom=0)if BearishKicking thenBear = 1endif//Entry/Exit Criteriapossize = 1NearMA = Average[7,2](close)If countofposition = 0 and Bull = 1 and NearMA[1] > NearMA[3] and RSI[2](close) > 75 and NearMA > Average[150,2](close) and timeEnterBefore and timeEnterAfter and not daysForbiddenEntry Then//If shortonmarket Then//Exitshort at market//EndIfBuy possize contract at marketEndIfIf countofposition = 0 and Bear = 1 and NearMA[1] < NearMA[3] and RSI[2](close) < 25 and NearMA < Average[150,2](close) Then//If longonmarket Then//Sell at market//EndIf//Sellshort possize contract at marketEndIfSet Target pProfit 10Set Stop pLoss 5007/16/2017 at 1:30 PM #40768(I went to the toilet after posting, so here it is again (Mods please delete above post) …
Hey looks good TheAccountant! I felt (like you) that we need to optimise V1 over 200,000 bars so we have a baseline ( I can only do 100,000).
You say … I optimize only with WF … so do you use 1 IN Sample and 1 OUT OF Sample period or how many periods do you use?
Also, if you WF Optimise over many IN / OUT periods … how do you choose which variable value to go forward / Live / Demo trading with?
When I do it, I find myself thinking … is the most recent WF period Typical or Not Typical of the Instrument tested. If Not Typical then I am reluctant to go forward with optimised values from the most recent WF period to use in Live trading?
Do you have similar quandries?
Thanks
GraHal07/16/2017 at 1:48 PM #4076907/16/2017 at 1:53 PM #40773123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108The signal is quite powerful.Hereafter is the best (for the time being) I have...Thx JuanJ.//Stategy: Scalping Candles//Market: EUR/USD//Timeframe: 1min//Spread: 0.8//Author: Juan Jacobs (Jd3gjacobs@gmail.com)Defparam cumulateorders = FalseIf longonmarket and close < positionprice and (barindex-tradeindex) > 720 Then //Time Stop set to 12 hoursSell at marketEndIf//Candle Paramatersbody=close-openabody=abs(body)if range>0 thenratio=abody/rangeelseratio=0endifbodytop=max(open, close)bodybottom=min(open, close)shadowtop=high-bodytoplongcandle= (ratio>0.6)Bull = 0//Bullish SignalsBullishHarami=(body[1]<0 and body>0 and longcandle[1] and bodybottom>bodybottom[1] and bodytop<bodytop[1])MorningStar=(body[2]<0 and body>0 and longcandle[2] and open[1]<close[2] and open>close[1] and ratio[1]<0.3 and abody[1]<abody[2] and abody[1]<abody and low[1]<low and low[1]<low[2] and high[1]<open[2] and high[1]<close)if MorningStar thenBull = 1 //PositiveendifThreeInsideUp=(body[2]<0 and body[1]>0 and body>0 and BullishHarami[1] and close>close[1])if ThreeInsideUp thenBull = 1 //PositiveendifThreeOutsideUp=(body[2]<0 and body[1]>0 and body>0 and BullishEngulfing[1] and close>close[1])if ThreeOutsideUp thenBull = 1 //PositiveendifBullishEngulfing=(body[1]<0 and body>0 and bodybottom<bodybottom[1] and bodytop>bodytop[1] and longcandle)if BullishEngulfing thenBull = 1 //PositiveendifBullSash=(body[1]<0 AND longcandle[1] AND body>0 AND longcandle AND open>close[1] AND open<open[1] AND close>open[1] AND shadowtop<0.1*abody)if BullSash thenBull = 1 //PositiveendifIf (high - low) = 0 Then //Prevents potential division by zeroHiLo = 1ElseHiLo = (high - low)EndIfHammerUp = min(open[1],close[1])>high[1]-(high[1]-low[1])/3HammerUpNeg= max(open,close)<min(open[1],close[1]) and abs(open-close)/HiLo>0.5 //Bullish Hammer Negated = Bearish (used for exit signal)HammerDown = max(open[1],close[1])<low[1]+(high[1]-low[1])/3HammerDownNeg = min(open,close)>max(open[1],close[1]) and abs(open-close)/HiLo>0.5 //Bearish Hammer Negated = Bullish (used for exit signal)If HammerUp and HammerUpNeg Then//Bull = 0ElsIf HammerDown and HammerDownNeg ThenBull = 1EndIfdojibull2 = open[2]<close[2] and abs(open[2]-close[2])/(high[2]-low[2])<0.6dojibull1 = open[1]<close[1] and abs(open[1]-close[1])/(high[1]-low[1])<0.6dojibear2 = open[2]>close[2] and abs(open[2]-close[2])/(high[2]-low[2])<0.6dojibear1 = open[1]>close[1] and abs(open[1]-close[1])/(high[1]-low[1])<0.6hammerup2 = min(open,close)>high-(high-low)/2 //and max(open,close) < min(open[1],close[1])hammerdown2 = max(open,close)<low+(high-low)/2 //and max(open,close)<min(open[1],close[1])//and timeokIf (dojibull2 and dojibull1) and hammerdown2 ThenBull = 1ElsIf (dojibear2 and dojibear1) and hammerup2 Then//Bull = 0EndIf//Entry/Exit Criteriapossize = 1ATR = AverageTrueRange[4](close)LongMA = Average[periodelongma,2](close)NearMA = Average[periodenearma,2](close)RSIChk = RSI[periodersi](close) >= 80StoChk = Stochastic[14,3](close) >= 75Trendma = average[periode,2]If countofposition = 0 and Bull = 1 and close > LongMA and NearMA > LongMA and LongMA[1] > LongMA[20] and NearMA[1] > NearMA[3] and ATR[1] > ATR[2] and RSIChk and StoChk and Trendma > trendma [1]ThenBuy possize contract at marketEndIfSet Target $profit 5Set Stop $Loss 40 -
AuthorPosts
Find exclusive trading pro-tools on