Trouble de l'erreur il n'y a pas d'opérations commerciales - page 7

 

Raisonnable, Artyom. Il n'y a pas vraiment d'imprimante d'erreur dans ce code rudimentaire. Je vais certainement l'ajouter et le vérifier à nouveau. Mais dans ce cas, l'EA principal a des messages pour chaque erreur.

Pour ce qui est de la deuxième question, lorsque le validateur fixele lot minimum à 0,2 dans l'environnement informationnel et tente d'ouvrir une transaction avec un dépôt initial de 1 $. Il est clair qu'aucun chèque ou empreinte ne passera ce test. Il est garanti de se terminer par l'erreur 134 si rien n'est vérifié comme dans le code ci-dessus. Ou "no trade" si vous vérifiez tout et n'envoyez pas l'ordre d'ouverture au serveur.

Quel est le moyen de sortir de ce cercle vicieux ?

Pourquoi il n'y a pas de trades sur NZDUSD TOUJOURS? J'ai vérifié les deux EA. Je l'ai envoyé à mon ami pour qu'il le vérifie sur son compte par souci de pureté de l'expérience. Il n'avait pas de métier non plus. Le fait que le test soit réussi ou non n'avait aucune importance. Il n'y a aucune restriction sur le trading de cette paire, comme vous pouvez le voir dans le code.

Ce n'est pas seulement moi et mon EA. Aucune transaction sur NZDUSD de la part de quiconque a posté le rapport du validateur dans ce fil de discussion et les fils voisins.
 
Andrey Kaunov:

Raisonnable, Artyom. Il n'y a pas vraiment d'imprimante d'erreur dans ce code rudimentaire. Je vais certainement l'ajouter et le vérifier à nouveau. Mais dans ce cas, l'EA principal a des messages pour chaque erreur.

Pour ce qui est de la deuxième question, lorsque le validateur fixele lot minimum à 0,2 dans l'environnement informationnel et tente d'ouvrir une transaction avec un dépôt initial de 1 $. Il est clair qu'aucun chèque ou empreinte ne passera ce test. Il est garanti de se terminer par l'erreur 134 si rien n'est vérifié comme dans le code ci-dessus. Ou "no trade" si vous vérifiez tout et n'envoyez pas l'ordre d'ouverture au serveur.

Quel est le moyen de sortir de ce cercle vicieux ?

Pourquoi il n'y a pas de trades sur NZDUSD TOUJOURS? J'ai vérifié les deux EAs. Je l'ai envoyé à mon ami pour qu'il le vérifie sur son compte par souci de pureté de l'expérience. Il n'avait pas de métier non plus. Le fait que le test soit réussi ou non n'avait aucune importance. Il n'y a aucune restriction sur le trading de cette paire, comme vous pouvez le voir dans le code.

Ce n'est pas seulement moi et mon EA. Aucune transaction sur NZDUSD de la part de ceux qui ont publié le rapport du validateur dans ce fil de discussion et dans les fils de discussion voisins.

Vous l'avez dit vous-même:

vérifier tout et ne pas envoyer de commande au serveur.

Vous devez le faire vous-même au lieu d'attendre l'inévitable erreur du serveur. Et n'oubliez pas de signaler au journal l'impossibilité d'envoyer la commande au serveur pour telle ou telle raison.

 
Artyom Trishkin:

...

Vous devez le faire vous-même, sans attendre l'inévitable erreur du serveur. Et veillez à signaler dans le journal que l'ordre ne peut être envoyé au serveur pour telle ou telle raison.

C'est comme ça que je ne passe pas le contrôle, Artyom. Et après une heure de vérification, j'obtiens un rapport, qui est déjà dans le cadre peut être enroulé :

Et la deuxième question, sur le NZDUSD ? Peut-être que c'est ça ? Je fais toujours des affaires sur l'EURUSD, mais le validateur du NZDUSD semble trébucher. Parfois, elle dérape davantage, puis elle passe le test :

Mais dans la plupart des cas, il se fige et génère une erreur de validation. Vérifiez ce NZDUSD, il me semble que c'est le problème.

 
Andrey Kaunov:

Alors, je ne passe pas le test, Artyom. Et après une heure de vérification, j'obtiens un rapport que je peux déjà encadrer :

c'est plus qu'assez pour tout réparer à terre.

les rapports d'erreur du validateur étaient auparavant beaucoup plus modestes

Exécutez le testeur de stratégie sur NZDUSD H1 et voyez ce que vous obtenez dans le journal.

même chose avec GBPUSD M30

 

