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 avatar
Related users ' posts
murre87 No Stoploss?
bousalahane Hi Rajesh Deshpande, Thank you for this code, I see that the code is perfect, but the posit...
Bibi83 Bonsoir à tous Je viens de backtest la stategie sur EUR/USD en graphique 1H sur 1 mois et ...
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
6 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
6 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?
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...
gustavobp Buenos dias Nicolas, al agregar tu indicador no me reconoce la variable Price ni en la linea...
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.
Francis3332 Bonjour à tous, J'aime beaucoup cet indicateur et j'aimerais pouvoir l'utiliser sur la dern...
AGTrader Interesante, muy visual Doc. Felicidades!!!
Andraxx simplemente impresionante Dom...te sigo en youtube. Me ha gustado tu canal. Gracias por comp...
Caribeengeek Bonjour j’avais vu que vous proposiez d’écrire des codes pour ceux qui s’y connaisse pas Mai...
Caribeengeek Les devises unité
Nicolas Merci d'utiliser le forum pour les demandes de programmation personnalisée
Francesco78 Jan Wind, I obtain it from the backtest
Kris75 Hi Francesco, The results are totally different with the tickbytick mode; it becomes a losin...
UkDownUnder Takes to long!
jebus89 Big thanks for sharing this :) Seems to work as expected, good stuff.
xpe74 Top visually, and very efficient. I would like to integrate it as a value in a small algo i...
WarningTrading Comment peut on la comparer ? comme ceci ? cela ne me donne plus le message d'erreur manque...
sally31120 Bonjour, je n'arrive pas à créer ce screener close > supertrend extended2[1] la réponse...
Nicolas voir ce sujet pour un screener basé sur Supertrend Extended: https://www.prorealcode.com/top...
JanWd Tried the code, nice concept, seems to work quit well for US/EUR 2hrs, Other markets seems n...
JR1976 Simple and nice code , congrats !!! Seems work well with TIme frame 1 h
phanz Hi all, Sorry revisiting an old post. This algo is simple, and simplicity is the ultimate ...
juanj And the point of violation is the close of the candle that violates the line by generating a...
juanj For the latest version of the strategy or to follow updates and developments see the thread ...
phanz i backtested it with 10K units of EURUSD 1 hour i get an equity curve that is going one way ...

Top