True Range Breakout EUR/USD

True Range Breakout EUR/USD

Simple 1 hour intraday trading strategy on EUR/USD (mini).

This automated trading strategy takes orders if the current candlestick is wider than the 12 periods average true range. Trades direction are chosen with this breakout candlestick color. If the current candlestick is green, then the trend seems bullish and a long order is initiated. If the breakout candle is red, a new bearish trend is forming and a short trade is launched at market.

It is a simple and a quite effective strategy with 3/1 risk reward ratio.

 

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. Nicolas • 04/18/2017 #

    So simple and nice strategy. Thanks a lot for our enlightening of this particular setup bjoern! It deserves to spend some time trying to find ways to improve!

    • avatar
      bjoern • 04/18/2017 #

      Thanks 🙂

  2. ALE • 04/18/2017 #

    Very Nice!

  3. avatar
    bjoern • 04/18/2017 #

    Works also good on BUND – 2H – Multiplicator 1 – TP/SL 60 for each long and short

  4. victormork • 04/18/2017 #

    Very nice! I like the look on BUND.

  5. Francesco78 • 04/18/2017 #

    Very nice.
    Would it be possilbe to see the test results on the bund?
    I dont have enough data on my PRT I guess its because is not a premium account…
    Thanks!

    • avatar
      bjoern • 04/18/2017 #

      Sure, please find attached the backtest for BUND tick-by-tick

  6. Francesco78 • 04/18/2017 #

    Hi Bjoern
    I have added a filter in your code to avoid “choppy market” by using an oscillator defined by the difference between the 50 and the 200 moving average, divided by the close and set the condition for the abs of this indicator to be greater than x%  and optimized again.
     
    // EUR/USD(mini) – IG MARKETS// TIME FRAME 1H// SPREAD 2.0 PIPS
    DEFPARAM CumulateOrders = FalseDEFPARAM FLATBEFORE =080000DEFPARAM FLATAFTER =210000
    indicator1 = Average[200](close)indicator2 = Average[50](close)c1 = (indicator2-indicator1)/closec2= abs(c1)<0.012
    atr = AverageTrueRange[30]
    if c2 thenm = 2profits = 130losses = 40// LONGIF (abs(open-close) > (atr*m) and close > open) THENbuy 1 CONTRACTS AT MARKETSET STOP pLOSS lossesSET TARGET pPROFIT profitsENDIF
    //SHORTIF (abs(open-close) > (atr*m) and close < open) THENsellshort 1 CONTRACTS AT MARKETSET STOP pLOSS lossesSET TARGET pPROFIT profitsENDIFendif
    I could only do it for the last 3 years but I got nice results so I write the code here.
     

    • avatar
      bjoern • 04/18/2017 #

      Thanks! Will take a look at it!

    • avatar
      bjoern • 04/18/2017 #
  7. Francesco78 • 04/18/2017 #

    Thank you!

  8. Francesco78 • 04/18/2017 #

    Hi Bjoern, I have created a strategy largely based on your nice and simple idea applied on Dax, and created a forum topic for it 
    https://www.prorealcode.com/topic/dax-adaptable-strategy-breackoutmean-reversion/
    Many thanks
    Francesco 

  9. victormork • 04/18/2017 #

    Hi, I would just like to share my own take on this strategy. I’m using 30 min on EURUSD but it works on 1H as well.
    //-------------------------------------------------------------------------
    // Main code : ATR breakout EURUSD 30M
    //-------------------------------------------------------------------------
    // EUR/USD(mini) - IG MARKETS
    // TIME FRAME 30M
    // SPREAD 2.0 PIPS

    DEFPARAM CumulateOrders = False
    DEFPARAM Preloadbars = 100
    DEFPARAM FLATBEFORE = 100000
    DEFPARAM FLATAFTER = 230000

    once optimization = 1
    once stopandtarget = 2 // 1=dynamic, 2=fixed

    // VALUES
    If optimization = 1 then
    atrtargetlong = 1 //2
    atrsllong = 1 //1
    atrtargetshort = 4 //2
    atrslshort = 2 //1
    atrperiod = 25
    atrmulit1 = 3
    atrmulit2 = 2
    atrtrailingstop = 1.85

    elsif optimization = 2 then
    atrtargetlong = 1 //2
    atrsllong = 1 //1
    atrtargetshort = 4 //2
    atrslshort = 2 //1
    atrperiod = 25
    atrmulit1 = 3
    atrmulit2 = 2
    atrtrailingstop = 0.5
    endif

    // INDICATOR
    atr = AverageTrueRange[atrperiod]

    // LONG ENTRY
    b1 = (abs(open-close) > (atr*atrmulit1))
    b2 = close > open
    b3 = b1 AND b2

    IF b3 THEN
    BUY 1 CONTRACTS AT MARKET
    ENDIF

    //LONG STOP AND TARGET

    //Dynamic stop and target
    If stopandtarget = 1 then
    SET TARGET pPROFIT (atr * atrtargetlong) / pointSize
    SET STOP PLOSS (atr * atrsllong) / pointSize

    //Fixed stop and target
    elsif stopandtarget = 2 then
    SET TARGET pPROFIT 120
    SET STOP PLOSS 40
    ENDIF

    //SHORT ENTRY
    s1 = (abs(open-close) > (atr*atrmulit2))
    s2 = close < open
    s3 = s1 AND s2

    IF s3 THEN
    SELLSHORT 1 CONTRACTS AT MARKET
    ENDIF

    // SHORT STOP AND TARGET

    //Dynamic stop and target
    If stopandtarget = 1 then
    SET TARGET pPROFIT (atr * atrtargetshort) / pointSize
    SET STOP PLOSS (atr * atrslshort) / pointSize

    //Fixed stop and target
    elsif stopandtarget = 2 then
    SET TARGET pPROFIT 120
    SET STOP PLOSS 40
    ENDIF

    //trailing stop
    trailingstop = (atr * atrtrailingstop) / pointSize

    //resetting variables when no trades are on market
    if not onmarket then
    MAXPRICE = 0
    MINPRICE = close
    priceexit = 0
    endif

    //case SHORT order
    if shortonmarket then
    MINPRICE = MIN(MINPRICE,close) //saving the MFE of the current trade
    if tradeprice(1)-MINPRICE>=trailingstop*pointsize then //if the MFE is higher than the trailingstop then
    priceexit = MINPRICE+trailingstop*pointsize //set the exit price at the MFE + trailing stop price level
    endif
    endif

    //case LONG order
    if longonmarket then
    MAXPRICE = MAX(MAXPRICE,close) //saving the MFE of the current trade
    if MAXPRICE-tradeprice(1)>=trailingstop*pointsize then //if the MFE is higher than the trailingstop then
    priceexit = MAXPRICE-trailingstop*pointsize //set the exit price at the MFE - trailing stop price level
    endif
    endif

    //exit on trailing stop price levels
    if onmarket and priceexit>0 then
    EXITSHORT AT priceexit STOP
    SELL AT priceexit STOP
    endif

     

  10. mckubik • 04/18/2017 #

    Thanks. I will run a Test. 

  11. poonsl2828 • 04/18/2017 #

    Hi! bjoern
    May i know what timing should i change for time zone (Singapore (GMT +8:00)

    DEFPARAM FLATBEFORE =080000
    DEFPARAM FLATAFTER =210000

avatar
Register or

Likes

avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar
Related users ' posts
kats Bonjour, j'ai essayé de faire afficher cet indic en temps 5 mn sur le 1 mn et c'est Hiroshim...
Nicolas Il suffit d'ajouter l'instruction TIMEFRAME(5 minutes,updateonclose) en tête du code
diegofe_2000 cordial saludo Nicolas, una pregunta senciLla : Como coloco un STOPS en un maximo o un mini...
StephFor //ind1 = ZigZagPoint[2*averagetruerange[200]](close) avr = 3 //3% ind1 = ZigZag[avr](close...
Manu L. @Steph un grand merci pour ton aide mais :-( J'ai copier le code tel quel mais cependant j...
AlphaMauss Je n'ai pas réussi à faire fonctionner l'indicateur avec le code fourni en commentaire sur P...
Nicolas Oui c'est possible. Merci de ne pas poster des demandes qui sont hors sujets. Pour les deman...
Igor Merci pour cet itf. Question : comment faire pour instruire un screener ?
Nicolas tester le croisement du Close avec la première valeur de l'indicateur : "TrailingStop", faci...
Nicolas Poni qui la tua domanda se è correlata a questo indicatore, altrimenti apri un nuovo argomen...
PhilipSchultz Hi Nicolas, can i backtest this indicator? And if so, how do i do it? I have tried, but don´...
Nicolas Sure, use the forums to create a new topic to ask for it Please respect the posting rules ...
mohamed bonjour nicolas! j'aimerais pouvoir changer les couleurs des chandelier directement depuis ...
Nicolas remplacer les valeurs de coloured(0,255,0) par coloured(r,g,b) et ajouter ces noms de variab...
mohamed merci Nicolas!
Nicolas You should open a new topic to discuss about the strategy and its coding.
dvlukic Hello Nicolas, How could plot this indicator over the price series? Thanks Dave
Nicolas Just add it on the price series.
vinit0412 I tried using the above strategy but since IG doesnt allow partial closing of the positions....
Rajesh Deshpande Updated the code which has now 100% winning rate in last 2yrs. Yes takes average 1 trade per...
murre87 No Stoploss?
LucioleLucide Clean view, thanks for sharing
dertopen hi where i can found the window for candle configuration?
paolosab69 Ciao! . I have seen the pictures that explain this metod but i don't understand when is mome...
Thomas
3 years ago
Thomas Como? no intiendo. Can you write in english . It works! Download the itf file.
Thomas New Version comin soon...
CHARLESRACHELLE OLA NAO SERVE PARA MT4?
juanj
3 years ago
juanj I have actually completely redesigned this indicator with loads of improvements, so will res...
Janfi Hello, I'm new to ProRealCode and I do not understand the following summation[n](indicator...
Kaci It seems he's just checking that the previous MACD is < 0 for maximum one period ? I'...
Daniel Martin Hi do you know how have and entry after the second cross? There is crosses below 0 and cross...
Maik2404 es sind leider nur long Positionen und keine Short zu erkennen.
Maik2404 Vytautas: es bleibt aber nur bei long Auslösungen
ullle73 this one is not a winner, have backtested it on almost all pairs, does not have an edge
ottimo Thank you Nicolas, great indicator, N. 1
tikigai Merci Nicolas! First Happy new Year 2020. Very good indicator BUT (yes the french "oui, m...
Nicolas Whats prorealtime version? Did you try in version prior to v11? indicator's call and loop ca...
Marcos Alvarez Dominguez Hello Nicolas, is it possible to stablish a bullish screener for this indicator when the cen...
Nicolas Please open a topic in the screener section to ask for this specific query.
zaher123 Hello, the indicator doesn't show up anything on the screen, any suggestions please?
Tradingrob Hi Nicolas, when i upload this indicator in my list and use it as indicator. I get a totally...
Nicolas Apply it on the price chart. The indicator plot just one single line. There are two in the...
jamesoc Hi Nicolas, do you happen to know if there is an indicator that can be applied to charts, to...
Ass13 bonjour nicolas j'aime bcoup votre indicateur
bharatjai Script 'Adaptive ATR' has been saved line 24: no viable alternative at input 'lr' Gettin...
Nicolas download the itf file and import it into your platform.

Top