Programming your strategy in 10 steps with Universal Expert Advisor and Open Source
Push.Mail. Travailler avec les emails et les notifications dans MetaTrader
Description
Scalping est l’une des méthodes les plus exigeantes, risquées et simultanément rapides pour gagner de l’argent. Cependant, il n’est pas garanti que vous recevrez vos profits après avoir effectué des transactions.
Les stratégies basées sur le taux de données tick sont peut-être parmi les systèmes les plus discutés et rentables. Cependant, il y a quelques nuances à considérer.
Les cotations entrant dans le terminal contiennent des quantités variables de données.
Même si vous installez deux terminaux identiques de la même société et les lancez simultanément (ce qui est irréaliste), vous n’obtiendrez pas des résultats 100% précis.
De plus, démarrer vos scalpers en même temps ne donnera pas des résultats parfaitement synchronisés.
Les transactions sur deux terminaux peuvent différer.
Cette variation dépend uniquement du flux de transmission des données du serveur à votre terminal.
La discussion de mes systèmes TickSniper pour MT4 et TickSniper pour MT5 se déroule sur d’autres forums avec une question : Pourquoi y a-t-il des positions ouvertes et des profits différents sur MT4 et MT5 ?
La réponse est simple : la différence dans les cotations. Le terminal MT4 a un flux de cotations plus lent, probablement en raison de la congestion du trafic.
Dans le terminal MetaTrader 5, le flux de cotations est dix fois plus rapide, ce qui entraîne des différences significatives entre les transactions ouvertes.
Pour cet article, deux Experts Advisors ont été spécialement développés : TEST TICK pour MT5 et TEST TICK pour MT4. Ils sont complètement identiques en code (bien sûr, les langages de programmation sont différents, donc les noms des fonctions varient).
Code pour MT4 :
#property copyright "Copyright 2024, expforex" #property link "" int timestart = 0; int ticknumber = 0; // Tick number double PriceBID = 0; // BID tick price double PriceASK = 0; // ASK tick price int TimemsTick = 0; // Tick time in ms int init() { timestart = Time[0]; // Start counting from a new bar so that all EAs on all terminals start the same way. return(0); } // The advisor starts with each tick int start() { if(timestart != Time[0]) { if(TimemsTick == 0) TimemsTick = GetTickCount(); ticknumber++; PriceBID = Bid; PriceASK = Ask; Comment("\n\n\n\n Tick Number = " + ticknumber + "\nPriceBID = " + PriceBID + "\nPriceASK = " + PriceASK + "\nTimeTickinms = " + (GetTickCount() - TimemsTick)); Print("Tick Number = " + ticknumber + " PriceBID = " + PriceBID + " PriceASK = " + PriceASK + " TimeTickinms = " + (GetTickCount() - TimemsTick)); } return(0); }
Code pour MT5 :
#property copyright "Copyright 2024, expforex." #property link "" #property version "1.00" int timestart = 0; int ticknumber = 0; // Tick number double PriceBID = 0; // BID tick price double PriceASK = 0; // ASK tick price int TimemsTick = 0; // Tick time in ms int OnInit() { datetime Time[]; ArraySetAsSeries(Time, true); CopyTime(_Symbol, _Period, 0, 1, Time); timestart = (int)Time[0]; // Start counting from a new bar so that all EAs on all terminals start the same way. return(INIT_SUCCEEDED); } // The advisor starts with each tick void OnTick() { datetime Time[]; ArraySetAsSeries(Time, true); CopyTime(_Symbol, _Period, 0, 1, Time); if(timestart != (int)Time[0]) { if(TimemsTick == 0) TimemsTick = (int)GetTickCount(); ticknumber++; MqlTick last_tick; SymbolInfoTick(_Symbol, last_tick); double Bid = last_tick.bid; SymbolInfoTick(_Symbol, last_tick); double Ask = last_tick.ask; PriceBID = Bid; PriceASK = Ask; Comment("\n\n\n\n Tick Number = " + ticknumber + "\nPriceBID = " + PriceBID + "\nPriceASK = " + PriceASK + "\nTimeTickinms = " + (GetTickCount() - TimemsTick)); Print("Tick Number = " + ticknumber + " PriceBID = " + PriceBID + " PriceASK = " + PriceASK + " TimeTickinms = " + (GetTickCount() - TimemsTick)); } return; }
Ces Experts Font ce Qui Suivant :
Lors de l’initialisation, l’advisor enregistre la barre sur laquelle il a démarré pour s’assurer que tous les experts sur les quatre terminaux commencent simultanément sur la barre suivante (dans notre cas, M30).
Par la suite, à chaque tick, l’advisor enregistre les données à l’écran et dans le journal : numéro du tick, prix BID/ASK et temps du tick en millisecondes depuis le début du calcul.
J’ai téléchargé deux terminaux MT4 et deux terminaux MT5 du même courtier pour rendre notre test plus crédible.
J’ai lancé les terminaux, appliqué les graphiques EURUSD M30 sur les quatre terminaux et utilisé un Expert Advisor pour vérifier nos observations.
Les entrées initiales dans nos journaux indiquent que nous avons commencé simultanément :
mt4_1 :
18:29:58 TEST TICK EURUSD, M30: Tick number = 1 PriceBID = 1.32281000 PriceASK = 1.32289000 TimeTickinms = 0
mt4_2 :
18:29:58 TEST TICK EURUSD, M30: Tick number = 1 PriceBID = 1.32281000 PriceASK = 1.32289000 TimeTickinms = 0
mt5_1 :
GR 0 18:29:58 TEST TICK (EURUSD, M30) Tick number = 1 PriceBID = 1.32336000 PriceASK = 1.32344000 TimeTickinms = 1065503
mt5_2 :
GR 0 18:29:58 TEST TICK (EURUSD, M30) Tick number = 1 PriceBID = 1.32335000 PriceASK = 1.32345000 TimeTickinms = 1065674
Comme le montrent les captures d’écran suivantes, les cotations ont commencé de manière identique, mais nous avons observé des divergences de 1 à 2 ticks. Cela indique clairement :
Le scalper ne peut pas obtenir des résultats 100% identiques sur deux plateformes MT4 différentes et MT5.
Il ne peut pas non plus ouvrir des transactions simultanément sur deux terminaux de la même plateforme MT4/MT5.
C’est irréaliste et ce n’est pas la faute du courtier.
Le protocole de transport traverse le réseau du serveur à votre ordinateur, entraînant une perte de paquets—une occurrence normale.
Différence dans les Calculs et l’Analyse
Les captures d’écran suivantes illustrent les divergences :
C’est seulement 3 minutes après le démarrage des advisors.
Référons-nous à nos journaux pour le tick numéro 1433 sur les terminaux MT4 :
18:47:44 TEST TICK EURUSD, M30: Tick number = 1433 PriceBID = 1.32336000 PriceASK = 1.32344000 TimeTickinms = 1065503
18:47:44 TEST TICK EURUSD, M30: Tick number = 1433 PriceBID = 1.32335000 PriceASK = 1.32345000 TimeTickinms = 1065674
Nous avons le même temps serveur, mais le temps en ms diffère, ainsi que les cotations.
Tick numéro 1684
18:52:05 TEST TICK EURUSD, M30: Tick number = 1684 PriceBID = 1.32377000 PriceASK = 1.32385000 TimeTickinms = 1326586
18:52:03 TEST TICK EURUSD, M30: Tick number = 1684 PriceBID = 1.32374000 PriceASK = 1.32382000 TimeTickinms = 1324496
Non seulement le temps diffère, mais aussi les prix BID/ASK.
Maintenant, comparons la même chose sur les terminaux MT5 :
ES 0 18:48:42 TEST TICK (EURUSD, M30) Tick number = 4316 PriceBID = 1.3231 PriceASK = 1.32318 TimeTickinms = 1124050
DS 0 18:48:43 TEST TICK (EURUSD, M30) Tick number = 4316 PriceBID = 1.32311 PriceASK = 1.3232 TimeTickinms = 1124502
Même numéro de tick, mais pourquoi des prix différents ?
Ou voici un autre exemple :
RJ 0 18:52:21 TEST TICK (EURUSD, M30) Tick number = 4984 PriceBID = 1.32363 PriceASK = 1.32371 TimeTickinms = 1342701
H 0 18:52:22 TEST TICK (EURUSD, M30) Tick number = 4984 PriceBID = 1.32364 PriceASK = 1.3237 TimeTickinms = 1344355
Différence dans le Temps d’Arrivée des Ticks en ms, Différents Prix ASK/BID
L’archive contient tous les matériaux liés à cet article, y compris les Experts Advisors eux-mêmes, les vidéos, les images et les fichiers journaux des terminaux.
La question se pose :
Le même Expert Advisor sur deux comptes réels/live, un courtier, une plateforme peut-il exécuter des transactions identiques avec une précision de 100% ?
La réponse évidente est Non.
Cela ne se produit pas !
J’espère que cet article répondra à toutes vos questions en détail à l’avenir. Avec cette connaissance, vous pourrez opérer votre scalper plus précisément sur vos terminaux.
Augmentez vos profits.
Comment Déterminer le Ping (Temps d’Accès au Serveur de Votre Courtier)
La vitesse du VPS au serveur du courtier est facile à déterminer. Cette fonction est standard dans Windows et s’appelle PING.
Pour déterminer le temps d’accès, vous devez trouver l’adresse de votre serveur.
Tout d’abord, ouvrez le dossier de votre terminal et naviguez vers le sous-dossier CONFIG.
Trouvez le fichier avec le nom de votre serveur.
Ensuite, ouvrez le fichier dans le Bloc-notes et localisez le chemin vers votre courtier. Copiez-le dans le presse-papiers.
Puis, ouvrez le menu Démarrer et entrez la commande cmd.
Ensuite, entrez la commande ping suivie de l’adresse de votre serveur.
ping mt4-demo.roboforex.com
Le résultat affiche le temps de votre ordinateur au serveur de votre courtier en millisecondes (ms).
Plus la valeur est basse, mieux c’est pour tout Expert Advisor, en particulier pour un scalper.
Vous pouvez également vérifier votre ping vers le serveur ou changer le Centre de Données dans le coin inférieur droit de votre terminal :
Si votre ping est trop élevé, vous pouvez installer l’Expert Advisor sur un serveur VPS.
Des Questions ?
Si vous avez des questions, n’hésitez pas à les poser. Nous ne vous vendons pas un lapin dans un sac.
Chacun de nos produits peut être testé avant achat.
Nous apprécions vos retours et vos demandes concernant nos produits et nous efforçons de maintenir des standards de haute qualité.
Merci d’être avec nous !
Avez-vous une question ?
This post is also available in: English Українська Portuguese Español Deutsch Chinese Русский Français Italiano Türkçe 日本語 한국어
Leave a Reply