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/16/2017 at 1:56 PM #4077507/16/2017 at 2:03 PM #40777
I use this settings of WF. Sorry it is complicated for me to explain with my bad English. PRT is in French with me and I do not have the right words in English. I attach an image.
80% IN sample and 20% Out of sample x5 “occurences” ( I do not know in english).
If I just have 1 optimized results i take it. If I have several variables that give good results, I run a classic backtest and I keep the best.
For example on this strategy I gave tp of 5 to 30 with step of 1. WF gives me TP 9 and TP 10 on Dax according to the periods. I test tp 9 and tp 10 in a classic backest on 200k and i keep tp 10 finally.
I do not know if it’s the best way… I am not an expert 🙂
07/16/2017 at 2:05 PM #40779Hi Theaccountant, Attached are the result from my side with your strategy…What did I do wrong ? Strange…
It’s for Dax cfd not eurusd 🙂 🙂 🙂
1 user thanked author for this post.
07/16/2017 at 2:58 PM #40782TheAccountant your English is near perfect! I understood exactly what you said, thank you.
I don’t think any of us have (yet) come up the optimum way to use WF? It will be better when we can see a whole table of WF results including Drawdown.
I’ve just been sitting on my deck chair in the sun thinking of a ‘slightly different angle’ on the way I use WF.
Cheers
GraHal2 users thanked author for this post.
07/16/2017 at 3:21 PM #40784Latest versions, but I am already lost myself! 🙂 Please could we type in the Version Number at the top of code?
If anybody wants to correct, update or even change the format feel free PLEASE!? 🙂
Jua V1.0 (1m DAX) #40559 TAc opti 200K #40761
Jua V2.0 (1m DAX) #40653 Jua V2.1 snipp #40675
Ine V2.2 (1m EURUSD) #40695 Ine opti 200K #407731 user thanked author for this post.
07/16/2017 at 3:41 PM #4078507/16/2017 at 4:03 PM #40786(Ahahahah just shows we can all be blinkered! That is why I never got same results as you!!! 🙂 )
Please add Version, Instrument and Timeframe at top of Code.
If Time is in your Code, also add Time Standard in Format ‘UTC + – X’.
If anybody wants to correct, update or change format feel free PLEASE!? 🙂
Jua V1.0 (1m EURUSD) #40559 TAc opti 200K DAX #40761
Jua V2.0 (1m EURUSD) #40653 Jua V2.1 snipp #40675
Ine V2.2 (1m EURUSD) #40695 Ine opti 200K #4077307/16/2017 at 5:42 PM #40794ok so…
On the DAX cfd M1.
Time range : 9:00 to 17:30 = 1 pts spread / 17:30 to 22:00 = 2 pts spread ( french price. check time and spread for your country)
Optimized with WF :
TP : 10 and SL : 50
RSI > 60
Average 7 and average 150 are the best on 200k.
Backtest 200k units with spread. Not test in real yet.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338//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 10Set Stop pLoss 501 user thanked author for this post.
07/16/2017 at 7:14 PM #40811@theaccountant this is not the right way to use WF, I made videos in French, you’ll find them in the blog section.
@grahal always use the most recent optimized variables or reoptimise on the last IS+OOS periods to get the freshest ones.
2 users thanked author for this post.
07/16/2017 at 9:34 PM #40829Please add Version, Instrument and Timeframe at top of Code.
If Time is in your Code, also add Time Standard in Format UTC + or – (e.g. France / Paris is UTC +2).
If anybody wants to correct, update or change format feel free PLEASE!? 🙂
Latest Versions:
Jua V1.0 (1m EURUSD) #40559 TAc V1.1 opti 200K DAX #40794
Jua V2.0 (1m EURUSD) #40653 Jua V2.1 snipp #40675
Ine V2.2 (1m EURUSD) #40695 Ine opti 200K #4077307/16/2017 at 10:55 PM #4083107/17/2017 at 7:42 AM #40841123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109//-------------------------------------------------------------------------//Strategy: Scalping Candles//Market: EUR/USD//Timeframe: 1min//Spread: 0.8//Author: Juan Jacobs (Jd3gjacobs@gmail.com)//Optimized by: Inertia - latest version #post 40773//200.000bars, 0.8p spread, Tick by Tick => gives 1.98$ PER TRADE.//-------------------------------------------------------------------------Defparam preloadbars = 2000Defparam 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)//[50;200][50]NearMA = Average[4,2](close)//[2;10][2]RSIChk = RSI[2](close) >= 80//[2,14][3]StoChk = Stochastic[14,3](close) >= 75Trendma = average[1500,2]//[500;3000][500]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 40Sorry Grahal.
Cheers.
1 user thanked author for this post.
07/17/2017 at 3:28 PM #40875Thanks Inertia! Two wins on Live today so far!
I like the ‘not too optimistic’ £5 Target … puts me in a good mood! 🙂
Could just as easy be £25 if I change to Set Target pProfit 5 and increase my Lot size to 5.
Early days yet though!?
Cheers
GraHal07/17/2017 at 3:46 PM #4087707/18/2017 at 5:55 PM #41020Okay so I did my homework and I watched Nicolas’s videos on WF. 🙂
Here are the results WF (see image) :
out of sample 1 : 78% WFE
out of sample 2 : 328% WFE
out of sample 3 : -54% WFE
out of sample 4 : 107% WFE
out of sample 5 : 50% WFE
The most recent variables are : TP 8 and SL 50 ( last out of sample with 50% WFE)
So Nicolas: is it better to keep the most recent variables? Or with a negative out of sample of 5 it is better to change something? ( and on the negative out of sample variable are not the same : tp11 sl50)
thank you for your help ! 🙂
-
AuthorPosts
Find exclusive trading pro-tools on