MetaTrader 4 Build 529 beta lançado com novo compilador - página 126

 
Wahoo:


O significado físico é verificar se o símbolo cujo nome é digitado como uma string nos parâmetros de entrada da EA está disponível para comercialização. Código idêntico em MT5 funciona.

O código que eu lhe dei é apenas um exemplo. É um pouco diferente, mas o significado não muda.

P.S. E o erro 138 no testador?

Código:

Resultado:

Verificar:

if (OrderSend(SYMBOL,OP_BUY,0.1,NormalizeDouble(ask,digits),1000,0,0,"Test",0,0,CLR_NONE)<0) {
   Print("ask = "+DoubleToStr(ask,Digits)+", bid = "+DoubleToStr(bid,Digits)+", digits = "+digits);
   }
O que está impedindo você de olhar para a causa?
 
Renat:
Isso significa que os resultados dos passes foram inúteis e descartados.


Obrigado pela tradução. Eu estava lutando com a tradução, não conseguia entendê-la...

Mas a velha construção leva cerca de 3 horas para ser otimizada e encontra cerca de 2000 parâmetros EA lucrativos. A nova construção otimiza normalmente por meio minuto ou até menos no início, encontra parâmetros lucrativos e depois quebra abruptamente e termina a otimização.

Repito, escrevi sobre este estranho comportamento de otimização há cerca de um mês. Parece ter sido corrigido. Agora eu tenho o mesmo problema.

 
artmedia70:

Verificar:

O que está impedindo você de ver a causa?


Não há nada no caminho.

void OnTick()
  {
   if(OrdersTotal()==0)
     {
      string SYMBOL=Symbol();
      int digits=(int)SymbolInfoInteger(SYMBOL,SYMBOL_DIGITS);
      MqlTick lasttick={0};
      if(!SymbolInfoTick(SYMBOL,lasttick))
         return;
      double ask=lasttick.ask;
      double bid=lasttick.bid;

      if(OrderSend(SYMBOL,OP_BUY,0.1,NormalizeDouble(ask,digits),1000,0,0,"Test",0,0,CLR_NONE)<0) 
        {
         Print("ask = "+DoubleToStr(ask,Digits)+", bid = "+DoubleToStr(bid,Digits)+", digits = "+(string)digits);
        }
     }
  }

 
Pergunta para Metacquotes: Por que mudar o tipo iVolume de duplo para ulong?? Por que foi necessário mudar o tipo de apenas um indicador técnico??? Por que não poderia ser deixado como estava?
 
Wahoo:


Não há nada no caminho.


De qualquer forma, aqui vai. SymbolInfoTick parece estar ainda um pouco torto (parece copiar o último preço REAL, não da história):

void OnTick()
  {
   if(OrdersTotal()==0)
     {
      string SYMBOL=Symbol();
      int digits=(int)SymbolInfoInteger(SYMBOL,SYMBOL_DIGITS);
      MqlTick lasttick={0};
      if(!SymbolInfoTick(SYMBOL,lasttick))
         return;
      double ask=lasttick.ask;
      double bid=lasttick.bid;

      if(OrderSend(SYMBOL,OP_BUY,0.1,NormalizeDouble(ask,digits),1000,0,0,"Test",0,0,CLR_NONE)<0)
        {
         Print(SYMBOL+" ask = "+DoubleToStr(ask,Digits)+", bid = "+DoubleToStr(bid,Digits)+", digits = "+(string)digits);
         if(OrderSend(Symbol(),OP_BUY,0.1,NormalizeDouble(Ask,Digits),100,0,0,"Test",0,0,CLR_NONE)>0)
            Print("Opened using Ask ="+DoubleToStr(Ask,Digits));
        }

      //=== Final Check
      SymbolInfoTick(SYMBOL,lasttick);
      Print("Ask: "+(string)Ask+"  lastick.ask: "+(string)lasttick.ask);

     }
  }

Resultado:

 
O volume teve que ser alterado para que fosse compatível com o MT5. As barras internas em MT4 são agora as mesmas que em 5.
 
Renat:
Tive que mudar o Volume por uma questão de compatibilidade com o MT5. Agora as barras internas em MT4 são as mesmas que em 5.

Esta não pode ser a razão da forte discrepância entre os resultados dos testes em sua conta demo e, por exemplo, na Alpari, onde meu cliente está testando.

Anteriormente, mesmo com diferenças nas citações, não havia um desempenho tão completamente diferente de uma EA em contas diferentes. Agora no modo visual podemos ver que em um teste a posição é claramente positiva ou negativa, mas em outro teste a situação é bem o oposto.

 
Você tem que olhar em detalhes as discrepâncias com todos os troncos. Você não pode tirar conclusões a partir de uma visão geral, o que significa que você precisa de detalhes.
 
Renat:
Você tem que olhar em detalhes as discrepâncias com todos os troncos. Você não pode tirar conclusões a partir de uma visão geral. Você precisa de detalhes.
Entendo. Mais tarde detalharei. Neste momento, o principal na agenda é acertar o algoritmo.
 
MT 560, ME 881. Novamente sobre o renascimento de bugs antigos, já aparentemente fechados por você ao fazer atualizações, descritos no ServiceDesk.
Razão: