Caractéristiques du langage mql5, subtilités et techniques - page 172

 
Alexey Viktorov:

Ce serait beaucoup plus clair si vous preniez une photo.

Mis à jour ci-dessus.

 
fxsaber:

Live BuyLimit.

Eh bien, il montre les volumes - les volumes remplis et les volumes restants. Il montre l'exécution partielle. Ou bien je ne comprends pas le problème ?
 
Artyom Trishkin:
Eh bien, il montre les volumes - le volume rempli et le volume restant. Vous pouvez voir qu'il s'agit d'une exécution partielle. Ou peut-être que je ne comprends pas le problème ?

L'heure de l'ordre est devenue l'heure de l'exécution partielle.

Peut-être devons-nous prêter attention aux développeurs. Nous devrions peut-être introduire une autre propriété de l'ordre.

 
Alexey Viktorov:

L'heure de l'ordre est devenue l'heure de l'exécution partielle.

Il est clairement visible ici.



Je ne sais pas ce qui se passera lorsque l'ordre sera à nouveau partiellement exécuté.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Bibliothèques : MT4Orders

fxsaber, 2020.04.07 18:47

L'exécution partielle est très facile à trouver dans MT5.
// true - сделка в результате частичного исполнения.
bool IsPartial( const ulong TicketDeal )
{
  const ulong TicketOrder = HistoryDealGetInteger(TicketDeal, DEAL_ORDER);
  
  return((HistoryDealGetInteger(TicketDeal, DEAL_TYPE) <= DEAL_TYPE_SELL) &&
         (!TicketOrder ||
          (HistoryDealGetDouble(TicketDeal, DEAL_VOLUME) != HistoryOrderGetDouble(TicketOrder, ORDER_VOLUME_INITIAL))));
}


// Вывод всех частично-исполненных сделок.

input datetime inFrom = D'2020.01.01';

void OnStart()
{
  if (HistorySelect(inFrom, INT_MAX))
  {
    for (int i = HistoryDealsTotal() - 1; i >= 0; i--)
    {
      const ulong TicketDeal = HistoryDealGetTicket(i);
      
      if (IsPartial(TicketDeal))
        Print(TicketDeal);
    }
  }
}
 
fxsaber:

Vous pouvez le voir ici.


Cela peut être mauvais du tout dans certains cas. Cela doit absolument être signalé aux développeurs.

 
fxsaber:

Vous pouvez le voir ici.



Ce qui se passera avec une deuxième performance partielle - je ne sais pas.

Et l'historique est réglé pour montrer les ordres et les transactions. Si vous le changez en commandes seulement ?

 
Alexey Viktorov:

Cela peut être mauvais dans certains cas du tout. Cela doit absolument être signalé aux développeurs.

Il est difficile de dire si c'est une mauvaise chose ou non. De plus, l'effondrement de CloseBy semble perdre les majicas. Vous devez vérifier.

 
Alexey Viktorov:

Et votre historique est réglé pour montrer les commandes et les offres. Si vous le changez en commandes seulement ?

C'est le mode "Deal". Dans d'autres modes, il ne sera pas visible, car la commande est toujours en cours.

 
fxsaber:

C'est le mode "Deal". Elle ne sera pas visible dans les autres modes car la commande est toujours en cours.

J'ai fait un tour et je me suis rendu compte que ce sont des métiers. Mais dans ce cas, c'est le moment de la transaction qui est indiqué, et non l'ordre. C'est pourquoi il est intéressant de le voir en mode commande.

 
Alexey Viktorov:

J'ai fait un tour et je me suis rendu compte que ce sont des métiers. Mais dans ce cas, il indique l'heure de la transaction, et non l'ordre. C'est pourquoi il est intéressant de le voir en mode commande.

Il ne peut y avoir d'ordre dans le mode d'ordre lorsqu'il est vivant. Une fois mort - il y aura un temps de première exécution, comme il a été dit à l'origine.

Raison: