Cómo comprobar si una orden ha sido cerrada por stop loss - página 3

 
honest_knave:
¿Qué pasa con el deslizamiento?
<= para las compras y >= para las ventas.
 
Jose Francisco Casado Fernandez:
Sí, es lo que yo decía. Lo hice así, y funcionó, pero si modificas el Stop Loss inicial, genera una nueva orden SIN el mismo POSITION_ID. No sé por qué. Creo que es un error. Saludos,.
Revisaré este tema, Gracias y saludos.
 
Roberto Jacobs:

No es necesario mirar el desl izamiento, porque la orden ha sido cerrada, y el precio de cierre está en HystoryDealGetDouble(ticket, DEAL_PRICE).
Si la orden no ha estado en el cierre, y usted hace una orden de cierre, entonces usted debe considerar la cantidad de deslizamiento, de modo que no requotes error .

Si te entiendo bien, eso no es exacto. En un mercado real, una orden puede ser cerrada por SL (o TP) a un precio diferente que el SL (o TP) de la posición.
 
Roberto Jacobs:

No es necesario mirar el deslizamiento, porque la orden ha estado en cierre, y el precio de cierre está en HystoryDealGetDouble(ticket, DEAL_PRICE).
Si la orden no ha estado en cierre, y usted hace una orden de cierre, entonces usted debe considerar la cantidad de deslizamiento, de modo que no requotes error .

No estoy seguro de seguir.

HistoryOrderGetDouble(ticket,ORDER_SL) es el stop loss

Cuando el SL se activa, puede obtener el deslizamiento.

HistoryDealGetDouble(ticket, DEAL_PRICE) mostrará el precio actual, que puede o no haber encontrado deslizamiento.

Si hubo deslizamiento, una simple comparación de ORDER_SL == DEAL_PRICE fallará, ¿no?

 
Jose Francisco Casado Fernandez:
Sí, es lo que decía. Lo hice así, y funcionó, pero si modificas el Stop Loss inicial, genera una nueva orden SIN el mismo POSITION_ID. No sé por qué. Creo que es un error. Saludos,.

Una orden de modificación de SL/TP no se guarda en el historial en absoluto. Así que no estoy seguro de lo que quiere decir aquí.

Y la orden que realmente resulta de la activación del SL/TP no contiene el SL/TP.

 
Jose Francisco Casado Fernandez:
<= para las compras y >= para las ventas.
¿Qué pasa con el deslizamiento positivo?
 
honest_knave:

No estoy seguro de seguir.

HistoryOrderGetDouble(ticket,ORDER_SL) es el stop loss

Cuando el SL se activa, puede obtener el deslizamiento.

HistoryDealGetDouble(ticket, DEAL_PRICE) mostrará el precio actual, que puede o no haber encontrado deslizamiento.

Si hubo deslizamiento, una simple comparación de ORDER_SL == DEAL_PRICE fallará, ¿no?

Por supuesto.
 
Alain Verleyen:
Si te entiendo bien, eso no es exacto. En un mercado real, una orden puede cerrarse por SL (o TP) a un precio diferente al de la posición SL (o TP).
Sí Alain, lo que si Bid > close_price+spread o Ask < close_price-spread
 
Roberto Jacobs:
Sí Alain, ¿qué pasa si Bid > close_price+spread o Ask < close_price-spread

spread != desviación (deslizamiento)

Es una pena que no sea posible recuperar el parámetro de desviación.

Probablemente un compromiso razonable es (suponiendo que el EA colocó la orden) comprobar si DEAL_PRICE estaba dentro de una ventana de ORDER_SL± desviación

 
Roberto Jacobs:
Sí Alain, ¿qué pasa si Bid > close_price+spread o Ask < close_price-spread
Lo siento pero no entiendo lo que quieres decir ?