Questions des débutants MQL5 MT5 MetaTrader 5 - page 829
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
L'expert multi-devises dans la boucle demande les données par symbole. Il existe un tel fragment :
Tous les symboles passent normalement. Pendant le premier passage, le temps est d'environ 120 ms, car les tampons des indicateurs se remplissent. A partir du deuxième passage, le temps de calcul sur la barre courante est inférieur à 1 ms.
La particularité est qu'un courtier bien connu a le symbole EURRUR, pour lequel il n'y a pas de données ("Wait for update"). Le calcul est donc bloqué sur cette ligne pendant 51 secondes. Erreur 4806. 51 secondes, c'est inacceptable, même pour une (première) fois, et encore moins pour un cycle.
Question. Comment puis-je savoir rapidement qu'il n'y a pas de données pour un caractère donné ? Je le mémorisais ensuite et, lors des itérations suivantes, je le dépassais et continuais sans perdre le rythme.
Chers collègues, veuillez m'indiquer comment convertir un tableau de type double en chaîne de caractères. Je dois l'écrire dans un fichier. Voici un code de formation général.
Informations tirées de l'article
Sauvegarde et chargement de tableaux à partir d'un fichier
Lors de la sauvegarde et du chargement d'un tableau à partir d'un fichier, nous devons tenir compte de la différence entre la première dimension de la taille du tableau et le nombre total de ses éléments. Lorsque vous enregistrez un tableau, vous devez d'abord écrire la taille du tableau (le nombre total d'éléments déterminé par ArraySize()) dans le fichier, puis le tableau entier :
Bonjour, je suis confronté au problème suivant.
J'ai deux EAs pour le même instrument avec des magies différentes respectivement. Je règle ma magie par CTrade et ouvre une position par CTrade aussi. Lorsque j'ai une position ouverte du premier EA, son magik est assigné au second EA (je l'ai vérifié après avoir ouvert une position, voir ci-dessous), donc la vérification des positions ouvertes ne voit pas mon magik et j'ouvre plusieurs positions dans une direction. Le compte est sur une démo, cela ne peut pas être détecté dans le testeur. Si la valeur du magik est sauvegardée dans la classe, peut-être devrait-elle être remise à zéro, mais je ne sais pas comment.
Bonjour, je suis confronté au problème suivant.
J'ai deux EAs pour le même instrument avec des magies différentes respectivement. Je règle ma magie par CTrade et ouvre une position par CTrade aussi. Lorsque j'ai une position ouverte du premier EA, son magik est assigné au second EA (je l'ai vérifié après avoir ouvert une position, voir ci-dessous), donc la vérification des positions ouvertes ne voit pas mon magik et j'ouvre plusieurs positions dans une direction. Le compte est sur une démo, cela ne peut pas être détecté dans le testeur. Si la valeur du magik est sauvegardée dans la classe, il faut peut-être la remettre à zéro, mais je ne sais pas comment.
Veuillezcoller le code correctement, pas comme une feuille de texte.
En ce qui concerne le code : définissez les paramètres d'entrée de chaque EA avec sa propre magie. Disons que vous avez réglé le premier sur 10001, puis le second sur 10002.
Veuillezinsérer le code correctement, pas comme une feuille de texte.
En ce qui concerne le code : définissez les paramètres d'entrée pour chaque EA avec sa propre magie. Supposons que vous fixiez le premier à 10001, puis le second à 10002.
Merci pour cette réponse si courte. Mais c'est le but, les magies sont différentes. Ainsi, j'ai déterminé que le second robot ouvre des positions avec le premier magicien. Je ne sais pas comment cela se passe et où il enregistre le numéro magique du premier EA mais j'aimerais le découvrir.
Merci pour cette réponse rapide. Mais c'est ça le truc, les magiciens sont différents. J'ai donc découvert que le deuxième robot ouvre des positions avec le numéro magique du premier. Je ne sais pas comment cela se passe et où il enregistre le premier numéro de magicien mais j'aimerais le découvrir.
Dans ce cas, il est préférable de définir le magik
// выставляем магик m_trade.SetExpertMagicNumber(Magic);
avant chaque ouverture de position /ordre au lieu de dans OnInit.Dans ce cas, il est préférable de spécifier un magik
avant chaque ouverture de position, et non dans OnInit.Dans ce cas, ce n'est pas "mieux", c'est exactement ce dont vous avez besoin - c'est une classe enveloppante pour les fonctions commerciales standard. Il ne permet pas de stocker des magies multiples. C'est pourquoi il faut définir un magik à chaque fois avant et quand on veut ouvrir une position avec un nouveau magik.
En général, la séquence est la suivante :
etc...
Dans ce cas, il est préférable de définir une magik
Avant chaque ouverture d'une position/ordre, et non dans OnInit.A l'origine, c'était comme ça, ça n'aide pas. Mais dans les exemples, il est généralement dans OnInit et a donc été déplacé. Cela fait longtemps que je m'amuse avec ça, les hiboux sur le test semblent fonctionner sans problème, puis soudain j'ouvre le serveur et il y a 20 positions dans une direction. Le fait que la vérification des postes ouverts ne se fait pas par le biais des classes peut-il être considéré comme un problème ?
Merci pour cette réponse rapide. Mais c'est ça le truc, les magiciens sont différents. J'ai donc découvert que le deuxième robot ouvre des positions avec le numéro magique du premier. Je ne sais pas comment cela se passe et où il sauve le premier numéro magique d'EA mais je veux le découvrir.
Comme il n'y a pas de méthodeGetExpertMagicNumber dans la classe CTrade, veuillez imprimer ce code après l'opération de transaction:
De cette façon, vous pouvez vérifier si les deux EAs ont des magies différentes.