Ce que signifie l'entrée dans le journal de bord - page 5

 
Несколько смущает тот факт, что на 37 постов этой ветки приходится только один от разработчиков...

pourquoi interférer dans une discussion déjà productive


Les développeurs ne veulent pas nous effrayer au cas où nous trouverions quelque chose d'intéressant pour eux... :)
 
Несколько смущает тот факт, что на 37 постов этой ветки приходится только один от разработчиков...

pourquoi interférer dans une discussion déjà productive


Pour les raisons suivantes :
1. Pour dire, les gars, on reconnaît (ou pas) qu'il y a un problème et on va le traiter.
2. Pour dire, Quark (et Composter, puisqu'il a reproduit l'erreur sur son EA), nous avons regardé votre code, l'erreur est dedans, traitez untel ou untel.

Sinon, il s'avère que vous n'êtes pas intéressé. Amusez-vous, les enfants...

Je vais répéter mes arguments :
1. Les ordres d'ouverture et de fermeture de positions renvoient parfois des erreurs.
2. Ces codes d'erreur n'ont rien à voir avec la vie réelle (par exemple, "prix erroné", même si le prix est correct).
3. En répétant la tentative avec les mêmes paramètres, vous pouvez faire en sorte que le système accepte la commande. Mais il n'est dit nulle part dans votre manuel que le même ordre doit être ouvert (fermé) dans une boucle avec contrôle d'erreur à chaque étape et sortie dans un fichier pour un contrôle manuel ultérieur.
4. Parfois, les codes d'erreur ne sont pas renvoyés, c'est-à-dire que le programme se comporte comme si l'opération avait réussi. Mais elle échoue.

5. Le plus important. Comme le problème se produit lors de la communication avec le serveur de démonstration (Alpari, dans mon cas), il est très probable qu'ayant trouvé une solution de contournement maintenant, sur la démo, nous nous retrouverons dans la même situation lorsque nous passerons au réel. Et nous devrons alors payer à nouveau pour le débogage. Avec votre propre argent.

6. Il ne s'agit PAS du problème local d'un seul expert. Je soutiens que tous les EA, ou du moins de nombreux EA, peuvent simplement ne pas l'attraper, parce qu'il n'y a pas de système de détection d'erreurs attaché à mes EA. Il s'ensuit que l'optimisation ne peut PAS être transférée au réel, car les commandes ne seront pas ouvertes et fermées de la même manière et pas toujours. Il s'ensuit que les gens vont perdre du temps et de l'argent.

7. Je ne crois pas vraiment que ce soit un problème d'EA. Indiquez-moi où il se trouve, si je me trompe. Vous pouvez changer la logique de l'expert, ce n'est pas une question de logique.

Ici.
 
Quark, nous avons exécuté votre EA sur une machine de test avec un terminal connecté à alpari. nous l'avons mis sur 11 pent ups différents. nous sommes prêts à attendre le résultat jusqu'au bout. dès que la situation décrite se présentera, nous appuierons sur le bouton de débogage. donc, l'absence de réponse ne signifie pas un manque d'attention. je le répète, nous lisons TOUS les messages sur notre forum et nous analysons TOUS les messages. et nous ne sommes pas des robots de messagerie qui répondent bêtement par un "votre message a été lu et noté". désolé.
 
À propos du contexte commercial - si vous regardez le code de l'EA, il attend d'abord nMagic * 10 secondes, ce qui lui garantit une exclusivité de 10 secondes, puis active le sémaphore global (ce qui garantit que les autres EA seront suspendus). Et c'est seulement à ce moment-là qu'il échange.

Roche, voici les journaux d'aujourd'hui, avec un délai de 10000 ms après l'envoi et la fermeture des ordres. Cela semble éliminer les soupçons de conflit dus au moment et au contexte (qui ne devraient pas être là de toute façon) :

Tentative de clôture d'une position courte, ticket : 1827283
9.9.2005 10:13:20 Ordre avec ce ticket toujours présent, réessayer
9.9.2005 10:13:48 Plus d'ordres avec ce ticket Non

