Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1645

 
EVGENII SHELIPOV #:

Makar, ¿podrías explicar desde qué lugar del código se referirá la función?

Si hay más de un pedido

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
   {
//---
   if(CountTrade()>1) TrailingGroupOrder();
   }
 
MakarFX #:

Lo siento, escribí para 4...

¡Ha facturado 5! Está funcionando.

Gracias. Es muy extraño que mi versión no funcione. Me rompí el cerebro)))

 
Andrey Sokolov #:

Gracias. Es muy extraño que mi opción no haya funcionado.

No es raro...

no escribiste las rutas, aquí está tu código

   string src_path; 
   string dst_path; 
   StringConcatenate(src_path,"","//",name_file); 
   StringConcatenate(dst_path,name_folder,"//",name_file); 
   ResetLastError();
   if(FileMove(src_path,0,dst_path,0)){

¿y a qué equivalen "src_path" y "dst_path"?

 
MakarFX #:

Si hay más de un pedido

No Makar, no funciona

 
MakarFX #:

No es extraño...

no escribiste las rutas, aquí está tu código

¿y a qué equivalen "src_path" y "dst_path"?

están escritas en las siguientes dos líneas, lo tomé de la ayudahttps://www.mql5.com/ru/docs/files/filemove

Este no es el punto, este código funcionó en mt4, y moví la primera captura de pantalla en mt5.

 
EVGENII SHELIPOV #:

No Makar, no funciona

No puede ser... Dame todo el código en el mensaje privado.
 
MakarFX #:
De ninguna manera... Dame el código completo en tu bandeja de entrada.

Te he enviado

 
EVGENII SHELIPOV #:

Te he enviado

Respuesta
 
MakarFX #:
respondió

Makar gracias voy a seguir pensando

 
MakarFX #:
respondió

¡¡¡Buen día Makar !!!

Siguiendo tu consejo, he encontrado un lugar en la función void OnTick() donde puedo adjuntar la función TrailingGroupOrder() para enviar una orden que modifique un rastro de órdenes de grupo, y oh dios mío el rastro de órdenes de grupo ha empezado a funcionar. Sin embargo, mi alegría no duró mucho. Mirando más de cerca, he visto que sólo el pedido con un billete mínimo está trillado.

//+----------------------------------------------------------------------------+
//| Трейлинг стоп групповых ордеров                                            |
//+----------------------------------------------------------------------------+
void TrailingGroupOrder()
{
    for(int i = OrdersTotal()-1; i>=0; i--)
    {
     if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
       {
       if(OrderType() == OP_BUY && Bid - GetAveragePrice() > TrailingStopGroupOrder*Point)
        {
        if(Bid - GetAveragePrice() > TrailingStopGroupOrder*Point || OrderStopLoss() == 0)
         {
         if(OrderStopLoss() < Bid - (TrailingStep + TrailingStopGroupOrder )*Point || OrderStopLoss() == 0)
          {
          if(!OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(Bid - TrailingStopGroupOrder*Point, Digits), tp, 0))
                    Print("Ошибка модификации групповых ордеров на покупку!");
          }
         }
        }
        if(OrderType() == OP_SELL && GetAveragePrice() - Ask > TrailingStopGroupOrder*Point)
         {
         if(GetAveragePrice() - Ask > TrailingStopGroupOrder*Point || OrderStopLoss() == 0)
           {
            if(OrderStopLoss() > Ask + (TrailingStep + TrailingStopGroupOrder)*Point || OrderStopLoss() == 0)
              {
              if(!OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(Ask + TrailingStopGroupOrder*Point, Digits), tp, 0))
                    Print("Ошибка модификации групповых ордеров на продажу!");
              }
           }
         }
      } 
    }
}

Es muy probable que el problema esté en la modificación de sólo el primer (mínimo) pedido y no de todos a la vez.

Makar aconseja cómo hacer que todos los pedidos de la parrilla se modifiquen a la vez????