Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1284
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
utiliserhttps://www.mql5.com/ru/docs/dateandtime/timecurrent
deuxième version de l'appel de fonction
en général, c'est https://www.mql5.com/ru/docs/dateandtime/timetostructMerci beaucoup pour ces informations précieuses.
Je comprends ce qu'est la structure et comment elle fonctionne, mais je n'ai pas encore compris tous les détails.
Je n'ai pas encore pleinement saisi les subtilités qui y sont associées. J'apprends beaucoup mieux la nouvelle matière grâce à des exemples clairs.
Je vous serais très reconnaissant si vous pouviez me montrer comment écrire le code de la condition suivante dans mql5
J'ai déjà appris comment ouvrir un ordre en utilisant la structure
si(Hour()==10)
pour ouvrir une commande.
Vous n'avez pas besoin d'écrire le motif pour ouvrir la commande..... seulement l'écriture de la condition.
Merci encore pour votre aide.
doit être la façon dont vous voulez déterminer le prix et l'heure de la barre :
Ou plutôt ce sont les coordonnées du clic de la souris dans les valeurs temps + prix sur le graphique, la barre doit être définie via iBarShift().Oui, c'est ça, comme on le comprend mieux. Merci)
Merci beaucoup pour ces informations précieuses.
Je comprends ce qu'est la structure et comment elle fonctionne, mais je n'ai pas encore saisi les tenants et les aboutissants...
J'apprends mieux les nouvelles matières avec des exemples. J'apprends beaucoup mieux la nouvelle matière grâce à des exemples clairs.
Je vous serais très reconnaissant si vous pouviez me montrer comment écrire le code de la condition suivante dans mql5
J'ai appris à ouvrir un ordre en utilisant la structure
si(Hour()==10)
pour ouvrir une commande.
Vous n'avez pas besoin d'écrire le motif pour ouvrir la commande..... Juste un enregistrement de l'état.
Merci encore pour votre aide.
Merci beaucoup pour votre aide. Tout est maintenant clair et compréhensible.
Bonjour à tous !
J'essaie de passer de mql4 à mql5. J'ai créé un code simple qui ouvre les commandes pour les tester. Dans le testeur, mon EA ouvre des ordres. J'ai placé la fonction Print() au début de la fonction void OnTick() et mon Expert Advisor entrerait dans cette fonction à chaque tick et l'imprimerait à chaque tick du journal. Et au cinquième passage, le conseiller expert ne saisit aucune des fonctions Print() et n'imprime rien dans le journal des immatriculations. La visualisation et l'optimisation sont désactivées dans Expert Advisor.
Veuillez me conseiller sur la manière de modifier le code afin que Print() soit imprimé dans le journal à chaque tick, comme dans l'exemple 4.
Merci d'avance à ceux qui m'aideront.
Voici mon code
J'ai augmenté le dépôt de l'EA jusqu'à 100 000. Par conséquent, à chaque tick, Print() est imprimé dans le journal..... Mais pas une seule transaction n'a été ouverte.
Mais j'ai besoin qu'il ouvre des offres et que Print() soit imprimé.
Bonjour à tous !
J'essaie de passer de mql4 à mql5. J'ai créé un code simple qui ouvre les commandes pour les tester. Dans le testeur, mon EA ouvre des ordres. J'ai placé la fonction Print() au début de la fonction void OnTick() et mon Expert Advisor entrerait dans cette fonction à chaque tick et l'imprimerait à chaque tick du journal. Et au cinquième passage, le conseiller expert ne saisit aucune des fonctions Print() et n'imprime rien dans le journal des immatriculations. La visualisation et l'optimisation sont désactivées dans Expert Advisor.
Veuillez me conseiller sur la manière de modifier le code afin que Print() soit imprimé dans le journal à chaque tick, comme dans l'exemple 4.
Merci d'avance à ceux qui m'aideront.
Voici mon code
J'ai augmenté le dépôt de l'EA jusqu'à 100 000. En conséquence, à chaque tick, Print() est imprimé dans le journal..... Mais pas une seule transaction n'a été ouverte.
Mais j'ai besoin que les transactions soient ouvertes et que Print() soit imprimé.
Regardez les journaux, regardez ce qui est imprimé, les informations y sont saisies à chaque étape. Très probablement, quelque chose ne va pas avec l'ouverture des ordres et l'EA ne fonctionne pas.
C:\Users\....\AppData\Roaming\MetaQuotes\Terminal\99193835FC75DE8874B99F9A3B93F15E\MQL5\Logs
Nous avons déjà discuté de la nécessité d'accéder de manière répétée aux données du terminal à partir de MQL4, puis de OrderSelecthttps://www.mql5.com/ru/forum/342989#comment_16743716.
je pense qu'il est possible de l'utiliser aussi 100500 fois par tick, car la sortie sera augmentée des millions de fois par seconde
plus il y a de symboles dans la fenêtre de surveillance du marché, plus la charge du terminal sera importante, et respectivement, si vous appelez des données à partir d'un grand nombre de symboles différents, vous obtiendrez également des décalages.
c'est-à-dire que si vous utilisez le terminal de manière raisonnable, rien ne se figera - dans la fenêtre de surveillance du marché, il y a dix symboles que vous utilisez
je n'ai pas vérifiécombien de graphiques vous pouvez ouvrir en même temps, mais je pense que si vous limitez l'historique à 1000 barres, alors je pense que le terminal ouvrira probablement deux douzaines de fenêtres de graphiques sans aucun problème.
100
Regardez les journaux pour voir ce qu'il imprime, il y a des informations enregistrées à chaque étape. Il est fort probable qu'il y ait un problème avec l'ouverture des ordres et que l'EA ne fonctionne pas.
C:\Users\....\AppData\Roaming\MetaQuotes\Terminal\99193835FC75DE8874B99F9A3B93F15E\MQL5\Logs
Merci pour le conseil.
Ça ne marche vraiment pas. C'est écrit.
2020.10.27 06:40:45.311 Tester EURUSD : l'historique des données commence à partir de 2018.01.02 00:00
2020.10.27 06:40:45.312 Core 1 se connectant à 127.0.0.1:3000
2020.10.27 06:40:45.312 Core 1 connecté
2020.10.27 06:40:45.320 Core 1 autorisé (agent build 2650)
2020.10.27 06:40:45.323 Testeur EURUSD,M1 (Alpari-MT5-Demo) : test des experts\GRAAL.ex5 du 2020.09.01 00:00 au 2020.09.03 00:00
2020.10.27 06:40:45.327 Core 1 synchronisation commune terminée
2020.10.27 06:40:45.328 Testeur La qualité de l'historique analysé est de 100%.
2020.10.27 06:40:45.348 Core 1 test experts\GRAAL.ex5 sur EURUSD,M1 thread terminé
2020.10.27 06:40:45.348 Core 1
2020.10.27 06:40:45.348 Core 1 connexion (build 2650)
2020.10.27 06:40:45.348 Core 1 info de compte trouvé avec la devise USD
2020.10.27 06:40:45.348 Core 1 1482 octets de paramètres de test chargés
2020.10.27 06:40:45.348 Core 1 1724 octets de paramètres d'entrée chargés
2020.10.27 06:40:45.348 Core 1 calculer le profit en pips, dépôt initial 10000, effet de levier 1:100
2020.10.27 06:40:45.348 Core 1 initialisé avec succès
2020.10.27 06:40:45.348 Core 1 731 octets de données d'initialisation totales reçues
2020.10.27 06:40:45.348 Core 1 Intel Core i5-6400 @ 2.70GHz, 7883 MB
2020.10.27 06:40:45.348 Core 1 EURUSD : symbole à synchroniser
2020.10.27 06:40:45.348 Core 1 EURUSD : symbole déjà synchronisé, 18 octets reçus
2020.10.27 06:40:45.348 Core 1 EURUSD,M1 : historique mis en cache depuis 2019.01.02 06:00
2020.10.27 06:40:45.348 Core 1 EURUSD,M1 (Alpari-MT5-Demo) : chaque tick généré
2020.10.27 06:40:45.348 Core 1 EURUSD,M1 : le test des experts\GRAAL.ex5 du 2020.09.01 00:00 au 2020.09.03 00:00 a commencé avec les entrées:
2020.10.27 06:40:45.348 Core 1 StopLoss=30
2020.10.27 06:40:45.348 Core 1 TakeProfit=100
2020.10.27 06:40:45.348 Core 1 Lot=0.1
2020.10.27 06:40:45.348 Core 1 solde final 10000.00 pips
2020.10.27 06:40:45.348 Core 1 EURUSD,M1 : 111967 ticks, 2880 barres générées. Test réussi en 0:00:00.019.
2020.10.27 06:40:45.348 Core 1 270 Mb de mémoire utilisée dont 35 Mb de données historiques, 64 Mb de données tick
2020.10.27 06:40:45.348 Core 1 fichier journal "C:\Users\a1960\AppData\Roaming\MetaQuotes\Tester\36A64B8C79A6163D85E6173B54096685\Agent-127.0.0.1-3000\logs\20201027.log" écrit
2020.10.27 06:40:45.371 Core 1 connexion fermée
Je le teste pour une période d'un jour. Cela signifie que le conseiller expert doit ouvrir 1440 ordres. C'est peut-être un problème. Peut-être y a-t-il des limites au nombre d'ordres ouverts en même temps.
Si je l'ai vérifié, c'est peut-être parce que lorsque j'avais 10 000 sur le dépôt de mon EA, il n'a ouvert que 300 ordres et a manqué le reste pour une raison liée à l'argent (comme je l'ai compris à partir des écritures de journal). Plus tard, j'ai augmenté le dépôt d'EA à 100 000 et il n'avait plus le droit de sauter. Et il a arrêté d'ouvrir des commandes.
Mais ensuite j'ai diminué le dépôt de l'EA à 10 000 à nouveau. Cependant, mon conseiller expert n'ouvre toujours rien et écrit toujours les valeurs que j'ai indiquées ci-dessus.
J'ai créé un autre EA. J'y ai téléchargé le même code. J'ai un dépôt de 10 000. J'ai le même problème : je n'ai pas ouvert de commandes.
Veuillez me conseiller sur la manière de faire fonctionner mon EA correctement. Il envoie le même message, sauf que ma ligne jaune surlignée a 271 au lieu de 270 mb
J'ai Windows 10. J'ai un système d'exploitation 64 bits et 8 Go de RAM.
Merci.
Merci pour le conseil.
Ça ne marche vraiment pas. C'est écrit.
2020.10.27 06:40:45.348 Core 1 EURUSD,M1 : 111967 ticks, 2880 barres générées. Test réussi à 0:00:00.019.
2020.10.27 06:40:45.348 Core 1 270 Mb de mémoire utilisée dont 35 Mb de données historiques, 64 Mb de données tick
2020.10.27 06:40:45.348 Core 1 fichier journal "C:\Users\a1960\AppData\Roaming\MetaQuotes\Tester\36A64B8C79A6163D85E6173B54096685\Agent-127.0.0.1-3000\logs\20201027.log" écrit
2020.10.27 06:40:45.371 Core 1 connexion fermée
Je le teste pour une période d'un jour. Cela signifie que le conseiller expert doit ouvrir 1440 ordres. C'est peut-être un problème. Peut-être y a-t-il des limites au nombre d'ordres ouverts simultanément.
Si je l'ai vérifié, c'est peut-être parce que lorsque j'avais 10 000 sur le dépôt de mon EA, il n'a ouvert que 300 ordres et a manqué le reste pour une raison liée à l'argent (comme je l'ai compris à partir des écritures de journal). Plus tard, j'ai augmenté le dépôt d'EA à 100 000 et il n'avait plus le droit de sauter. Et il a arrêté d'ouvrir des commandes.
Veuillez me conseiller pour que mon EA fonctionne normalement.
J'essaierai toujours de le faire fonctionner comme avant.
S'il y a 1440 ordres par jour, le conseiller expert doit vérifier le début de la minute ou, plus facilement, l'apparition de la barre d'une minute. Et il s'ouvre en ce moment. Vous ne l'avez pas et donc l'EA ouvre une position à chaque tick, ce qui est une condition difficile en soi selon notre symbole à la cotation actuelle. Cette condition peut ne pas être remplie, et les tiques ne seront pas détectées. Et à un moment donné, une erreur critique se produira.
Egalement le type d'exécution de l'ordre (ordre de création d'une position) Tout ou rien.
Pouvez-vous me le dire s'il vous plaît !
Pourquoi l'heure du serveur n'est-elle pas mise à jour lorsque de nouveaux ticks arrivent ?
Au moment où l'EA démarre, tout fonctionne comme il se doit, mais ensuite le temps passe, mais la nouvelle valeur de la minute en cours n'entre pas dans la variable.
C'est-à-dire que le Conseiller Expert fonctionne en fonction du nombre obtenu dans la variable int M = TimeMinute(TimeCurrent()) ;
En fait, cette ligne de code provient de la référence et elle ne fonctionne pas.
Par exemple, je le démarre à 12-l'heureactuelle renvoyée par le serveur correspond à l'heure dans la variable, mais ensuite la variable reste à 12, bien qu'il soit déjà 15-20 minutes à l'horloge