Errors, bugs, questions - page 2733

 
Geess:

Pass only uchar array instead of string array. It is simpler this way.
For example, you can convert it this way:

It works in the same way for MQL4 and MQL5

you need to return values from dll to MQL, in any case, on the MQL side you need to prepare a buffer to receive data

All in all, it's a long explanation, I've already done it, I just wanted to ask a few questions.

Thank you

 
Bugs MT5 (build 2402) problems with priority of call of overloaded functions in namespace:
1) when function from global namespace is overloaded;
2) when system function is overloaded.

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();
}
 

Good day!

Can you please advise me, I have a Sniper Expert Advisor, it does not work in the new build in MT4 Alpari, is there any way to fix it? It is not even installed on the chart. It works on the 1090 build.

I have already registered my copy of MT4, but it is not connected to the Internet, it says "Old version".

 
valera_nur:

Good day!

Can you please advise me, I have a Sniper Expert Advisor, it does not work in the new build in MT4 Alpari, is there any way to fix it? It is not even installed on the chart. It works on the 1090 build.

But MT4 terminal cannot connect to the Internet on the 1090 build, it says "Old version".

If you have the Expert Advisor source file, apply to Freelance. They will help you.

The best way, of course, is to contact directly the author of the Expert Advisor.

 

I wrote a dll for MQL5 that creates a graphical table in a window in WinForms on .Net. I ported the code to the native calls for MQL4

measured the speed to assess the update rate of 5 columns and 5 rows in the table

  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) Cycle 0 time = 143563 ms

2020.05.05 22:57:55.370 tbl_tst (EURUSD,H1) Cycle 1 time = 142156 ms

2020.05.05 23:00:19.121 tbl_tst (EURUSD,H1) Cycle 2 time = 143750 ms

MQL4:

2020.05.05 22:51:25.359 tbl_tst EURUSD,H1: Cycle 2 time = 66813 ms

2020.05.05 22:50:18.551 tbl_tst EURUSD,H1: Time Frame 1 = 69219 ms

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


the dll code is 99% identical, I have ported it under MQL4 using examples from the articlehttps://www.mql5.com/ru/articles/249


Looks like a big difference to me.

Files:
tst_winforms.jpg  239 kb
 
Attach your library code + full MQL code so you can check and 100% reproduce.
 
Renat Fatkhullin:
Attach your library code + full MQL code, so you can check and 100% reproduce.

here's the test script

I can, in principle, send projects and VS to the PM

 

the test above ran on:

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 memory, 149 / 237 Gb disk, IE 11, UAC, GMT+4

I still have the terminal not updated on my laptop:

2020.05.05 23:37:15.336 Terminal MetaTrader 5 - FXOpen x64 build 2280 started (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, Memory: 1071 / 2804 Mb, Disk: 149 / 237 Gb, GMT+4

ran on old build code that I attached, got better test time:

2020.05.05 23:40:09.553 tbl_tst (EURUSD,H1) Cycle 0 time = 68938 ms

2020.05.05 23:41:17.911 tbl_tst (EURUSD,H1) Cycle 1 time = 68343 ms

2020.05.05 23:42:26.912 tbl_tst (EURUSD,H1) Cycle 2 time = 69000 ms

 
Igor Makanu:

the test above was run on:

I still have an unupdated terminal on my laptop:

ran the code I attached on the old build, got a better test time:

2020.05.05 23:40:09.553 tbl_tst (EURUSD,H1) Cycle 0 time = 68938 ms

2020.05.05 23:41:17.911 tbl_tst (EURUSD,H1) Cycle 1 time = 68343 ms

2020.05.05 23:42:26.912 tbl_tst (EURUSD,H1) Cycle 2 time = 69000 ms

I have the same speed on my 2404 as in MT4.

 
Geess:

I have the same speed on 2404 as on MT4.

i have a sneaking suspicion that MT5 has become more demanding to the PC resources, i will check it on my PC tomorrow, my laptop is weak (((

Yeah, here's another thing, confused by the PC configuration line in the new build - above my post, for some reason the new build wrote about laptop memory:

0 / 2 Gb memory

startup conditions were the same, only ME and one terminal running

ZS: but refresh rate on WinForm less than 1 ms .... unexpectedly ;)