Renat, c'est ce qui dans ce code rudimentaire pourrait ne pas fonctionner. Dans mon testeur, cela fonctionne sur n'importe quelle paire. Ici, je l'ai un peu amélioré. Vérifiez vous-même, peut-être que j'ai raté quelque chose...

#property version   "1.00"
#property strict

int test_ticket[2]={0,0};
double   gl_lots,
         gl_ask,
         gl_bid;
string   gl_comm;         
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit() {
//---

//---
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason) {
//---

}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick() {
   gl_lots=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
   gl_ask=NormalizeDouble(Ask,_Digits);
   gl_bid=NormalizeDouble(Bid,_Digits);
   gl_comm="test";
//---
   if(AccountFreeMarginCheck(_Symbol,OP_BUY,gl_lots)<=0 || GetLastError()==134) {
      printf("Not enough money for the minimum lot: %.4f",gl_lots); 
      ExpertRemove();
   }
   if(test_ticket[1]<8 && test_ticket[0]==0) {
      test_ticket[0]=OrderSend((StringCompare(_Symbol,"NZDUSD")==0?"NZDUSD":_Symbol),OP_BUY,gl_lots,gl_ask,30,0.0,0.0,gl_comm,33333,0,clrNONE);
      if(test_ticket[0]>0) test_ticket[1]++;
   }   
   if(test_ticket[0]>0)
      if(OrderSelect(test_ticket[0],SELECT_BY_TICKET)) {
         if(OrderCloseTime()==0 && OrderOpenTime()+300<TimeCurrent())
            if(OrderClose(test_ticket[0],OrderLots(),gl_bid,30,clrNONE)) {
               printf("Test order closed, ticket #%d",test_ticket[0]);
               test_ticket[0]=0;
            }   
      }
}
//+------------------------------------------------------------------+

Je n'ai toujours pas de trades sur NZDUSD, malgré toutes mes craintes :

Mais maintenant, le validateur n'affiche pas l'erreur 134 et ne montre pas que j'ai testé avec 0,2 lot à 1 $ de dépôt initial.

 
Andrey Kaunov:

Renat, c'est ce qui dans ce code rudimentaire pourrait ne pas fonctionner. Dans mon testeur, cela fonctionne sur n'importe quelle paire. Alors je l'ai un peu amélioré :

Et il n'y a toujours pas de transactions sur le NZDUSD, pour l'amour du ciel :

Exécutez-le dans un testeur normal, il peut y avoir des erreurs dans le journal.
 

Quel est le but, Renat. Eh bien, nous y voilà.



 
Andrey Kaunov:

Renat, c'est ce qui dans ce code rudimentaire pourrait ne pas fonctionner. Dans mon testeur, cela fonctionne sur n'importe quelle paire. Ici, je l'ai un peu amélioré. Vérifiez vous-même, peut-être que j'ai raté quelque chose...

Je n'ai toujours pas de trades sur NZDUSD, malgré toutes mes craintes :

Mais maintenant, le validateur n'affiche pas l'erreur 134 et ne montre pas que je l'ai testé avec 0,2 lot au dépôt initial de 1 $.

Le conseiller expert ne peut pas être déchargé.

 
Artyom Trishkin:

L'expert ne peut pas être déchargé.

Artyom, c'était exactement la même chose sans déchargement. Il ne s'agit pas de l'Expert, mais du NZDUSD. Faites attention à l'essentiel, pas aux détails ! !!

Déchargement afin de ne pas obtenir l'erreur de dépassement de la taille du fichier journal.
 
Andrey Kaunov:

Artem, c'était exactement la même chose sans le téléchargement. Ce n'est pas à propos de l'EA, c'est à propos du NZDUSD. Faites attention à l'essentiel, pas aux détails ! !!

Le validateur passe en revue les paramètres. Lorsque la première combinaison ne donne lieu à aucune transaction, le conseiller expert est déchargé. C'est tout. Des tests supplémentaires sont inutiles.

L'essentiel du problème est que vous ne permettez pas au validateur de fonctionner avec le conseiller expert.

Les tests sont réussis même s'il n'y a pas de transactions sur certains des symboles. L'essentiel est que si une opération commerciale ne peut pas être effectuée, le conseiller expert émet une entrée de journal à ce sujet et continue à travailler.
Vous voyez, vous faites un programme pour les gens, pas un validateur. Pourquoi avez-vous besoin d'un programme sur votre marché qui ne traite pas les erreurs, mais les supprime simplement du graphique ? Achèteriez-vous vous-même un tel miracle ?