Características del lenguaje mql5, sutilezas y técnicas - página 20

 
Andrey Dik:

También para la cobertura.

A lo largo de los años, mi cerebro se ha agudizado a la red. Orden->Transacción->Posición. Puede haber muchas operaciones en una posición(en una cobertura sólo hay una operación, corregidme si me equivoco), se puede saber qué pasó con la posición por el tipo de operación.

En una cobertura es, por supuesto, más fácil de entender, pero más difícil de seguir. Por supuesto que sí.

Uno mientras la posición exista en el mercado. Pero cuando se cierra hay una segunda orden y una segunda operación.

ps; probablemente me equivoque. Ver ps en el post de abajo.

 
Artyom Trishkin:
¿Y el arrastre de SL? ¿Cómo se determina lo que se cerró en la red de arrastre de SL en el lado positivo?

Ok, no había considerado eso. A continuación, vamos a comprobar el precio de la orden que abrió la posición y el precio de la orden que cerró la posición.

Aunque probablemente podamos dejar las órdenes en paz y operar sólo con tratos.

ps; No... Aquí hay algo que no funciona. Al fin y al cabo, cada cambio de Take o Stop tras la apertura de la posición es una nueva orden y una nueva operación. Al parecer, esto es lo que debemos trabajar...

No puedo comprobarlo, no tengo posiciones con stops. Sólo algunos con tomas.

 
Alexey Viktorov:

Cuando se encuentra la última operación DEAL_ENTRY_OUT y se selecciona todo el historial de la posición HistorySelectByPosition en esta lista hay, para las cuentas hadge 2 operaciones y 2 órdenes, abriendo una posición y cerrándola. La orden en base a la cual se produjo el cierre contiene ORDER_PRICE_OPEN. Luego se comprueba el tipo de posición y el tipo de orden que se utilizó para cerrarla. Si el tipo de orden es contrario, significa que fue un cierre. En consecuencia, el precio de la orden es el precio que debemos buscar, con una pequeña corrección: Si el beneficio de la orden es > 0, entonces este es el precio de TP, si es < 0, entonces la posición se ha cerrado en SL.

Si nos basamos en el comentario de la orden, yo no lo haría.

No es tan sencillo. La última orden de una posición puede ser tanto la que cerró la posición como la que la invirtió.

Con respecto a SL y TP - desde el comentario para determinar la forma más fácil y más fiable. Comparar los precios para el SL y el TP no siempre funcionará correctamente, porque el SL y el TP pueden estar tanto en la zona de beneficios como en la de pérdidas. Esto ya se ha discutido bastante en el foro, el Sr. Sergeev dio la solución adecuada para el comentario que he citado.

 
Andrey Dik:

No es tan sencillo. La última orden de una posición puede ser la que cerró la operación o la que la invirtió.

Y sobre SL y TP - de la cotización para determinar la forma más fácil y fiable. La comparación de los precios de SL y TP no siempre funcionará correctamente, porque tanto el SL como el TP pueden estar en la zona de pérdidas y ganancias.

No he dicho que sea fácil. De hecho, sólo en las cuentas netas el SL y el TP son iguales al SL y al TP. Y sólo en las cuentas de compensación. En las cuentas de cobertura, para invertir una posición, hay que cerrarla por la contraria con un volumen mayor. ¿No es así?

Este tema es interesante, pero no puedo comprobarlo por las razones mencionadas. No tengo posiciones con paradas y retiradas, especialmente las de arrastre.

 
Alexey Viktorov:

Una orden que invierte una posición no puede ser una toma o un stop.

TP y SL no son órdenes en el sistema de contabilidad MT, son propiedades de la posición. Así que no se puede trabajar con SL/TP en los pedidos/operaciones (incluso el motor del sitio sabio lo confirma con un enlace).

Alexey Viktorov:

En las cuentas de cobertura para invertir una posición debe cerrarla con una orden opuesta de mayor volumen. ¿No es así?

No, no lo es. En las cuentas de cobertura, una posición no puede invertirse, sólo puede cerrarse.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Andrey Dik:

TP y SL no son órdenes en el sistema contable de MT, son propiedades de la posición. Así que no se puede trabajar con SL/TP en los pedidos/transacciones (incluso el sabio motor del sitio lo confirma con un enlace).

No, no lo es. En las cuentas de cobertura, una posición no puede invertirse, sólo puede cerrarse.

Pero una vez que se cierra una posición, sus propiedades dejan de estar disponibles. Sólo tiene que buscar la información necesaria sobre órdenes y operaciones.
 

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

MQL5 ¿Cómo puedo saber si una operación se ha cerrado con un stop loss o no?

fxsaber, 2017.02.14 19:46

Entrada de la orden que fue el motivo del cierre de la posición, métela aquí
#define ORDER_TYPE_TAKEPROFIT (-1)
#define ORDER_TYPE_STOPLOSS   (-2)

int GetOrderType(const ulong OrderTicket)
{
  int OrderType=(int)::HistoryOrderGetInteger(OrderTicket,ORDER_TYPE);

  if((OrderType==ORDER_TYPE_BUY) || (OrderType==ORDER_TYPE_SELL))
    {
     const string OrderComment=HistoryOrderGetString(OrderTicket,ORDER_COMMENT);
     const string OrderPrice=::DoubleToString(::HistoryOrderGetDouble(OrderTicket,ORDER_PRICE_OPEN),
                                              (int)::SymbolInfoInteger(HistoryOrderGetString(OrderTicket,ORDER_SYMBOL),SYMBOL_DIGITS));

     if(OrderComment=="tp "+OrderPrice)
        OrderType=ORDER_TYPE_TAKEPROFIT;
     else if(OrderComment=="sl "+OrderPrice)
        OrderType=ORDER_TYPE_STOPLOSS;
    }

  return(OrderType);
}
 
Andrey Dik:
Dame un ejemplo, por favor.
¿Un ejemplo de qué? ¿Que las propiedades de la posición no están disponibles después de cerrarla?
 
Alexey Viktorov:
¿Un ejemplo de qué? ¿Que las propiedades de una posición no están disponibles después de cerrarla?
Un ejemplo de cómo se determina lo que cerró la posición SL o TP en órdenes y operaciones. He dado un ejemplo de cómo se determina esto a partir de su comentario.
 
Andrey Dik:
Ejemplo de cómo se determina la posición SL o TP cerrada en las órdenes y operaciones. He dado un ejemplo de cómo se determina esto a partir de su comentario.

No estoy haciendo nada. Incluso en mql4, me parece inútil buscar en el historial de pedidos. Todavía estoy tratando de analizar la dirección en la que puedo empezar a cavar cuando sea necesario. Como no hay posiciones con tráfico en ningún terminal, simplemente no puedo comprobarlas.

En consecuencia, después de cerrar la posición en mis cuentas, sólo hay 2 órdenes y 2 operaciones referidas a la posición. Con ellos podemos obtener alguna información sobre la posición. Por ejemplo, a qué precio se abrió la solicitud y a qué precio se abrió la orden. Por lo tanto, podemos determinar fácilmente el deslizamiento al que se abrió la posición.

Trato los comentarios con precaución desde MT4 porque las empresas de corretaje sobrescriben todos los comentarios según sus propias razones.

Razón de la queja: