Breakout DAX 15Min

Breakout DAX 15Min
Firstly, a big thank you to Nicolas for this great site and for originally introducing us to the CAC Breakout using the same code here.

I set about testing this strategy on other markets due to the fact you can backtest 8 years of data with 200,000 units on the 15Min time-frame. The other massive plus is no fake profits and only 26, 0 bars in 1500 trades! :)

In this version I am using a fixed position size but you can activate the re-invest system if you are happy with that. It makes for an interesting ride!

I stuck to the rules of not over optimising/curve fitting by using an IN/OUT sample as documented here. This ran from July 2008 - Jan 2014.

The results above are £1 Per Point, £1000 Start and 1.5 Spread.

I am live trading this with real money with minimum stakes to test. IG have now reduced the PPP from £2 to £1 just recently. This is very handy for forward live testing.

All times in the code are UK so please adjust to your timezone.

I have some more of these ported to other markets but need to spend a little more time getting them right before posting in the library. Expect them soon.

I have not had enough time to test different time frames. Maybe I will try that next if time allows.

Good luck and enjoy your weekend.

// Main code : Breakout ProOrder EN DAX
// We do not store data until the system starts.
// If it is the first day that the system is launched and if it is afternoon,
// it will wait until the next day for defining sell and buy orders.

//All times are UK Time Zone

DEFPARAM PreLoadBars = 0

// Position is closed at 20h00 PM
DEFPARAM FlatAfter = 200000

// No new position will be initiated after the 16:00PM candlestick. Any existing orders cancelled at 16:30pm
LimitHour = 161500

// Market scan begin with the 15 minute candlestick that closed at 8:30AM
StartHour = 081500

// The 24th-31st days of December will not be traded because the market closes early.
IF (Month = 5 AND Day = 1) OR (Month = 12 AND (Day = 24 OR Day = 25 OR Day = 26 OR Day = 30 OR Day = 31)) THEN
TradingDay = 0
TradingDay = 1

// Variables that would be adapted to your preferences
if time = 074500 then
//PositionSize = max(1,1+ROUND((strategyprofit-1000)/1000)) //gain re-invest trade volume
PositionSize = 1 //constant trade volume over the time
MaxAmplitude = 170
MinAmplitude = 22
OrderDistance = 9
PourcentageMin = 19

// Variable initilization once at system start
ONCE StartTradingDay = -1

// Variables that can change in intraday are initiliazed
// at first bar on each new day
IF (Time <= StartHour AND StartTradingDay <> 0) OR IntradayBarIndex = 0 THEN
BuyTreshold = 0
SellTreshold = 0
BuyPosition = 0
SellPosition = 0
StartTradingDay = 0
ELSIF Time >= StartHour AND StartTradingDay = 0 AND TradingDay = 1 THEN

// We store the first trading day bar index
DayStartIndex = IntradayBarIndex
StartTradingDay = 1
ELSIF StartTradingDay = 1 AND Time <= LimitHour THEN

// For each trading day, we define each 15 minutes
// the higher and lower price value of the instrument since StartHour
// until the buy and sell tresholds are not defined
IF BuyTreshold = 0 OR SellTreshold = 0 THEN
HighLevel = Highest[IntradayBarIndex - DayStartIndex + 1](High)
LowLevel = Lowest [IntradayBarIndex - DayStartIndex + 1](Low)

// Spread calculation between the higher and the
// lower value of the instrument since StartHour
DaySpread = HighLevel - LowLevel

// Minimal spread calculation allowed to consider a significant price breakout
// of the higher and lower value
MinSpread = DaySpread * PourcentageMin / 100

// Buy and sell tresholds for the actual if conditions are met
IF DaySpread <= MaxAmplitude THEN
IF SellTreshold = 0 AND (Close - LowLevel) >= MinSpread THEN
SellTreshold = LowLevel + OrderDistance
IF BuyTreshold = 0 AND (HighLevel - Close) >= MinSpread THEN
BuyTreshold = HighLevel - OrderDistance

// Creation of the buy and sell orders for the day
// if the conditions are met
IF SellTreshold > 0 AND BuyTreshold > 0 AND (BuyTreshold - SellTreshold) >= MinAmplitude THEN
IF BuyPosition = 0 THEN
IF LongOnMarket THEN
BuyPosition = 1
BUY PositionSize CONTRACT AT BuyTreshold STOP
IF SellPosition = 0 THEN
IF ShortOnMarket THEN
SellPosition = 1

// Conditions definitions to exit market when a buy or sell order is already launched
IF LongOnMarket AND ((Time <= LimitHour AND SellPosition = 1) OR Time > LimitHour) THEN
SELL AT SellTreshold STOP
ELSIF ShortOnMarket AND ((Time <= LimitHour AND BuyPosition = 1) OR Time > LimitHour) THEN

// Maximal risk definition of loss per position
// in case of bad evolution of the instrument price
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?

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

  1. criscolci • 230 days ago #

    Great work! thanks for sharing

  2. Pjotterd • 228 days ago #

    Just asking, do I have to set a profit stop?

  3. Cosmic1 • 226 days ago #

    @Pjotterd You don’t have to but you can uncomment that part, Line 112. I am not running it with one.

    @GraHal Yes all Nicolas’ hard work. Simply a port from me.

  4. Cosmic1 • 226 days ago #

    A shame today’s fall was not captured but it fell outside of spec. Must be trusting in the backtest and IN/OUT sample. A good week overall for this strat though so cannot complain.

  5. traderollie • 223 days ago #

    Hi, I am going to use this system tomorrow with £1 trades. I’ll post my results. Do you have a direct email by any chance?



  6. Vish • 208 days ago #

    Hi … Thanks a lot for sharing this strategy. I have backtested this and works fine on DAX. Only concern is bigger position size. It does not seem to behave well if I have a position size of 10 (for e.g.) Can you suggest if this strategy is supposed to work only with small position sizes ? 

  7. Cosmic1 • 206 days ago #

    Hi Vish,

    All works ok here.  I started it just now with 10k starting pot and £10pp. Ends up at £104,000 from Sept 2008 to present day.

  8. Vish • 202 days ago #

    Thanks Cosmic. It works for me too. That was a silly mistake. Last week went quite well with this strategy on live trading. Anyone here likes to share to share results how they are getting on with it in live environment.

  9. Cosmic1 • 202 days ago #

    Hi Vish, Yes it was a good Thursday and Friday where between DAX and DOW breakout +800 points were added. As we know there could be drawdown but it’s nice to have a bit of a buffer built up now.

  10. JakeDB • 189 days ago #

    I cannot get my time conversions correct for Sydney Australia to get any data for this code. 

    Not sure what i am doing wrong

  11. Cosmic1 • 189 days ago #

    @JadeDB What times are you putting in?

  12. sincitytrader • 46 days ago #

    I tried this one out recently,  and wasn’t profitable for me.

  13. Cosmic1 • 45 days ago #

    Yes, not great lately. I stopped this live at the end of last year. Will wait to see when the right time is to put it back on. Just shows you that even following all the rules to avoid curve fitting etc, algo’s can still bite you!

Register or


avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar
Related users ' posts
bjoern You are absolutely right, thank for your comment. Already working on an optimization while u...
bjoern Added a range filter for entering positions. Performance seems to be much better, even with ...
Nicolas Thanks!
ALE Thanks Paris
iramirez55 Bonita estrategia. Gracias ALE
ALE ... thanks I hope could help our community!
Dagge99 Why are you the only one sharing unfinished strategys that doesn't perform well? To help us ...
Nicolas What are you calling a finished strategy? This one has been coded by a request on forums, si...
clanli Hi Nicolas Thanks for a fantistic piece of code. I tried the following with really good res...
Elsborgtrading I have moved the development topic
Elsborgtrading Sometime along the way since I coded the Indicator something has change in PRT- at least I t...
Elsborgtrading Btw last code was a 10 min TF ver. 
Derek Nice strategy. Have you tried adding a stop loss since there are a few sharp drawdowns? I ...
Piston_Broke Non so .... da qui la mia domanda iniziale :-)
Piston_Broke Hi Derek. I have tried many different ways to apply SL's to this and similar versions of th...
Nicolas Indeed, if you are not willing to loose, you will always win. Averaging down losers can carr...
David You're always safer going Long especially with averaging down on an index as the probability...
Oskar Bergvall  I noted Davids and Nicolas remarks. Could it be possible to make an indicator for contraria...
bluetime6 Hello Nicolas. Can i ask you for something? I backtested your strategy in Dax 4H Timeframe...
Francesco78 Thank you Nicolas,  I have copied your nice indicator, but it shows in the lower part of th...
Abz  hi , you need to add the indicator from the "price" menu in chart
Francesco Thank you Abz!
2 months ago
Lotar Hi Plop61, thanks for your comment. To make the code for short positions is possible. But ...
JvdG Hi Lotar, your strategy raised my interest; I did some tests and made a few adjustments fit...
Nicolas You can send it to and I'll attach it here. Thanks for your sharing!
iramirez55 thanks for all
johnymon Hi Reiner, Many thanks for the  superb strategy.I just tried to back-test on prerealtime bu...
Reiner Hi Joy John, Navigator will allways sell at 9:00 at the first tdom and will accumulate a lo...
2 months ago
Elsborgtrading By adding the inside bar breakout failure candle, which is the next bar after the inside bar...
Wing Yes, investigate as much as you want. For more insight, you can view the linet1, linet2 etc....
CKW Hi Wing, Thanks for your sharing. I am still trying to breakdown & understand your code...
Wing Hello CKW. No, the parameter, 7 in this case, is used when calling the RSI indicator to ide...
Nicolas For everyone information, a discussion thread is ongoing here:
larouedegann Bonjour Nicolas, comment se fait-il qu'avec cette stratégie stop loss à 5 pips, PRT mettant...
Nacho Buenos días Raul, tengo puesto este sistema desde hace unos días en una cuenta demo en la ve...
pascal3431 Salut Doc , Je ne vois pas ce qui fait office de stop dans ce code .. un retour dans le nua...
Doctrading Bonjour, Il s'agit juste d'une stratégie où on est toujours en position : soit à l'achat / ...
pascal3431 Bonjour, après quelques essais sur EUR/USD au M15 en rajoutant(car sinon on est en perte) u...
Doctrading Nice Job ! Here is my version of the code :  KBO = 0 Tenkansen = (highest[9](high)+lowe...
Elsborgtrading Hi Triss. the File is in the post for download. There is nothing wrong with the code. Your e...
danhei Hi I am tryong to figure out how trist strategy works. I am new to pro real time. Can some...
Plop61 Hello,Thank you for sharing this beautiful strategy.Is it possible to indicate the code for ...
6 months ago
maxxb a ok quindi potrei anche non aver sbagliato nulla ... grazie ..  
sunandsea12345 scusate sono nuovo del forum ,dove posso chiedere come posso generare un codice che mi perme...
ALE Ciao Puo andare nel forum Supporto pro order In fondo troverai lo spazio per inserire un ...
fepabe Ciao Ale, porta pazienza ma facendo copia incolla del codice non mi restituisce alcun valore...
arke Hi Cosmic, I saw that you are able to do a backtest on DAX in 15Min timeframe till 6 years ...
David Somogyi Hello ALE I've been running your strategy in demo for the last two weeks, but it hasn't ent...