Come controllare se un ordine è stato chiuso per stop loss - pagina 3

 
honest_knave:
E lo slippage?
<= per gli acquisti e >= per le vendite.
 
Jose Francisco Casado Fernandez:
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.
Controllerò questo problema, grazie e saluti.
 
Roberto Jacobs:

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 effettua un ordine per chiudere, allora si dovrebbe considerare quanto slittamento, in modo che nessun errore requotes.

Se ho capito bene, non è esatto. Su un mercato reale, un ordine può essere chiuso da SL (o TP) a un prezzo diverso da quello della posizione SL (o TP).
 
Roberto Jacobs:

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 requote.

Non sono sicuro di seguire.

HistoryOrderGetDouble(ticket,ORDER_SL) è lo stop loss

Quando lo SL viene attivato, si può ottenere lo slippage.

HistoryDealGetDouble(ticket, DEAL_PRICE) mostrerà il prezzo attuale, che può aver incontrato o meno uno slippage.

Se c'è stato slippage, un semplice confronto di ORDER_SL == DEAL_PRICE fallirà, no?

 
Jose Francisco Casado Fernandez:
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.

Un ordine di modifica di SL/TP non viene affatto salvato nella cronologia. Quindi non sono sicuro di cosa intendi qui?

E l'ordine che risulta effettivamente dallo SL/TP attivato non contiene lo SL/TP.

 
Jose Francisco Casado Fernandez:
<= per gli acquisti e >= per le vendite.
E lo slippage positivo?
 
honest_knave:

Non sono sicuro di seguire.

HistoryOrderGetDouble(ticket,ORDER_SL) è lo stop loss

Quando lo SL viene attivato, si può ottenere lo slippage.

HistoryDealGetDouble(ticket, DEAL_PRICE) mostrerà il prezzo attuale, che può aver incontrato o meno uno slippage.

Se c'è stato slippage, un semplice confronto di ORDER_SL == DEAL_PRICE fallirà, no?

Certamente.
 
Alain Verleyen:
Se ho capito bene, non è esatto. Su un mercato reale, un ordine può essere chiuso da SL (o TP) a un prezzo diverso da quello della posizione SL (o TP).
Sì Alain, e se Bid > close_price+spread o Ask < close_price-spread
 
Roberto Jacobs:
Sì Alain, e se Bid > close_price+spread o Ask < close_price-spread

spread != deviazione (slippage)

È un peccato che non sia possibile recuperare il parametro di deviazione.

Probabilmente un compromesso ragionevole è (presumendo che l'EA abbia piazzato l'ordine) controllare se DEAL_PRICE era all'interno di una finestra di ORDER_SL± deviazione

 
Roberto Jacobs:
Sì Alain, e se Bid > close_price+spread o Ask < close_price-spread
Scusa ma non capisco cosa intendi?