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
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...
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.
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.
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 ...
poonsl2828 Hi! Francesco I have test it on GBP/USD but it only have a trade on 9 Jun which i backtes...
ullle73 why not use 1h chart? has 95% hitrate
ullle73 i see most of positions are only 1 pip before exit?
Jean-Pierre Poulain When I buy and when I sell ?
Nicolas The featured image of the post do not deserve the indicator you are right, I attached other ...
Nicolas It is described in the post already :) The BUY/SELL signals are quite similar of what you ca...
imokdesign Hi Everybody, when I look at the strategy I felt the need to implement a Moneymanagement-Sy...
Inertia newlevel then multiplier=multiplier+1 oldlevel=newlevel newlevel=strategyprofit+startequi...
Inertia Hi Bjoern, I was playing around with your code this morning (EUR/USD 5'). Thank you to the...
fabio407 Thanks, Nicolas. Very useful. Would you tell me where to find what result conveys the functi...
Nicolas This is not an instruction of the programming language but a variable from this indicator (l...
fabio407 OK. I didn't notice it. Many thanks, Nicolas!
albertocampagna Sei grande Nicolas :-)
SAcht Dear Nicolas, Great work, thank you very much!I would love to use the indicator in ProScree...
SAcht btw: The above-posted ProScreener is supposed to show stocks for which the center line has i...
Samitha Prasanna Hi ALE, would you be able to provide the values for the below part of the code (time >=1...
Player Bonjour, J'ai testé cette stratégie sur EurUSD en 1 heures sur 10000 unités et le résultat ...
Player Vue du rapport du Backtest https://ibb.co/8BMrBz6

Top