Au deuxième essai :(

9.9.2005 0:14:54 Tentative d'achat, tentative 0
Bid : 1.24490000, StopLoss : 0.00700000, TakeProfit : 0.00000000 échoué, erreur 6
9.9.2005 0:15:4 Essai d'achat, tentative 1
Enchère : 1.24470000, StopLoss : 0.00700000, TakeProfit : 0.00000000 réussi

Au deuxième essai :(

9.9.2005 13:0:22 Essai d'achat, tentative 0
Enchère : 1.23900000, StopLoss : 0.00600000, TakeProfit : 0.00000000 échoué, erreur 6
9.9.2005 13:0:48 Essayer d'acheter, tentative 1
Bid : 1.23900000, StopLoss : 0.00600000, TakeProfit : 0.00000000 réussi

Au deuxième essai :(

Pause échoué...
Veuillez noter que l'erreur 6 (la plus informative au monde) n'est apparue qu'à l'achat, alors qu'il n'y avait pas d'erreur à la fermeture. Il est vrai qu'il y avait une erreur de ping dans le journal, mais l'expert ne le sait pas...
 
Quark, nous avons exécuté votre EA sur une machine de test avec un terminal connecté à alpari. nous l'avons mis sur 11 pent ups différents. nous sommes prêts à attendre le résultat jusqu'au bout. dès que la situation décrite se présentera, nous appuierons sur le bouton de débogage. Je le répète, nous lisons TOUS les messages sur notre forum, et nous les analysons TOUS.


Ils disent que si une personne parle à Dieu, c'est bien. Mais si Dieu commence à répondre, c'est un problème :) Mais je suis quand même content :)

Nous vous rappelons que le conseiller expert ne traite pas les transactions de 5 minutes par défaut. Il y a une horloge codée là-dedans, tu dois la changer.
Et je n'ai aucune idée de la facilité avec laquelle on peut attraper ça en 5 minutes. De plus :) si vous testez comme vous l'avez décrit, les cycles devraient être interdits car ils sont conçus pour amortir l'erreur. Il y aura bien sûr une entrée dans les journaux, mais il sera peut-être trop tard pour appuyer sur le bouton.

Enfin, je suppose que nous pouvons ajouter la même logique (appel de mes fonctions à la place de OrderSend et OrderClose) à d'autres EAs. Pour des raisons de cohérence. Je pense que je serai capable d'attraper quelque chose aussi.

Bonne chance,
Quark
 
Quark, nous avons exécuté votre EA sur une machine de test avec un terminal connecté à alpari. nous l'avons mis sur 11 pentamètres différents. nous sommes prêts à attendre le résultat jusqu'au bout. dès que la situation décrite se présentera, nous appuierons sur le bouton de débogage. ainsi, l'absence de réponse ne signifie pas un manque d'attention. je répète, nous lisons TOUS les messages sur notre forum et nous analysons TOUS les messages. et nous ne sommes pas des robots de messagerie qui répondent bêtement "votre message a été lu et noté". désolé. je
vous enverrai probablement le code aussi - à part ce bug, j'ai istradeallowed pour fonctionner...
 
Je vais probablement vous envoyer le code aussi - en plus de ce bug, mon istradeallowed l'empêche aussi de fonctionner...

Envoyez-le moi. C'est ce que nous attrapons.
 
J'ai mentionné plus tôt que je n'avais pas l'intention de trouver des problèmes avec les ordres en attente. Mais j'ai un outil de dépannage simple :) et il a détecté l'une d'entre elles (erreur 6). Je colle le code ci-dessous.

Je tiens à souligner que ce code ne dépend d'aucune condition, à l'exception du déclenchement du deuxième des deux ordres en attente. Par conséquent, ce code a été rappelé une heure plus tard (j'étais hors de chez moi) et l'ordre en attente a été supprimé. L'alerte a été laissée en suspens.

Le système a donc fonctionné cette fois, sans redémarrer le terminal. Je n'exclus pas que d'autres cas (avec des ordres urgents) résultent également de l'arrêt temporaire du terminal ; la logique des Expert Advisors est telle que le code ne sera pas exécuté à la barre suivante s'il ne s'est pas encore déclenché.

Cela concorde avec le fait qu'en répétant la demande d'opération dans la boucle, vous pouvez réussir à la deuxième, troisième et ainsi de suite.

	if(nNumOfOpenedOrders > 0) { for(nCnt = OrdersTotal() - 1 ; nCnt >= 0 ; nCnt--) { OrderSelect(nCnt, SELECT_BY_POS, MODE_TRADES) ; if(OrderMagicNumber() == nMagic && 
				(OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP)) { bool bResult = OrderDelete(OrderTicket()) ; if(bResult == false) { int nError = GetLastError() ; Alert("SimpleBreak " + Symbol() + " error : " + nError) ; } } }
 
Quark, un miracle s'est produit =)
Votre expert a ouvert une position =)))

Les 8 sont suspendus à l'horloge depuis longtemps et personne n'échange... Et maintenant à 15:00 sur Alpari une position s'est ouverte. Est-ce normal ?)
 
Quark, un miracle s'est produit =)<br/ translate="no">Votre expert a ouvert une position =))))

Les 8 ont fait du surplace pendant longtemps et personne ne négocie... Et donc à 15 heures, Alpari a ouvert une position. Est-ce normal ?)


Il a ouvert pour moi aussi, et à 15 ans :)
La position précédente, également réussie, a été ouverte sur USDCAD 23.08.

En fait, c'est un bon conseiller expert, et il n'échoue pas la plupart du temps. Comme n'importe quel autre. A en juger par les logs, ce n'est pas la logique de trading mais le fait. Par conséquent, vous pouvez réécrire le Conseiller Expert, par exemple, pour inverser les positions toutes les heures - cela générera plus de trades :) Et il y aura aussi d'autres échecs.
Cette EA n'est qu'un exemple à donner aux développeurs. Sinon, ils échouent tous de temps en temps. Et vous aussi, si je comprends bien, donc ce n'est pas à cause de notre code...