Errors, bugs, questions - page 2612

 
Vladimir Simakov:
Is it completely frozen, or does the EA get unloaded after some time? If it is the latter, then look for a loop.

More interesting. It doesn't hang in debug mode. But in full-featured mode, it sticks.

 
Hello colleagues, does anyone know why the MT4 terminal on android does not count some closed positions in profit, although they are displayed in the history?

Maybe it's a bug?
 
fxsaber:

More interesting. It doesn't hang in debug mode. But in full-featured mode, it's frozen.

I have localized the problem.

#include <WinAPI\WinAPI.mqh>

#define  GA_ROOT           0x00000002

void OnDeinit( const int )
{
  static const int ControlID[] = {0xE81E, 0x804E, 0x2712, 0x4196};
  
  long Handle = user32::GetAncestor(::ChartGetInteger(0, CHART_WINDOW_HANDLE), GA_ROOT);
                                                                                        
  for (int i = 0; i < sizeof(ControlID) / sizeof(int); i++)                             
    Handle = user32::GetDlgItem(Handle, ControlID[i]);

  ushort Str[6];
  user32::GetWindowTextW(Handle, Str, sizeof(Str) / sizeof(ushort)); // Freeze
}


You run this Expert Advisor on a chart and then dismount it by hand. The Terminal will hang.

Execution of this same code in any other On-function will not hang.

 
Suddenly there is a folder in the Tester folder for a third agent (port 3002), which has never existed before. I haven't changed anything, and I haven't started the manager. The folders of the other two (normal) agents also have fresh files from today. What can it be? Can I kill the extra one?
 
Stanislav Korotky:
Can I nail the extra one?

You could kill the entire Tester folder, leaving only the cache.

 

Can you tell me if this is a bug or not?

struct A { int i; };

struct B : public A { int j; };

void OnStart()
{
  B b;
  
  DebugBreak();
}

The i field is missing.

 

There is a constant problem with the terminal:

1- We switch on the drawing and timeframe panels. Place them in line with the main one.

2 - compress the terminal to half of the screen

3-open the terminal to the full screen and the drawing and timeframe bars appear as a "second line"! So, a large space of the screen is occupied by a useless void!

But the terminal should be able to remember their positions and restore them.

In addition, if you take the first of them, it will not take 2 at once, which you expect, but only one... So you only have to drag them one by one backwards!

And in general - they're so big, you have to halve / triple everything there!

And it would be better to make the frames for windows of charts slimmer too! Now they are so conventional - all made of bricks...

It's just ergonomics, it's a general impression and general convenience!

There are always problems with ergonomics in our country! It is constantly overlooked. Foreign products usually win in this sense. I am not talking about terminals of other manufacturers, I mean in general! You can take the car industry or electronics... Anything... It's been like this since the days of the USSR and the planned economy.

It would be nice to finally beat this thing!

 
Михаил:

And anyway - they're so big, they need to halve / triple everything there!

Don't you have to think about people who can't see a hundred percent? Can they be scrapped already? Wouldn't it be easier for you to wear glasses so the buttons don't seem so big?

 
Alexey Viktorov:

Don't people with less than 100 per cent vision need to be thought of? Can they be scrapped already? Wouldn't it be easier for you to wear glasses so the buttons don't seem so big?

You need an adjustment... I understand that there are different types of eyesight. The screen may be big or the laptop may be small... That's why you need an adjustment! And so that the terminal doesn't forget the position of elements...

People are gradually switching from monitors to TV sets instead of monitors... It's very convenient. On a TV, big controls are a waste of space. On a laptop, it's convenient to have bigger controls... You need options.

The platform is no longer small. So many complex and serious things have been done. And the design in many ways is old, hasn't changed in a long time...

 

Question on GetMicrosecondCount()

The GetMicrosecondCount() function returns the number of microseconds that have passed since the MQL5 program started working.

Do I correctly understand that this function freezes when requested to Close - Open - Modify Order - Position?


Checking method

Opening 20 positions

Modification of 20 positions

Measurement GetMicrosecondCount()

Close 20 positions

GetMicrosecondCount() measurement


As a result, all positions are closed at 70 000 microseconds intervals. All 20, but if we look visually in the terminal, we can see that some positions are waiting to be closed for 2-5 seconds!

Reason: