Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1645

 
EVGENII SHELIPOV #:

Makar, você pode explicar de qual lugar do código a função será referida?

Se houver mais de 1 pedido

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

Desculpe, eu escrevi para 4...

Checado em 5! Está funcionando.

Obrigado. Muito estranho que minha versão não tenha funcionado. Eu quebrei meu cérebro))))

 
Andrey Sokolov #:

Obrigado. É muito estranho que minha opção não tenha funcionado.

Não é esquisito...

você não escreveu os caminhos, aqui está seu 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)){

e o que são "src_path" e "dst_path"?

 
MakarFX #:

Se houver mais de 1 pedido

Não Makar, não funciona

 
MakarFX #:

Não é estranho...

você não escreveu os caminhos, aqui está seu código

e o que são iguais "src_path" e "dst_path"?

elas estão escritas nas duas linhas seguintes, tiradas da ajudahttps://www.mql5.com/ru/docs/files/filemove

Este não é o ponto, este código funcionou em mt4, e eu movi a primeira captura de tela em mt5.

 
EVGENII SHELIPOV #:

Não Makar, não funciona

Não pode ser... Dê-me todo o código da mensagem privada.
 
MakarFX #:
De jeito nenhum... Dê-me o código completo em sua caixa de entrada.

Eu lhe enviei

 
EVGENII SHELIPOV #:

Eu lhe enviei

Resposta
 
MakarFX #:
respondeu

Makar obrigado, vou continuar pensando

 
MakarFX #:
respondeu

Bom dia, Makar!!!

Seguindo seu conselho, encontrei um lugar na função OnTick() vazio onde posso anexar a função TrailingGroupOrder() para enviar um comando para modificar um rastro de ordens de grupo, e oh meu deus o rastro de ordens de grupo começou a funcionar. No entanto, minha alegria não durou muito tempo. Olhando mais de perto, vi que apenas o pedido com um bilhete de mina é triplicado.

//+----------------------------------------------------------------------------+
//| Трейлинг стоп групповых ордеров                                            |
//+----------------------------------------------------------------------------+
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("Ошибка модификации групповых ордеров на продажу!");
              }
           }
         }
      } 
    }
}

Posso muito provavelmente assumir que o problema está na modificação apenas da primeira ordem (mínima) e não em todas de uma só vez.

Makar aconselha como fazer todos os pedidos na rede serem modificados de uma só vez????