Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1058

 

InMqlTradeResult result.price ottengo 0 quando viene eseguito un ordine limite (BUY STOP nel mio caso).

Il resto dei campi, come il volume, l'ordine, ecc. Perché il prezzo è 0? O qual è il modo corretto di farlo?

p.s. Sto guardando nel debugger sulla storia.

 
leonerd:

InMqlTradeResult result.price ottengo 0 quando viene eseguito un ordine limite (BUY STOP nel mio caso).

Il resto dei campi, come il volume, l'ordine, ecc. Perché il prezzo è 0? O qual è il modo corretto di farlo?

p.s. Sto cercando nel debugger sulla storia.

Beh, è così. Quando ORDER_TYPE_BUY in result.price ottengo il prezzo, ma quando ORDER_TYPE_BUY_STOP ci ottengo 0. Perché?

 
Il prezzo nel commercio confermato dal broker. Dipende dal campo dideviazione nellarichiesta di compravendita e/o dal tipo dicompravendita


Cioè questo è solo per la transazione. E come ottenere il prezzo dell'ordine dopo averlo impostato tramite OrderSend()? Intendo attraverso la risposta diMqlTradeResult e non attraverso qualsiasi gestore di transazioni. Non capiamo perché se c'è uno scambio, la risposta conterrà il prezzo ma se c'è un ordine limite, il suo prezzo non ci sarà.

 
leonerd:

Cioè questo è solo per la transazione. E come ottenere il prezzo dell'ordine dopo averlo impostato tramite OrderSend()? Intendo attraverso la risposta diMqlTradeResult e non attraverso qualsiasi gestore di transazioni. In qualche modo non è chiaro perché se c'è uno scambio, la risposta conterrà il prezzo ma se c'è un ordine limite, non vedremo il suo prezzo.

Richiesta.prezzo.

 
fxsaber:

Richiesta.prezzo.

Ipoteticamente il prezzo della richiesta può essere cambiato sul server e l'ordine può essere impostato con un prezzo diverso da quello dell'ordine.

 
leonerd:

Ipoteticamente il prezzo della richiesta potrebbe essere cambiato sul server e l'ordine potrebbe essere impostato con un prezzo diverso da quello dell'ordine.

Questo è possibile solo se viene inviato un ordine a mercato con Request.price = 0.

ZZY Su MT4 questo problema non ha mai dato fastidio a nessuno. Perché dovrebbe essere un problema su MT5?
 
fxsaber:

Questo è possibile solo se viene inviato un ordine a mercato con Request.price = 0.

ZS Su MT4 questo problema non ha mai preoccupato nessuno. Per quale motivo dovrebbe sorgere su MT5?

C'è ovviamente una sorta di errore logico qui. MqlTradeResult è il risultato di un'operazione di trading. Un ordine limite è un'operazione commerciale? Sì. Il volume e altri parametri vengono in questa struttura. Ma perché non il prezzo? Non è chiaro.

 
leonerd:

C'è ovviamente una sorta di errore logico qui. MqlTradeResult è il risultato di un'operazione di trading. Un ordine limite è un'operazione commerciale? Sì. Il volume e altri parametri vengono in questa struttura. Ma perché non il prezzo? Non è chiaro.

Un ordine in sospeso non è un'operazione di trading. È un ordine da eseguire al prezzo specificato nell'ordine. All'esecuzione dell'ordine si verificherà una negoziazione - una negoziazione che genererà una posizione o modificherà una posizione esistente, a seconda del tipo di conto (hedge, netting).

 
Artyom Trishkin:

Un ordine in sospeso non è un'operazione commerciale. È un ordine da eseguire al prezzo specificato nell'ordine. Una negoziazione avverrà al momento dell'esecuzione dell'ordine - una negoziazione che originerà o modificherà una posizione esistente a seconda del tipo di conto (hedge, netting).

Ok, mi sono espresso male. Citiamo la fonte originale:

Struttura del risultato della richiesta di compravendita (MqlTradeResult)

Inrisposta auna richiesta dinegoziazione per piazzare un ordine nel sistema di negoziazione, il server di negoziazione restituisce dati contenenti le informazioni sul risultato dell'elaborazione della richiesta di negoziazione come una speciale struttura predefinita MqlTradeResult.


p.s. Dov'è la citazione nell'editor? Devo andare in html? Che inopportuno.

 

p.s. где ж тут цитирование в редакторе? Мне в хтмл что ли лезть? Как неудобно-то.

trovato