Il problema principale in mql5 (conto di copertura) è conoscere il prezzo di Stop Loss, quando una posizione viene chiusa, a causa della mancanza dello storico delle posizioni. Puoi usare HistorySelectByPosition() per trovare il tuo Stop Loss iniziale (Stop Loss dell'ordine iniziale), ma se hai modificato quello Stop Loss successivamente, genera nuovi ordini per farlo, senza lo stesso POSITION_ID, e quindi, non saranno selezionati dalla funzione HistorySelectByPosition(), quindi diventa molto difficile conoscere l'ultimo Stop Loss che hai piazzato.
Non so se può essere considerato un bug, ma se non lo è, dovrebbe esserlo.
Il problema principale in mql5 (conto di copertura) è quello di conoscere il prezzo di Stop Loss, quando una posizione viene chiusa, a causa della mancanza dello storico delle posizioni. Puoi usare HistorySelectByPosition() per trovare il tuo Stop Loss iniziale (Stop Loss dell'ordine iniziale)...
No, non puoi o ti ho frainteso.
Lo Stoploss attuale non è da nessuna parte nella storia.
Puoi usare HistorySelectByPosition(), con il tuo POSITION_ID, e poi puoi trovare il primo ordine con quel POSITION_ID, e controllare lo Stop Loss di questo ordine (HistoryOrderGetDouble(ticket, ORDER_SL). Per me ha funzionato, ma .il problema è quando si modifica lo Stop Loss in seguito.
Jose Francisco Casado Fernandez: Puoi usare HistorySelectByPosition(), con il tuo POSITION_ID, e poi puoi trovare il primo ordine con quel POSITION_ID, e controllare lo Stop Loss di questo ordine (HistoryOrderGetDouble(ticket, ORDER_SL). Per me ha funzionato, ma .il problema è quando si modifica lo Stop Loss in seguito.
Jose Francisco Casado Fernandez: Puoi usare HistorySelectByPosition(), con il tuo POSITION_ID, e poi puoi trovare il primo ordine con quel POSITION_ID, e controllare lo Stop Loss di questo ordine (HistoryOrderGetDouble(ticket, ORDER_SL). Per me ha funzionato, ma .il problema è quando si modifica quello Stop Loss in seguito.
E poi,controllareORDER_POSITION_IDuguale aDEAL_POSITION_ID, poi controllareDEAL_ENTRY,seOUT,ottenereHystoryDealGetDouble(ticket,DEAL_PRICE).
SeDEAL_PRICEè uguale aHistoryOrderGetDouble(ticket,ORDER_SL),allorasignifica chel'ordineè statochiusoa causa dellostop loss.
Ok, e sai perché se si modifica lo Stop Loss in seguito, il nuovo ordine generato per farlo non mostra lo stesso POSITION_ID? Sarebbe la soluzione perfetta per questo problema. È un bug? Grazie.
Roberto Jacobs: E poi,controllareORDER_POSITION_IDuguale aDEAL_POSITION_ID, poi controllareDEAL_ENTRY,seOUT,ottenereHystoryDealGetDouble(ticket,DEAL_PRICE).
SeDEAL_PRICEè uguale aHistoryOrderGetDouble(ticket,ORDER_SL),allorasignifica chel'ordineè statochiusoa causa dellostop loss.
Ecco la mia opnione.
Sì, è quello che dicevo. Ho fatto così e ha funzionato, ma se si modifica lo Stop Loss iniziale, genera un nuovo ordine SENZA lo stesso POSITION_ID. Non so perché. Penso che sia un bug. Saluti.
Non c'è bisogno di guardare lo slippage,perché l'ordine è statochiuso,eilprezzo di chiusuraè suHystoryDealGetDouble(ticket,DEAL_PRICE). Se l'ordine non è statoinchiusura,esifa un ordineperchiudere,allora si dovrebbe considerarequantoslittamento,in modo che nessunerrorerequotes.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Potresti rispondere solo se sai di cosa stai parlando?
Questo è un topic su MT5/mql5, rimuoverò tutti i post irrilevanti.
Non c'è nessun prezzo stoploss nella storia su MT5.
Il problema principale in mql5 (conto di copertura) è conoscere il prezzo di Stop Loss, quando una posizione viene chiusa, a causa della mancanza dello storico delle posizioni. Puoi usare HistorySelectByPosition() per trovare il tuo Stop Loss iniziale (Stop Loss dell'ordine iniziale), ma se hai modificato quello Stop Loss successivamente, genera nuovi ordini per farlo, senza lo stesso POSITION_ID, e quindi, non saranno selezionati dalla funzione HistorySelectByPosition(), quindi diventa molto difficile conoscere l'ultimo Stop Loss che hai piazzato.
Non so se può essere considerato un bug, ma se non lo è, dovrebbe esserlo.
Saluti.
Il problema principale in mql5 (conto di copertura) è quello di conoscere il prezzo di Stop Loss, quando una posizione viene chiusa, a causa della mancanza dello storico delle posizioni. Puoi usare HistorySelectByPosition() per trovare il tuo Stop Loss iniziale (Stop Loss dell'ordine iniziale)...
No, non puoi o ti ho frainteso.
Lo Stoploss attuale non è da nessuna parte nella storia.
No, non puoi o ti ho frainteso.
Lo stoploss non è da nessuna parte nella storia.
.il problema è quando si modifica lo Stop Loss in seguito.
Puoi usare HistorySelectByPosition(), con il tuo POSITION_ID, e poi puoi trovare il primo ordine con quel POSITION_ID, e controllare lo Stop Loss di questo ordine (HistoryOrderGetDouble(ticket, ORDER_SL). Per me ha funzionato, ma
.il problema è quando si modifica lo Stop Loss in seguito.
Ok, ora ho capito, hai ragione.
Puoi usare HistorySelectByPosition(), con il tuo POSITION_ID, e poi puoi trovare il primo ordine con quel POSITION_ID, e controllare lo Stop Loss di questo ordine (HistoryOrderGetDouble(ticket, ORDER_SL). Per me ha funzionato, ma
.il problema è quando si modifica quello Stop Loss in seguito.
poi controllare DEAL_ENTRY, se OUT, ottenere HystoryDealGetDouble(ticket,DEAL_PRICE).
Se DEAL_PRICE è uguale a HistoryOrderGetDouble(ticket,ORDER_SL), allora significa che l'ordine è stato chiuso a causa dello stop loss.
Ecco la mia opinione.
Ok capito ora, hai ragione.
Se DEAL_PRICE è uguale a HistoryOrderGetDouble(ticket,ORDER_SL), allora significa che l'ordine è stato chiuso a causa dello stop loss.
E poi, controllare ORDER_POSITION_ID uguale a DEAL_POSITION_ID,
poi controllare DEAL_ENTRY, se OUT, ottenere HystoryDealGetDouble(ticket,DEAL_PRICE).
Se DEAL_PRICE è uguale a HistoryOrderGetDouble(ticket,ORDER_SL), allora significa che l'ordine è stato chiuso a causa dello stop loss.
Ecco la mia opnione.
E lo slippage?
Non c'è bisogno di guardare lo slippage, perché l'ordine è stato chiuso, e il prezzo di chiusura è su HystoryDealGetDouble(ticket, DEAL_PRICE).
Se l' ordine non è stato in chiusura, e si fa un ordine per chiudere, allora si dovrebbe considerare quanto slittamento, in modo che nessun errore requotes.