Julie Ramadanoski - Mes Petites Machines à Cash

3/3 Construire un bot de copy trading : architecture, erreurs et imprévus

Julie Ramadanoski Season 3 Episode 10

Pour automatiser un signal de trading, je dois construire une véritable architecture : 

  • bot, 
  • serveur, 
  • API IG, 
  • environnement technique

Cet épisode révèle les coulisses d’un projet de trading automatisé et les imprévus techniques que j’ai rencontrés.

👉 Série : Copy trading - Mes Petites Machines à Cash
🎧 Épisode 9 — Copy Trading :  Automatisation du copy trading

📲 Mes Petites Machines A Cash l'outil pour structurer, piloter et automatiser vos stratégies. Devenez bêta-testeur·se, testez l’appli gratuitement  :

https://v2mespetitesmachinesacash.vercel.app/

--- 

⚙️ code promo OUTILS ⚙️ 

💙 Soutenez le podcast en laissant un avis sympa et 5 étoiles sur votre appli de podcast préférée ! 💙

🔗 En savoir plus sur moi 🔗
Site
LinkedIn 

Julie Ramadanoski

 Enfin… après toutes ces péripéties,
nous y sommes.

Le graal que nous convoitions depuis le début
est là, juste devant nous.

Il n’y a plus qu’à le saisir.

Aujourd’hui, on va enfin automatiser notre copy trading.

Mais attention —
c’est ici que la théorie rencontre la réalité.

Que se passe-t-il quand on confie nos ordres à un courtier ?

Vous allez découvrir la vraie face du trading :
celle qui est injuste, impitoyable, et sans pardon.

Je vous rappelle qu’il n’y a aucun conseil en investissement dans cette émission.
Tout ce que vous entendez ici, sont les réflexions et expérimentations d’une développeuse curieuse.
Pas une incitation à investir.

[rétropective des 2 épisode précédent] 

Avant de plonger dans la suite,
prenons un instant pour revenir sur le chemin parcouru.

Dans le premier épisode,
j’étais pleine d’enthousiasme — et d’illusions.

J’ai découvert le monde du trading de devises,
ce grand casino numérique où tout bouge en millièmes de centimes.

J’ai cherché un signal, trouvé des promesses,
et fait mes premiers calculs de gains,
persuadée que l’automatisation allait me rendre libre.

Je croyais que comprendre les chiffres suffirait à maîtriser le risque.

Et puis j’ai plongé.

J’ai appris à passer mes ordres,
à manier le levier,
à sentir cette montée d’adrénaline
quand on croit avoir trouvé la formule magique.

Sauf que la magie… n’existe pas.

Dans le deuxième épisode,
j’ai commencé à regarder sous le capot.

J’ai décortiqué la stratégie que je copiais,
cherché la logique derrière chaque décision,
et découvert l’envers du décor du copy trading.

Entre des signaux contradictoires,
des positions incohérentes,
ou management du risque dangereux.

Et surtout,
des traders qui vendent leur “méthode miracle”
sans l'appliquer eux-mêmes.

C’est là que j’ai compris que des chiffres réels ne protège pas de la naïveté.

J’ai appris que suivre aveuglément,
c’est renoncer à comprendre, c'est choisir d'être manipulé.

Alors j’ai commencé à rétro-ingénier ce que je recevais :
comprendre, corriger, tester, observer.

Et à chaque ligne de code,
je voyais un peu plus clair sur les vrais risques cachés derrière l’automatisation.

Aujourd’hui, dans ce dernier épisode,
on passe de la théorie à la pratique.

Ce que j’avais imaginé comme la création d'un bot de trading
s’est révélé être un saut dans la complexité.

Parce qu’automatiser,
ce n’est pas juste appuyer sur “play”.

C’est choisir ce qu’on délègue, ce qu’on contrôle,
et ce qu’on accepte de perdre.

C’est ça, la vraie face du trading.

Pas celle des graphiques,
mais celle des décisions.

Bienvenue dans Mes Petites Machines à Cash.

Je m’appelle Julie,
je suis développeuse d’applications full-stack en freelance.

Et s’il y a bien une chose que j’ai expérimenté,
c’est que l’automatisation,
sans préparation solide,
ne fait qu’accélérer le crash
vers lequel on allait déjà.

À chaque fois que je conçois une stratégie,
je me repose la même question :

“À quoi bon créer une machine à piloter ma stratégie
si, au fond, elle n’est pas rentable ?”

C’est pour répondre à cette question
que j’ai créé Mes Petites Machines à Cash
un outil simple, pour apprendre à penser comme un investisseur
ou un trader expérimenté,
sans perdre de vue l’essentiel.

Je sais que tout ça peut paraître fastidieux :
poser les bonnes questions,
structurer ses idées,
mettre à plat ses biais et ses limites.

Alors, j’ai conçu pour vous un jeu de 31 questions,
réparties en 4 niveaux,
pour explorer votre rapport au risque,
à la discipline,
à la motivation…
et à la réalité.

Pourquoi se prêter au jeu ?

Pour que vos automatisations suivent vos objectifs,
et pas seulement ce qu’une IA
ou un développeur aura compris de travers.

Le lien vers la bêta gratuite est en description. Vous aurez un accès illimité à la première version, 

et j’aimerais beaucoup vos retours
pour construire ensemble
le cockpit parfait
de vos petites machines à cash.

Il y a des épisodes qu’on écrit d’une traite, et d’autres pour lesquels on se creuse les méninges
Celui-ci fait clairement partie de la deuxième catégorie.

Parce que cette fois, j’ai été coupée dans mon élan à chaque étape.
Chaque fois que je pensais avoir résolu un problème,
un autre surgissait, plus vicieux, plus tordu, plus absurde.

Au départ, j’étais persuadée que tout serait plié en un mois —
juste le temps de découvrir ce que je ne savais pas encore.
En réalité, entre le trading manuel, mes clients,
et les catastrophes techniques à la chaîne,
j’ai mis trois fois plus de temps.

Ce n’était pas une partie de plaisir.
Mais si vous rêvez, vous aussi, de fabriquer votre propre machine à cash,
alors laissez-moi vous épargner quelques migraines.

Parce qu’aujourd’hui, on va parler technique.
Pas de théorie, pas de “bulles financières” :
on met les mains dans le camboui, les serveurs, et le code.

Je vais rester accessible — promis —
que vous soyez curieux, bidouilleur, ou no-codeur dans l’âme.
Mais gardez du Doliprane à portée de main… 

parce que la machine que j’ai construite, elle n’a pas toujours voulu naître.

🎙️ Épisode 3 – Naissance d’une Machine à Cash

🪛 Mars 2024 — La première pulsation

Avant même de parler de stratégie, de signaux ou d’automatisation,
il y a une première marche souvent invisible :
celle de la stack technique.

C’est la premiere marche… mais aussi la plus raide.
Celle où tu réalises que, pour donner vie à ta machine,
il faut d’abord lui construire un corps capable de l’accueillir.

⚙️ Configurer Node

Je n’avais encore rien commencé que j’étais déjà en galère.
Je n’avais jamais hébergé d’application Node.
Je ne savais même pas par où commencer,
mais j’ai fait ce que je fais d’habitude : j’ai cherché, et j’ai persisté.

J’avais choisi Node pour sa rapidité, sa légèreté —
le parfait moteur pour un bot réactif.
Mais mon serveur, lui, n’était pas prévu pour.

Un hébergeur d’entrée de gamme, conçu pour héberger des sites e-commerce.
Pas pour faire tourner une application sur mesure, sortant de ces sentier battus.

🧠 Apprivoiser la contrainte

J’ai donc passé une semaine entière dans la documentation,
à bricoler une solution de secours.
Une façon de ruser avec les limites du serveur :
créer un petit espace isolé,
un répertoire à part où je pourrais déposer mon bot,
pour le laisser s'exprimer

Mais comment faire pour le faire grandir petit à petit. je dois trouver une façon rapide de déployer les améliorations pour tester si ca fonctionne.

J’utilise Bitbucket comme un laboratoire où je conserve l’ADN de ma machine.
Chaque fois que je termine une version, je dépose un nouveau fragment de code,
une mutation prête à être testée. À chaque déploiement,
ma machine se réveille avec un morceau d’elle-même amélioré.

Dans la vraie vie, ça s’appelle un pipeline de déploiement,
et ce n’est pas trivial

💣 Il existe Trois écoles du déploiement

  • La brute épaisse :
    on écrase tout sans sommation.
    Gare à vous si un fichier traîne, tout peut planter.
  • La bête et méchante :
    on arrête tout, on efface, on recopie, on relance.
    Méthode radicale, un peu barbare, mais tres efficace.
  • L’intelligente (mais exigeante) :
    on copie le projet dans un nouveau dossier,
    puis on redirige le serveur vers cette version.
    Élégant, mais ça demande une gestion rigoureuse

Petit à petit, je configure, je redémarre, ca casse, je recommence.
Chaque succès est minuscule, mais il compte. 

Et puis un matin, après tant d’essais,
le terminal affiche enfin quelque chose.

Il dit bonjour… et puis plus rien.

C’est tout ?! Je suis tellement désarçonné, ou sont mes messages ?

Je cherche quelques heures, dans le code. Mais le problème n'est pas là.

Je fini par trouver la cause dans un message d'erreur Le problème ? Les variables d’environnement.

Pour se connecter à Telegram, il faut des mots de passe.
Évidemment, on ne les met pas dans le code —
on les garde dans le serveur, bien cachés.

Sauf que mon serveur, lui, n’était toujours pas fait pour cette mission Lancer des commandes dans un fichier de paramétrage.

Mettre mon login mot de passe c’était comme essayer faire tourner un four dans une recette de cuisine.

Apres beaucoup d'essais et un découragement installé Je lis mes logs sans plus aucune once d'espoir.

Là, Une nouvelle ligne. Un message. Rien d’extraordinaire.
Mais pour moi, c’est un battement de cœur.

📡 Avril 2024 — Enseigner à une machine à écouter

L'euphorie est là, Mais elle ne dure pas longtemps. On a encore énormément de travail pour automatiser ce signal.

Mais j'ai la sensation que le plus dur est fait. C'est l'ensemble de tout ce que je ne connaissais pas encore.

Lire, c’est bien.
Comprendre, c’est mieux.

Mon objectif du mois : apprendre à mon bot à lire les signaux humains.
Des phrases comme :

“Buy EURUSD 1.1020 SL 1.0980 TP 1.1060”

Pour un humain, c’est clair : on achète l’euro face au dollar,
on place une sécurité à 1.0980 et un objectif à 1.1060.
Mais pour un robot, c’est du charabia.

Je lui apprends à déchiffrer le langage du trading :
à repérer le symbole, le sens (achat ou vente), le prix d’entrée,
et les fameuses bornes de sécurité et de profit.

Seulement faut 'il encore qu'il écoute ce que je vois C’est là qu’entre en jeu Telegram

le canal où le signal de trading est diffusé. pour lui donner l'information en temps réel

Mais après des tas de tests, mon bot est sourd, il n'entend pas le groupe. Il ne peux pas lire les messages

Pour cause, pour écouter un groupe Telegram,
il faut être invité.
Bien sur ce n'est pas dans la politique du signal de se faire copier par n'importe qui

🧠 Trouver une ruse

J’ai donc cherché une alternative, et je l’ai trouvée :
écouter mes propres canaux.

L’idée ?
Faire en sorte que ce ne soit pas le bot,
mais mon propre compte Telegram qui capte les messages —
comme si je les lisais moi-même.

Problème : mon compte contient aussi mes conversations personnelles.
Je devais éviter que tout ça ne transite dans mon serveur.

Heureusement, Telegram permet de filtrer les canaux.
J’ai pu isoler uniquement celui du signal.

Et là, miracle :
mon bot a commencé à lire les messages,
enregistré dans le journal de l'application pour constater la réception

Je voyais défiler les ordres comme des lignes de code vivantes :
des paires de devises, des chiffres, des intentions de marché.

À ce moment précis,
mon bot n’était plus un simple programme.
C’était une oreille qui écoutait le monde du trading,

malgré toutes les difficultés déjà rencontrées Je savais d"jà qu'il y aurait d'autres épreuves Un immense fierté m'à poussé à continuer 

💻 “IG, le courtier et le code magique”

Après toutes ces semaines à bricoler mon serveur et à éduquer mon bot,
il était temps de passer à l’étape décisive :

parler à un vrai courtier.

Et là… j’entre dans une jungle.
Des types d’ordres, des contraintes, des champs obligatoires,
des abréviations qui n'ont de ses que pour l'API

Je découvre un monde où tout se dit en termes financiers :
"dealId", "epic", "expiry", "size", "direction"…
je reconnais les mots mais pas comment m'en servir. Bref, une langue étrangère.

🪪 Montrer patte blanche

J'ai fait un petit comparatif des courtier qui acceptent de passer par leur API Figurez vous qu'en 2024 pour des français il n'y en avait qu'un seul qui me plaisait C'ets le courtier IG. Bien documenté avec du code pret à utiliser.

Quand j’ai voulu ouvrir mon compte de démo chez IG,
je m’attendais à un formulaire, un mail automatique,
et basta.

Mais non.
Je reçois un appel d’un commercial.

Le gars, très cordial, me pose des questions étranges :
combien je veux investir, quel type de produits je veux trader,
et — je cite — “quelle est votre expérience des marchés financiers ?”

Je me demande encore s’il voulait vérifier
si j’étais une cliente sérieuse ou juste humaine. 😅

Je lui explique calmement :

“Je suis développeuse.
Je construis un bot de copy trading.
J’ai juste besoin d’un compte de démo pour tester mes développements.”

Il réfléchit deux secondes, puis me demande quelles options je souhaite activer.
Je n’y comprends pas grand-chose, alors je lâche :

“Mettez tout, on verra bien ce que je copierai plus tard.”

je sens du jugement dans son silence, puis il tente de me dissuader gentiment. Je le rassure que je ne ferais rien d'inconsidéré.

Résultat :
je me retrouve avec un compte turbo, CFD, options,
Des choses dont je n’ai toujours pas saisi tout l'intérêt encore aujourd'hui.
Mais bon, j'ai mon compte c'est tout ce qui importe !

🧩 Une API d’un autre temps

Côté technique, IG propose bien une API…
mais elle date, disons, d’une autre époque.
Les dernière mise à jour sont lointaines

En fouillant sur GitHub, je tombe sur le dépôt d’un développeur inconnu
qui a refait une interface non officielle pour se connecter à IG —
il y a huit ans.

Je télécharge, je met à jour, j’adapte, je nettoie un peu le code,
je relance les tests… et miracle :
mon bot passe se connecte sans broncher à IG

🤯 Le code ne parle pas finance

Pourtant Impossible de faire passer le moindre ordre sans comprendre le sens exact de chaque paramètre. 

Je croyais coder un bot, je me retrouvais à suivre un cours accéléré de micro-finance.
Et c’est là que ChatGPT est devenu mon vrai copilote de développement.

Sans préambule, Je lui ai donné à manger la documentation de l’API d’IG,
en lui disant textuellement :

“Explique moi comment m'en servir.”

Il m'a expliqué en français le sens dans lequel les flux financiers travaillent

Puis je lui ai donné la façon dont je formalisais mes ordres Il m’a sorti un script fonctionnel.
Je lui ai demandé de m'écrire le test qui prouverais le fonctionnement

Je l'ai implémenté le tout, une fois tout au vert je déploie la connexion à mon courtier IG

J’ai vu une position s’ouvrir automatiquement.
Mon bot venait de trader pour la première fois.
Un instant magique. 

Mon code et la finance parlaient enfin la même langue.

🧭 Juin 2024 — Le bot schizophrène

Le bot fonctionne enfin. Il écoute, comprend, agit.
Mais très vite, quelque chose cloche.

⚡ Le syndrome du dédoublement

Un matin, je découvre que mes positions s’ouvrent en double.
Deux ordres identiques, exécutés à quelques millième de secondes d’intervalle.
Et quand le signal sera perdant, ce sera l'hémorragie :
je perdrais deux fois plus vite.

c'est une catastrophe, je n'arrive pas à identifier ce que j'ai mal fait.

Je vérifie tout : le code, la logique, les messages reçus.
Rien. 

Tout semble parfait.

Jusqu’à ce que je tombe sur le vrai coupable : mon serveur lui-même.

Il lançait deux instances de Node en parallèle.
Deux cerveaux qui réagissaient simultanément au même signal.

Je tue le premier processus… il revient.
Je le tue encore… il revient.
Un zombie numérique.

La solution ?
En faire un être Unique Je lui ai implanté un singleton :
qui dit : interdit de se lancer à nouveau, utilise celui qui tourne déjà

Et d’un coup, tout reviens à la normale plus de zombie, je retrouve une application saine.

🧪 Le double monde : Démo vs Réel

À peine cette crise résolue, qu'un autre bug surgit. 

Certains trades partent sur mon compte démo,
d’autres… sur le compte réel.

Autant dire que mes tests devenaient dangereux. Heureusement que je n'avais pas provisionné le compte réel

En fait, j’ai voulu séparer mes environnements :
un compte démo pour tester,
un compte réel pour quand je serais prête.

Je découvre que Telegram, le coquin,
n’autorise pas d'utiliser 2 fois le même numéro de téléphone facilement Dans mon cas : impossible de séparer mon compte de trading en démo du réel

Ah ! encore une fois je passe des jours à tenter de trouver une solution pour avoir le beurre et l'argent du beurre avoir un compte de démo et de production sur le même compte Telegram

Mais rien n'y fais ce serais trop démotivant de rester bloqué là dessus plus longtemps

Alors j’ai tranché :
je reste en mode démo.
Le bot apprendra à marcher avant de jouer avec de vrais euros.

Aujourd'hui avec le Recul (Merci Telegram de m'avoir freiné dans mon automatisation prématurée)

📡 “Les chiffres ne mentent pas (mais le signal, si)”

Finalement ce petit bot ne tournais pas trop mal. ! J'avais au fur et à mesure ajouté les fonctionnalités de prise de profit géré les paires qui avait des positions simultanées débuger les mauvais copier coller du trader..

et je pouvais vérifier manuellement la cohérence

À ce moment-là, j’étais fière.
J’avais l’impression d’avoir franchi une montagne.

Mais une question me hantais toujours :

“Est-ce que ce que je copie est vraiment rentable ?”

Le courtier me donnait mes résultats…
mais il ne me disait pas ce que j’avais raté.
Je n’avais aucun moyen de savoir
si mes pertes venaient de moi, du signal, ou d'un hasard encore non identifié.

💾 La base de données en carton

Alors j’ai créé mon propre système de reporting maison.

Je me suis dit : “OK, il me faut une base de données.”
Mais laquelle ?
PostgreSQL ? MongoDB ? NoSQL ?

Et là, l’évidence m’a frappée :

“Pourquoi faire compliqué ?”

Je suis la seule à utiliser ce bot,
je n’ai pas besoin de multi-utilisateurs, ni d’accès public.
Alors j’ai pris… un simple fichier JSON.

C’est rustique, oui — mais d’une efficacité redoutable.
Je stocke tout :

  • les messages reçus,
  • les ordre que j’en déduis,
  • ce que j’envoie au courtier,
  • les erreurs que je reçois
  • les résultats.

Chaque ligne, c’est un petit fragment de vérité.

je peux enfin tout retracer et tout comparer :

“Qu’est-ce que j’ai envoyé ?
Pourquoi le courtier l’a refusé ?
À quel moment ça a déraillé ?”

Ce fichier JSON, c’était ma boîte noire.
Pas glamour, pas scalable,
mais sans elle, je n’aurais jamais compris ce que ma machine faisait.

Je récupérais le détail chez mon courtier et le comparais au message reçu. J'aurais du faire ça des le début. 

C’était du 100 % artisanal — aujourd’hui, j’utiliserais une IA,
mais à l’époque, chaque bug passait par mes yeux.

En tout cas Les résultat étaient édifiants

C'est à ce moment là que je me rend compte que ce signal n'est pas automatisable.

Il dépend de la faculté du trader à faire des copier coller a la vitesse de l'éclair et sans se tromper

Puis aussi de sa bonne foi a afficher tous ses trades perdant. car il y en avait un par semaine passé à la trappe en moyenne. Suffisament pour réduire tout effort à néant

Puis il y a les frais ! Mais je découcre sur le relevé de mon couriter qu'il me prévèle des frais en cascade ! à l'ouverture, à la fermeture, à la garde des position la nuit et aussi le weekend !

je comprend pas tout ça àl 'époque, mais ce que j'ai compris c'est que le raquettage institutionnel est là.

je comprend maintenant pourquoi une pllication de trading clignote dans tous les sens leur métier n'est pas de nous faire gagner de l'argent, leur métier est de nous faire trader souvent !

Je ne me décourage pas, si ce n'est pas ce signal que je copierai ça en sera un autre

Et puis un matin, encore une catastrophe. j'en peux plus de faire du copy trading. je commence à en avoir ma claque

Le signal a changé complètement de format.

D’un jour à l’autre, mes messages deviennent illisibles.
Les ordres ne passent plus, les valeurs sont incohérentes.
Je passe des heures à corriger,
je modifie le parseur, j’ajuste la logique… 

et quand tout refonctionne, ils changent encore.

Cette fois, ils n’envoient plus du texte,
mais des images contenant les signaux. 😳

C’est la panique.
Comment automatiser ça ?

Après plusieurs jours de recherches, je découvre une solution :
l’OCR — la reconnaissance de texte dans les images.
Je branche l’outil, je teste, j’y passe une semaine complète.
Enfin, ça refonctionne !

Je m’apprête à le mettre en production…
et là, plus rien.
Le fournisseur arrête d’envoyer des images.

J’ai éclaté de rire.
Pas nerveux, pas amer — un vrai fou rire.
Parce que j’ai compris :
je n’étais probablement pas la seule à copier automatiquement leurs signaux.

Des concurrents avaient réussi à faire comme moi Mais pour le revendre ! Quelle idée de génie. ca m'aurais certainement plus rapporté

Ils ont rajouté des copyright, à mon avis sans grand succès

Mais les clients eux ont du râler, j'imagine que je ne suis pas la seule à avoir automatisé pour son compte personnel

À ce moment-là, j’ai réalisé que dans le monde du trading,
même les signaux les plus douteux peuvent avoir… peur de la copie.

En conclusion ! le copy trading automatisé c'est pas magique

C’est technique, capricieux, parfois injuste.
Et si vous ne comprenez pas ce que vous faites, hé bien vous vous faites avoir !

Cette expérience menée l'an dernier m'a énormément servie.

j'ai pu observer d'autres stratégies avec un œil critique Mais je découvre encore une fois que j'ai besoin de me poser les bonnes questions beaucoup trop aveuglée par l'espoir de gain rapide

C'est pour ça que j'ai créé l’application Mes Petites Machines à Cash. c'est mon garde fou, elle me force à me poser les questions qui confrontent les promesses des vendeurs de rendements à la réalité

Elle me demande si c'est ok avec toutes mes contraintes Elle m'oblige à prendre mes décisions maintenant et pas dans l'urgence Elle m'aide à voir plus loin que les prises de profits

Ne soyez pas comme moi, Ne devenez pas le dindon de la farce

👋 À mardi prochain,
pour un nouvel épisode de Mes Petites Machines à Cash.