Erreurs, bugs, questions - page 1962
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
question hors sujet mais je vous demande s'il est possible de compléter le manuel MQL5 avec des exemples supplémentaires d'implémentation d'algorithmes plus et plus clairs
Rendre le paramètre d'entrée bool Optim. Dans OnInit, vous renvoyez INIT_FAILED si Optim == true. En même temps, dans OnTesterPass à travers FrameInputs et ParameterGetRange (ou dans le destructeur de l'objet de classe global), vous écrivez en fait le fichier SET Optimisation.
Ensuite, vous mettez Optim = false. Et prenez un autre paramètre sinput int Range, définissez-le par ParameterSetRange pour passer de zéro à un. Lire le fichier SET dans OnTesterInit et définir les valeurs de tous les paramètres du fichier dans ParameterSetRange. Lorsque Range == 0, vous renvoyez INIT_FAILED dans OnInit.
C'est tout ! Au lieu de l'optimisation simple, vous avez l'optimisation imaginaire, qui est également plus rapide que l'optimisation simple..... Plus les paramètres d'entrée en lecture/écriture.
Merci pour l'algorithme détaillé.
'TesterBenchmark_Example.mq5' TesterBenchmark_Example.mq5 1 1 'TesterBenchmark.mqh' TesterBenchmark.mqh 1 1 0 error(s), 0 warning(s), compile time: 3113 msec 1 1
Temps de compilation à 1648
'TesterBenchmark_Example.mq5' TesterBenchmark_Example.mq5 1 1 'TesterBenchmark.mqh' TesterBenchmark.mqh 1 1 0 error(s), 0 warning(s), compile time: 219 msec 1 1
Quelque chose a été modifié !
Erreur de compilation
Et si vous remplacez la ligne (*) par
alors c'est bon. Quelle est la différence ?Il ressemble àhttps://www.mql5.com/ru/forum/1111/page1977#comment_5595772, mais a un code d'erreur différent
Erreur lors de la compilation
Autrement :
C'est bon. Quelle différence cela fait-il ?Erreur lors de la compilation
mais de cette façon :
normalement. Quelle est la différence ?La différence est énorme. Lorsque g(f) est appelé, le compilateur n'a aucune idée du type de f, car seul le template est prescrit. Si vous surchargez le modèle, il n'y a pas de problème.
Temps de compilation à 1643.
Temps de compilation à 1648
C'est un truc sympa !
Le mien est le même qu'avant, le temps de compilation n'est pas plus rapide !
Je l'ai toujours, la compilation n'est pas accélérée.
Peut-être ne pas utiliser ce qui ralentissait dans TesterBenchmark.mqh
La différence est énorme. Lorsque g(f) est appelé, le compilateur n'a aucune idée du type de f, car seul le modèle est prescrit. Si vous surchargez le modèle, il n'y a pas de problème.
Si la différence est énorme, alors pourquoi les deux variantes compilent-elles normalement en C++ ?
Il n'y a aucune autorité sur le C++ dans ce cas, car j'ai basé mes conclusions sur la logique. Ci-dessus, j'ai retravaillé l'exemple avec une déréférence.
Tout ce que vous avez à faire est de faire une telle substitution
La déréférence sera complètement différente. Vous pouvez demander au compilateur d'être "plus intelligent qu'un idiot" et d'agir comme il le fait en C++. Mais cette solution est vraiment discutable.
C'est-à-dire qu'une telle "aide" peut être implémentée dans le compilateur, mais la différence d'approche est montrée.