
Article en relecture – Le trading automatisé n’est pas réservé à quelques privilégiés qui savent coder. Il est possible de construire ses propres robots de trading et de les lancer sur le marché sans être un expert en programmation.
Le trading algorithmique n’est pas une licorne, c’est-à-dire une composition mythologique issue de l’imagination humaine. Il est accessible aux traders particuliers et peut être profitable.
Je n’ai rien à vendre. J’ai juste envie d’ouvrir une porte vers un autre univers qui me passionne. Utiliser un robot pour trader est aussi une façon de diversifier une partie de son capital.
Définition du trading algorithmique
Un algorithme est une suite d’instructions. Quand on fait son arbre de décision, c’est-à-dire quand on liste les conditions nécessaires pour ouvrir une position en manuel, on écrit un algorithme.
Exemple : SI le stochastique est en survente mais que les lignes se sont croisées sous la borne 20 et remontent de concert ET si le prix vient de clôturer au-dessus de la moyenne mobile 10, ALORS je rentre en position.
SI et ALORS constituent la base de tout algorithme que le trader ou l’ordinateur vont exécuter. Quand ces instructions sont codées et réunies dans un programme, ce n’est plus nous mais l’ordinateur qui va se charger de l’exécution.
On pourra parler alors de trading algorithmique automatisé ou de robot de trading.
Pour des facilités de langage et afin d’éviter la répétition du même mot, nous parlerons indifféremment de trading automatique, trading algorithmique ou de robot de trading, c’est-à-dire de trading par l’intermédiaire d’un robot.
Les indicateurs affichés par les plateformes type RSI, MACD, Stochastique sont eux-mêmes des agents automatiques qui fournissent une aide à la décision.
On verra que leur combinaison dans un programme permet de mettre au point de simples robots de trading.

Comment écrire son propre robot de trading ?
Ecrire son propre robot de trading se résume à la phrase suivante : avoir une idée de trading et la coder.
- Avoir une idée : disons plus exactement avoir une stratégie. Il s’agit soit d’une stratégie que l’on utilise déjà en manuel, soit d’une stratégie qu’on n’a envie de tester. Avec les robots, il est facile de tester plusieurs stratégies et de les comparer.
- La coder : c’est décrire cette stratégie dans un langage que votre plate-forme de trading peut comprendre. Cette description n’est juste que l’écriture de certaines conditions simples sans utiliser de boucles. Les boucles sont fondamentales à maitriser dans un programme mais elles sont loin d’être indispensable ici.
Le langage de votre plate-forme n’est pas difficile à apprendre. Votre code va utiliser vos indicateurs préférés, comme le MACD, le RSI, le Stochastique, pas de de Python, C++ etc…
Un exemple simple
Avoir une idée de stratégie et la poser en langage naturel : je rentre en position LONG quand la MM 20 croise à la hausse la MM 50, je sors de position quand la MM 50 croise à la baisse la MM 20.
La coder :
IF MM20 crosses over MM50 Then
Buy one contract at market
ENDIF
IF MM20 crosses under MM50 THEN
Sell at market
ENDIF
(MM 20 c’est la moyenne mobile sur 20 périodes – voir article ici Les moyennes mobiles, c’est facile, c’est pas cher et ça peut rapporter gros)
Un exemple de résultats cumulés de 5 robots basés uniquement sur le MACD
J’ai dit plus haut que votre code va utiliser vos indicateurs préférés comme le MACD, le RSI, le Stochastique.
Voici un exemple du 30 mai 2025 avec 5 robots en test – 4 longs et 1 short – sur le Nasdaq en 5 minutes. Ces robots ont été programmés et lancés sur la plate-forme ProRealTime.

