¿La etiqueta [tp] eliminada en algunos corredores?

 

Estoy usando los comentarios para saber si una orden ha sido cerrada por TakeProfit o StopLoss... Me he dado cuenta de que en MIG BANK(cuentas reales) han eliminado la etiqueta "[tp]" o "[sl]" en las órdenes... mis EAs funcionan en la cuenta demo pero no en la real porque han eliminado la etiqueta... Estoy considerando hacer una comparación entre el precio del TakeProfit y el precio de cierre, pero podría no ser preciso en caso de deslizamiento al cierre o lo que sea. ¿Alguna idea?

 
¿No es uno de esos corredores que necesitan modificar la orden después de ordersend() con ordermodify() para establecer TP y SL debido a las nuevas reglas?
 
NablaQuant:

Estoy usando los comentarios para saber si una orden ha sido cerrada por TakeProfit o StopLoss... Me he dado cuenta de que en MIG BANK (cuentas reales) han eliminado la etiqueta "[tp]" o "[sl]" en las órdenes... mis EAs funcionan en la cuenta demo pero no en la real porque han eliminado la etiqueta... Estoy considerando hacer una comparación entre el precio del TakeProfit y el precio de cierre, pero podría no ser preciso en caso de deslizamiento al cierre o lo que sea. ¿Alguna idea?


Los comentarios '[tp]', '[sl]' son específicos del corredor. Algunos los tienen, otros no.

Puede comprobar si el precio de cierre de la orden está por encima/por debajo del precio de apertura y el tipo de orden.

 
Matutin:
¿No es uno de esos corredores que necesitan modificar la orden después de ordersend() con ordermodify() para establecer TP y SL debido a las nuevas reglas?

Esto se debe al uso de BT bridge (broker semi 'ECN'), no a las nuevas reglas.

 
Matutin:
¿No es uno de esos brokers que necesitan modificar la orden después de ordersend() con ordermodify() para establecer TP y SL debido a las nuevas reglas?

No, MIG sí permite establecer SL y TP en el OrderSend().


CB

 
gordon:

Los comentarios '[tp]', '[sl]' son específicos del corredor. Algunos los tienen, otros no.

Puede comprobar si el precio de cierre de la orden está por encima/por debajo del precio de apertura y el tipo de orden.

Esto es lo mismo que la función OrderProfit, pero no es lo que necesito. Puedes cerrar una orden por TakeProfit en positivo o en negativo (si cambias el TakeProfit después).


Lo que necesito es saber que una orden ha sido cerrada por TakeProfit o StopLoss, y sin este comentario creo que no es posible.


Podría comparar el precio de cierre con el precio inicial del TakeProfit, pero podría ser impreciso debido al deslizamiento.


Gracias por sus respuestas.

 
NablaQuant:

Puedes cerrar una orden por TakeProfit en positivo o en negativo (si cambias el TakeProfit después).

Buen punto.


Podría comparar el precio de cierre con el precio inicial del TakeProfit, pero podría ser impreciso debido al deslizamiento?

Puedes comprobar si MathAbs(closeprice - tp) > MathAbs(closeprice - sl)

 
Es posible. Necesitaría construir una lógica para hacer lo siguiente: - Persistir la información relativa a las órdenes que el EA ha cerrado - Comprobar continuamente el conjunto del Historial de Órdenes para las órdenes que están "en el ámbito" pero que su EA no ha cerrado - Comprobar la señal de beneficios para determinar si un corredor invocó SL o TP Funciona para mí. CB
 
parece la única manera... ¡gracias!
 
NablaQuant:
parece la única manera... ¡gracias!

No sé si ayuda o no, pero, además de hacer lo que sugiere CB, también escribo los comentarios de mis órdenes con espacios para que el corredor no sobrescriba nada importante en ellos. No es a prueba de fallos, pero me gusta como protección extra en caso de que el archivo de datos externo se pierda de alguna manera.

 

Hmmm.... Tal vez me estoy perdiendo algo, pero ¿hay algún caso en el que lo siguiente no sea suficiente?


   // select the closed order first and then do this:
   
   double sl_diff = MathAbs(OrderClosePrice() - OrderTakeProfit()),
          tp_diff = MathAbs(OrderClosePrice() - OrderStopLoss());
   
   if ( sl_diff > tp_diff )
      Print("order closed at tp");
   else
      Print("order closed at sl");

   // I assume here that an equality of sl_diff and tp_diff is impossible...?