Code « DAX Scalper » (à améliorer)

Bonjour à tous,

 

En m’inspirant d’autres stratégies, j’ai eu l’idée de tenter une stratégie de scalping sur le DAX.

 

A l’origine, j’avais tenté de reproduire une stratégie proposée sur un site internet, et qui semblait hyperprofitable car présentant une courbe de progression de capital très belle, trop belle !

Mais le backtest qui respectait précisément les conditions de la stratégie n’était pas profitable.

Je pense aussi que le backtest n’avait pas tenu compte du spread. Car lorsque je lance cette stratégie remodifiée par mes soins, elle est très performante sans spread, pas avec !

 

J’ai donc arrangé la stratégie en modifiant des paramètres, en rajoutant des filtres de tendance.

 

Règles d’entrée (LONG) : 

  • DAX, timeframe M15
  • Canal défini entre 08H et 10H
  • Positions prises de 10H à 14H30
  • ACHAT si : clôture croisant à la hausse le haut du canal ET filtre de tendance positif
  • filtre de tendance positif : Cours > Supertrend, MACD histogramme > 0 et MACD > MACD de la bougie précédente, DI+ > DI- et DI+ > DI- de la bougie précédente.
  • stop loss : 20 points
  • take profit : 4 points
  • clôture si le SL ou le TP n’est pas touché, en début de bougie suivante.

L’inverse pour les SHORTS

 

 

Voici le résultat du backtest SANS spread :

backtest DAX Scalper hors spread

 

Est-ce que je ferais confiance à 100% à ce backtest ?

NON.

Car il pourrait très bien y avoir plus d’une entrée et sortie par bougie (donc gains / pertes non évalués).

Et je n’ai pas ajouté le spread (1 point).

 

 

Voici le résultat du backtest AVEC spread de 1 point : 

backtest DAX Scalper avec spread

 

 

Triste conclusion…

Je mets cependant en ligne ce code, car je suis persuadé qu’il pourrait être amélioré et profitable.

 

 

 

Voici de code du BACKTEST : 

// DAX SCALPER
// Timeframe M15

Defparam cumulateorders = false

n = 1

// HORAIRES DU CANAL : 08H à 10H
IF TIME = 100000 THEN
HAUT = highest[8](high)
BAS = lowest[8](low)
ENDIF

// HORAIRES DE TRADING
Ctime = time >= 100000 AND time <= 143000

// ACHAT
Cindicachat = close > SuperTrend[3,10] and MACD[12,26,9](close) > 0 and MACD[12,26,9](close) > MACD[12,26,9](close[1]) and DIplus[14](close) > DIminus[14](close) and DIplus[14](close) > DIplus[14](close[1])

IF Ctime and close crosses over HAUT and Cindicachat THEN
Buy n shares at market
ENDIF

// VENTE
Cindicvente = close < SuperTrend[3,10] and MACD[12,26,9](close) < 0 and MACD[12,26,9](close) < MACD[12,26,9](close[1]) and DIplus[14](close) < DIminus[14](close) and DIminus[14](close) > DIminus[14](close[1])

IF Ctime and close crosses under BAS and Cindicvente THEN
Sellshort n shares at market
ENDIF

// SL & TP
set target profit 4
set stop loss 20

// Clôture à la bougie suivante
IF onmarket then
sell at market nextbaropen
exitshort at market nextbaropen
ENDIF

 

Share Button