J’ai choisi bien sûr un jour excellent. Ce résultat a été obtenu en test avec 5 robots basés sur le MACD programmés avec de légères différences entre eux.
Mais il y a des jours très mauvais. Le but est qu’ils soient minoritaires.
2 problèmes au sujet des indicateurs :
– Si vous avez banni les indicateurs, vous allez devoir les réapprendre.
– Si vous êtes un fan d’Ichimoku, n’imaginez pas coder une stratégie à partir de ce qui est déjà un véritable système automatisé de trading qui appartient à la catégorie des Aides à la décision.
Quelques considérations sur le trading automatique
Selon les conditions de marché, un robot peut multiplier les gains. En effet, il travaille sans émotions. Il appliquera vos règles de trading et rien d’autres. Il ne pensera jamais que :
- Les règles sont faites pour être transgressées.
- Tiens je m’ennuie, je vais passer un petit trade.
- Fuck le stop loss aujourd’hui, je vais m’en passer !
Le robot est imperméable aux émotions. Mais il n’est pas hors de contrôle non plus et ne videra pas votre compte pendant que vous dormez. Car le code va contenir tout ce qui va le brider : des conditions de sortie de position, des conditions de sécurisation des gains, un stop loss ou un take profit et même un coupe-circuit en cas de flash krach.
Ce qui protège du pire
Au moment de la mise au point, on va backtester son robot sur différentes périodes. Le résultat s’obtient en quelques minutes avec les plateformes de trading.
Ce qui protège beaucoup moins de mauvaises conditions de marché
J’ai écrit plus haut qu’ils étaient imperméables aux émotions et qu’ils pouvaient fonctionner en évitant les biais humains.
Mais ils sont également imperméables aux publications statistiques et aux discours de n’importe quel acteur du monde financier. Ils vont les ignorer sans états d’âme.
Mais c’est encore vous le boss : vous pouvez soit empêcher le lancement du robot certains jours (EX : jours de réunion du FOMC) directement dans le code, soit bloquer manuellement le cours de son exécution, c’est-à-dire le stopper en vol, de la même façon que vous faites attention en manuel aux jours de publication de stats.
Ceci revient à pratiquer une technique de trading mixte :
- Laisser le robot entrer en position et faire une sortie manuelle si tout ne va pas bien.
- Arrêter le robot plusieurs jours quand la conjoncture est mauvaise ou quand on est à la veille d’un évènement à impacts.
C’est un aspect sécurisant du trading automatique, vous restez le seul maitre à bord.
Des limites du trading algo
Il y a 2 points importants à prendre en compte pour les aspirants codeurs de robot :
- On n’utilise pas un robot sur les unités de temps en ticks. Donc pas de scalping mais du daytrading dans le meilleur des cas. L’unité de temps la plus petite est 1 minute. C’est plus difficile pour les scalpeurs qui doivent éventuellement réimaginer leur stratégie sur une UT plus longue.
Mais ils peuvent aussi coder un outil d’aide à la décision qui fournit des signaux pour le scalping. L’intérêt est qu’un outil peut lire plusieurs indicateurs en même temps beaucoup plus rapidement que l’œil humain.
On verra qu’on peut les combiner dans un programme pour constituer un « super » indicateur. - Il est préférable de lancer des robots sur des marchés structurés donc d’éviter les cryptomonnaies.

Les bases du trading algo
La 1ère étape quand on développe un robot
On va transformer des règles de trading en code. Donc il est nécessaire avant tout d’avoir des règles ou au moins d’en trouver avant de passer au code. C’est donc embêtant pour ceux qui tradent sans indicateurs, ceux qui ne tradent « qu’à la bougie » ou pour les inconditionnels du Price action.
Pour définir votre stratégie, il faut raisonner comme en manuel quand vous établissez votre arbre de prise de décision. EX : je rentre en position quand la ligne de MACD croise la ligne de signal.
Je ne veux pas dire que l’on doit ou que l’on peut reproduire exactement en trading algo ce qui marche en manuel.
Peut-on ou doit-on reproduire en trading algo, ce que l’on trade en manuel est une sacrée question !
Car il y a des limites. Certaines stratégies sont impossibles à programmer par exemple celles sur les unités de temps en ticks. Les stratégies basées sur les rebonds sur points pivots sont difficiles à programmer. Les entrées en position sur un type de bougie, un doji par exemple, ou sur des patterns liés à des figures sont tout à fait automatisables. Il reste qu’il faut, là, bien maitriser la programmation d’algo pour s’attaquer à ce type de code. Mais on peut récupérer du code et le tester.
Par contre, votre feeling de marché est impossible à traduire en code.
Toutes les stratégies partent d’un graphique
Il faut avoir au moins sous les yeux un graphique qui affichent les indicateurs classiques. Et la première étape qui permet de s’entrainer à écrire du code peut être de créer son propre indicateur et le voir travailler sur un graphique.
Là, je vais revenir à mon obsession du MACD. J’ai déjà écrit un article sur le MACD puis un article sur la programmation d’un screener qui utilisait le MACD.
Ce que je montre ci-dessous sur la plate-forme ProRealTime, c’est un indicateur qui fait apparaitre un L noir quand la Ligne de MACD (bleue) croise à la hausse la Ligne de Signal (rouge) et un S noir quand la ligne de Signal passe au-dessus de la Ligne de MACD.
Voici la description de ce petit algorithme en langage naturel :
- Si la ligne MACD passe au-dessus de la Ligne de Signal, entrer en position LONG en achetant un contrat.
- Si la ligne de MACD passe en dessous de la Ligne de Signal, fermer la position Long.
On crée d’abord l’indicateur pour vérifier son idée sur le graphique.
On va afficher des lettres sur le graphique des prix qui signalent le croisement à la hausse ou à la baisse des 2 lignes. On affiche donc un L noir sur le graphique quand il y a un croisement à la hausse des lignes MACD, on affiche un S noir quand croisement à la baisse.
Le résultat n’est pas mal ! Voici ci-dessous une illustration graphique simple lors d’une séance de trading sur le CFD Nasdaq, graphique en UT 5 minutes pour une séance d’une journée.

Le code de l’indicateur de croisement MACD :
Les commentaires sont précédés de //
//—- Déclaration des variables du MACD —-
Ligne = MACDLine[12,26,9](close)
Signal = MACDSignal[12,26,9](close)
//—– Déclaration des Variables locales —–
condAchatLong = 0
condAchatShort = 0
//—- Corps de l’indicateur —
// Tests de croisement des lignes MACD
condAchatLong = Ligne crosses over Signal
condAchatShort = Ligne crosses under Signal
// Affichage des L Noirs
IF condAchatLong then
DRAWTEXT (« L »,barindex, low-range/2-2, SERIF, Bold, 20) COLOURED(« BLACK ») ENDIF
// Affichage des S Noirs
IF condAchatShort then DRAWTEXT (« S »,barindex, high+range/2+2, SERIF, Bold, 20) COLOURED(« BLACK »)
ENDIF
RETURN
Vous pouvez copier / coller ce code et lancer l’exécution sur un graphique 5 minutes d’un actif.
Il faut :
- Ouvrir le graphique
- Faire apparaitre la fenêtre qui donne la liste des indicateurs.
- Cliquer sur ProBacktest & Trading Automatique
- Sélectionner « Créer »
- Coller le code
- Lui donner un nom
- Lancer l’exécution sur le graphique sélectionner en cochant « Sur prix » dans la fenêtre de lancement (pas Sur graphique)
Utilisation
On est sur ce graphique dans le cas d’une tendance haussière. Il est préférable de rentrer en position sur les L et de sortir sur les S mais ne pas rerentrer short sur les S.
A partir de cet indicateur, on va créer le code de l’algorithme.
Voici le code très simple qui découle de l’indicateur.
Les deux codes, indicateur et robot, sont quasiment identiques. Mais au lieu d’afficher, des signaux Texte, on va acheter une position Long.
On va rajouter quelques conditions pour éviter que le robot n’ouvre plus d’une position en même temps et qu’il ne prenne des positions en dehors de l’heure d’ouverture des marchés.
On est sur le Nasdaq donc l’ouverture d’une position aura lieu seulement à partir de 15H30 et si une position est en cours, elle sera fermée à 22H. Les samedis et les dimanches sont automatiquement exclus car les marchés indices sont fermés.
Donc ce code achète une position LONG quand la ligne de MACD croise à la hausse la Ligne de Signal c’est-à-dire quand la ligne de MACD passe au-dessus de la Ligne de Signal. Il s’agir de l’instruction « crosses over ».
Voici le code de mon premier robot
Les commentaires sont précédés de //
// Début du code
// On interdit la prise de plus d’une position en même temps
DEFPARAM CUMULATEORDERS = false
// Prise de position qu’aux heures d’ouverture du marché
DEFPARAM FLATBEFORE = 153000
DEFPARAM FLATAFTER = 220000
// *** Déclaration des variables ***
//—- Déclaration des lignes MACD avec les paramètres les plus courants —-
Ligne = MACDLine[12,26,9](close)
Signal = MACDSignal[12,26,9](close)
//—- Déclaration des variables locales du programme —-
condAchat = 0
// *** Corps du robot ***
// —- Test de croisement des lignes MACD (L noir)
condAchat = Ligne crosses over Signal
// —- Entrée en position si on n’est pas déjà en position LONG et si condition d’achat remplie
IF NOT LongOnMarket AND condAchat THEN
BUY 1 contract AT MARKET
ENDIF
Voici une illustration graphique sur un graphique du Nasdaq 5 minutes en une journée : on rentre sur la flèche orange et on sort sur la flèche bleue à la fermeture de la séance à 22H

Le backtest du robot
On a un robot de trading très minimaliste que l’on va backtester sur un historique de données, c’est-à-dire sur toutes les bougies 5 minutes du Nasdaq sur 2 ans.
Ce backtesting est insatisfaisant en termes de données car on n’a exclu aucun jour où le trading est déconseillé sur les indices : les jours de décisions du FOMC (hausse ou baisse des taux d’intérêt), les jours fériés…
J’appelle mes robots des « Nanas » en référence à Nono le Robot. J’associe souvent une caractéristique au nom de Nana, comme un trait de caractère.
Là, surnommons ce robot « Nana Kamikaze » et appelons le # ALGO NANA – Kamikaze V1.
Rappel : Comme dans mes Screeners, je mets # devant le nom pour le repérer dans la liste sous Indicateurs et système de trading de ProRealTime.
Passons au backtest sur ProRealTime.
Une petite anecdote avant de voir un sacré résultat.
Le jour où j’ai lancer le backtest de Nana Kamikaze pour écrire cet article, j’ai eu un problème avec ProRealTime. Mon instrument favori, le CFD Nasdaq à 1 € le point, avait disparu. Il avait été remplacé par un Nasdaq à 100 $ le point (hum ! un peu différent) mais OK pour tester un robot. Il suffit de diviser le résultat par 100.
On est sur un compte démo donc pas de risques !
Voici qu’on obtient sur une période de 2,5 ans en UT 5 minutes. Le rapport détaillé de ProrealTime est fourni par capture d’écran et non retouché.

Un gain de 650 340 $ en 2 ans et 9 mois avec 100 000 $ de capital !
Je ne sais pas ce qui est le plus étonnant.
- Le minimalisme de l’algo basé sur le croisement de courbes MACD
- La faiblesse du capital exigé : 100 000 $ pour un tel gain.
Où est le piège ? Ou plutôt où sont les pièges ?
1°) Je n’ai bloqué aucun jour de trading. Donc j’ai laissé la possibilité au robot d’ouvrir un trade le 9 avril 2025 le jour où Donald Trump a annoncé la suspension ponctuelle des droits de douanes.
Regardons la position ouverte de la journée : + 177 000 $ de gain

Il est clair que pour les backtests à venir sur cette période, il faudra retirer ce jour qui donne un tour trop favorable aux résultats.
2°) Il n’y a pas de Stop loss. Il y aurait donc pu y avoir un flash crash pendant la période et le niveau de perte aurait été épouvantable.
3°) Ce robot prend beaucoup trop de positions.
4°) La durée moyenne des positions est trop longue. D’après le rapport détaillé, l’algo est en position 22,3% du temps ce qui implique un énorme danger pour le capital.
Le surnom de Nana Kamikaze est donc largement mérité.
Mais n’ayons pas froid aux yeux et faisons connaissance de Nana Wild
On va poussez cette Nana kamikaze un peu plus loin. On va lui enlever les seuls liens qui la retiennent.
Je retire les instructions :
DEFPARAM FLATBEFORE = 153000
DEFPARAM FLATAFTER = 220000
Donc le robot peut théoriquement ouvrir et fermer des positions 24H sur 24H.
Voici le résultat :
Nana Kamikaze ne prend qu’une position le 3 janvier 2023 et la referme le 19 septembre. Cette position va durer 200 315 barres de 5 minutes.
Voici la Liste des positions clôturées sur la plate-forme ProRealTime :

Et voici le Rapport détaillé :

Comme il n’y a ni Stop Loss, ni conditions de sortie de position, la première position prise n’est jamais coupée. Le robot prend juste une position le 3 janvier et la clôture le 19 septembre.
Ce résultat est extraordinaire mais nous verrons plus tard comment brider ce type de robot pour obtenir un gain, certes, moins important mais éviter une énorme perte en capital.
La conclusion la plus importante :
Au moins cet exemple démontre, s’il était encore besoin de le démontrer, que le Nasdaq comme tous les indices est structurellement haussier.
La possibilité d’un exercice
Vous pouvez écrire le même type de code avec entrée sur croisement à la baisse de la ligne de MACD avec la ligne de Signal, les S noirs vus plus haut.
Créer votre robot, le nommer et le backtester sur la durée que vous désirez (quelques semaines, mois, années).

Comment se protéger des catastrophes que peut engendrer un robot Kamikaze?
4 protections efficaces :
- Pour se protéger des robots kamikazes, il suffit d’écrire un code contenant une stratégie prudente et de mettre des garde-fous.
- Pour se protéger des incertitudes de marché, il faut backtester les robots.
- Il ne faut pas corréler les actifs que l’on trade.
- Il faut trader un marché structuré.
Le backtesting
Le scalping manuel, c’est comme marcher sac au dos dans une nature hostile en regardant à chaque pas où vous mettez les pieds car les pièges les plus redoutables sont tendus.
Trader avec un robot, c’est être à la tête d’une armée que vous avez formée au combat contre un ennemi invisible. Vous êtes responsable de la vie de chacun de vos hommes… Ou femmes ah mais !
Face au danger de mettre les pieds dans quelque chose qu’on ne cerne pas, le backtesting est un moyen de ne pas lâcher vos équipes dans la nature. Le backtesting est le seul moyen de vous donner confiance dans une stratégie.
Il peut vous aider à choisir une stratégie :
- Une stratégie qualifiée de géniale par votre gourou préféré.
- Une stratégie que vous pensez pouvoir être rentable. Et vous n’allez surtout l’essayer en réel sans l’avoir tradée en démo.
- Une stratégie que vous avez déjà testée et dont vous aviez constaté qu’elle perdait de l’argent par le passé et de façon inattendue elle va être adaptée à la période actuelle.
Aucun résultat n’est garanti mais il vaut mieux quand même avoir constaté qu’une stratégie a rapporté de l’argent par le passé.
Se diversifier
Pourquoi est-ce un avantage en trading algo ? La réponse est dans le volume des stratégies. En trading manuel, il vaut mieux se polariser sur une seule stratégie qu’on maitrise bien. En trading algo, on peut multiplier les actifs tradés et les stratégies.
Car une fois que vous en avez une stratégie solide vous pouvez en créer beaucoup d’autres et avoir un play book de stratégies. Votre système de trading global pourrait être :
- Avoir une même stratégie sur différents marchés (indices, Forex, matières premières, actions).
- Avoir des algos utilisant différentes stratégies : robot suivi de tendance, de contre-tendance, de retournement de tendance, de trading de breakout…
Avec la réserve suivante : on ne met pas deux types de stratégies dans le même programme.
La justification est que cette batterie de robots avec différentes approches a tendance à équilibrer les gains et les pertes au fil du temps, ce qui est l’objectif d’un trading profitable.
Pour permettre cet équilibre, il y a un impératif à respecter : la non-corrélation, c’est à dire que les actifs tradés ne doivent pas évoluer dans la même direction.
Autrement dit, pour réussir avec plusieurs stratégies, sur différents marchés et avec différents styles de trading, il faut impérativement que les actifs ne soient pas corrélés.
Si vous écrivez un algorithme pour trader l’or et que cet actif a des périodes de hausse et de baisse exactement au même moment qu’un de vos algo sur le DAX, cette corrélation élevée peut augmenter le risque pour votre capital.
La raison pour laquelle la diversification fonctionne est qu’avec des algorithmes non corrélés, les pertes et les périodes difficiles se produisent à des moments différents pour différentes stratégies.
Il faut trader un marché structuré donc il faut renoncer aux robots sur cryptos. Fera l’objet d’un article à venir.

