Ciclo operatore 'per' domande - pagina 2

 
WhooDoo22:

Simon,

Non capisco cosa stai vedendo ma ;) Includerò prontamente la funzione GetLastOrder() per far luce su questo problema. Mi scuso per aver postato una domanda senza aver prima incluso la funzione GetLastOrder() nel codice.

Grazie.

Quale numero di biglietto mostra OrderPrint()? Quale errore viene mostrato?
 

Simon,


quale errore viene mostrato?

ticket 2 sconosciuto per la funzione OrderClose


Che numero di ticket mostra OrderPrint() ?

#20526942 2012.12.24 13:43 compra 0,01 USDJPY 84,466 0,000 0,000 86,105 0,00 0,00 19,03 0


Grazie.

 
Quindi il tuo numero di ticket USDJPY è 20526942 e stai cercando di chiudere il ticket NUMERO (non la posizione)2? Vedi il problema?
 

Simon,

Il numero di ticket USDJPY è 20526942.

La funzione OrderClose() sta tentando di chiudere il ticket numero 2.

Il numero di biglietto USDJPY è 20526942 e la sua posizione nel pool è 2.


Se ho capito bene, la funzione OrderClose() non può chiudere l'ordine USDJPY perché il primo parametro della funzione OrderClose() usa il numero di posizione 2 invece del "numero unico del ticket dell'ordine" (20526942). Se confermate questa affermazione, allora sembra che io debba trovare un modo per isolare il numero di ticket 20526942 dell'ordine USDJPY, quindi mettere questo numero nel primo parametro della funzione OrderClose().

Cosa ne dite di questo? ;)

Grazie.

 
WhooDoo22:


Se ho capito bene, la funzione OrderClose() non può chiudere l'ordine USDJPY perché il primo parametro della funzione OrderClose() utilizza il numero di posizione 2 invece del "numero unico del ticket dell'ordine" (20526942). Se confermate questa affermazione, allora sembra che io debba trovare un modo per isolare il numero di ticket 20526942 dell'ordine USDJPY, quindi mettere questo numero nel primo parametro della funzione OrderClose().

Che ne dici di questo? ;)

Sì, e c'è una funzione per fare proprio questo.
 

Simon,

Non mi dire? ;)

Non potrebbe essere la poco appariscente funzione OrderTicket(), vero? Hahaha.

Grazie.
 
WhooDoo22:

Simon,

Non mi dire? ;)

Non potrebbe essere la poco appariscente funzione OrderTicket(), vero? Hahaha.

Grazie.
LOL :-) il tuo codice dovrebbe funzionare ora. . . . . poi vedi se puoi modificarlo per gestire più ordini USDJPY . . . ;-)
 

Simon,

Ancora una volta, sono così, così abbondantemente benedetto nel ricevere ancora un altro contributo più che generoso dalla scheda 'Esperti' nella mia MetaTrader che accolgo a braccia aperte e con una manifestazione di grande gioia. ;)


Descrizione dell'errore:

Errore di prezzo di USDJPY (funzione OrderClose())


Grazie.

 
WhooDoo22:

Simon,

Ancora una volta, sono molto, molto fortunato a ricevere un altro generoso contributo dalla scheda 'Esperti' nella mia MetaTrader che accolgo a braccia aperte e con una manifestazione di grande gioia. ;)

Ora hai bisogno di una segnalazione di errore in modo da sapere esattamente quale errore è stato generato . . . è probabilmente che il prezzo è troppo vicino a SL o TP per chiudere l'ordine. Qual è il tuo FreezeLevel ?
 

Simon,

LIVELLO DI CONGELAMENTO33Livello di congelamento dell'ordine in punti. Se il prezzo di esecuzione si trova nell'intervallo definito dal livello di congelamento, l'ordine non può essere modificato, cancellato o chiuso.


Non so quale sia il livello di congelamento per il broker MetaTrader che uso per eseguire i test. Suppongo che il livello di congelamento vari a seconda del broker.

Conoscete un modo che posso usare per scoprire il livello di blocco di MetaEditor usando la funzione MarketInfo()?

Ho già incorporato la funzione GetLastError() senza risultato. Sto cercando di collocarla nella posizione corretta in questo momento.

Inoltre, il prezzo attuale dell'ordine dovrebbe superare di gran lunga il livello di congelamento.

Ecco un'istantanea che mostra il suo stato:

Stato dell'ordine USDJPY


Grazie.