![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Peut-être que la simple présence de Sleep (par rapport à son absence) dans le code affecte d'une manière ou d'une autre le temps d'exécution global, mais le fait que Sleep ne compte pas dans le testeur - ça c'est sûr.
Le code raccroche le terminal :
Quelle en est la raison ?
Le code raccroche le terminal :
Quelle en est la raison ?
Le terminal n'est pas réglé sur Unlim ?
Pour commencer :
Unlim n'est pas dans les paramètres du terminal?
les barres maximales sont de 5000. cette valeur peut-elle être réduite ?
Je ne pense pas que vous puissiez faire moins (je n'en suis pas sûr).
Que montre Print(count) ?
Je ne pense pas que moins soit possible (je n'en suis pas sûr).
Alors, que retourne Print(count) ?
en commentaire -1
J'ai essayé avec un autre symbole mais il n'est pas apparu dans le commentaire -1
REMARQUE : figer après quelques secondes. Je commence le code à partir de int OnInit()
Oui, et cela fonctionne dans le testeur, car Sleep est ignoré dans le testeur.
Le sommeil est entièrement et précisément émulé dans le testeur de sommeil.
Dans l'exemple, en raison d'un dépassement arithmétique lors du traitement de valeurs entières, il n'y a eu qu'une attente de 17,5 jours. Le testeur a attendu exactement le même temps.
Par conséquent, il n'y a pas d'erreur dans le testeur ou dans l'environnement d'exécution de MQL5, mais il y a une erreur évidente commise par le programmeur.
Renat:
C'est-à-dire qu'il n'y a pas d'erreur du testeur ou de l'environnement d'exécution MQL5, mais il y a une erreur manifeste du programmeur.
C'est très clair.
Renat:
Le sommeil est émulé dans le testeur de manière complète et assez précise.
En raison du dépassement arithmétique lors du travail avec des valeurs entières, le temps d'attente est de 17,5 jours. C'est exactement le temps qu'a attendu le testeur.
Hmm, voilà. Et je pensais à tort que le sommeil était simplement ignoré.
Il s'avère que si, par exemple, je définissais la mise en veille (3 mois) dans Expert Advisor en mode test, le testeur ferait simplement une avance rapide de l'historique pendant 3 mois ? - C'est génial.
Pendant la période d'attente, le testeur continue à émuler entièrement l'environnement de négociation, y compris le traitement des ordres passés précédemment. Le testeur dans MT5 est très détaillé.
dans le commentaire -1
J'ai essayé avec un autre symbole mais il n'est pas apparu dans le commentaire -1
REMARQUE : figer après quelques secondes. Je vais exécuter le code à partir de int OnInit()
Oui. Nous n'avons même pas remarqué l'éléphant.
Cette ligne me rend très suspicieux :
ArrayMaximum
recherche l'élément maximum dans un tableau numérique unidimensionnel.
intArrayMaximum(
doublearray[],// tableau à rechercher
intstart=0//à partir de quel index nous commençons la recherche
intcount=WHOLE_ARRAY,// nombre d'index à vérifier
) ;
et dans notre cas :
MqlRates s1[];
Je pense que le compilateur ne devrait pas sauter cette étape. Qu'est-ce que vous avez ? Pas même un avertissement ? Si ce n'est pas le cas, adressez une demande au Service Desk. D'accord ?