Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 477

 
#include <Trade/Trade.mqh>

void DeletePendingOrders(const string sSymbol, const ulong nMagic)
{
   CTrade oTrade;

   for(int i = OrdersTotal() - 1; i >= 0; i--)
   {
      ulong nOrderTicket = OrderGetTicket(i);
      
      if(nOrderTicket > 0)
      {
         if(OrderGetString(ORDER_SYMBOL) == sSymbol && OrderGetInteger(ORDER_MAGIC) == nMagic)
         {
            // удаляем только отложенники
            ENUM_ORDER_TYPE eType = (ENUM_ORDER_TYPE)OrderGetInteger(ORDER_TYPE);
            
            if(eType == ORDER_TYPE_BUY_STOP  || eType == ORDER_TYPE_SELL_STOP ||
               eType == ORDER_TYPE_BUY_LIMIT || eType == ORDER_TYPE_SELL_LIMIT ||
               eType == ORDER_TYPE_BUY_STOP_LIMIT || eType == ORDER_TYPE_SELL_STOP_LIMIT)
            {
               oTrade.OrderDelete(nOrderTicket);
            }
         }
      }
   }
}

El script para MT4 no funcionará en Five, tiene funciones de negociación muy diferentes.

 
Sergei Vladimirov:

El script para MT4 no funcionará en Five, tiene funciones de negociación muy diferentes.

Gracias, estaba a punto de tratar con trade.mqh.
 
¿Podría decirme algo, por favor? ¿Cómo puedo averiguar de forma programada, no lógica, cómo se cerró una orden de mercado: por TP, SL o por mercado?
 
-Aleks-:
¿Podría decirme algo, por favor? ¿Cómo puedo saber de forma programada, no lógica, cómo se cerró una orden de mercado: por TP, SL o por mercado?
Compare el precio de cierre con el TP, SL. Si casi coinciden, la respuesta está ahí. Si no coinciden, la respuesta también está ahí
 
Victor Nikolaev:
Compare el precio de cierre con el TP, SL. Si casi coinciden, la respuesta está ahí. Si no coinciden, la respuesta también está ahí.

Eso es lo que he preguntado, ¿cómo no por comparación? En el terminal las órdenes están tintadas, significa que tienen una bandera sobre cómo fueron cerradas.

No me queda muy claro cómo arreglar el "casi" - el deslizamiento puede ser demasiado para comparar.

 
-Aleks-:

Eso es lo que he preguntado, ¿cómo no por comparación? En el terminal las órdenes están tintadas, por lo que tienen una bandera sobre cómo se cerraron.

No tengo muy claro cómo organizar el "casi": el deslizamiento puede ser demasiado para la comparación.

Con "casi" se decide individualmente en cada caso. En un mercado lento es una cosa, en un mercado rápido es otra
 
-Aleks-:
¿Podría decirme algo, por favor? ¿Cómo puedo saber de forma programada, no lógica, cómo se cerró una orden de mercado: por TP, SL o por mercado?
El comentario de la orden cerrada por stoploss se atribuye [sl], cerrada por takeprofit se atribuye [tp].
 
Artyom Trishkin:
En el comentario de un cerrado sobre stoploss, atribuido a [sl], cerrado sobre takeprofit, atribuido a [tp].
¿Estás despierto?
 
Victor Nikolaev:
¿Estás despierto?
Estaba escribiendo en mi teléfono móvil... en mi sueño... roncando... moqueando... ronroneando...
 
Victor Nikolaev:
Con "casi" se resuelve individualmente en cada caso a su manera. Esto es una cosa en un mercado lento y otra en uno rápido.

Sí, por eso estoy buscando una solución universal - si la información se necesita en la siguiente barra después de que la orden se ha cerrado, entonces no es tan difícil de evaluar la volatilidad, pero si es después de un día, entonces tengo que contar el número de barras que han pasado y la volatilidad que había.

Artyom Trishkin:
En el comentario de un cerrado por stoploss atribuimos [sl], de un cerrado por takeprofit atribuimos [tp].

Gracias - ¡intentaré leerlo ahora!

Y no hay tal comentario en el probador, ¿verdad?