Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1008

 
Sergey Likho:

Nouveau, supprimer n'est pas utilisé. Les éléments de classe sont déclarés au début et je ne les recrée pas.

La plupart du temps, on travaille beaucoup avec des tableaux.


Que sont lesscripts de test-case ?

Vous créez une classe et probablement (même avant) vous écrivez un tas de scripts (ou un ou deux scripts et beaucoup de fonctions de test) qui vérifient qu'elle fait exactement ce qu'elle est censée faire, qu'elle fonctionne et qu'elle est utilisable.
Dans le même temps, il vérifie la stabilité, les bogues et les fuites de mémoire.

Vous n'avez pas à déboguer une classe sur un énorme complexe avec beaucoup d'autres comme elle.

----

Si vous travaillez beaucoup avec des tableaux, envoyez périodiquement les tailles des tableaux au journal externe et voyez lequel atteint une taille inimaginable pendant le travail.

À propos, les appels récursifs peuvent provoquer un dépassement de mémoire si des tableaux sont présents à l'intérieur. Vérifiez qu'il n'y a pas de récursion ou qu'elle est correctement limitée.

 
Pouvez-vous me dire ce qu'il faut étudier pour apprendre à échanger des données entre les graphiques dans mt4, et entre les terminaux (pas via internet) ?
 
Yevhenii Levchenko:
Veuillez me conseiller, que dois-je apprendre pour échanger des données entre les graphiques dans MT4, ainsi qu'entre les terminaux (pas via Internet) ?
Si entre les graphiques alors EventChartCustom, variables globales du terminal, fichier, winapi.
Si entre terminaux, alors fichier et winapi
 
Yevhenii Levchenko:
Veuillez me conseiller, que dois-je étudier pour apprendre à échanger des données entre les graphiques dans MT4, ainsi qu'entre les terminaux (pas par Internet) ?

Entre les terminaux d'une même machine, vous pouvez utiliser un fichier dans le dossier "Common".

Si je ne me trompe pas, l'adresse est la suivante : C:\Users\<....>\AppData\Roaming\MetaQuotes\Terminal\Common\

 
Vladimir Simakov:
Si entre les graphiques, EventChartCustom, variables globales du terminal, fichier, winapi.
Si entre les terminaux, le fichier et winapi
Vitaly Muzichenko:

Entre les terminaux d'une même machine, vous pouvez utiliser un fichier dans le dossier "Common".

Si je ne me trompe pas, l'adresse est la suivante : C:\Users\<....>\AppData\Roaming\MetaQuotes\Terminal\Common\

Il s'avère que ce n'est pas si compliqué que ça (je veux dire, seul winapi est compliqué) ! Merci ! :)

 
Alexey Viktorov:
Ligne 61, c'est quelle ligne ?
Je ne peux pas le dire maintenant, c'est sur le VPN, je ne peux pas encore y accéder.
 
Ivan Butko:
Je ne peux pas le dire pour le moment, il est sur un VPS, je ne peux pas encore y accéder.

La source est-elle sur un VPS ? Vous ne l'avez pas sur votre ordinateur ? Ok, je ne suis plus intéressé.

 
Alexey Viktorov:

La source est-elle sur un VPS ? Vous ne l'avez pas sur votre ordinateur ? OK, je ne suis plus intéressé.

Ok.
Oui, je viens de quitter l'ordinateur.

 
En général, la situation est la suivante. Il y a plusieurs "lots" : Lots1, Lots2, Lots3, et ainsi de suite. A chaque arrêt, le lot change. Je ne peux pas multiplier le lot en utilisant la Martingale, elles sont toutes différentes. J'ai essayé d'adapter les fonctions standards FindLastLot() et autres. Cela s'est avéré très lourd et anormalement travaillé. C'est-à-dire que pour chaque lot, j'ai prescrit OrderSend et un tas de fonctions qui empêchaient l'ouverture parallèle d'autres ordres. J'ai alors décidé d'essayer d'utiliser la boucle while et d'y attacher un switch case mais je me suis souvenu qu'elle ne fonctionne qu'avec des entiers. Je pensais que nous pourrions utiliser la boucle for, mais les ordres sont fermés, donc, ils doivent être recherchés dans les positions fermées. Mais comment ? J'ai besoin d'écrire une boucle supplémentaire, c'est-à-dire for et while dans celle-ci ? Je n'ai que des questions... J'ai aussi cherché des réponses sur le forum et sur Internet. Tout est banal. C'est la même Martingale multipliée par deux. Je n'ai que de l'espoir pour vous, maîtres MQL. Pouvez-vous me dire dans quelle direction aller ?
 
Corvin85:
En général, la situation est la suivante. Il y a plusieurs "lots" : Lots1, Lots2, Lots3, et ainsi de suite. A chaque arrêt, le lot change. Je ne peux pas multiplier le lot en utilisant la Martingale, elles sont toutes différentes. J'ai essayé d'adapter les fonctions standards FindLastLot() et autres. Cela s'est avéré très lourd et anormalement travaillé. C'est-à-dire que pour chaque lot, j'ai prescrit OrderSend et un tas de fonctions qui empêchaient l'ouverture parallèle d'autres ordres. J'ai alors décidé d'essayer d'utiliser la boucle while et d'y attacher un switch case mais je me suis souvenu qu'elle ne fonctionne qu'avec des entiers. Je pensais que nous pourrions utiliser la boucle for, mais les ordres sont fermés, donc, ils doivent être recherchés dans les positions fermées. Mais comment ? J'ai besoin d'écrire une boucle supplémentaire, c'est-à-dire for et while dans celle-ci ? Je n'ai que des questions... J'ai aussi cherché des réponses sur le forum et sur Internet. Tout est banal. C'est la même Martingale multipliée par deux. Je n'ai que de l'espoir pour vous, maîtres MQL. Pouvez-vous me conseiller sur la direction à prendre ?
J'ai l'impression que le texte original vient d'un univers parallèle, qu'il a été traduit deux fois par google-translate et qu'il a ensuite été raconté à nouveau par Alice :-)
Raison: