Dear all
I have been playing around with the concept of reversal after n consecutive bullish or bearish bars and I found a quite nice result in the USD JPY 1 hr timeframe.
The strategy has 3 condition:
- 3 consecutive bars of hte same colour
- ADX > ADXmin
- Vol > Volmin ( expressed in ATR )
In attachment you find the results of a WF static analysis 70/30 with 3 variables.
Please feel free to comment, any constructive criticism will be greatly appreciated!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
//USDJPY TF 1hr spread 1.5 pips DEFPARAM CUMULATEORDERS = False //DEFPARAM FLATBEFORE = 090000 //DEFPARAM FLATAFTER = 220000 //n = 3 // number of consecutive bars with the same colour fastavperiod=5 /// period of fast moving average slowavperiod=100// period of slow moving average atrmin= 10 // take poistion only if there is enough vol //adxval = 25 // take position only if there is a trend //t = 7 // multiplier for exit strategy volindic = averagetruerange[14] fastav = average[fastavperiod](close) slowav = average[slowavperiod](close) cl = summation[n](close<open) = n cs = summation[n](close>open) = n volok = volindic > atrmin ctrend = adx[14]>adxval position = round(100/averagetruerange[14]) if cl and ctrend and fastav > slowav and volok then buy position contract at market endif if cs and ctrend and fastav < slowav and volok then sellshort position contract at market endif set target profit t*volindic set stop ploss 2*t*volindic |
Share this
No information on this site is investment advice or a solicitation to buy or sell any financial instrument. Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.
ProRealTime ITF files and other attachments :PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials
I’m not getting any trades.
Stanton, I realize in the code there are a few backslash you need to eliminate. Ahead of t, n, and adxval. Pls confirm if je code is working if yoi remove them.
I removed them and used the download with the variables set and still dont get trades.
Sorry to hear, I have no clue whats happening then..
To me it’s the same. NO trades at all
Just to be sure this is the version I use
Hi Stanton – it’s properly because Francesco is using a spread bet account
…you account is proberly in JPY while Fran’s is in euro. try and add more equity
got it 🙂
Thanks
Im using IG INDEX
why does it matter if I may ask?
Yeah my currency is in JPY for this pair
Yeah my currency is in JPY for this pair added 1,000,000 yen still no trades
Hi Francesco
my EURO account no trade.
mm ok.. Im really wondering what’s going on..
I’m testing it across many different currency pair and bund and seems to stay up quite nicely in most of the cases and most of timeframes.. I have a UK account but it shouldn’t make any difference
mm ok.. Im really wondering what’s going on..
I’m testing it across many different currency pair and bund and seems to stay up quite nicely in most of the cases and most of timeframes.. I have a UK account but it shouldn’t make any difference.
Try to use constant position maybe?
Nicolas was it working properly when you reviewed it?
Is it for working for anyone of you?
hi Francesco,
it seems to me that it works with any instrument but currencies.
It’s possible ?
I think the problem lies with the ‘volok’ parameter (line 19 in original code). I have rewritten the code to systematically determine where the problem might be (my flatbefore time is different due to my timezone).
Unfortunately using tick by tick testing yields negative results. Without tcik by tick the code performs very well in test period March 2013 to Current except for a period between March and October 2014 where there is a large draw down period.
//USDJPY TF 1hr spread 1.5 pips
DEFPARAM CUMULATEORDERS = FalseDEFPARAM PRELOADBARS = 14DEFPARAM FLATBEFORE = 010000DEFPARAM FLATAFTER = 200000
possize = 1//round(100/averagetruerange[14])
n = 3 // number of consecutive bars with the same colourfastma = 5 /// period of fast moving averageslowma = 100// period of slow moving averageadxval = 25 // take position only if there is a trendt = 7 // multiplier for exit strategyatr = averagetruerange[14](close)atrmin = 10 // take poistion only if there is enough volfastav = average[fastma,1](close)slowav = average[slowma,1](close)
red = 0green = 0For i = 1 to nIf close[i] > open[i] thenred = red + 1ElsIf close[i] < open[i] thengreen = green + 1EndIfNext
volok = 1 //no volume for securityIf atr > atrmin thenvolok = 1EndIf
ctrend = 0If adx[14] > adxval Thenctrend = 1EndIf
if countofposition = 0 and red >= n and ctrend = 1 and fastav > slowav and volok = 1 thenbuy possize contract at marketendif
if countofposition = 0 and green >= n and ctrend = 1 and fastav < slowav and volok = 1 thensellshort possize contract at marketendif
set target pprofit t*atrset stop ploss 2*t*atr
Hi Junaji, thank for your comments, I have always backtested in tick by tick mode. Please do not use any flat bore and flat after. I forgot to remove them from the original code. With flatbefore and flatafter the results are negative.
Best
@ DEIO
what do you mean? you mean that id doesnt give you any trade for currencies?
From what I have been looking at, it works well with USDCAD, GBPJPY, CADJPY and BUND
HI There
The security does not have volume but does have volume but does have ATR as you can add the ATR indicator.
So I dont think that is the issue.
HI There
The security does not have volume but does have ATR as you can add the ATR indicator.
So I dont think that is the issue.
Guys can you pls let me know if any one of you can run the code at all?
Thanks
Think Juan is right can run it on dax but not on forex pairs.Could have something to do with volume. As volume is not available on forex pairs on some accounts.
Guys volok means VOLATILITY ok.
there is no reference to volume in this code whatsoever
are you all using v 10.3?
Hi Francesco, I did use v10.3, however like the others I am having trouble running it on FX pairs on the original code. But the re-written code work well.
Your strategy also adapts very well to other markets. I have managed to get some good results out of it on some of the indexes.
It’s a very cool idea. Well Done
ok I see, many thanks, so you are not able to replicate the results on USDJPY right?
Unfortunately not. However it is possible that there is a setting somewhere on your system that is different to ours.
The strategy however still holds merit as I can produce decent results on other markets, proving it is a valid strategy to outperform a given market.
I have strategies in place that outperform it on the 1 hr but the results are still good and the strategy can definitely be built upon.
Ok thank you, I hope we will be able to find what is missing so that we can share our results more efficently in the future.
Ciao
The problem is at line 19, you should adapt the ‘atrmin’ variable to the pointsize of the current security:
volok = volindic > atrmin*pointsize
I think there might be a problem in the stoploss size, you should use “loss” instead of “ploss”, to be perfectly compatible with any instrument:
set stop loss 2*t*volindic
(like you did correctly for the takeprofit).
Thanks! I hope this will sort the issues some people were experiencing
Hi Francesco78 are you opening a Forum thread for testing / discussions on this yet another excellent bot of yours. Oops I didn’t even look … maybe you have already? 🙂
Seems to work fine for me on USD/JPY. but I am also on IG spreadbet, I’ll compare direct with your results tomorrow.
GraHal
Hi Grahal, thanks for your attention to my strategy, yes there is a forum thread I opened.
https://www.prorealcode.com/topic/ncandle-and-reversal-filtered-strategy/
THIS doesn’t work. no operations
ciao Dario,
try to change line 19 with
volok = volindic > atrmin*pointsize
Let me know.
Best
It seems it doesn’t work, even with the change proposed by Francesco78. In fact the maximum amount of winning trades in my nacktest simulation is under 10%…
Where’s my error? I apply the code on USDJPY at 1-hour frame, wth 1.5 pips, etc.
Hi Pepmartorell, please let’s continue the discussion on the forum thread so that we can share pictures, I would like to see a snapshot of your screen when you try the backtest in order to help you.
Hi Pepmartorell, please let’s continue the discussion on the forum thread so that we can share pictures, I would like to see a snapshot of your screen when you try the backtest in order to help you.
this is the link
https://www.prorealcode.com/topic/ncandle-and-reversal-filtered-strategy/
Hi there,
i am looking at your Strategy however when you put in automatic trading mode its saying that I have to remove all the variables from the “Probacktest” and to replace them with specific numeric values in the code of the trading system? can you help me as I am not sure how to do this? Thank you