Les avantages du trading algorithmique
- Avantage n°1 : Ne pas être sur son écran toute la journée comme on le ferait en scalping ou en Day trading.
- Avantage n°2 : Garder le contrôle.
Avantage N°1 : Ne pas être sur son écran toute la journée comme on le ferait en scalping ou en Day trading.
C’est vrai mais c’est une déclaration à moduler dans 2 cas :
- Le temps passé à développer vos robots est conséquent : conception, écriture du code, tests, étude des métriques de résultats puis retour au code pour modification, etc… jusqu’à obtenir la robustesse du code sur la durée.
- La gestion mixte « automatique / manuelle », si c’est votre orientation, demande de la présence : lancer son ou ses robots et les surveiller pour les arrêter si ça se passe vraiment très bien et qu’on veut encaisser ses gains ou ça se passe très mal et qu’on décide d’arrêter les frais.
Un exemple de dilemme cruel ci-dessous : dois-je arrêter ces 2 robots ?

Ils sont écrits pour trader le Nasdaq en 5 minutes. Les valeurs du take profit et du stop loss sont peu pertinentes mais il s’agissait d’un test. Dans cet exemple, les « Nanas » étaient très en forme.
Avantage n°2 : Vous gardez le contrôle
Le trading automatique permet de « tenir fermement les rennes ».
On fixe un montant maximum de pertes autorisées et ce montant sera parfaitement respecté.
On ne maintient pas sa position en mode espoir. On n’est pas brisé quand une perte arrive.
Contrairement aux humains, un robot retourne en position sans attendre après une perte, s’il est programmé ainsi… Car c’est toujours vous le boss.
Suite à une expérience de trading de type « jeu vidéo », pour moi le seul moyen tenir un plan de trading était de construire un système de trading automatique.

Les inconvénients du trading algorithmique … Et quelques tips pour les contourner
- Inconvénient n°1 – Les émotions sont toujours de la partie.
- Inconvénient n°2 – Il faut savoir programmer
- Inconvénient n° 3 – Les performances du passé ne présagent pas des performances du futur.
- Inconvénient n°4 – La sur-optimisation
- Inconvénient n°5 – Je lance mon robot et…je vais à la plage. Non !
Inconvénient n°1 – Les émotions seront toujours de la partie.
J’ai dit que le robot travaillait sans émotions. J’ai même écrit plus haut que « les robots étaient imperméables aux émotions et qu’ils pouvaient fonctionner en évitant les biais humains. »
Il va suivre toutes les règles car il est vrai qu’il n’a pas d’émotions… Mais nous si…
En trading automatique, on peut être aussi mort de trouille qu’en trading manuel. Car dès que vous entrez sur le terrain de l’argent, les émotions ne peuvent pas disparaitre. Et un type de trading différent n’y changera rien.
Si on vous dit le contraire, c’est une énorme bêtise. Certains gourous disent que les émotions sont l’ennemi du trader, la ruine et que les algos sont la résolution du problème.
C’est faux, vous allez vous poser le même type de questions qu’en trading manuel, des questions dictées par les émotions.
La différence réside dans les moments pendant lesquels les émotions se manifestent. En trading manuel, la peur me fait hésiter à entrer en position et la frustration de ne pas gagner m’empêche de sortir de position.
En trading programmé, la peur de lancer le robot un jour précis ou la frustration de devoir couper un robot qui gagne ou qui perd seront toujours là.
Sinon, voici une bonne façon de voir les choses :
Si vous êtes un scalper frustré car vous coupez vos positions beaucoup trop tôt alors qu’aucun impératif de sortie n’est présent, le trading algorithmique est pour vous. Fermez les yeux et laissez travailler votre robot.
Si vous êtes un scalper frustré car vous avez peur de rentrer en positions alors que toutes les conditions sont remplies, le trading algorithmique est pour vous. Fermez les yeux et laissez travailler votre robot.
Inconvénient n°2 – Il faut savoir programmer
Il existe plusieurs solutions si vous ne savez pas (encore) programmer.
– La plate-forme ProRealTime contient plein de ressources.
=> Vous pouvez déjà regarder la Création simplifiée de Proscreener. Elle concerne l’écriture des screeners. Mais on peut se familiariser avec le langage : la façon de poser un test, comment appeler un indicateur, utiliser les comparateurs, etc…
=> Elle propose aussi 2 manuels :
– Le guide de programmation – fonctions de base et indicateurs (ProBuilder)
– Le guide de programmation – Système de trading (ProBacktest et ProOrder)
– Il existe une formation gratuite en programmation pour le trading pour débutants sur le site ProRealCode :
https://www.prorealcode.com/courses/premiers-pas-avec-la-programmation-pour-prorealtime/
– Elle peut être suivi par un module payant dit « Programmation avancée » (80€) (personnellement, je ne l’ai pas testée).
https://www.prorealcode.com/courses/prorealtime-programmation-avancee/
– J’ai écrit un article publié sur ce site pour les gens qui débutent vraiment en programmation et qui part de ce qui a le plus simple :
Comment coder un screener avec les moyennes mobiles ?
http://ikitrading.com/programmer-screeners-simples-avec-moyennes-mobiles-code-pour-debuter/
La plupart des plateformes propose des outils de création de code. Vous cochez des conditions d’entrée en position qu’un outil vous propose et le code est généré automatiquement.
Le courtier WH Selfinvest le propose aussi sa plate-forme Nanotrader.
Vous pouvez aussi récupérer des robots sur ProRealCode et les tester sur votre compte démo si vous utilisez ProRealTime. C’est un pied à l’étrier.
Voici le lien : https://www.prorealcode.com/library/?category=prorealtime-trading-strategies
Vous pouvez commencer à apprendre à déchiffrer le code et au final à modifier ou adapter le code à vos besoins. Je rappelle qu’il n’est pas nécessaire de maitriser les boucles « Tant que » et autres en programmation pour le trading. Un If THEN ELSE (si et sinon) suffit la plupart du temps.
Sinon, mon but est de proposer des exemples d’écritures de code. Et de montrer comment on conçoit un système de trading automatisé pas à pas.
Et si vous n’avez jamais programmé, vous pouvez « apprendre en marchant » comme je le fais actuellement.
N’oubliez pas que l’objectif n’est PAS de devenir un expert en programmation mais plutôt d’être un expert en élaboration de stratégies, avec suffisamment de connaissances en programmation pour y parvenir.
Il ne faut pas que le terme « expert » soit effrayant. La connaissance de quelques stratégies suffit et la connaissance d’une seule stratégie suffit à lancer ses premiers tests.
Inconvénient n° 3 – Les performances du passé ne présagent pas des performances du futur.
Cette phrase est très, voire trop, connue. C’est l’avertissement que tous les traders connaissent par cœur. Et c’est, bien sûr, vrai aussi en trading automatique.
Cela signifie simplement que peu importe ce que montrent vos magnifiques backtests, il n’est pas sûr que les performances de votre robot se poursuivront à l’avenir. Il se peut même qu’un algorithme ait fonctionné parfaitement dans le passé et s’effondre le premier jour de son passage en réel.
Il y a-t-il une parade à cet inconvénient ?
Disons qu’il n’y a pas de parade absolue mais il y a des outils pour améliorer grandement les probabilités de réussite d’un robot.
Il s’agit de connaitre les bons indicateurs (au sens métrique du terme), ceux qui permettent de juger la robustesse d’une stratégie automatisée. Il existe ainsi une vingtaine de critères formalisés en indicateurs de performances à étudier de près chaque fois que l’on automatise ou qu’on modifie l’automatisation d’une stratégie.
Le Rapport détaillé que propose ProRealTime après chaque lancement d’un robot constitue déjà une panoplie d’indicateurs minimum. Vous l’utilisez sans doute déjà en manuel.
Si on reprend le robot # ALGO NANA – Kamikaze V1, on peut déjà examiner certaines mesures et se faire une idée de l’intérêt de conserver ou pas cette stratégie.

Différentes métriques sont également à analyser à partir des Statistiques des positions clôturées (ci-dessous). Cet écran parait très difficile à comprendre a priori mais le but que nous nous fixons pour l’avenir est de rentrer dedans et d’en examiner chaque terme.

On va d’abord examiner les indicateurs relativement simples pour savoir d’emblée si on garde une stratégie ou si on l’abandonne :
- Le montant du gain
- Le pourcentage de trades gagnants
- Le drawdown
- Le ratio gains / pertes
- Le Risk / Reward ratio
- Le nombre maximum de pertes consécutives
- Le temps dans le marché
- Le MFE / MAE
Rappel : La stratégie « Nana Kamikaze », telle qu’elle est présentée, n’est PAS une stratégie que l’on va lancer en réel car elle n’a aucun garde-fou. Il s’agit simplement d’un exemple illustratif.
Essayons de tirer une conclusion très rapidement en regardant ces indicateurs :
– Plus haut, nous avons dit que ce robot prenait beaucoup trop de positions et que la durée des positions est trop longue. D’après le rapport détaillé, l’algo est en position 22,3% du temps ce qui est un énorme danger pour le capital.
– On peut remarquer que le ratio Risk / Reward est beaucoup trop proche de 1 c’est-à-dire que le gain pour 1$ risqué est de 0,02$ ce qui beaucoup trop faible.
– Le ratio de Sharpe de 0,07 est extrêmement bas. On vise qu’il s’approche le plus possible de 1.
On peut conclure que la base de cette stratégie fait gagner de l’argent mais qu’elle est à améliorer. Ces métriques seront expliquées dans un article à venir.
On devra tester déjà l’ajout d’un stop loss et d’un take profit qui peut faire passer un robot de perdant à gagnant… et l’inverse.
Inconvénient #4 – La sur-optimisation
Optimiser une stratégie, c’est en modifier les paramètres pour la rendre plus efficace.
Il y a des optimisations basiques absolument nécessaires. On peut par exemple optimiser la valeur du Stop loss. Quelque fois après backtest, on constate que 100 points de stop loss font tripler les gains par rapport à 50 points.
Et c’est très simple d’obtenir ce résultat. Je montrerai qu’on peut tester 10 montants différents de stop loss pour cibler le meilleur et que ça peut se faire en deux clics. C’est facile et efficace avec ProRealTime.
C’est de la bonne optimisation de votre robot.
Mais l’excès d’optimisation est un piège redoutable qui méritera un développement ultérieur dans un autre article.
Pour faire court, sur-optimiser c’est examiner une transaction perdante et rechercher ce qu’on peut modifier dans le code pour que la perte soit réduite ou que le robot évite même de prendre cette position.
On crée donc une nouvelle règle pour améliorer ou éviter cette transaction. Le résultat va être meilleur à un instant T mais dégradera les performances du robot à l’avenir.
Pour forcer le trait, si un backtest révèle que le RSI 15 périodes est mieux que le RSI 14 périodes entre le 17 novembre et le 24 janvier et que ça devient votre credo, vous allez tout droit à la sur-optimisation. Attention danger !
Vous pouvez jurer que vous ne ferez jamais une telle bêtise mais la sur-optimisation fait partie du chemin du trader en conception de robot.
Inconvénient n°5 – Je lance mon robot et…je vais à la plage. Non !
C’est une idée fausse. Il n’est pas imaginable de lancer votre robot et de revenir une semaine plus tard pour encaisser vos bénéfices.
Vous avez lancé un algo dont vous êtes content, le backtest est excellent mais, hélas, beaucoup de choses plus ou moins terribles peuvent se produire.
Pas besoin de se lever la nuit pour surveiller les positions (surtout parce que en général les robots deviennent inactifs à la fin d’une séance). Mais on doit vérifier l’exécution chaque jour et être prêt à agir si quelque chose de passe mal ou être prêt à encaisser ses gains si tout se passe très bien mais en prévision d’une suite mauvaise.

Conclusion
Si vous arrivez à ce stade de l’article, c’est que vous n’avez pas été dissuadé de tenter l’expérience. Et c’est une bonne chose car le trading algorithmique peut être une expérience amusante et enrichissante pour notre connaissance des marchés et notre compte en banque.
Aucune façon de trader n’est facile et celle-ci n’est pas une exception mais si on garde le cap et qu’on est rigoureux, on obtient plus de gains qu’en trading manuel.
Donc le trading automatisé est à essayer absolument.
DERNIERS ARTICLES PUBLIES
- Introduction au trading algorithmique
- Un des patterns du bonheur en trading
- Actualités Ikitrading
- Une question existentielle de trader – quel est le plus profitable ?
- Programmer un screener pour trouver des titres en tendance haussière avec le MACD et 2 Moyennes mobiles

© Tous droits réservés
Auteure
Diane Dulac
hellodiane@ikitrading.com
Inspirée par IKI
Dragon trader