ORDINE_POSIZIONE_ID - pagina 2

 
Serve più contesto (codice). Da dove viene questo biglietto e a cosa equivale prima che questo codice venga eseguito?
 
Rosh:

Forse perché ORDER_POSITION_ID è richiesto immediatamente dopo l'esecuzione dell'ordine, quando il server commerciale non ha ancora avuto il tempo di inviare informazioni sulla transazione.

Leggi l'articolo Eventi commerciali in MetaTrader 5


Ho dato un frammento di codice come esempio, ma in realtà la funzione per ottenere l'ID è così:

//+------------------------------------------------------------------+
//| Get order position ID function                                   |
//+------------------------------------------------------------------+
long GetOrderPosId( const ulong ticket )
{
  long pos_id = 0;
  
  if ( OrderSelect( ticket ) )
  {
    string pos_symbol = OrderGetString( ORDER_SYMBOL );
    
    if ( PositionSelect( pos_symbol ) )
    {
      return( long( OrderGetInteger( ORDER_POSITION_ID ) ) );
    }
  }
  
  return( pos_id );
}

P/S Rosh, per favore non mandarmi via a leggere articoli.

Credetemi, ho letto molto, e il fatto che sto chiedendo molto

Domande, è perché c'è molta ambiguità nella documentazione.

 
marketeer:
Abbiamo bisogno di più contesto (codice). Da dove viene questo biglietto e a cosa equivale prima che questo codice venga eseguito?

Se l'ordine è selezionato, quale pensi sia stato il biglietto?

E il biglietto è stato preso da internet come risposta all'accettazione dell'ordine da parte del server di trading.

 
Mikalas:

Se l'ordine è selezionato, quale pensi sia stato il biglietto?

E il biglietto è stato preso da internet come risposta all'accettazione dell'ordine da parte del server di trading.

E come pensi che noi sappiamo cosa e da dove lo prendi? Mostri ancora del codice che non dice nulla sul contenuto del biglietto, su come la richiesta è stata eseguita, e non usi, per esempio, debug print o altri mezzi per controllare che la variabile non contenga un numero mancino (per cominciare, allora request.action è uguale a cosa?). Un bug può insinuarsi ovunque.
 
marketeer:
Come pensi che possiamo sapere cosa stai ricevendo e da dove viene? Mostrate ancora del codice che non dice nulla sul contenuto del biglietto, su come la richiesta è stata eseguita, e non usate, per esempio, debug print o altri mezzi per assicurarvi che la variabile non contenga un numero mancino (per cominciare, allora request.action è uguale a cosa?). Un bug può insinuarsi ovunque.
Grazie, capisco il tuo punto di vista.
 
Mikalas:
Grazie, capisco il suo punto di vista.
Non c'è di che. Non capisco il suo punto di vista. Vi è già stato accennato all'esecuzione asincrona della richiesta e alla ricezione del biglietto. Finché non si mostra il codice come e quando si elaborano queste cose, la domanda risulta essere rivolta ai telepati.
 
marketeer:
Non c'è di che. E non capisco il suo punto di vista. Vi è già stato accennato all'esecuzione asincrona della richiesta e alla ricezione del biglietto. Finché non si mostra il codice, come e quando si elaborano queste cose, la domanda risulta essere rivolta ai telepati.

Lasciatemi spiegare.

Dal codice di cui sopra, tutto è ovvio.

Non importa quale biglietto (l'ordine viene effettuato da solo). Guarda attentamente (ordine per ticket e posizione per simbolo d'ordine aperto parzialmente eseguito da questo ordine).

Oltre alla stampa, c'è anche un'esecuzione passo dopo passo del programma e

quando arrivo a

return( long( OrderGetInteger( ORDER_POSITION_ID ) ) );

Restituisce "0".

La domanda non è se posso o non posso programmare in MQL5 (così come tracciare il programma), ma

La domanda è se dice una cosa nella documentazione e ne implementa un'altra (service Desk è silenzioso come al solito).

O forse ho interpretato correttamente la descrizione data nella documentazione suORDER_POSITION_ID

(leggere i miei 3 post).

 
Mikalas:

Lasciatemi spiegare.

Dal codice di cui sopra, tutto è ovvio.

Non importa quale biglietto (l'ordine viene effettuato da solo). Guarda attentamente (ordine per ticket e posizione per simbolo d'ordine aperto parzialmente eseguito da questo ordine).

Oltre alla stampa, c'è anche un'esecuzione passo dopo passo del programma e

quando arrivo a

Restituisce "0".

La domanda non è se posso o non posso programmare in MQL5 (così come tracciare il programma), ma

La questione è se dice una cosa nella documentazione e un'altra cosa appare nella realtà (il service Desk tace come al solito).

O forse ho interpretato correttamente la descrizione data nella documentazione suORDER_POSITION_ID

(Leggete i miei 3 post).

Ancora 25. È IMPORTANTE quale ordine e come lo fate. Forse, per esempio (ipoteticamente, perché tutto è ancora un mistero), avete un pendolo, allora quale può essere la posizione ID?

Il codice qui sopra non ha alcun senso.

 
marketeer:

25 di nuovo. È IMPORTANTE quale ordine e come lo fate. Forse avete, per esempio (ipoteticamente, perché tutto è ancora un mistero), un pendolo, allora quale può essere la posizione ID?

Il codice qui sopra non ha alcun senso.

Mi dispiace, ma parliamo lingue "diverse", o si legge oltre la linea.

L'ordine pendente è UNO e la posizione è stata parzialmente aperta da questoordine che è ancora in vigore,

Quando traccio il programma, ottengoreturn( long( OrderGetInteger( ORDER_POSITION_ID ) ) );

 
Mikalas:

Scusa, ma io e te stiamo parlando in lingue "diverse", o stai leggendo oltre la linea.

L'ordine pendente è UNO e la posizione è stata parzialmente aperta da questoordine, che è ancora in vigore,

Quando traccio il programma, ottengoreturn( long( OrderGetInteger( ORDER_POSITION_ID ) ) );

Osservate questo ordine parzialmente eseguito. Dove si trova? Nella lista delle operazioni o negli ordini eseguiti?