Errors, bugs, questions - page 2436

 
Slava:

You should always finish reading the frames in OnTesterDeinit. It's like our Lord's Prayer.

What for?

Then they complain about missing frames.

I have not lost anything.


An mqd-file is perfectly formed (without losses) even using such an Expert Advisor

input int Range = 1; // 1..10

double OnTester()
{
  uchar Data[];
  
  FrameAdd(NULL, 0, 0, Data);
  
  return(0);
}


After that I read it via the added tablature in one go.

 
fxsaber:

Why?

I don't lose anything.


The mqd-file is perfectly formed (without any losses), even by such an Expert Advisor


After that I read it via the added tabla in one go.

Frames are missing even in fast mathematical calculations if you don't read them after optimization.

The network is not perfect
Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Большую часть времени современные компьютеры простаивают и не используют всех возможностей процессора. Мы предлагаем задействовать их с пользой. Вы можете сдавать мощности вашего компьютера другим участникам нашей сети для выполнения разнообразных...
 
Slava:

Frames disappear even on fast maths computations if you don't finish reading them after the optimisation is complete.

The network is not perfect

Apparently my ideas about frames are wrong, since you seem to be talking nonsense.

Frames don't need to be read to be written. Tell me then how it actually works. I haven't worked with frames through the Cloud.

The way I see it, a frame is only available if you add it to an mqd file.

 
fxsaber:

Apparently my ideas about frames are wrong, since you seem to be talking nonsense.

You don't need to read the frames to write them down. Tell me then how it actually works. I haven't worked with frames through the Cloud.

The way I see it, a frame is only available if it is added to the mqd file.

That's correct. The frame is available provided it is added to the mqd file. It is from there that it is read out by the frame functions

 
Slava:

This is correct. A frame is available as long as it is added to the mqd file. It is from there that it is read out by the frame functions

Then, if I understand correctly, those who claim frame loss should check their presence in OnTesterDeinit.

I had no such problem. The library was written for access to the frames in the normal mode of the Expert Advisor in the Terminal.


I have not understood, what the last 16 bytes are responsible for.

struct FRAME
{
  ulong Pass;
  long ID;
  short String[64];
  double Value;
  int SizeOfArray;
  long Tmp[2];
 
Slava:

You should always finish reading the frames in OnTesterDeinit. This is like our fatherland.

Then people complain about missing frames.

This is the first time I've heard about this "Our Father's Prayer". Where does it say that? Shouldn't OnTesterDeinit be called after all the frames are received in the terminal? Or may it jump over other events (in particular OnTesterPass) that are in the event queue? If so, it should be mentioned in the documentation, because this is atypical behavior.

If you mean a forced stopping of testing by a user, then there is no sense to talk about frames disappearance at all.

 
Alexey Navoykov:

This is the first time I've heard of this "Our Father". Where does it say that? Shouldn't OnTesterDeinit be called after receiving all frames to the terminal? Or may it jump over other events (in particular OnTesterPass) in the event queue? If so, it should be mentioned in documentation, because it's atypical behavior.

If you mean a forced termination of testing by a user, there is no sense to talk about frames disappearing.

OnTesterPass can be easily called at the end of a pass, but at this point, frame data may not reach the pass due to imperfection of the network.

When people say that frames are lost, they often mean that OnTesterPass cannot catch everything.

You can always get everything at OnTesterDeinit, because Optimizer on Terminal side stops its work not when Agents have counted everything, but when it waits until all frames come.

 
fxsaber:

OnTesterPass can easily be called at the end of a pass, but the pass frame data may not reach it by this point because the network is not perfect.

So OnTesterPass is called without frames present? Well then this is an obvious error. This event means receiving a frame, not the end of a pass.

All frames should arrive at OnTesterPass before the OnTesterDeinit event is called. This is normal healthy logic. Unless, again, we're talking about a forced test interruption.

 
Alexey Navoykov:

So OnTesterPass is called without frames present? Well then this is an obvious error. This event means receiving a frame, not the end of a pass.

All frames should arrive at OnTesterPass before the OnTesterDeinit event is called. This is normal healthy logic. Unless, again, we're talking about a forced test interruption.

Apparently I was mistaken. Thought the TesterPass event was the arrival of pass data

Core 1  pass 0 returned result 100000.00 in 0:00:00.433
Core 1  pass 1 returned result 100000.00 in 0:00:00.001
Core 1  pass 2 returned result 100000.00 in 0:00:00.001
Core 1  pass 3 returned result 100000.00 in 0:00:00.001
 
Who would break into the opt format...
Reason: