Erreurs, bugs, questions - page 1904
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
Le calcul n'est pas unique - s'il n'y a qu'une seule instance de la classe, alors le calcul devrait l'être, s'il y a plusieurs instances, alors pourquoi dupliquer le même calcul dans d'autres instances de la même classe ? Il faut des ressources.
En même temps, faire un autre cycle long dans la classe parent pour calculer ces mêmes données n'est pas non plus optimal (nous avons déjà deux cycles longs), et la classe enfant ne sera pas autosuffisante.
Bonjour !
Après 4 ans, je suis revenu à un seul EA (acheté en 2013 et oublié). J'ai décidé de réessayer. Mais maintenant le système donne une erreur dans une des lignes de code. Apparemment, quelque chose a changé en 4 ans avec Metatrader, car cela fonctionnait bien avant. Je n'ai aucune idée de comment programmer, c'est pourquoi j'ai acheté Expert Advisor). Pouvez-vous me dire quelle peut être l'erreur.
Voici une partie du code
extern int Bperiod = 20 ; // Période de calcul de la moyenne de la ligne de l'indicateur principal.
extern int Bdeviation = 2 ; // Déviation par rapport à la ligne de base.
extern int Bshift = 0 ; // Décalage de l'indicateur par rapport au graphique des prix.
extern int Baprice = 0 ; // CLOSE=0, OPEN=1, HIGH=2, LOW=3, MEDIAN=4, TYPICAL=5, WEIGHTED=6 .
chaîne externe _6 = "========" ;
extern bool UseAutoDig = true ; // If=true->les variables externes en points sont multipliées par 10.
extern bool UseECN\NDD = true ; // Si=true->les ordres sont établis sans arrêts, puis modifiés.
L'erreur s'affiche à la dernière ligne de la commande
UseECN\NDD, cette commande est répétée de nombreuses fois dans l'EA et une erreur se produit à chaque ligne avec cette commandeExemples d'
erreurs
'\' - séquence d'échappement illégale e_plat2.mq4 49 22
UseECN" - identifiant non déclaré e_plat2.mq4 144 6
"NDD" - identifiant non déclaré e_plat2.mq4 144 13
'4206' - valeur de cas déjà utilisée e_plat2.mq4 643 8
Si vous le voulez bien, quelle pourrait être la raison ?
UseECN\NDD cette commande est répétée de nombreuses fois dans l'Expert Advisor et dans chaque ligne où elle est présente, une erreur s'affiche
Remplacer dans tout le code "UseECN\NDD" par "UseECN_NDD" (Ctrl+H)
Remplacer dans tout le code "UseECN\NDD" par "UseECN_NDD" (Ctrl+H)
Merci beaucoup ! On dirait qu'il a compilé !
Je vais tester...
Pourquoi avez-vous besoin de ces autres instances s'il n'y a qu'un seul calcul ?
Vous feriez mieux de donner une description plus détaillée du problème, la réponse sera alors plus concrète.
La classe comporte une boucle qui collecte des données sur tous les ordres et toutes les positions 1) du compte et 2) seulement ceux qui correspondent au filtre m_symbol et m_magic.
Par conséquent, une fois la boucle terminée, nous disposons de données 1) sur l'ensemble du compte et 2) uniquement sur les ordres et les positions appartenant à l'EA.
Cependant, si un EA utilise plusieurs symboles ou magiciens, nous devons créer des instances de la classe pour recueillir des statistiques pour chaque symbole/magie. C'est ici que la question se pose : pourquoi avons-nous besoin de collecter dans ces nouvelles instances des statistiques (1) qui ont déjà été collectées sur la toute première instance de la classe ?
D'où la question : comment savoir, à l'intérieur de la classe, si son instance est la seule, et donc s'il faut collecter la statistique 1, ou, si l'instance n'est pas la seule, ne pas collecter la statistique 1, et la donner dès la toute première instance (ici aussi, on ne sait pas comment, à l'intérieur de la classe, si elle n'est pas la seule instance, rediriger la demande vers la toute première instance de la classe pour donner la statistique 1).
La classe comporte une boucle qui collecte des données sur tous les ordres et toutes les positions 1) du compte et 2) seulement ceux qui correspondent aux filtres m_symbol et m_magic.
Par conséquent, une fois la boucle terminée, nous disposons de données 1) sur l'ensemble du compte et 2) uniquement sur les ordres et les positions appartenant à l'EA.
Cependant, si un EA utilise plusieurs symboles ou magiciens, nous devons créer des instances de la classe pour recueillir des statistiques pour chaque symbole/magie. Une question se pose ici : pourquoi avons-nous besoin de collecter les statistiques (1) dans ces nouvelles instances, qui ont déjà été collectées dans la première instance de la classe ?
D'où la question : comment savoir, à l'intérieur de la classe, que son instance est la seule, et donc qu'il est nécessaire de collecter la statistique 1, ou, si l'instance n'est pas la seule, ne pas collecter la statistique 1, et la délivrer à partir de la toute première instance (on ne sait toujours pas comment, à l'intérieur de la classe, si elle n'est pas la seule instance, rediriger la requête vers la toute première instance de la classe pour délivrer la statistique 1).
1) Collecter des statistiques pour tous les mages/outils d'une même classe. La liste des mages doit être spécifiée lors de l'initialisation et placée dans un tableau.
2) Comme déjà conseillé, faites en sorte que les résultats de la statistique n°1 soient statiques, et s'ils sont disponibles, ne commencez pas à les recalculer.
La classe comporte une boucle qui collecte des données sur tous les ordres et toutes les positions 1) du compte et 2) seulement ceux qui correspondent au filtre m_symbol et m_magic.
Par conséquent, une fois la boucle terminée, nous disposons de données 1) sur l'ensemble du compte et 2) uniquement sur les ordres et les positions appartenant à l'EA.
Cependant, si un EA utilise plusieurs symboles ou magiciens, nous devons créer des instances de la classe pour recueillir des statistiques pour chaque symbole/magie. C'est ici que la question se pose : pourquoi devrions-nous collecter les statistiques (1) dans ces nouvelles instances, qui ont déjà été collectées dans la première instance de la classe ?
D'où la question : comment savoir, à l'intérieur de la classe, si son instance est la seule, et donc s'il faut collecter la statistique 1, ou, si l'instance n'est pas la seule, ne pas collecter la statistique 1, et la donner dès la toute première instance (ici aussi, on ne sait pas comment, à l'intérieur de la classe, si elle n'est pas la seule instance, rediriger la demande vers la toute première instance de la classe pour donner la statistique 1).
D'où la question : comment savoir à l'intérieur de la classe que son instance est la seule, ce qui signifie que vous devez collecter la statistique 1, ou, si l'instance n'est pas la seule, alors ne collectez pas la statistique 1, et donnez-la dès la première instance.
On vous l'a déjà dit :
Mieux encore, tous les calculs uniques devraient être placés dans une classe distincte et en faire un singleton.
Messieurs les développeurs, veuillez expliquer pourquoi l'événement de typeOnTesterPass, lors de l'optimisation du nombre de variantes supérieur à8.6e+18, n'est appelé que lors de la création d'une nouvelle génération ?
Et pourquoi n'y a-t-il pas un seul mot sur cette fonctionnalité dans le fichier d'aide ?
Pourquoi dois-je fouiller dans la moitié d'un Expert Advisor pour trouver une réponse, pourquoi cette fonction fonctionne correctement dans un EA, alors que dans l'autre, elle n'écrit les résultats d'optimisation dans le fichier que lors d'une nouvelle génération ?
Comment puis-je contourner cette limitation ?
Si vous convertissez ce nombre de bits en gigaoctets, vous obtenez - 1075000000000000GB.