Une base pour développer une stratégie de trading
Tout pour construire une stratégie de trading

Un template pour développer une stratégie de trading
Commencer le développement d’une stratégie de trading peut paraitre laborieux au premier abord. En effet, en fonction des plateformes de trading différents langages de programmation peuvent être utilisés. Certaines plateformes permettent de créer une stratégie sans aucune programmation. Cependant il est toutefois intéressant de pouvoir à minima lire le code que vous aurez créé par la suite. Pour bien démarrer il peut être utile de prendre comme base une stratégie relativement simple pour ensuite l’adapter à ses envies et ses besoins. Dans cet article nous allons créer et mettre à votre disposition une stratégie de trading relativement simple qui vous servira de base pour développer votre propre stratégie répondant à vos besoins.
Les indispensables d’une stratégie de trading
Avant de se lancer dans la conception d’une stratégie de trading il est nécessaire de bien réfléchir au squelette de votre stratégie. Ce squelette correspond à ce qui est indispensable pour mettre en forme votre stratégie. Il s’agit notamment de définir quelles sont les conditions qui vont générer un achat et quelles sont les conditions qui vont générer une vente.
Ensuite vous pouvez également définir des conditions facultatives pour sortir d’une position acheteuse et vendeuse. Je dis ici facultatives car dans une stratégie très simple, il se peut qu’une position acheteuse soit clôturée par la prise d’une position vendeuse et inversement pour une vente. Cependant dans ce cas votre stratégie sera continuellement dans le marché, soit en position d’achat, soit en position de vente.
Quelques subtilités concernant le langage de programmation de Multicharts sont à connaitre. Une position acheteuse est générée avec le mot « buy ». Une sortie de position acheteuse est prise avec le mot « Sell to cover ». Pour une position vendeuse, une position est générée par le mot « Sell short ». Un rachat de position vendeuse est généré avec le « Buy to cover ». Ces subtilités sont indispensables à connaitre pour que votre stratégie exécute bien les conditions que vous souhaitez.
Concernant Prorealtime, Une position acheteuse est générée avec le mot « buy ». Une sortie de position acheteuse est prise avec le mot « Sell ». Pour une position vendeuse, une position est générée par le mot « Sellshort ». Un rachat de position vendeuse est généré avec le « Exitshort ». Ces subtilités sont indispensables à connaitre pour que votre stratégie exécute bien les conditions que vous souhaitez.
Cela peut être un peu compliqué de passer d’un language de programmation à un autre. En effet, ces instructions indispensables sont propres à chaque langage de programmation.
Le choix d’un indicateur
Pour mettre en place votre stratégie vous aurez besoin d’un indicateur vous permettant de définir les conditions pour prendre une position. Il existe une multitude d’indicateurs techniques. De plus vous pouvez créer une stratégie grâce à un indicateur que vous aurez vous-même programmé. Vous l’avez donc compris les possibilités sont illimitées. L’un des indicateurs les plus utilisé pour les stratégies de trading sont les moyennes mobiles. Une moyenne mobile permet de qualifier une tendance sur les prix. Cependant il existe beaucoup de moyennes mobiles différentes. En effet cette moyenne mobile peut-être simple, exponentielle, lissée… De plus, ces moyennes mobiles peuvent être calculées sur le prix de clôture ou sur le prix d’ouverture ou encore sur le plus bas ou plus haut. Les possibilités sont donc bien illimitées.
Une moyenne mobile est généralement utilisée pour qualifier une tendance. Vous pouvez par exemple utiliser deux moyennes mobiles de période différente. Lorsqu’une moyenne mobile de période courte est au-dessus d’une moyenne mobile de période plus longue la tendance est haussière. Lorsqu’une moyenne mobile de période courte est en-dessous d’une moyenne mobile de période plus longue la tendance est baissière.
Vous pouvez par exemple demander à votre stratégie de prendre des positions à l’achat uniquement lors d’une tendance haussière et inversement pour une prise de position vendeuse.
De plus pour affiner le timing de prise de position vous pouvez utiliser un indicateur pour le déclenchement d’une prise de position. Il peut s’agir par exemple d’un stochastique, un RSI ou encore une MACD. Une fois le squelette de votre stratégie défini il est très facile d’ajouter ces conditions pour une prise de position. Cela permet d’améliorer le timing de prise de position et d’augmenter fortement la profitabilité de réussite de votre stratégie.
Les conditions pour sortir d’une position
Une sortie de position, peut dans une stratégie simple, s’effectuer par la prise d’une position inverse. Cependant vous pouvez définir de nombreuses conditions différentes pour sortir d’une position. Vous pouvez sortir d’une position à un niveau fixe de points. Ce niveau sera calculé en fonction du prix d’achat ou de vente de l’entrée en position. Ces conditions définissent un niveau fixe de sortie de position. Ce niveau ne sera pas ajusté en fonction de la volatilité des marchés. Cela peut être problématique si un marché change fortement. En effet un niveau de sortie de position défini dans un marché peu volatile peut s’avérer peu efficace dans un marché qui devient subitement très volatile.
Vous pouvez également définir ce niveau de sortie de position en fonction de la volatilité d’un marché. Pour cela vous pouvez utiliser par exemple un ATR (Average True Range, mesure de la volatilité moyenne d’un marché sur une période) qui ajustera le niveau de sortie d’une position au niveau de volatilité actuel d’un marché. A noter que cet indicateur sera recalculé à chaque nouvelle bougie. En d’autres termes votre niveau de sortie sera ajusté chaque jour pour une stratégie sur une unité de temps journalière. C’est très pratique sur une stratégie intraday, mais cela peut s’avérer difficile à suivre pour une stratégie sur une unité de temps journalière.
Comme pour les autres composantes d’une stratégie les possibilités sont illimitées. En fonction de votre imagination vous pouvez définir de nombreuses conditions pour sortir d’une position.
Explication de la stratégie
Pour cet article nous allons utiliser une stratégie à 3 variables. Il s’agit d’un indicateur, une moyenne mobile exponentielle avec deux périodes différentes pour autoriser la prise de position et d’un ATR (Average True Range, mesure de la volatilité moyenne d’un marché sur une période) pour le timing de la prise de position.
Pour une prise de position à l’achat les conditions suivantes doivent être réunies :
- Le niveau de la moyenne mobile exponentielle 40 période doit être supérieur au niveau précédent de cette même moyenne mobile exponentielle.
- Le niveau de la moyenne mobile exponentielle 8 période doit être inférieur au niveau précédent de cette même moyenne mobile exponentielle.
- Le prix doit atteindre le niveau d’achat défini par le prix d’ouverture du marché suite aux conditions d’achat + le montant de l’ATR 10 périodes
Pour une prise de position à la vente les conditions suivantes doivent être réunies :
- Le niveau de la moyenne mobile exponentielle 40 période doit être inférieur au niveau précédent de cette même moyenne mobile exponentielle.
- Le niveau de la moyenne mobile exponentielle 8 période doit être supérieur au niveau précédent de cette même moyenne mobile exponentielle.
- Le prix doit atteindre le niveau de vente défini par le prix d’ouverture du marché suite aux conditions de vente – le montant de l’ATR 10 périodes
Cette stratégie est constamment dans le marché. Une clôture de position acheteuse entraine une vente et vice-versa.
Code Mutlicharts
Inputs: Length1(40), Length2(8), Trigger(1);
Variables: ATR(0), Avg1(0), Avg2(0);
ATR = AvgTrueRange(10);
Avg1 = XAverage(Close, Length1);
Avg2 = XAverage(Close, Length2);
Condition1 = Avg1 > Avg1[1] AND Avg2 < Avg2[1];
Condition2 = Avg1 < Avg1[1] AND Avg2 > Avg2[1];
{Entree achat}
If Condition1 Then
Buy (“Entree achat”) Next Bar at Open Tomorrow + Trigger * ATR Stop;
{Entree vente}
If Condition2 Then
Sell Short (“Entree vente”) Next Bar at Open Tomorrow – Trigger * ATR
Stop;
Mise en place d’une stratégie sur Mutlicharts
Allez dans le Power language Editor, faite New=>Signal
Nommez votre stratégie, puis copiez et collez le code de la stratégie dans la nouvelle fenêtre et compilez-la.
Ensuite ouvrez un graphique, allez dans « Insert Study » et ajoutez la stratégie nouvellement crée. Veillez à bien mettre un nombre suffisant dans l’onglet « Maximum number of bars study will reference » de l’onglet properties. Mettez 500 par exemple pour ne pas avoir de problèmes.
Voilà votre stratégie est appliquée à votre graphique. Vous n’avez plus qu’à la customiser.
Code Pro Real Time
Variables de la stratégie
PeriodeMM1 = 40
PeriodeMM2 = 8
PeriodeATR = 10
Code de la stratégie
MM1 = ExponentialAverage [PeriodeMM1](close)
MM2 = ExponentialAverage [PeriodeMM2](close)
Atr = AverageTrueRange[PeriodeATR](close)
MyTARGET = 1 * Atr
If not LongonMarket and MM1> MM1[1] and MM2< MM2[1] THEN
BUY 1 SHARES AT open + MyTARGET STOP
ENDIF
If not ShortonMarket and MM1< MM1[1] and MM2> MM2[1] THEN
Sellshort 1 SHARES AT open – MyTARGET STOP
ENDIF
Mise en place d’une stratégie sur Pro Real Time
Allez dans indicateurs, cliquez sur ProBacktest & Trading Automatique => Créer
Choisissez l’onglet création par programmation. Ajoutez les variables suivantes :
Copiez-collez le code de la stratégie et validez la stratégie.
Voilà votre stratégie est appliquée à votre graphique. Vous n’avez plus qu’à la customiser.
Conclusion
Vous l’avez bien compris cette stratégie est une base pour commencer à développer un modèle plus complexe. Il faut bien commencer quelque part et cette stratégie vous permettra de commencer rapidement et sans effort le développement de votre stratégie. Bien sûr beaucoup d’étapes sont ensuite nécessaires comme l’optimisation, l’analyse walk forward avant de trader cette stratégie. Cependant cette base vous aidera à vous familiariser avec le langage de programmation de chaque plateforme.