EURUSD volatility breakout strategy

EURUSD volatility breakout strategy

Hi everyone.

I came up with this relatively simple strategy that gives nice results on EUR/USD and DAX on a 1 hour and 30 min timeframes.

The idea behind is the following:

I define the quantity of averagerange that represent the average of the last 3 days high/low range on price.

  • I take a long position if the 1 period ATR crosses above the averagerange  with a corresponding bull candle (volatility break on the upside)
  • I take a short position if the 1 period ATR crosses above the averagerange with a corresponding bear candle (volatility break on the downside)

Walk forward results are attached

Best

Francesco

 

 

Share this

Risk disclosure:

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 : How to import ITF files into ProRealTime platform?

PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials

  1. ALE • 06/06/2017 #

    Thanks Francesco, another good idea!

    • Francesco78 • 06/06/2017 #

      thank you Ale! Im starting to test it on other currency pairs and commodities and the results are quite promising. Ill open a thread once I have something concrete.

  2. ALE • 06/06/2017 #

    Ok! 

  3. 897148 • 06/06/2017 #

     I have imported Francesco’s EUR/USD breakout system but unfortunately does not seem to work.
    I just copied and pasted into PRT but get  gains of $0.10 per winning trade and losses of $56.59 per losing trade ( 59.72% winning trades. This on 1hr chart over 20 months from 06 Oct 2015 to 13 June 2017. Overall loss of $1636.7

  4. Francesco78 • 06/06/2017 #

    897148 
    I think it has to do with how EURUSD is quoted. if you see EURUSD = 11218 then it should work. If you see EURUSD = 112.18 then you need to account for this difference in the definition of the profits taking level
    So you need to change the code in the follwing way
    line 35 
    ///exit conditions
    set target pprofit pr*100

  5. 897148 • 06/06/2017 #

    Thanks Francesco. Tried *100 ( no change) and *10000 ( improvement but still woeful).

  6. 897148 • 06/06/2017 #

    Francesco apologies. I had spread set for a South African Index system and hadn’t changed it.
    Seems OK now . Regards

  7. Francesco78 • 06/06/2017 #

    great!

  8. PrinceMyshkin • 06/06/2017 #

    Hi Francesco, thanks for the interesting code.
    I am trying to learn to code and to improve my understanding of indicators. So, I have been trying to dissect other people’s codes. I’m still new so please forgive me if my comments are irrelevant!
    I was interested that you chose a 3 day (72hr) period for your ATR calc. Was there a theoretical reason for this?
    I have played around with the period and was interested by the results. Basically, efficiency improves (a bit) as the period increases (up to a point). Initially I was intrigued by this, but then after I thought about it I realised that I had probably just discovered that ATR doesn’t change much for EURUSD? Maybe I was effectively over optimising ATR. I suspect that the fact that your system works with a variety of ATR periods is a sign of robustness.
    p = 480 Gain 17.94%, Number of trades: 136, winning 58.82%, gain:loss 1.69, time in market 3.84%
    p= 600 G 20.15%, N o t: 137, winning 60.58%, g:l 1.82, t i m 3.88%
    p= 1200 G 22.95%, N o t: 130, winning 61.54%, g:l 1.99, t i m 3.66%
    p=2400 G 24.33%, N o t: 132, winning 59.85%, g:l 2.03, t i m 3.75%
    Also shorter p=14: G 24.95%, n o t: 248, winning 53.23%, g:l 1.67, t i m 6.51%
    Kind Regards

  9. Francesco78 • 06/06/2017 #

    hello Prince Myshkin. Thank you for the time you spent on my code. Im currently travelling, will reply to your question next week.

  10. PrinceMyshkin • 06/06/2017 #

    Enjoy your travels!

  11. Francesco78 • 06/06/2017 #

    Hi Prince Myshkin
    I was interested that you chose a 3 day (72hr) period for your ATR calc. Was there a theoretical reason for this?
    No, the 72hrs just represent a sort of average of the price range over the last 3 days. I did not optimize this variable as you can see from the code, it was just something I wanted to have a reference point.  The fact that the performance of the algo stay positive by changing the period is an encouraging fact, thanks for pointing that out.
    Best 
    Francesco 
     

  12. CKW • 06/06/2017 #

    Thanks Francesco for sharing.
    Equity curve in overall looks great and testing it on demo :). I observed some positions are in continuous losses e.g. Apr – Mid July 2017. I have tried optimized parameters but my case won’t improve the situation. Perhaps more filter may be required…

  13. Francesco78 • 06/06/2017 #

    Hi CKW thanks for your comment and for spending time on the steategies. The framework is very general and works on several assets. I think the best think is to employ many of this strategies to achieve diversification rather than trying to obtein the perfect equity curve on 1 single strategies. that being said any ideas will be mostly welcome! have a great day

  14. poonsl2828 • 06/06/2017 #

    Hi! Francesco

    I have test it on GBP/USD but it only have a trade on 9 Jun which i backtested it to current date of 2 Sep. How do i enable yr strategy to generate more trade.

  15. ullle73 • 06/06/2017 #

    why not use 1h chart? has 95% hitrate

  16. ullle73 • 06/06/2017 #

    i see most of positions are only 1 pip before exit?

