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
Operating in the shadows, I hack problems one by one. My bio is currently encrypted by a complex algorithm. Decryption underway...
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...