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/18/2017 at 6:25 PM #4102307/19/2017 at 6:06 PM #41099
I run the dax version today (with tp8 sl50) and that is stopped twice for error division by zero.
It took 3 trades in real ( win 🙂 ) and it stopped again.
I do not see where the problem comes from 🙁
07/19/2017 at 7:47 PM #41109Think I know where the potential ‘divide by zero’ problem could lie:
1234dojibull2 = 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.6Can fix by replacing the above block of code with this:
123456789101112131415If high[2]-low[2] = 0 ThenHiLo2 = 1ElseHiLo2 = high[2]-low[2]EndIfIf high[1]-low[1] = 0 ThenHiLo1 = 1ElseHiLo1 = high[1]-low[1]EndIfdojibull2 = open[2]<close[2] and abs(open[2]-close[2])/HiLo2<0.6dojibull1 = open[1]<close[1] and abs(open[1]-close[1])/HiLo1<0.6dojibear2 = open[2]>close[2] and abs(open[2]-close[2])/HiLo2<0.6dojibear1 = open[1]>close[1] and abs(open[1]-close[1])/HiLo1<0.607/19/2017 at 7:55 PM #41111Here’s two possibilities on the link below … let us know which works please as I had this on another Strat a few days ago.
https://www.prorealcode.com/topic/trading-system-was-stopped-due-to-a-division-by-zero/
Thanks to Wing …
Usually, this problem is because you have a variable that you initiate as zero, or simply do not give a set value to at first. When you try to divide a number or another variable with this zero variable, an error is returned. So my first suggestion, look at all points in the system where you divide something, then make sure nothing is ever divided by zero.But – thanks to Bin – solution was in fact …
Thanks for your advise, I fixed the problem, it caused by preloadbars issue, my previous setting is 150, its ok when change to 1000.
07/19/2017 at 8:16 PM #41112why do we bother backtesting for 100k bars or 200k bars??
If we have more history, we can do a lot more IS/OOS tests and be more confident on the robustness of the strategy and its ability to benefit from optimization.
07/20/2017 at 5:17 AM #41119Think I know where the potential ‘divide by zero’ problem could lie:
1234dojibull2 = 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.6Can fix by replacing the above block of code with this:
123456789101112131415If high[2]–low[2] = 0 ThenHiLo2 = 1ElseHiLo2 = high[2]–low[2]EndIfIf high[1]–low[1] = 0 ThenHiLo1 = 1ElseHiLo1 = high[1]–low[1]EndIfdojibull2 = open[2]<close[2] and abs(open[2]–close[2])/HiLo2<0.6dojibull1 = open[1]<close[1] and abs(open[1]–close[1])/HiLo1<0.6dojibear2 = open[2]>close[2] and abs(open[2]–close[2])/HiLo2<0.6dojibear1 = open[1]>close[1] and abs(open[1]–close[1])/HiLo1<0.6thank you. But for the dax I use your version 1 of the code and there are not these parts of code.
Here is the code I use :
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339//Stategy: Scalping Candles//Market: DAX//Timeframe: 1min//Spread: 1//Author: Juan Jacobs (Jd3gjacobs@gmail.com)DEFPARAM CumulateOrders = False // Cumul des positions désactivénoEntryBeforeTime = 090000timeEnterBefore = time >= noEntryBeforeTimenoEntryAfterTime = 220000timeEnterAfter = 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) > 60 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)and timeEnterBefore and timeEnterAfter and not daysForbiddenEntry Then//If longonmarket Then//Sell at market//EndIf//Sellshort possize contract at marketEndIfSet Target pProfit 8Set Stop pLoss 5007/20/2017 at 7:11 AM #41124Maybe like this123456789body=close-openabody=abs(body)if (range+0.0000001)>0 thenratio=abody/(range+0.0000001)elseratio=0endifLine 23-31, I´ve tried this on a strategy with candlesticks and it worked for me, same as Francesco78 did in his oil strategy.
1 user thanked author for this post.
08/30/2017 at 6:08 PM #44953Juanji.
THANK YOU for this strategy.! WORKS GREAT.!
I run in on EUR/USD, AUD/USD and EUR/CHF. Some run with your original code and some on the modified code. All with different SL and TP levels.
It will be great if the same strategy will run on Bear market as well.
I tried to tweak it for Bear market but I have no programming skills and gave up after some hours. I have tried coding but is just not good at it like you guys but I try.
I am considering giving it to friend of mine who recently lost his job and will need some income on the side.
I have been looking for strategy like this that does not require big amount of capital with him in mind.Thank you
Andre Vorster08/30/2017 at 8:07 PM #44964DAX not bad too with a added “MFE trailing stop” set up to 10…
1 user thanked author for this post.
08/30/2017 at 9:53 PM #4497008/31/2017 at 7:13 AM #44973Stategy: Scalping Candles123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217//Stategy: Scalping Candles//Market: DAX//Timeframe: 1min//Spread: 1//Author: Juan Jacobs (Jd3gjacobs@gmail.com)// Définition des paramètres du codeDEFPARAM CumulateOrders = FalseDEFPARAM FLATBEFORE = 090000DEFPARAM FLATAFTER = 220000noEntryBeforeTime = 090000timeEnterBefore = time >= noEntryBeforeTimenoEntryAfterTime = 220000timeEnterAfter = time < noEntryAfterTimedaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0SL = 50 // 50TP = 55 // 55TS = 10 // 10If 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.0000001)>0 thenratio=abody/(range+0.0000001)elseratio=0endifmiddle=(open+close)/2bodytop=max(open, close)bodybottom=min(open, close)shadowtop=high-bodytopshadowbottom=bodybottom-lowlongcandle= (ratio>0.6)Bull = 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//Entry/Exit Criteriapossize = 1NearMA = Average[7,2](close)If countofposition = 0 and Bull = 1 and NearMA[1] > NearMA[3] and RSI[2](close) > 60 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 NearMA[1] < NearMA[3] and RSI[2](close) < 25 and NearMA < Average[150,2](close)and timeEnterBefore and timeEnterAfter and not daysForbiddenEntry Then//If longonmarket Then//Sell at market//EndIf//Sellshort possize contract at marketEndIf//trailing stoptrailingstop = TSif 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 pProfit TPSet Stop pLoss SL2 users thanked author for this post.
08/31/2017 at 7:16 AM #4497408/31/2017 at 7:30 AM #4497708/31/2017 at 9:39 AM #4501008/31/2017 at 10:07 AM #45012 -
AuthorPosts
Find exclusive trading pro-tools on