avatar
Register or

Likes

avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar
Related users ' posts
Francesco78 does anyone still use this strategy? Seems like it doesnt work anymore
GraHal Hi Francesco78   doesn't work as in not great results? I was just going to give it another g...
GraHal Works good on the DAX @ 30 Sec TF over 100,000 bars ... maybe everything has speeded up by a...
verdi55 At least there should be some moving average that has also reverted into the opposite direct...
verdi55 In addition to the moving average, wait until at least one bar is completely back inside the...
rama This works excellent on range bound I tried , give 90% win rates on dax , 3 min chart. can s...
Doctrading Bonjour, Tu as raison, il faut faire attention à la fiabilité de certains backtests. Le pro...
Duccio Hi DocTrading, I've backtested your strategy and I notice that 75% of position have been cl...
Doctrading Hello,  No, I don't use this strategy on real account, because my own strategies (that you ...
Adolfo Onrubia Ups! Sorry. Variable "S" is to set an specific Spread if needed. Could be "0", or the distan...
GraHal Hi Adolfo, big thank you for your code, but I am a bit confused. Spread is the difference b...
Meta Signals Pro Hi, For me there is a mistake here L32 maxriesgo = round(equity*riesgo) => round(equ...
Doctrading Maybe you can also change the hourly beginning of the day (not 23PM but 12AM, OOH in french)...
Duccio Hi Doctrading,there is a way to control the max loss of the positions in this code? For exa...
Doctrading Hello, Yes, there is a command I think, but I don't know it. Nicolas knows it. You can als...
Dave Hi, I'm new to coding and have been trying to modify the code a little to backtest an idea I...
Nicolas Better use the forums for coding assistance please. You'll get more results there for sure.
Dave Apologies - only just learning the site layout. Maybe you could delete the post?
Nicolas You can try this code for buy and hold curve line: capital = 10000 mylot = 2 i1 = capi...
soukenson Bonjour Nicolas, Je ne comprends pas où ajouter le code que tu as a donné dans le code initi...
Nicolas Tu veux parler du code pour comparer avec le "buy and hold" ? Si oui, tu as tout ce qu'il fa...
Investment Account Wow great thanks ... looks good! Do I set the colour shades up from within the indicator 's...
avatar
Anonymous Thanks for your comments and yes, that is exactly how I set up the colour levels.
Vish Thanks I have added this in my watch list. Has anyone tried it yet ? Does it work on currenc...
Nicolas FR/Bonjour Steftonio, non pas de frais overnight calculé sur la durée du backtest, c'est une...
avatar
Anonymous Any reason why in 2016 this system is doing very bad respect the previous years?
Nicolas "very bad" is relative to the account equity. I do not forward test this strategy since I po...
EAxelsson Hi, shouldn´t it be or instead of and? if FiftyTwoWeekHigh = FiftyTwoWeekHigh[1] OR FiftyTwo...
qigley Line 4 has a redundant term "Close>EMA2." is not necessary as EMA2 will always be less t...
Mike.44 Thanks It a good job !
r.angel It seems that the formula needs a SQRT (that is Vyangzhang = SQRT(...))
RickTrader I think to have annualized view of this historical volatility you will need : Vyangzhang =...
Wisko But the BUY-trigger is below the High of the first two 15min-candels?
Nicolas That's right, because what we want is to enter the market quickly and not wait for the next ...
Wisko Then I don't understand the backtest data. Yesterday (28.9.) range was from ~ 4410,5 - 4450,...
Sofitech Bonjour. J'aimerais savoir s'il est possible de "truquer" un peu l'indicateur pour qu'il don...
Maz I actually like this very simple idea. It can also be useful for market micro-structure syst...
Nicolas Thanks Maz, I'll have a look tomorrow.

Top