"Errore di PositionSelect() fluttuante - pagina 5

 

prostotrader:

Ha più senso "professore"?

Heh-heh-heh. Sei almeno un adulto o cosa?

Cosa volevi mostrare nello screenshot?

Esaminiamo i punti del tuo registro.

Il primo:

2016.08.15 15:37:17.720    Test_deff_order (GAZR-9.16,M1)    History done. Ticket: 50942179

Nel secondo paragrafo, cosa vedi?

Mi prenderò la briga di scriverlo:

2016.08.15 15:37:17.720    Test_deff_order (GAZR-9.16,M1)    Volume initial: 1.0. Volume current: 0.0 Deals done: 0.0 

 

Ma ancora una volta state cercando di analizzare qualcosa (ordini) senza tener conto che il trigger che vi permette di analizzare il volume della posizione è una transazione del tipo TRADE_TRANSACTION_DEAL_ADD - aggiungendo un affare alla storia.

Eppure ti ostini, per l'ennesima volta, con TRADE_TRANSACTION_DEAL_ADD non controlli il volume della posizione.

Ecco il tuo codice dal messaggio di cui sopra:

      case TRADE_TRANSACTION_DEAL_ADD:
        if((order_ticket!=0) && (trans.order==order_ticket))
        {
         Print("Deal done. Ticket: ",trans.order);
        }
      break; 
 
Изменение позиции в терминале происходит строго в результате получения сделочной транзакции, ....

Non vedi che la posizione (nel secondo caso) è cambiata PRIMA dell'arrivo della transazione?

QUESTO NON DEVE ESSERE, perché Alexndr ha scritto:

Изменение позиции в терминале происходит СТРОГО в результате получения сделочной транзакции, ....
 

STRETTAMENTE!

STRETTAMENTE!

STRETTAMENTE!

STRETTAMENTE!

 
prostotrader:

Non vedi che la posizione (nel secondo caso) è cambiata PRIMA dell'arrivo della transazione?

NON CI DEVE ESSERE, perché Alexndr ha scritto:

Ah è così... Solo l'autore dirà più precisamente :-))

Ma, imho, non vale la pena prendersela con queste parole. La transazione commerciale è già arrivata, solo che non viene immediatamente elaborata in OnTradeTransaction().

La cosa divertente è che tu indichi la transazione commerciale, mentre nel tuo codice c'è il caso TRADE_TRANSACTION_HISTORY_ADD .

Imho, qui è importante elaborarlo esaminando le transazioni - caso TRADE_TRANSACTION_DEAL_ADD.

 
Dennis Kirichenko:

Ah, ecco... Solo l'autore può essere più preciso :-))

Ma, imho, non dovremmo prendercela con queste parole. La transazione è già arrivata, solo che non è stata immediatamente elaborata in OnTradeTransaction().

Imho, è importante elaborarlo esaminando le transazioni...

Grazie Denis!

Sono un babbeo che non sa nemmeno cosa siaOnTradeTransaction

 
prostotrader:

Grazie Deniska!

Sono un babbeo che non sa nemmeno cosa sia OnTradeTransaction.

Piacere mio! Ma la sua ironia è senza fondamento. Sei già stato strofinato più volte di seguito su ciò che non è corretto nel codice.

Almeno avresti dovuto ringraziare Vladimir, è stato il primo a indicare la direzione giusta ;-)

 
Dennis Kirichenko:

Piacere mio! Ma la vostra ironia non è destinata ad essere tale. Vi è stato detto più volte di seguito cosa c'è di sbagliato nel codice.

Almeno dovresti ringraziare Vladimir, è stato il primo a indicare la direzione giusta ;-)

Leggete "a vostro piacimento":

https://www.mql5.com/ru/forum/93357#comment_2707875

 

Karputov Vladimir

I numeri sotto i miei avatar non possono essere moltiplicati per 1000?

Un'altra cosa...

Nel caso non l'abbiate notato, devo dire che in tutti gli esempi gli ordini sono messi fuori

In modo asincrono, quindi è importante controllarli!

 
prostotrader:

Karputov Vladimir

I numeri sotto il mio avatar non possono morire di 1000?

Le cifre sotto il tuo avatar non ti appartengono, quindi non hai potere su di esse (non puoi cambiarle a piacimento).

Aggiunto.

Dimentica gli ordini fino alla transazione con tipo TRADE_TRANSACTION_DEAL_ADD. Perché "dimenticare"? Perché è SBAGLIATO.

Motivazione: