Il che impedisce al consulente di fare soldi. - pagina 5

 
Roman.:

PRIMA DI TALO. Fino alla selezione nel ciclo:



Non credo che sia giusto, perché potrebbe essere già chiuso. E tu resterai nel giro. E dopo questi blocchi, il terminale deve spesso essere reinstallato.
 
valenok2003:

tutto ha un senso

solo queste due ragioni o potrebbe esserci qualcos'altro?
Un ordine può essere chiuso parzialmente, riaperto con un biglietto diverso, cambiare tipo... Per questo è necessario tenerne traccia - correttamente. Attraverso gli array.
 
valenok2003:


Non credo che questo sia giusto, perché potrebbe essere già chiuso. E sarete bloccati in un loop. E dopo tali intoppi il terminale deve spesso essere reinstallato.

non è mai successo - se è chiuso, non va in un ciclo di esecuzione del programma...

for (int orderIndex = (OrdersTotal() - 1); orderIndex >= 0; orderIndex--)
 
Roman.:
L'ordine può essere chiuso parzialmente, riaperto con un biglietto diverso, cambiare il tipo... Per questo è necessario tenerne traccia - correttamente. Attraverso gli array.

Ho un approccio leggermente diverso alla contabilità, anche se non si può fare a meno degli array, è vero

Comunque, andiamo al sodo...

Se l'ordine non è selezionato, a cosa sarà uguale, per esempio, OrderType() o OrderTicket()?

 
valenok2003:

Tuttavia, ai nostri arieti...

se un ordine non è selezionato, a cosa corrisponde OrderType() o OrderTicket(), per esempio? questo è in qualche modo previsto in MocL?


Oh, caro! Va negli annali!

 
valenok2003:

Ho un approccio leggermente diverso alla contabilità, anche se non si può fare a meno degli array, è vero

Comunque, torniamo ai nostri affari...

Se un ordine non è selezionato, a cosa corrisponde OrderType() o OrderTicket(), per esempio?

Non cercate una fregatura dove non c'è. Metti questo codice nel tuo gufo e goditi la tua vita.

L'ho controllato io stesso - in linea (per non parlare del tester) tutto funziona bene e senza errori, anche senza array...

Con gli array - anche scambiati - tutto funziona.

 
Roman.:

non è mai successo - se è chiuso, non entra nel ciclo di esecuzione del programma...



Roma, non mentire, la prima volta che hai scritto

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


Oh, mio Dio! Entrerà negli annali!

Lasciami riformulare, quando provi a selezionare un ordine inesistente, cosa succede ai dati?
 

Questo costrutto era originariamente nel post di qualcuno con la domanda: Come faccio a sapere il prezzo di un ordine? la risposta che ho usato in questo ciclo - vedi sopra.

Ecco la risposta a questa domanda:

    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, non mentire, la prima volta che hai scritto

Come ho fatto in tutte le occasioni successive. Sono onesto come non lo sono mai stato. :-)

Questa costruzione è usata nel loop - vedi attentamente - è tutto lì... la prima, la seconda e la terza volta - tutto è uguale ovunque!

Motivazione: