Erros, bugs, perguntas - página 2733

 
Geess:

Passar apenas a matriz de uchar em vez da matriz de cordas. É mais simples desta forma.
Por exemplo, pode convertê-lo desta forma:

Funciona da mesma forma para MQL4 e MQL5

precisa de devolver valores de dll para MQL, em qualquer caso, no lado do MQL precisa de preparar um buffer para receber dados

Em suma, é uma longa explicação, já fiz de tudo, só queria fazer algumas perguntas.

Obrigado

 
Bugs MT5 (construir 2402) problemas com prioridade de chamada de funções sobrecarregadas no namespace:
1) quando a função do namespace global está sobrecarregada;
2) quando a função do sistema está sobrecarregada.

void func(){
   printf("1");
}
      
namespace A{
   void func(){
      printf("2");
   }
   bool OrderSend(const MqlTradeRequest &trader_request, MqlTradeResult &trade_result){
      printf("2");
      return true;
   }
      
   class B{
      public:      
      void test(){
         func();                             // PRINT: 1   Expected result: 2
         
         MqlTradeRequest request;
         MqlTradeResult result;
         OrderSend(request, result);         // Compile Error: 'OrderSend' - override system function. Expected result: 2
      }
   };
};

void OnStart(){    
   A::B b;
   b.test();
}
 

Bom dia!

Pode por favor aconselhar-me, tenho um consultor especialista em atiradores furtivos, não funciona na nova construção em MT4 Alpari, há alguma forma de o consertar? Nem sequer está instalado na tabela. Funciona na construção 1090.

Já registei a minha cópia do MT4, mas não está ligado à Internet, continuo a receber "Versão antiga".

 
valera_nur:

Bom dia!

Pode por favor aconselhar-me, tenho um consultor especialista em atiradores furtivos, não funciona na nova construção em MT4 Alpari, há alguma forma de o consertar? Nem sequer está instalado na tabela. Funciona na construção 1090.

Mas o terminal MT4 não se pode ligar à Internet na construção 1090, diz "Versão antiga".

Se tiver o ficheiro fonte do Expert Advisor, candidate-se ao Freelance. Eles ajudá-lo-ão.

A melhor maneira, claro, é contactar directamente o autor do Consultor Especialista.

 

Escrevi uma dll para MQL5 que cria uma tabela gráfica numa janela em WinForms em .Net. Eu portei o código para as chamadas nativas para MQL4

mediu a velocidade para avaliar a velocidade de actualização de 5 colunas e 5 filas na tabela

  for(int j = 0; j < 3; j++)
   {
      uint start = GetTickCount();
      for(int i = 0; i < 100000; i++)
      {
         string s = (string)(i) + ";" + (string)(i + 1) + ";" + (string)(i + 2) + ";" + (string)(i + 3) + ";" +  (string)(i + 4) + "\n" +
                    (string)(i) + ";" +  (string)(i + 1) + ";" + (string)(i + 2) + ";" + (string)(i + 3) + ";" + (string)(i + 4) + "\n" +
                    (string)(i) + ";" +  (string)(i + 1) + ";" + (string)(i + 2) + ";" + (string)(i + 3) + ";" + (string)(i + 4) + "\n" +
                    (string)(i) + ";" +  (string)(i + 1) + ";" + (string)(i + 2) + ";" + (string)(i + 3) + ";" + (string)(i + 4) + "\n" +
                    (string)(i) + ";" +  (string)(i + 1) + ";" + (string)(i + 2) + ";" + (string)(i + 3) + ";" + (string)(i + 4) + "\n";
         TBL_FillAllTable(htbl, s);
      }
      uint time = GetTickCount() - start;
      PrintFormat("Цикл  %d время = %d ms", j, time);
   }

.....
void TBL_FillAllTable(int handle, string data, string  ColSeparator = ";", string RowSeparator = "\n")
{
#ifdef __MQL4__   refreshalldata(handle,data,ColSeparator,RowSeparator); #endif
#ifdef __MQL5__   SHARPTABLE::refreshalldata(handle, data,ColSeparator, RowSeparator); #endif
}
//+------------------------------------------------------------------+

MQL5:

2020.05.05 22:55:33.220 tbl_tst (EURUSD,H1) Tempo do ciclo 0 = 143563 ms

2020.05.05 22:57:55.370 tbl_tst (EURUSD,H1) Tempo do ciclo 1 = 142156 ms

2020.05.05 23:00:19.121 tbl_tst (EURUSD,H1) Tempo do ciclo 2 = 143750 ms

MQL4:

2020.05.05 22:51:25.359 tbl_tst EURUSD,H1: Tempo do ciclo 2 = 66813 ms

2020.05.05 22:50:18.551 tbl_tst EURUSD,H1: Período de tempo 1 = 69219 ms

2020.05.05 22:49:09.332 tbl_tst EURUSD,H1: Öècle 0 time = 67062 ms


o código dll é 99% idêntico, eu portei-o sob MQL4 usando exemplos do artigohttps://www.mql5.com/ru/articles/249


A mim parece-me uma grande diferença.

Arquivos anexados:
tst_winforms.jpg  239 kb
 
Anexe o seu código de biblioteca + código MQL completo para que possa verificar e reproduzir a 100%.
 
Renat Fatkhullin:
Anexe o seu código de biblioteca + código MQL completo, para que possa verificar e reproduzir a 100%.

aqui está o guião do teste

Posso, em princípio, enviar projectos e VS para a PM

 

o teste acima referido prosseguiu:

2020.05.05 23:46:03.512 Terminal MetaTrader 5 x64 build 2402 started for MetaQuotes Software Corp.

2020.05.05 23:46:03.515 Terminal Windows 10 build 18363, Intel Core i3 M 380 @ 2.53GHz, 0 / 2 Gb memória, 149 / 237 Gb disco, IE 11, UAC, GMT+4

Ainda tenho o terminal não actualizado no meu portátil:

2020.05.05 23:37:15.336 Terminal MetaTrader 5 - FXOpen x64 build 2280 iniciado (FXOpen Investments Inc.)

2020.05.05 23:37:15.338 Terminal Windows 10 (build 18363) x64, IE 11, UAC, Intel Core i3 M 380 @ 2.53GHz, Memória: 1071 / 2804 Mb, Disco: 149 / 237 Gb, GMT+4

correram em código de construção antigo que eu anexei, tiveram melhor tempo de teste:

2020.05.05 23:40:09.553 tbl_tst (EURUSD,H1) Tempo do ciclo 0 = 68938 ms

2020.05.05 23:41:17.911 tbl_tst (EURUSD,H1) Tempo do ciclo 1 = 68343 ms

2020.05.05 23:42:26.912 tbl_tst (EURUSD,H1) Tempo do ciclo 2 = 69000 ms

 
Igor Makanu:

o teste acima foi realizado:

Ainda tenho um terminal não actualizado no meu portátil:

corri o código que anexei na construção antiga, consegui um melhor tempo de teste:

2020.05.05 23:40:09.553 tbl_tst (EURUSD,H1) Tempo do ciclo 0 = 68938 ms

2020.05.05 23:41:17.911 tbl_tst (EURUSD,H1) Tempo do ciclo 1 = 68343 ms

2020.05.05 23:42:26.912 tbl_tst (EURUSD,H1) Tempo do ciclo 2 = 69000 ms

Tenho a mesma velocidade no meu 2404 como no MT4.

 
Geess:

Tenho a mesma velocidade em 2404 como em MT4.

tenho uma suspeita furtiva de que o MT5 se tornou mais exigente para os recursos do PC, vou verificá-lo no meu PC amanhã, o meu portátil está fraco (((

Sim, aqui está outra coisa, confusa pela linha de configuração do PC na nova construção - acima do meu post, por alguma razão a nova construção escreveu sobre a memória do portátil:

Memória 0 / 2 Gb

as condições de arranque foram as mesmas, apenas ME e um terminal em funcionamento

ZS: mas taxa de actualização no WinForm menos de 1 ms .... inesperadamente ;)