Errors, bugs, questions - page 320

 
stringo:
The code is fundamentally different.

Wow... I'm shocked...

Can you post any simple x32 and x64 code fragment for comparison? Just to satisfy your curiosity so to speak...

 
KffAlex:


Dear Sirs! This is the 3rd time I've encountered this problem. Creating an external library under Windows7 x64 leads to certain miracles:


Sorry for the delay. Answered you in private.

Please attach the source code. If possible, please make it through servicedesk. This will minimise the likelihood of such delays.

Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
AlexSTAL:

Wow... I'm shocked...

Can you lay out a simple code fragment for comparison of x32 and x64? To soothe your curiosity, so to speak...

I can't give you the code offhand - I don't have the characteristic at hand.

The differences are as follows.

  • The registers are 64-bit - 32-bit. Correspondingly, 64-bit arithmetic fits into one instruction (in 32 bits division of two 64-bit integers is done in 40 assembler instructions)
  • There are more 64-bit registers. Correspondingly, addressing of registers is different.
  • The calling convention is different. For example, in 64 bits the first 4 parameters of a function are passed in registers
 
We should add optimization time to MT5. It was in MT4 and would be the right fix here)
 
Renat:

Local agents hang in memory with their caches raised for another 5 minutes after the test is stopped, waiting for new tasks to be performed. If no one loads them in 5 minutes, they are automatically unloaded with all resources released.

This waiting mechanism allowed agents to increase response speed on repeated tasks at the expense of ready/raised infrastructures.

ps: this is about local agents. remote agents running as services are not unloaded, but also free up resources after some downtime.

Using the 404 build. I'm talking about problems on remote agents. Even after 10 hours of downtime, the memory is not being freed up.

A few more problems:

1. almost constantly when running a strategy test, the first pass on each processor ends quickly and returns zero results.

And if you stop and restart, these zeros are not recalculated. I am running the test on a large number of processors and 40-50 results with zeros and no opportunity to recalculate this data.

Sometimes one of the processors switches to failed and starts returning zero results a few times per second. But if I stop it these data will be recalculated again (orange field in the table).

3. When running remote agents on 16 processors, internet 1 megaplayer does not allow such a fast download history, and it is obvious because of the timeout all processors are failed. If you enable one processor at a time it usually works. Is it possible to use system with 16 processors to download the history to the first processor and then copy it to other processors? Or just increase timeout when loading history.

 
a483483:

Using the 404 build. I'm talking about problems on remote agents. Even after 10 hours of idle time, the memory is not being freed up.

A few more problems:

1. almost constantly when running strategy testing the first pass on each processor ends quickly and returns zero results.

And if you stop and restart, these zeros are not recalculated. I am running the test on a large number of processors and 40-50 results with zeros and no opportunity to recalculate this data.

Sometimes one of the processors switches to failed and starts returning zero results a few times per second. But if I stop it, this data will be recalculated again (orange field in the table).

3. When running remote agents on 16 processors, internet 1 megaplayer does not allow such a fast download history, and it is obvious because of the timeout all processors are failed. If you enable one processor at a time it usually works. Is it possible to use system with 16 processors to download the history to the first processor and then copy it to other processors? Or just increase timeout when loading history.


Need agent logs, settings, symbol, server.

You can EX5 expert, but better, of course, the source.

Preferably in servicedesk.

 
KffAlex:
This problem does not exist if the functions are moved to the body of the program, and on Windows XP this problem simply does not exist!!!
It seems to be a matter of bitness (64/32), in Windows XP you are working under 32 bit, so the error is not reproduced.
Please create a request to servicedesk with the problem EX5 file(s) attached.(your link to Service Desk)
 

Help, I can't figure out how to compare the two numbers, it's been 2 days

(date today) > (date yesterday)

          datetime bark[1];
          CopyTime(Symbol1,NULL,0,1,bark);
          if(bark[0]<=order)

order - (date yesterday)

Or it is not possible at all?

 

Wrote this:

       for (uint k=0; k<66; k++)
         {
          datetime order=(datetime)HistoryDealGetInteger(ticket,DEAL_TIME);
          datetime bark[1];
          CopyTime(Symbol1,NULL,k,1,bark);
          if(bark[0]<=order)
            {

the tester is getting stuck and that's it

 
alexluek:

Wrote this:

Something's looping in the tester and that's it.

Time in the future is longer than in the past, your piece of code is not illustrative, it's not clear what you're doing in the if block and what you want from it...

Here is, in my opinion, exhaustive information about comparing times :)

//+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                                                           mrProF |
//|                                                          http:// |
//+------------------------------------------------------------------+
#property copyright "mrProF"
#property link      "http://"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   datetime past=D'2010.12.1'; //Прошлое
   datetime future=D'2010.12.02'; //Будущее

   if(past<future)
     {
      Print(past," раньше чем: ",future);
     }

   datetime buffTime[1]; //Буфер для времени последнего бара
   CopyTime(_Symbol,_Period,0,1,buffTime); //Копируем время последнего бара

   if(buffTime[0]>past)
     {
      Print(past," раньше чем: ",buffTime[0]);
     }

  }
//+------------------------------------------------------------------+
Reason: