![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
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.