deleted_account

Trendfollower EUR/USD 5M

Category: Strategies By: deleted_account Created: May 3, 2017, 6:32 PM
May 3, 2017, 6:32 PM
Strategies
9 Comments
Trendfollower EUR/USD 5M

The algorithm is searching for situations, where the range of the last 8 bars is wider than 60 pips. Opens a long position if the close is above and a short positions if the close is below the range.

Unfortunately I only have backtest data since 11/2015 for the 5 minute chart. Maybe somebody can backtest with more data? Thanks!

// Timeframe M5
// EURUSD (IG - Markets)
// Spread 2 pips

DEFPARAM CumulateOrders = False
DEFPARAM FLATBEFORE = 080000
DEFPARAM FLATAFTER = 210000

IF (abs(close-open[8]) > 0.006) THEN
 IF (close > open[8]) THEN
  BUY 1 CONTRACTS AT MARKET
  SET STOP pLOSS 50
  SET TARGET pPROFIT 225
 ENDIF

 IF (close < open[8]) THEN
  SELLSHORT 1 CONTRACTS AT MARKET
  SET STOP pLOSS 50
  SET TARGET pPROFIT 225
 ENDIF
ENDIF

 

Download
Filename: trend-following-strategy-EURUSD.png
Downloads: 179
Download
Filename: trend-follower-EURUSD-5M.itf
Downloads: 494
deleted_account
deleted_account New
This author is like an anonymous function, present but not directly identifiable. More details on this code architect as soon as they exit 'incognito' mode.
Author’s Profile

Comments

Inertia
9 years ago
#

Hi Bjoern, I was playing around with your code this morning (EUR/USD 5'). Thank you to the community for the piece of code (Despair for the MM module...).

Inertia
9 years ago
#

<// Timeframe M15 // EURUSD (IG - Markets) // Spread 2 pips DEFPARAM CumulateOrders = False DEFPARAM FLATBEFORE = 080000 DEFPARAM FLATAFTER = 210000 TS = 25 // 35 default SL = 50 PT = 80 m = 8 // 8 default once startpositionsize=1 once positionsize=startpositionsize once flatoverweekends=1 once startequity=0 once Reinvest=1 if reinvest then //------------ Fixed fraction money management ---------- once multiplier=1 once delta=100 // newlevel then multiplier=multiplier+1 oldlevel=newlevel newlevel=strategyprofit+startequity+multiplier*fraction positionsize=multiplier*startpositionsize elsif strategyprofit+startequity=2 then newlevel=strategyprofit+startequity oldlevel=strategyprofit+startequity-multiplier*fraction multiplier=multiplier-1 positionsize=multiplier*startpositionsize endif Endif if flatoverweekends then //--------------- daylight-saving corrections ------------------ if currentmonth=3 and day>=15 then dlc=10000 elsif currentmonth=11 and day=(223000-dlc)) else fridaynight=0 endif if fridaynight then if longonmarket then sell at market elsif shortonmarket then exitshort at market endif endif REM Conditions to enter long hereafter IF (abs(close-open[m]) > 0.006) THEN IF (close > open[m]) THEN BUY positionsize CONTRACTS AT MARKET SET STOP pLOSS SL SET TARGET pPROFIT PT ENDIF ENDIF //trailing stop trailingstop = TS if not onmarket then MAXPRICE = 0 priceexit = 0 endif //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 SET STOP ploss SL// >

imokdesign
9 years ago
#

Hi Everybody,

when I look at the strategy I felt the need to implement a Moneymanagement-System. Because I cant Prog this by myself, I took Kasper's reinvestment version Code from "ALE's Fractals breakout intraday Strategy EUR/USD 1H" and ty to implement it. Mayby it looks a little bit rudimentary, but it seems to be working! I couldn't believe my eyes! I also take some different Numbers. Does someone get similar results (Spread: 1,5 Pips)?

 

Here is the code:

 

// Timeframe M5// Timeframe M5
// EURUSD (IG - Markets)
// Spread 2 pips

DEFPARAM CumulateOrders = False
DEFPARAM FLATBEFORE = 080000
DEFPARAM FLATAFTER = 210000

Reinvest=1
if reinvest then
Capital = 10000
Risk = 1//0.1//in % pr position
StopLoss = 26
REM Calculate contracts
equity = Capital + StrategyProfit
maxrisk = round(equity*(Risk/100))
MAXpositionsize=5000
MINpositionsize=1
Positionsize= MAX(MINpositionsize,MIN(MAXpositionsize,abs(round((maxrisk/StopLoss)))))//*Pointsize))))
else
Positionsize=1
StopLoss = 26
Endif

IF (abs(close-open[2]) > 0.006) THEN
IF (close > open[2]) THEN
BUY positionsize CONTRACT AT MARKET
set stop loss stoploss*pointsize
SET TARGET pPROFIT 191
ENDIF

IF (close < open[2]) THEN
SELLSHORT positionsize CONTRACT AT MARKET
set stop loss stoploss*pointsize
SET TARGET pPROFIT 191
ENDIF
ENDIF

I would like to upload a picture but for some reason it did not work.

Results in 3 Jears on 15min Timeframe (EUR/USD) from Juli 2015 till now:
From 10.000 to 22.344 $ (without MM)
From 10.000 to 236.428 $ (with MM)

 

GraHal
9 years ago
#

I started he thread below as I get the results shown on image below. Please help on the Forum thread.

 https://www.prorealcode.com/topic/trendfollower-eurusd-5m/

juanj
9 years ago
#

Also change the ATR multiplier to 2 instead of 3. Slightly better drawdown.

juanj
9 years ago
#

Here are another small tweak (just check Flatafter time as I am in a different timezone);

// Timeframe M5
// EURUSD (IG - Markets)
// Spread 2 pips

DEFPARAM CumulateOrders = False
DEFPARAM FLATBEFORE = 080000
DEFPARAM FLATAFTER = 220000

possize = 5
f = 12
pips = 0.0019
rng = 0
HighestClose = close[f]
LowestClose = close[f]

For i = 1 to f Do
IF (abs(close-open[i]) > pips) THEN
rng = rng + 1
EndIf

If close[i] > HighestClose then
HighestClose = high[i]
ElsIf close[i] < LowestClose then
LowestClose = close[i]
EndIf
Next

If rng >= 4 and (abs(close-open) > pips) then

IF close > HighestClose THEN
BUY possize CONTRACTS AT OPEN + averagetruerange[f](close) stop
SELLSHORT possize CONTRACTS AT OPEN - averagetruerange[f](close)*3 stop
ElsIF close < LowestClose THEN
SELLSHORT possize CONTRACTS AT OPEN - averagetruerange[f](close) stop
BUY possize CONTRACTS AT OPEN + averagetruerange[f](close)*3 stop
ENDIF

EndIf

SET STOP pLOSS 50
SET TARGET pPROFIT 320

 

juanj
9 years ago
#

Here is another spin on your code that aslo works nicely;


// Timeframe M5 // EURUSD (IG - Markets) // Spread 2 pips DEFPARAM CumulateOrders = False DEFPARAM FLATBEFORE = 080000 DEFPARAM FLATAFTER = 220000 possize = 1 rng = 0 HighestClose = close[8] LowestClose = close[8] pips = 0.0019 For i = 1 to 8 Do IF (abs(close-open[i]) > pips) THEN rng = rng + 1 EndIf If close[i] > HighestClose then HighestClose = high[i] ElsIf close[i] < LowestClose then LowestClose = close[i] EndIf Next If rng >= 4 and (abs(close-open) > pips) then IF close > HighestClose THEN BUY possize CONTRACTS AT MARKET ElsIF close < LowestClose THEN SELLSHORT possize CONTRACTS AT MARKET ENDIF EndIf SET STOP pLOSS 50 SET TARGET pPROFIT 225

 

bjoern
9 years ago
#

Thanks!!!

Elsborgtrading
9 years ago
#

Thumbs up for considering your stop loss and take profit that generates RR more that 1

Cheers Kasper

ProRealCode ProRealCode
Loading...