Le conseiller est-il adapté à la vie réelle ? - page 32

 
Lorsque cette condition se produit, l'ordre se trouve définitivement dans la zone bloquée.
 
FOReignEXchange:
Je suis tellement stupide. J'ai oublié de dire la chose la plus importante. Tout fonctionne bien dans le testeur. C'est là le problème. Si la commande ne devait pas être supprimée dans le testeur, je ne m'en préoccuperais pas. Mais il n'est pas supprimé dans le compte réel et il est supprimé dans le testeur si la visualisation est activée après une transaction. C'est pourquoi je pense que cela ressemble à une sorte de bug dans le langage. J'ai l'impression qu'il ne peut pas supprimer beaucoup de données de l'ordre sélectionné. Ce n'est pas la première fois que je rencontre ce problème. Pour être plus exact, j'y ai été confronté tout le temps. Tout est OK dans le testeur, mais pas dans la vie réelle.

Il n'y a pas de bogues.

La propagation étendue est une farce. Et le niveau de gel, lorsqu'il est atteint, l'ordre est bloqué et on ne peut rien y faire.

 
Bicus:

Il n'y a pas de bogues.

La propagation étendue est une farce. Et le niveau de gel, lorsqu'il est atteint, l'ordre est bloqué et on ne peut rien y faire.

Si c'est le cas, le journal affichera une erreur lorsque vous tenterez de le supprimer. Mais seulement si les erreurs sont traitées dans le code.
 
OnGoing:
Si c'est le cas, il y aura une erreur dans les journaux lors de la tentative de suppression. Mais seulement si les erreurs sont traitées dans le code.
Le testeur manipule probablement une bougie nulle, sans doute.
 
paukas:
Le testeur manipule très probablement une bougie zéro, sans aucun doute.
Ou peut-être que le serveur a un ping qui fuit, auteur, testez avec un broker normal.
 
Bicus:

Il n'y a pas de bogues.

La propagation étendue est une farce. Et le niveau de gel, lorsqu'il est atteint, l'ordre est bloqué et on ne peut rien y faire.


Il n'y a pas d'erreurs dans le journal. Et ce d'autant plus que ces cas se produisent le plus souvent dans la journée pendant une volatilité moyenne. Hier, deux ordres n'ont pas été supprimés après un fort mouvement, environ 10 minutes après celui-ci, lorsque tout s'est calmé. Et au moment de ce déplacement sur l'Euro, tout semblait fonctionner, sauf dans le cas où des erreurs apparaissaient dans le journal.
 
paukas:
Le testeur manipule très probablement une bougie zéro, sans aucun doute.

Qu'entendez-vous par zéro ?
 
FOReignEXchange:

Comment comprenez-vous le zéro ?
La barre actuelle est dans les conditions. Le testeur le considère comme déjà terminé. Et on ne connaît pas encore le haut et le bas de la cloze, seulement l'ouvreur.
 
Bicus:

Il n'y a pas de bogues.

La propagation étendue est une farce. Et le niveau de gel, lorsqu'il est atteint, l'ordre est bloqué et on ne peut rien y faire.


L'écart est toujours fixe. Je ne l'ai jamais vu augmenter ou diminuer.
 
FOReignEXchange:

Il n'y a pas d'erreurs dans le journal. De plus, ces cas se produisent généralement en milieu de journée, lorsque la volatilité est modérée. Hier, deux ordres n'ont pas été supprimés après le fort mouvement, environ 10 minutes après, lorsque tout s'est calmé. Et au moment de ce déplacement sur l'Euro, tout semblait fonctionner, sauf dans le cas où des erreurs apparaissaient dans le journal.
if (//Тут условие//)
   {
   if (OrderSelect(ticket_buy,SELECT_BY_TICKET)==true)
     {
     if (OrderType() == OP_BUYSTOP && Ask > (OrderOpenPrice() - 4 * Point)) 
        {
        i=0;
        while (i<10)
              {
              if (i>0) Sleep(500);      
              RefreshRates(); OrderDelete(ticket_buy); 
              err=GetLastError();
              if (err==0)
                 {
                 ticket_buy=0; return;
                 }
              i++;
              }
        }
     }
   }

Donc vous avez un ordre d'achat stop. Ensuite, vous observez quand le prix s'en rapproche et vous essayez de le supprimer. Imho, mais il s'agit du niveau de congélation. Essayez de réécrire le code comme ceci :

if (//Тут условие//)
   {
   if (OrderSelect(ticket_buy,SELECT_BY_TICKET)==true)
     {
     if (OrderType() == OP_BUYSTOP)
        {
         Print ("Уровень заморозки: ", MarketInfo (Symbol(), MODE_FREEZELEVEL), ", Ask: ", Ask);
         if (Ask > (OrderOpenPrice() - 4 * Point)) 
         {Print ("Зашли в условие");
           i=0;
           while (i<10)
              {
              if (i>0) Sleep(500);      
              RefreshRates(); OrderDelete(ticket_buy); 
              err=GetLastError();
              if (err==0)
                 {
                 ticket_buy=0; return;
                 }
              i++;
              }
          } 
        }
     }
   }

Et franchement, il me semble étrange de supprimer un ordre uniquement lorsque le prix est proche de celui-ci.