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
@deysmacro : Je sais où se trouve la ligne qui provoque la division par zéro. C'est parce que j'ai besoin de la plage moyenne quotidienne des cinq derniers jours. Plus tard dans l'indicateur, je divise quelque chose par cet ATR et tant que les données ne sont pas mises à jour, l'ATR est nul et c'est là le problème. J'ai besoin d'être sûr que les données quotidiennes d'au moins les 5 derniers jours sont disponibles. Ce n'est qu'alors que l'ATR sera >0 et que l'indicateur fonctionnera.
Mettez les données disponibles dans GV et récupérez-les. De cette façon, lorsque des données arrivent ou qu'il y a des différences dans les données, il suffit de mettre à jour GV.
Peut-être qu'ATR fonctionne de cette façon.
Les gens ont toujours dit "Faites-le fonctionner d'abord, puis optimisez le code."
Parfois, pour que cela fonctionne, la ligne de code est très longue, mais une fois que cela fonctionne, vous pouvez commencer à réduire le code :)
Cela peut paraître stupide, mais qu'est-ce que la GV ?
Bien sûr... :-)
Autre chose que je ne peux pas expliquer : Le code suivant est une petite modification de mon premier code que j'ai posté. C'est aussi un indicateur de Moneymanagement mais j'ai enlevé l'ATR. Il imprime seulement les niveaux de stop loss de 5 à 100 pips par pas de 5 pips. Donc, il n'y a pas de calcul d'ATR du tout. Lorsque vous faites glisser cet indicateur sur votre graphique, il fonctionne parfaitement. Toutes les paires, tous les horizons temporels. Aucun problème. Mais lorsque vous ouvrez le MetaTrader, il provoque une erreur de division par zéro et à nouveau, seul "Label" est imprimé au lieu des niveaux de stop loss.
L'erreur est causée dans cette ligne :
J'ai imprimé TOUTES les variables de cette ligne et je suis arrivé à la conclusion que AccountBalance() est zéro et MarketInfo(Symbol(), MODE_TICKVALUE) est zéro. Donc, évidemment, lorsque vous ouvrez le MetaTrader, aucune donnée n'est disponible. Cela ne se produisait jamais dans l'ancien MetaTrader. Je n'ai donc aucune idée de ce qu'il faut faire...
Voici le code :
Pourriez-vous être un peu plus précis ? Quel est exactement le problème avec eux (parce que ça a toujours fonctionné...) ?
Je pense qu'il y a toujours le problème que AccountBalance() et d'autres données dont j'ai besoin de MetaTrader ne sont pas disponibles juste après le démarrage de la plate-forme.
Un autre exemple :
Si vous ouvrez le MetaTrader, le résultat sera zéro ! Et il reste nul jusqu'à ce que vous changiez d'horizon temporel ou de paire. Je pense que c'est exactement le problème de l'erreur de division par zéro. Ne pensez-vous pas aussi ?J'ai imprimé TOUTES les variables de cette ligne et je suis arrivé à la conclusion que AccountBalance() est zéro et MarketInfo(Symbol(), MODE_TICKVALUE) est zéro. Il est donc évident que lorsque vous ouvrez le MetaTrader, aucune donnée n'est disponible. Cela ne se produisait jamais dans l'ancien MetaTrader. Je n'ai donc aucune idée de ce qu'il faut faire...
Voici le code :
Si vous êtes sûr que c'est la cause du problème, ajoutez ceci juste après Start()
Hé GumRai,
Je l'ai testé avec l'indicateur ci-dessus. Le solde du compte reste nul même si je laisse MetaTrader fonctionner pendant quelques minutes. Seulement jusqu'à ce que je change quelque chose manuellement (paire, timeframe) le AccountBalance correct est affiché. Et si j'utilise votre solution, je n'ai aucun problème avec l'erreur de division par zéro, mais l'indicateur ne fera jamais son travail parce que le solde du compte reste à zéro.
Je me demande si je suis la seule personne qui a ce problème ? Je pense que c'est un problème général d'importation de données du nouveau MetaTrader...