Dans cet article
Après cet article, vous saurez…
- Suspendre une règle à trois données quand une manque.
- Calculer le spread dans une seule cotation horodatée.
- Dimensionner un volume sous coûts et pas sans confondre nominal et perte.
Les notions sans quitter l’article
Moyenne mobile simple (SMA) Plan de trading Backtest : test historique d’une règle Montant notionnel d’une position Compte de démonstration Espérance de résultatUn premier programme peut enregistrer des signaux, calculer un volume ou vérifier l'exposition sans transmettre d'ordre. Choisissez une opération dont vous pouvez expliquer et contrôler le résultat. Données, règle et comportement doivent précéder l'autorisation d'agir ; automatiser ne prouve aucune rentabilité.
Sélectionner, exécuter, gérer ou rendre compte
Un algorithme découpant un ordre déjà décidé n'a pas le même but qu'un robot choisissant les entrées. Le rapport BIS de 2020 sur les algorithmes d'exécution FX examine structure et risques, pas le profit d'un robot de détail. Son EA signifie execution algorithm ; dans MetaTrader, EA signifie Expert Advisor.
Spécifiez instrument, source, horaires, instant de décision, entrée/sortie, taille, limite d'exposition et position déjà présente. Le travail humain de définition et de supervision demeure. Un programme peut éviter une erreur manuelle tout en créant un doublon après redémarrage. Exactitude du code et valeur économique de la règle doivent être testées séparément.
Choisir l'environnement pour la tâche
Une alerte suffit parfois. Les alertes natives MT5 comparent prix, volume de dernière transaction ou heure ; elles ne sont pas un éditeur quelconque de moyennes et ATR. Indicateur ou EA peut porter une logique spécifique. MQL5 travaille dans MT5 ; Python analyse ou utilise une connexion documentée adaptée. Aucun parcours obligatoire alertes→MQL5→Python→FIX, délai de construction ou droit API chez tous les courtiers n'est établi.
La latence complète dépend du code, hébergement, réseau et exécution ; un langage ne garantit pas quelques millisecondes. Réimplémenter deux fois une idée est facultatif. Bases MQL5 et recherche Python décrivent des tâches distinctes.
La troisième donnée manquante change la décision
Règle fictive : dernière clôture 102 strictement supérieure à la moyenne d'exactement trois clôtures terminées : x ; 100 ; 102, de l'ancienne à la récente. Seules 100 et 102 sont connues. Si l'ancien x valait 98, moyenne 100, condition vraie. S'il valait 106, moyenne 308/3≈102,667, condition fausse. Ce sont deux complétions historiques possibles, pas des prix futurs.
Même dernière clôture, deux moyennes possibles
Faites défiler horizontalement ou agrandissez le schéma pour lire les détails.
Selon x, décision différente ; sans x il faut suspendre l’évaluation.
- x=98
- Moyenne 100 – 102> 100 vrai
- x=106
- Moyenne 308/3 – 102> 102,667 faux
- x manquant
- Non évalué – Ni zéro ni moyenne à deux
Moyenner seulement 100 et 102 donne 101, une autre règle. Remplacer x par zéro crée une donnée fictive. Consignez « historique incomplet », pas « condition fausse ». Si la récupération réussit ensuite, vérifiez les mêmes bougies attendues. CopyRates documente nombre retourné, erreurs et données partielles ; ce contre-exemple porte sur complétude, pas sens d'indexation des tableaux.
Séparer apprentissage technique et validation financière
Programmation, traitement de données, dimensionnement et raisonnement statistique servent à vérifier le comportement réellement utilisé. Modifier un paramètre sans erreur de syntaxe ne teste ni exécution ni hypothèse économique. Une courte courbe décrit son échantillon ; prévoyez données représentatives, évaluation séparée et essais démo sans nombre universel de transactions ou durée certifiant un avantage.
Une spécification puis des cas explicables
Pour un croisement EUR/USD en H1 hypothétique, définissez calcul EMA 21, SMA 55, ATR et distances choisies, bougies terminées, instant d'évaluation, stop et cible. Enregistrez d'abord sans ordres. Testez signal, absence de signal, nouvelle bougie, historique manquant et position existante. Un manque n'est pas un « pas d'entrée » calculé valablement.
Comparez décisions manuelles et automatiques sur mêmes données/dates. Cinq années automatiques et six mois manuels peuvent différer par régimes ou flux ; rapprochez les écarts de période identique avant évaluation des règles figées ailleurs. Une courbe finale similaire peut cacher d'autres transactions.
Dimensionnement source distinct : fonds propres 10 000 USD, budget de perte de prix choisi 0,5 %=50 USD ; stop 25 pips, pip 0,0001, contrat 100 000 EUR/lot. Valeur 10 USD/pip/lot ; 50/(25 × 10)=0,20 lot, quantité 20 000 EUR avant coûts. Nominal, marge et perte prévue sont différents. Ajoutez commission et hypothèses d'exécution puis respectez le pas ; stop ordinaire ne plafonne pas sûrement 50 USD.
Modèle EUR supplémentaire : fonds propres 2 000 EUR, budget choisi 0,5 %=10 EUR ; cours stipulé 1,20 USD/EUR et valeur 10 USD/pip/lot, soit 25/3 EUR. Frais additionnels fixes 2 EUR, même stop 25 : volume théorique 8/(25 × 25/3)=0,0384 lot. Sous pas 0,01 et minimum compatibles, arrondir vers 0,03 donne perte de prix 6,25 plus 2=8,25 EUR ; 0,04 donnerait≈10,33 EUR, au-delà du budget. Ces paramètres ne sont pas une recommandation de risque.
Autre piège fictif : t1 Bid/Ask 1,1000/1,1002, t2 1,1010/1,1012, deux spreads 2 pips avec pip 0,0001. Mélanger l'Ask de t1 et le Bid de t2 crée(1,1002−1,1010)/0,0001=−8 pips : un filtre< 2,5 accepterait une valeur fabriquée, pas un spread négatif observé. SymbolInfoTick fournit prix et heure dans une structure MqlTick ; vérifiez le succès et gardez ses champs ensemble. Cohérence n'est pas garantie de liquidité ou remplissage.
Tester règle, données, code et état opérationnel
Les échecs ne se réduisent pas à deux causes. Réponse d'ordre ambiguë : examinez ordres, exécutions et positions avant nouvelle tentative. OrderSend vrai ne certifie pas le remplissage ; analysez résultat et transactions. Gardez version, horodatage et motif d'action ou d'abstention.
Conservez toutes les variantes, y compris mauvaises. Modifier après lecture du jeu d'évaluation l'intègre au développement. Exemple à R fixe fictif : cent opérations, 40 gains de 2 R, 60 pertes de 1 R ; moyenne(80−60)/100=0,2 R avant coûts, profit factor 80/60≈1,33. Ce ne sont pas des résultats de méthode testée ou des fréquences futures.
Budgétez données, hébergement, licences et temps même si le langage est gratuit. Droits d'accès, redémarrage et récupération dépendent du montage. Un VPS n'élimine ni panne ni supervision ; bouton AutoTrading local n'éteint pas toutes les instances et ne ferme pas les positions.
Un premier projet peut rester sans ordre
- Écrire données, horodatage, règle, résultat et conditions d'arrêt de l'évaluation.
- Vérifier complétude, clôture des bougies et cohérence des cotations sur petits cas.
- Si nécessaire, ajouter des ordres en environnement démo identifié : acceptation, rejet, redémarrage, réponse ambiguë.
- Figer pour une évaluation séparée avec coûts adaptés et conserver les écarts inexpliqués.
- Écrire pause, reprise et mise à jour, en distinguant protection serveur et gestion programmée.
Un calendrier ne force pas le passage au réel ; la démo ne garantit pas les mêmes exécutions. Évaluer un avantage complète le backtest ; nominal et espérance désignent d'autres contrôles que le bon fonctionnement du code.
Vérifiez vos acquis
Environ 2 minutes de pratique.
Voir la réponse et l’explication
Complétions 98 et 106 donnent des décisions opposées. Aucune ne doit être inventée comme donnée.
Autres questions
Qu’est-ce qu’un premier projet algorithmique ?
Une opération spécifiée : signal, exécution, gestion ou rapport. Elle peut rester sans ordre. Données, instant, manque, quantité, exposition et statut doivent être définis ; pourcentage de perte prévue ne vaut ni nominal ni plafond garanti.
Alerte, EA ou programme de recherche ?
Selon la tâche, sans parcours obligatoire. Une comparaison native simple diffère d’une logique personnalisée ; MQL5 et Python ont leurs propres connexions documentées. Aucun délai de construction, accès API universel ou latence garantie ne découle du langage.
Quelles compétences vérifier au-delà de coder ?
Données, risque et raisonnement statistique sur les fonctions utilisées. Petits cas, historique incomplet, rejet et réponse ambiguë complètent l’évaluation économique séparée. Aucun nombre de transactions ou durée démo ne certifie un avantage.
Quels échecs examiner avant extension ?
Règle, données, code, exécution et fonctionnement continu. Un résultat historique positif ne valide pas un déploiement. Gardez variantes refusées, procédure de pause et rapprochez décisions/remplissages, pas seulement la dernière courbe.
Sources et vérification
- BIS 2020 : algorithmes d’exécution FX
Résumé et définition des execution algorithms du rapport2020 : exécuter une quantité décidée, sans preuve de profit d’un robot particulier. Pas de lecture intégrale des61pages revendiquée.
- MQL5 : CopyRates
Nombre de données copiées, erreurs et retour partiel documentés. Complétude distincte du sens d’indexation.
- MQL5 : SymbolInfoTick
Prix et temps dans une structure MqlTick ; vérifier le succès de l’appel. Cela ne garantit pas la liquidité.
- MQL5 : OrderSend
Une valeur vraie ne certifie pas le remplissage ; résultat et état des transactions restent à vérifier.
Les calculs reposent sur des hypothèses explicites. Ils ne remplacent ni les données actuelles du marché ni les conditions de l’intermédiaire.
