Ce qui empêche le conseiller de gagner de l'argent. - page 5

 
Roman.:

AVANT TALO. Jusqu'à ce qu'il soit sélectionné dans le cycle :



Je ne pense pas que ce soit juste, parce que ça pourrait déjà être fermé. Et vous resterez dans la boucle. Et après ces blocages, le terminal doit souvent être réinstallé.
 
valenok2003:

tout s'explique

seulement ces deux raisons ou pourrait-il y avoir autre chose ?
Une commande peut être fermée partiellement, rouverte avec un autre ticket, changer de type... Pour cela, vous devez en garder la trace - correctement. Par le biais de réseaux.
 
valenok2003:


Je ne pense pas que ce soit correct, car il se peut qu'elle soit déjà fermée. Et tu seras coincé dans une boucle. Et après de tels contretemps, le terminal doit souvent être réinstallé.

n'est jamais arrivé - s'il est fermé, il n'entrera pas dans une boucle d'exécution de programme...

for (int orderIndex = (OrdersTotal() - 1); orderIndex >= 0; orderIndex--)
 
Roman.:
La commande peut être fermée partiellement, rouverte avec un autre ticket, changer de type... Pour cela, vous devez en assurer le suivi - correctement. Par le biais de réseaux.

J'ai une approche légèrement différente de la comptabilité, même si vous ne pouvez pas vous passer des tableaux, c'est vrai...

Mais passons aux choses sérieuses...

Si la commande n'est pas sélectionnée, quelle sera la valeur de OrderType() ou de OrderTicket(), par exemple ?

 
valenok2003:

Cependant, à nos béliers...

si une commande n'est pas sélectionnée, à quoi correspond OrderType() ou OrderTicket(), par exemple ? cela est-il prévu d'une manière ou d'une autre dans MocL ?


Oh, mon Dieu ! Cela entre dans les annales !

 
valenok2003:

J'ai une approche légèrement différente de la comptabilité, même si vous ne pouvez pas vous passer des tableaux, c'est vrai...

Cependant, revenons à nos affaires...

Si une commande n'est pas sélectionnée, qu'est-ce que OrderType() ou OrderTicket() équivalent, par exemple ?

Tu ne cherches pas une prise là où il n'y en a pas. Mettez ce code dans votre hibou et profitez de votre vie.

Je l'ai vérifié moi-même - en ligne (pour ne pas mentionner dans le testeur) tout fonctionne bien et sans défaillances, même sans tableaux...

Avec les matrices - également commercialisées - tout fonctionne.

 
Roman.:

n'est jamais arrivé - s'il est fermé, il n'entrera pas dans la boucle d'exécution du programme...



Roma, ne mens pas, la première fois que tu as écrit

while(OrderSelect(ticket,SELECT_BY_TICKET)==false)
 
PapaYozh:


Oh, mon Dieu ! Ça va entrer dans les annales !

Permettez-moi de reformuler : lorsque vous essayez de sélectionner une commande inexistante, qu'arrive-t-il aux données ?
 

Cette construction était à l'origine dans le post de quelqu'un avec la question : Comment puis-je savoir le prix d'un ordre? la réponse que j'ai utilisé dans cette boucle - voir ci-dessus.

Voici la réponse à cette question:

    int ticket=OrderSend(Symbol(),OP_SELL,0.01,Bid,5,0,0,"OrderOpenOne",14774,0,CLR_NONE);
    if (ticket>0)                                               // Если позиция открылась
    {
       while(OrderSelect(ticket,SELECT_BY_TICKET)==false)       // Если ордер выбран
       {
          Sleep(100);
       }
       double OpenPrice=OrderOpenPrice();
    }

 
valenok2003:



Roma, ne mens pas, la première fois que tu as écrit

Comme je l'ai fait à toutes les occasions suivantes. Je suis aussi honnête que je l'ai jamais été. :-)

Cette construction est utilisée dans la boucle - voyez attentivement - tout est là... la première, la deuxième et la troisième fois - tout est pareil partout !