Code « Big Candle » (à améliorer)

Bonjour,

 

Enfin, j’ai réussi à finaliser un code sur lequel je planchais.

Il s’agit d’une stratégie en graphes M15, que j’applique au Dax.
Nous jouons dans la tendance d’une « grosse bougie », qui casse le plus haut des 8 dernières bougies, et dont l’amplitude est supérieure à l’ATR(24).

Stop loss 20 points, take profit 40 points.

 

Et là, je suis prêt à crier « VICTOIRE » !

En effet, la courbe d’évolution des gains a l’air excellente ; trop belle même, peut être.
Pourtant, il n’y a pas l’air d’y avoir d’erreurs.

backtest BIG candle sans spread

 

Je décide de passer à l’étape suivante.

Je mets le spread : 1 point.

 

Et là, catastrophe !

backtest BIG candle avec spread

 

CONCLUSION :

Il est vraiment très difficile de mettre au point des stratégies efficaces sur les timeframes inférieurs.

En effet, non seulement les signaux sont moins bons, mais de plus le spread jour clairement contre nous.

Sur les timeframes supérieurs, la stratégie peut sembler profitable, mais pas sur toutes les périodes.

 

Voici par exemple le test en H1, avec 1 point de spread, SL à 75 points, TP à 1,5* le SL.

backtest BIG candle H1 avec spread

 

 

Voici le code du BACKTEST : 

DEFPARAM CumulateOrders = False 
n = 1
Haut = highest[8](high[1])
Bas = lowest[8](low[1])
amplitude = abs(close - open)
Ctime = time >= 090000 and time <= 170000

// CONDITIONS ACHAT
c1a = close > open
c2a = close > Haut
c3a = amplitude > AverageTrueRange[24]

IF c1a AND c2a AND c3a AND Ctime THEN
BUY n shares AT MARKET ENDIF

// CONDITIONS VENTE
c1v = close < open
c2v = close < Bas
c3v = amplitude > AverageTrueRange[24]
IF c1v AND c2v AND c3v AND Ctime THEN
sellshort n shares AT MARKET ENDIF

// STOP LOSS & TAKE PROFIT
sl = 20     // 20 en M15   75 en H1
set stop loss sl
set target profit sl*2 

 

MISE A JOUR : FEVRIER 2020 

Un de mes correspondants a tenté une amélioration sur l’EURUSD en graphes H1.
Il a backtesté sur toutes les données historiques dont il disposait : depuis 2015

 

.

J’ai donc backtesté sur la totalité des données historiques en tick par tick, ce que me permet mon compte ProRealTime CFD.

Hélas, les résultats ne sont plus les mêmes !

.

.

Voici le code du BACKTEST :

// EURUSD H1 //
 
DEFPARAM CumulateOrders = False
DEFPARAM PreLoadBars = 4000

// TAILLE DES POSITIONS
n = 1

Haut = highest[25](high[1])
Bas = lowest[25](low[1])
amplitude = abs(close - open)
MME1 = ExponentialAverage[40](close)
POWER = ADX[6]

Ctime = time >= 090000 and time <= 170000
 
// CONDITIONS ACHAT
c1a = close > open
c2a = close > Haut
c3a = amplitude > AverageTrueRange[5]
c4a = MME1 > MME1[2]
c5a = POWER > 22
 
IF c1a AND c2a AND c3a AND c4a and c5a and Ctime THEN
BUY n contract AT MARKET
ENDIF

// CONDITIONS VENTE
c1v = close < open
c2v = close < Bas
c3v = amplitude > AverageTrueRange[5]
c4v = MME1 < MME1[2]
c5v = POWER > 22

IF c1v AND c2v AND c3v AND c4v and c5v and Ctime THEN
sellshort n contract AT MARKET
ENDIF
 
// STOP LOSS & TAKE PROFIT
set stop ploss 200
set target pprofit 70
Share Button