sllawa3: MAIS LA QUESTION DEMEURE... COMMENT CONTOURNER L'ERREUR DE SÉLECTION... C'EST JUSTE UN EXPERT AVEC UN TABLEAU... ON NE PEUT PAS TOUJOURS SUIVRE CE SCHÉMA...
... au lieu de tableaux, nous pourrions utiliser un grand nombre de variables. Il n'y a pas d'erreur dans le "Select". La différence dans les Expert Advisors est que le bloc d'évaluation des ordres est indépendant du reste du programme. La modification ne dépend pas non plus de la suppression, alors que dans votre cas tout est au même endroit. Pour écrire tout ensemble, il faut être très expérimenté, et vous venez de faire une erreur quelque part, il serait plus facile d'écrire une nouvelle EA que de s'occuper de ce désordre.
En bref, si vous ne mettez pas à zéro les variables, elles ne sont pas mises à zéro ailleurs, et rien dans votre version originale ne fonctionne. Si vous les mettez à zéro à la fin, alors l'EA fonctionne, mais vous avez une ligne, par exemple, if(OrderType() == OP_BUYSTOP&DB==1){OrderDelete(OrderTicket(),CLR_NONE);return(0);}.
Et rien ne fonctionne, car un ordre à cours limité peut passer en premier et l'ordre au marché seulement après, et cette condition ne sera jamais remplie et l'ordre en attente ne sera pas supprimé. Donc, votre Expert Advisor ne fonctionne que lorsque la séquence des ordres dans le terminal est conforme à l'algorithme, comme vous l'avez compris cela arrive rarement en 11 ans 90 transactions ont été ouvertes, je l'ai vérifié. La conclusion est donc la mauvaise structure du programme, ou plutôt la dépendance totale d'une itération à une autre pendant le dépassement.
sllawa3: EH BIEN, IL Y A MANIFESTEMENT QUELQUE CHOSE QUI NE VA PAS... ALORS JE L'AI CHERCHÉ...
donc je vous ai écrit l'erreur ci-dessus. La structure du programme n'est pas correcte, c'est-à-dire qu'il ne s'agit pas d'une erreur d'un seul symbole, mais de 70% de l'ensemble du programme.
VOUS AVEZ AUSSI UN BUG DANS VOTRE CODE... IL NE MODIFIE PAS LES POSITIONS D'ACHAT, DONC SI UN ARRÊT D'ACHAT EST DÉCLENCHÉ, L'ORDRE EST PLACÉ SANS ARRÊT ET LES AUTRES NE SONT PAS OUVERTS
VOUS AVEZ AUSSI UN BUG DANS VOTRE CODE... IL NE MODIFIE PAS LES POSITIONS D'ACHAT, DONC SI UN ARRÊT D'ACHAT EST DÉCLENCHÉ, L'ORDRE EST PLACÉ SANS ARRÊT ET LES AUTRES NE SONT PAS OUVERTS
PAS DE DONNÉES DB[2]==0 DB[3]==0 ÉGALEMENT
Slava, ton problème est que tu n'acceptes pas les idées nouvelles... On t'a proposé une approche différente, mais tu attends une solution toute faite...
C'est à vous de décider comment traiter les éventuels problèmes liés aux commandes - requêtes, prix incorrects, etc...
Techno: Oui, je l'ai corrigé moi-même, j'ai juste oublié de mettre dans le fichier téléchargé.
J'ai décidé de réécrire tous mes EAs en utilisant un tableau... je pense à comment ajouter 2 variables supplémentaires - lot de commande et profit de commande et 2 ordres pour bylimit et selligit
dans la table de consultation des commandes
y a-t-il des limitations sur le nombre de variables horizontalement et verticalement ? et de variables avant le départ [4] est-ce le nombre de commandes ou le nombre de variables dans chaque commande ?
Pas du tout, c'est la même chose, un expert complètement différent. Utilisez le mien, complétez les détails manquants
JE NE PARLE PAS DE L'ORIGINAL, MAIS DE CELUI QUE J'AI FABRIQUÉ À PARTIR DE TES PIÈCES... MAIS MERCI BEAUCOUP POUR LA LEÇON AVEC LE TABLEAU !
MAIS LA QUESTION DEMEURE... COMMENT CONTOURNER L'ERREUR DE SÉLECTION... C'EST JUSTE UN EXPERT AVEC UN TABLEAU... ON NE PEUT PAS TOUJOURS SUIVRE CE SCHÉMA...
En bref, si vous ne mettez pas à zéro les variables, elles ne sont pas mises à zéro ailleurs, et rien dans votre version originale ne fonctionne. Si vous les mettez à zéro à la fin, alors l'EA fonctionne, mais vous avez une ligne, par exemple, if(OrderType() == OP_BUYSTOP&DB==1){OrderDelete(OrderTicket(),CLR_NONE);return(0);}.
Et rien ne fonctionne, car un ordre à cours limité peut passer en premier et l'ordre au marché seulement après, et cette condition ne sera jamais remplie et l'ordre en attente ne sera pas supprimé. Donc, votre Expert Advisor ne fonctionne que lorsque la séquence des ordres dans le terminal est conforme à l'algorithme, comme vous l'avez compris cela arrive rarement en 11 ans 90 transactions ont été ouvertes, je l'ai vérifié. La conclusion est donc la mauvaise structure du programme, ou plutôt la dépendance totale d'une itération à une autre pendant le dépassement.
EH BIEN, IL Y A MANIFESTEMENT QUELQUE CHOSE QUI NE VA PAS... ALORS JE L'AI CHERCHÉ...
VOUS AVEZ AUSSI UN BUG DANS VOTRE CODE... IL NE MODIFIE PAS LES POSITIONS D'ACHAT, DONC SI UN ARRÊT D'ACHAT EST DÉCLENCHÉ, L'ORDRE EST PLACÉ SANS ARRÊT ET LES AUTRES NE SONT PAS OUVERTS
PAS DE DONNÉES DB[2]==0 DB[3]==0 ÉGALEMENT
VOUS AVEZ AUSSI UN BUG DANS VOTRE CODE... IL NE MODIFIE PAS LES POSITIONS D'ACHAT, DONC SI UN ARRÊT D'ACHAT EST DÉCLENCHÉ, L'ORDRE EST PLACÉ SANS ARRÊT ET LES AUTRES NE SONT PAS OUVERTS
PAS DE DONNÉES DB[2]==0 DB[3]==0 ÉGALEMENT
Slava, ton problème est que tu n'acceptes pas les idées nouvelles... On t'a proposé une approche différente, mais tu attends une solution toute faite...
C'est à vous de décider comment traiter les éventuels problèmes liés aux commandes - requêtes, prix incorrects, etc...
Oui, je l'ai corrigé moi-même, j'ai juste oublié de mettre
dans le fichier téléchargé.
J'ai décidé de réécrire tous mes EAs en utilisant un tableau... je pense à comment ajouter 2 variables supplémentaires - lot de commande et profit de commande et 2 ordres pour bylimit et selligit
dans la table de consultation des commandes
y a-t-il des limitations sur le nombre de variables horizontalement et verticalement ? et de variables avant le départ [4] est-ce le nombre de commandes ou le nombre de variables dans chaque commande ?