"Erreur de PositionSelect() flottante - page 6

 
Karputov Vladimir:
Les chiffres sous votre avatar ne vous appartiennent pas, vous n'avez donc aucun pouvoir sur eux (vous ne pouvez pas les changer à volonté).

Je ne veux pas le changer moi-même, s'il vous plaît :)

Si tu ne peux pas le changer par 1000, multiplie-le au moins par 100.

 
prostotrader:

Je ne veux pas le changer moi-même, s'il vous plaît :)

Si tu ne peux pas le multiplier par 1000, multiplie-le au moins par 100.

Tu ne peux pas. Non autorisé. Impossible.
 
Karputov Vladimir:

Les chiffres sous votre avatar ne vous appartiennent pas, vous n'avez donc aucun contrôle sur eux (vous ne pouvez pas les changer à volonté).

Ajouté.

Oublier les ordres avant la transaction avec le type TRADE_TRANSACTION_DEAL_ADD. Pourquoi "l'oublier" ? Parce que c'est la mauvaise chose à faire.

Oubliez les transactions, je vous dirai en toute confiance que vous pouvez trouver des informations sur les transactions dans l'histoire,

quand la transaction historique est arrivée. Il n'y a pas d'ordre, donc vous pouvez voir ce que l'ordre a "fait".

Avec cette simple fonction :

double GetDealsVolume(const string a_symbol,const ulong a_ticket,const datetime start)
  {
   double volume=0;
   if(HistorySelect(start-180,TimeTradeServer()+180))
     {
      int deals=HistoryDealsTotal();
      if(deals>0)
        {
         for(int i=deals-1; i>=0; i--)
           {
            ulong deal_ticket=HistoryDealGetTicket(i);
            ulong ticket=ulong(HistoryDealGetInteger(deal_ticket,DEAL_ORDER));
            if(( ticket>0) && (ticket==a_ticket))
              {
               volume+=HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);
              }
           }
        }
     }
   return( volume );
  } 
 
prostotrader:

Oubliez les transactions, je vous dirai en toute confiance que vous pouvez trouver des informations sur les transactions dans l'histoire,

quand la transaction historique est arrivée.

Avec cette simple fonction :

Vous êtes inattentif :

...
Oubliez les ordres jusqu'à une transaction de type TRADE_TRANSACTION_DEAL_ADD. Pourquoi "oublier" ? Parce que c'est FAUX.

Ensuite, vous pourrez vous souvenir des mandats.

 
Karputov Vladimir:

Vous êtes inattentif :

Ensuite, vous pourrez vous souvenir des mandats.

Merci, je vais essayer de ne pas oublier :)

Et le x100 ?

Ajouté :

Voilà le problème :

La Transaction vient en premier, comment savoir si c'est la première ?

Ou vice versa La transaction vient en premier.

 
prostotrader:

Merci, je vais essayer de ne pas oublier :)

Alors, qu'en est-il du x 100 ?

Je l'ai déjà fait :

 
prostotrader:

...

Ajouté :

Voilà le problème :

La transaction Hist. passe en premier, mais comment savoir si c'est le cas ?

Ou vice versa La transaction est prioritaire.

Je dois y réfléchir. Clarifiez, est-ce quand un ordre avec plus d'un volume est déclenché ?
 
Karputov Vladimir:
Je dois y réfléchir. Veuillez clarifier, est-ce que c'est quand un ordre avec un volume de plus de 1 est déclenché ?
Peu importe l'ordre ou le volume.
 

Si tout a fonctionné comme l'a ditMQ Alexander, alors

il n'y aurait pas eu deproblèmes.

En l'état actuel des choses, il est impossible de dire... :(

Parce que la transaction peut déjà être dans l'historique avant les opérations effectuées : 1.0.

Et selon les mots d'Aleksander, cela fonctionnerait comme ceci ( et serait juste! ) :

Lorsque la transaction historique arrive:

Volume initial - Volume actuel = Transaction effectuée - Transaction déjà arrivée

Ne mettez pas un drapeau et occupez-vous des positions et des ordres !

--------------------------------

Volume initial - Volume actuel != Transaction effectuée - Transaction suivante

Vous devez activer l 'indicateur, attendre la transaction Deals et utiliser l'indicateur pour traiter les positions et les ordres !

C'est tout !

 
Historique de la transaction mis à jour avant TRADE_TRANSACTION_DEAL_ADD
Non traité, Démarré : 2016.08.15 18:43, #1537513