Bourse It Yourself





Stratégie de trading vagues d'Elliott

Tout pour construire une stratégie de trading avec les vagues d’Elliott

undraw organized content 25ww removebg preview

Création d’une stratégie basée sur les vagues d’Elliott

Après avoir vu le principe de base des vagues d’Elliott, nous allons dorénavant créer une stratégie basée sur ce modèle d’analyse de marché avec la plateforme d’analyse et de trading Multicharts. Cette stratégie sera composée de 3 fonctions qui reprennent un oscillateur, une définition de la tendance et un outil de décompte des vagues. A partir de ces trois fonctions nous créerons notre système de trading.

Création des fonctions

Tout d’abord pour créer notre stratégie basée sur les vagues d’Elliott, il va nous falloir créer trois fonctions qui vont être utilisées par notre stratégie. Il s’agit des fonctions ELLIOTTWAVEOSC ,ELLIOTTREND et WAVE345ELLIOTT.

Commençons par la première fonction ELLIOTTWAVEOSC. Il s’agit d’un oscillateur basé sur les vagues d’Elliott. Cet oscillateur va être conçu à partir de la différence entre une moyenne mobile simple de 5 périodes et une moyenne mobile simple de 35 périodes.

Allez dans le Power language Editor, faite New=>Function

Function

Nommez votre stratégie, puis copiez et collez le code de la stratégie dans la nouvelle fenêtre et compilez-la.

Fonction ELLIOTTWAVEOSC

 

Et faites ainsi de suite pour les autres fonctions.

Le code de cette fonction « ELLIOTTWAVEOSC » est le suivant :

VARS: OSC535(0), PRICE(0);
PRICE = (H+L)/2;
IF AVERAGE(PRICE, 35) <> 0 THEN
              OSC535 = AVERAGE(PRICE, 5) – AVERAGE(PRICE, 35);
ELLIOTTWAVEOSC = OSC535;

Ensuite nous allons créer la seconde fonction ELLIOTTREND. Cette fonction va utiliser la précédente pour qualifier la tendance. Selon certains paramètres cette fonction va qualifier la tendance soit haussière ou baissière.

Le code de cette fonction « ELLIOTTREND » est le suivant :

INPUTS: LEN(NUMERIC), TRIGGER(NUMERIC);
VARS: TREND(0), OSC(0);
OSC = ELLIOTTWAVEOSC;
IF OSC = HIGHEST(OSC, LEN) AND TREND = 0 THEN
              TREND = 1;
IF OSC = LOWEST(OSC, LEN) AND TREND = 0 THEN
TREND = -1;
IF LOWEST(OSC, LEN) < 0 AND TREND = -1 AND OSC > -1 * TRIGGER * LOWEST(OSC, LEN) THEN
              TREND = 1;
IF HIGHEST(OSC, LEN) > 0 AND TREND = 1 AND OSC < -1 * TRIGGER * HIGHEST(OSC, LEN) THEN
              TREND = -1;
ELLIOTTREND = TREND;

Pour finir nous allons créer la troisième fonction WAVE345ELLIOTT. Cette fonction va utiliser les deux fonctions précédentes pour qualifier la vague dans laquelle nous nous trouvons. Selon certains paramètres cette fonction va nous dire si nous sommes dans une vague 3, 4 ou 5.

Le code de cette fonction « WAVE345ELLIOTT » est le suivant :

INPUTS: LEN(NUMERIC), TRIG(NUMERIC);
VARS: ET(0), PRICE(0), OSC(0), WAVE(0), HIOSC(-999), HIOSC2(-999), HIPRICE(-999), HIPRICE2(-999);
OSC = ELLIOTTWAVEOSC;
PRICE = (HIGH + LOW) / 2;
ET = ELLIOTTREND(LEN, TRIG);
IF ET = 1 AND ET[1] = -1 AND OSC > 0 THEN BEGIN
              HIOSC = OSC;
              HIPRICE = PRICE;
              WAVE = 3;
END;
IF WAVE = 3 AND HIOSC < OSC THEN
              HIOSC = OSC;
IF WAVE = 3 AND OSC <= 0 AND ET = 1 THEN
              WAVE = 4;
IF WAVE = 4 AND PRICE = HIGHEST(PRICE, 5) AND OSC >= 0 THEN BEGIN
              WAVE = 5;
              HIOSC2 = OSC;
              HIPRICE2 = PRICE;
END;
IF WAVE = 5 AND HIOSC2 < OSC THEN
              HIOSC2 = OSC;
IF WAVE = 5 AND HIPRICE2 < PRICE THEN
              HIPRICE2 = PRICE;
IF HIOSC2 > HIOSC AND WAVE = 5 AND ET = 1 THEN BEGIN
              WAVE = 3;
              HIOSC = HIOSC2;
              HIPRICE = HIPRICE2;
              HIOSC2 = -999;
              HIPRICE2 = -999;
END;
IF ET = -1 AND WAVE = 5 THEN BEGIN
              WAVE = -3;
              HIOSC = -999;
              HIPRICE = -999;
              HIOSC2 = -999;
              HIPRICE2 = -999;
END;
WAVE345ELLIOTT = WAVE;

Nos fonctions sont désormais créées, passons maintenant à notre stratégie.

 

Création de la stratégie

 

Les conditions de notre stratégie sont les suivantes :

  • Stratégie uniquement acheteuse (pas d’ordres de vente)
  • Achat si une vague 3 est détectée
  • Achat si après une vague 4 une vague 5 est détectée
  • Achat si après une vague 5 une vague 3 est détectée (les vagues 1 et 2 sont volontairement ignorées)
  • Sortie d’une position si l’oscillateur de vagues d’Elliott passe baissier

Le code de cette stratégie « Elliott Wave System » est le suivant :

INPUTS: LEN(80), TRIG(.7);
VARS: WAVCOUNT(0), OSC(0);
OSC = ELLIOTTWAVEOSC;
WAVCOUNT = WAVE345ELLIOTT(LEN, TRIG);
IF WAVCOUNT = 3 AND WAVCOUNT[1] <= 0 THEN
              BUY NEXT BAR AT OPEN;
IF WAVCOUNT = 5 AND WAVCOUNT[1] = 4 THEN
              BUY NEXT BAR AT OPEN;
IF WAVCOUNT = 3 AND WAVCOUNT[1] = 5 THEN
              BUY NEXT BAR AT OPEN;
IF OSC < 0 THEN
              EXITLONG NEXT BAR AT OPEN;

 Une fois compilée vous pourrez ajouter cette stratégie à n’importe quel graphique. De plus vous pourrez ajuster le code de la stratégie en y ajoutant des filtres ou des stops ou targets pour améliorer la stratégie.