Wishes for MQL5 - page 27

 
SK. писал (а):
The era of collective solutions is over and has failed. There are always a very small number of people at the forefront, inspired by their own ideas. They are the ones who determine our conditions of existence.

There's a smiley face with his hat off /:-)

Having tracked the history of mankind I cannot recall any collective decision at all. Here you are right. That's why I wrote that if a developer is REALLY interested in...... That would be a kind of indication of his interest and not another sweet pill to maintain self-esteem of users.

 

A question about the current version, and at the same time a wish for the future version.
In the tester, when testing an EA using "indicators from indicators",
there is not enough model time to ask these indicators.
For example:
Indicators #1 and #1.1 receive data from iMA()
Indicator 2 is based on the data of indicators 1 and 1.1.
Indicator 3 performs quadratic calculations based on the data of indicator 2
The Expert Advisor polls indicator 3,
but
During testing, the Expert Advisor receives no data (although it works perfectly in the trading mode).
It looks like this: during the test the Expert Advisor may give one or two trades correctly and then remains silent
because of the indicator comes out machine zero = 2147483647.
-is some stack overflowed?
-when GetLastError()==0
-It doesn't depend on the speed of bar visualization and modelling.
- If we move the indicators to the Expert Advisor, testing becomes possible up to some time limit for calculations in the Expert Advisor.

1. Are there any settings available in the Strategy Tester to add time for polling the indicators?
2. will the GetLastError() detect the error "indicator did not get it"/"Expert Advisor did not get it"). ?
I.e. now this error can be detected only for indicators that draw DRAW_LINE by return 2147483647

 
Korey:

The advisor polls indicator 3,
but
When testing, the Expert Advisor receives no data, (although it works fine in trade mode).
It looks like this, in run EA may give one or two trades correctly, after that it is silent
because of the indicator comes machine zero = 2147483647.
-is some stack overflowed?
-when GetLastError()==0

...


You have a clear problem in the indicator. When you get the correct version of the indicator, all questions about the synchronicity of calculations will disappear. Because of the bug in the indicator, you think that something is not calculated in time, that there is some "waiting list for the indicator calculation". This is not the case!
 
Rosh:
Korey:

The advisor polls indicator 3,
but
When testing, the Expert Advisor receives no data, (although it works fine in trade mode).
It looks like this, in run EA may give one or two trades correctly, after that it is silent
because of the indicator comes machine zero = 2147483647.
-is some stack overflowed?
-when GetLastError()==0

...


You obviously have a problem with the indicator. When you get the correct version of the indicator, all questions about the synchronicity of calculations will disappear. Because of the bug in the indicator, you think that something is not calculated in time, that there is some "waiting list for the indicator calculation". This is not the case!


I did find my usual dislocation in response to your comment.
The calculated number of bars in the indicator was limited to max=1000 (I'm used to saving resources)
Increasing max to 3000 made it work.
I.e. the bug is that the calculated number of bars was only 1000.
Thank you, a HUGE THANK YOU, because I've been doing without quality testing for over a year!!!

However, there is no way I can explain logically why it can't be done this way. -B does the index buffers work differently in the tester?
Why, if I need 0,1,2 bars in my EA, should I count more than 1000 indicator bars?

 
In the tester everything works the same way as online, this was deliberately designed. The tester in MetaTrader 4: A must know
 

It is desirable to allow programmers to test programs without being connected to a network.

 
Rosh:
In the tester everything works the same way as online, this was deliberately designed. Tester in MetaTrader 4: This is a must know

Violations in the indicator logic relate to one thing only - "wrongly" set calculation depth <1024.
Therefore:
1. You don't know beforehand and it's not clear, that at calculation of indicator on a number much less than BARS
the indicator line can disappear, both in trading and in the Tester,
Therefore, it is worth to make additions in the documentation, for example,
"When calculating the number of bars of the indicator for less than .... (1024?) stable operation is not guaranteed".
...I added an indicator inside the forum with limit of 1000 bars and suddenly I found out,
that when called for the first time, it sometimes refuses to draw a line. When I remove the depth limitation, everything is normal.

2. If it is possible and obvious to return the machine zero from the indicator instead of the buffer index value,
Again, it is desirable to catch it somehow. (on isi programming)))
a)If it is outside the array, then why doesn't the tracer catch it?
b)Either/or, you should force initialize memory allocated for the index-buffer with value -(66666666))
in order to distinguish the null of the index-buffer from the absence of calculation.

 
After a month of acquaintance with MQL4, I realized that it's a very serious language), and in its specialization it's probably the best. But it strongly lacks a step-by-step debugger for a full-fledged programming language. However, I haven't read all 27 pages of this topic, so excuse me if this request has already been posted.
 
Here's a thought. When withdrawing or recalculating, indicators should selectively remove only "their" objects, i.e. in order to find them, they should have the indicator attribute in their name. I usually use the indicator name in the object name. But it doesn't work when there are several same indicators in one chart. We may assume that each indicator instance in the terminal has a unique ID. It would be good to have a function to access this ID, then the problem would be solved simply: Object_Name = ID+"internal object name".
 
Gentlemen, we have wished so much for the future of MQL5 that God forbid we should at least do this. Maybe it's time to tell ourselves to stop? Maybe it's time to ask the developer to tell us what this language will be like, maybe he will give us something to test? For example, to test the debugger - I think it's a good starting point for MQL5 implementation. As far as I understand, the debugger should support MQL4 code as well... And if it's ready, why not test it?
How do you developers feel about it?
Reason: