ORDINE_POSIZIONE_ID

 

Buon pomeriggio!

Qualcuno usa

 if ( OrderSelect( ticket ) )
 {
  long pos_id = long( OrderGetInteger( ORDER_POSITION_ID ) );

  if ( pos_id > 0 )
  {
  }
}

Io, quando un ordine è parzialmente eseguito pos_id è sempre = 0

Perché?

Dalla guida di MQ:

ORDINE_POSIZIONE_ID

L'identificatore di posizione che viene messo sull'ordine quando viene eseguito. Ogni ordine eseguito genera un trade, che apre una nuova posizione o ne modifica una esistente. L'identificatore di questa posizione è impostato sull'ordine eseguito a questo punto.

 
Non lo sa nessuno?
 
Io uso :) come magia quando si ha bisogno di collegare gli ordini a una posizione.
 
Yurich:
Lo uso :) Come per magia, quando è necessario collegare un ordine a una posizione.

Allora perché ho 0?

Perché se fosse stato scritto nella guida ci sarebbe stato scritto:

ID della posizione, che viene messo sull'ordine quando viene eseguito.

Allora forse dovrebbe essere zero.

Ma c'è scritto:

Ogni ordine eseguito generaun trade che apre una nuovaposizione o modifica unaposizione esistente. L'identificatore di questa posizione è impostato sull'ordine eseguito in quel momento.

E anche un ordine parzialmente eseguito genera un accordo.

Cosa vuoi dire?

 
Mikalas:

Allora perché ho 0?

È in servicedesk.

Stavo rispondendo alla domanda"Qualcuno usa" ed è stato impreciso, io uso l'ID di posizione.

 
Yurich:

È in servicedesk.

Stavo rispondendo alla domanda"Qualcuno usa" ed è stato impreciso, io uso l'ID di posizione.

Capisco, grazie.

Ma è l'identificatore di posizione, ma solo all'ordine.

 
Mikalas:

Con me, quando un ordine viene eseguito parzialmente pos_id è sempre = 0

Perché?

Non uso pos_id, probabilmente perché non capisco a cosa serve.

Mi chiedo quale ID dovrebbe avere un ordine se chiude una posizione precedente e ne apre una nuova (flip)?

p.s. L'idea è che ci dovrebbe essere solo una posizione di trading civile (non importa in che modo: comprare, vendere, coprire). Se sembra che non ci sia una posizione, è temporaneo).

 
Serj_Che:

Non uso pos_id, probabilmente perché non capisco a cosa serve.

Mi chiedo quale ID dovrebbe avere un ordine se chiude una posizione precedente e ne apre una nuova (flip)?

p.s. L'idea è che ci dovrebbe essere solo una posizione di trading civile (non importa in che modo: comprare, vendere, coprire). Se sembra che non ci sia una posizione, è temporaneo).

Questo perché il riferimento ha una descrizione ambigua,

che può essere interpretato in modo diverso. Perché un ordine parzialmente eseguito crea anche un

Pertanto, all'ordine deve essere assegnato un ORDER_POSITION_ID

 
Mikalas:

Buon pomeriggio!

Qualcuno usa

Ho sempre pos_id = 0 quando un ordine viene eseguito parzialmente.

Perché?

Forse perché ORDER_POSITION_ID è richiesto subito 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


 
Rosh:

Questo può essere perché ORDER_POSITION_ID è richiesto immediatamente dopo che l'ordine è stato eseguito, quando il server commerciale non ha ancora avuto il tempo di inviare informazioni sulla transazione.

Leggi l'articolo Eventi commerciali in MetaTrader 5


Non sei sicuro della tua risposta?
 
Rosh:

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

Leggi l'articolo Eventi commerciali in MetaTrader 5


Non è chiaro. Se c'è un biglietto, la transazione viene eseguita e abbiamo ricevuto una risposta dal server.

Cosa vuol dire che abbiamo un biglietto, ma il server non ha ricevuto la risposta?