Questions des débutants MQL5 MT5 MetaTrader 5 - page 245
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
Dans le script, j'ai fait ça :
temps=0
SymbolInfoTick le lundi.
Vous pouvez le vérifier avec ce code :
Mais vous avez besoin de ticks par symbole.
Vous pouvez le vérifier avec ce code :
Mais vous avez besoin de ticks par symbole.
Oui,"SymbolInfoTick", pas de vérification aujourd'hui.
J'ai essayé, ça ne marche pas tant que les tiques ne sont pas là.
iask=0Oui, SymbolInfoTick, pas de vérification aujourd'hui.
J'ai essayé, jusqu'à ce que les tics s'éteignent, rien ne fonctionne.
iask=0Cette fonction est trop rapide.
Pour mesurer les performances, vous devez appliquer plusieurs appels dans une boucle avec un grand nombre d'itérations et mesurer le temps d'exécution total.
D'autant plus intéressant, il y a un exemple de code. Nous attendons le résultat.
Pour vérifier une nouvelle barre dans l'EA j'ai utilisé des fonctions basées sur "CopyTime", "CopyRates", que j'ai trouvé sur les forums. Je suis arrivé à la conclusion que leur calcul prend beaucoup de temps.
Voici les données de contrôle (il est intéressant de noter que l'appel de l'indicateur prend 171 ms) :
Et là, j'ai eu l'idée que si j'essaie quelque chose d'autre. Par exemple, "TimeCurrent".
J'ai modifié le code suivant pour l'optimiser :
A fait le code suivant pour l'optimisation dans Expert Advisor :
Résultat en exécution unique sans vérification d'une nouvelle barre, lorsque les valeurs des indicateurs sont reçues à chaque tick : 817,196 ms
Avec contrôle d'une nouvelle barre : 735 904 ms
La différence n'est pas particulièrement impressionnante, il y a une certaine amélioration, mais ce n'est pas suffisant.
J'obtiens l'indicateur suivant :
J'ai essayé de mettre le code avec les appels de handles dans le bloc où la vérification de la nouvelle barre a lieu, mais l'erreur apparaît si je
Je mets return ne renvoie rien, pas d'erreur, mais l'EA ne fonctionne pas.
Je suppose que l'appel hendle, si c'est possible, et en général tout le code principal, à l'exception de la variable statique, devrait être placé dans l'instruction conditionnelle vérifiant la présence d'une nouvelle barre.
Si je ne me trompe pas, j'ai lu quelque part que même si on appelle un handle mais qu'on ne demande pas d'indicateur dans les buffers, il est quand même calculé.
Qui peut suggérer comment faire un indicateur qui affiche les résultats d'une seule formule tampon[i] = (1.3747-(MarketInfo("EURUSD", MODE_BID))+0.8835-(MarketInfo("USDCHF", MODE_BID)))*10000 ;
Vous devez écrire un indicateur personnalisé. Pour faciliter le processus, prenez l'un des indicateurs les plus simples -iMa- et réécrivez-le un peu. Voici un autre sujet, où il est question de MarketInfo. Ecrivez le code, demandez, si quelque chose ne fonctionne pas.
Qu'est-il arrivé aux variables statiques? J'ai mis à jour l'ancien build du terminal aujourd'hui et maintenant il y a des erreurs lors de la compilation :
Les membres-données statiques de la classe doivent maintenant être placés: