Can the tester logs and agent logs (the first 24 are enough) be viewed?
Yes, of course. MT5 (build 2045) same problem. And MT5 (build 2009) - everything is OK. Maybe there were some changes compared to MT5 (build 2009), in particular in the logic of determining whether a local agent is running or not (for example, brought it to the logic of network agent detection)...
MT5. build 2055. ChartGetDouble(0,CHART_PRICE_MAX) and ChartGetDouble(0,CHART_PRICE_MIN) function is executed incorrectly (writes zeros) when changing the TF. And it writes correctly the first time when starting the indicator. Then when TF is shifted on monthly TF always zeros, on others sometimes at first, then it is normalized.
offsetof – это специальная команда, которая непосредственно связана в атрибутом pack. Она позволяет получить смещение члена от начала структуры.
struct Parent{
char c; // sizeof(char)=1
};
struct Children pack(2) : Parent{
short s; // sizeof(short)=2
};
voidOnStart(){
//--- объявим переменную типа Children
Children child;
//--- узнаем смещения от начала структуры Print("offsetof(child.c)=",offsetof(child.c));
Print("offsetof(child.s)=",offsetof(child.s));
}
At first I was surprised, because I didn't know that offsetof existed. But the reality put everything in its place:
If you open a signal from the Signals section, you can see an example of an infographic:
Normally, the purpose of an infographic is to convey to the end user the pros and cons of a set of properties of the object being analysed. However, the essence of this infographic is not clear, when a 100% drawdown is displayed as a 100% result on the chart. Also the same indicator is used twice within the same chart: once in positive and the second time in negative terms (indicators of "Profitable Trades" and "Losing Trades").
Proposed changes: 1. Introduce a countdown for the indicators "Maximum drawdown", "Maximum deposit load", "Losing trades" (the smaller value - the larger indicator value on the chart); 2. Replace one of the duplicated indicators ("Profitable trades" or "Losing trades") with a new indicator (for example, average deviation of the amount of buy to sell, or something else); 3. For certain indicators, such as "Maximum drawdown" and "Maximum deposit load", replace the ubiquitous % scale on the chart with a logarithmic or other display scale. The objective is to increase the impact of the indicator on signal attractiveness.
boolArrayInsert(
void& dst_array[], // receiving array constvoid& src_array[], // source array uintdst_start, // receiver array index to be inserted uint src_start=0, // source array index to be copied uint count=WHOLE_ARRAY// number of elements to insert
);
intArrayCopy(
void& dst_array[], // destination array constvoid& src_array[], // source array intdst_start=0, // index starting from which write into destination array int src_start=0, // first index of a source array int count=WHOLE_ARRAY// number of elements
);
Differences in almost "identical" functions: 1. no default parameter for ArrayInsert. 2. lack of a "standard" parameter description.
The use of different data types for the same parameters (int, uint) can be understood, referring to compatibility.
Can the tester logs and agent logs (the first 24 are enough) be viewed?
Yes, of course. MT5 (build 2045) same problem.
And MT5 (build 2009) - everything is OK.
Maybe there were some changes compared to MT5 (build 2009), in particular in the logic of determining whether a local agent is running or not (for example, brought it to the logic of network agent detection)...
MT5. build 2055.
ChartGetDouble(0,CHART_PRICE_MAX) and ChartGetDouble(0,CHART_PRICE_MIN) function is executed incorrectly (writes zeros) when changing the TF.
And it writes correctly the first time when starting the indicator. Then when TF is shifted on monthly TF always zeros, on others sometimes at first, then it is normalized.
result:
https://www.mql5.com/ru/docs/basis/types/classes
offsetof – это специальная команда, которая непосредственно связана в атрибутом pack. Она позволяет получить смещение члена от начала структуры.
But the reality put everything in its place:
https://www.mql5.com/ru/docs/basis/types/classes
At first I was surprised because I was not aware of the existence of offsetof.But the reality put everything in its place:
You yourself have written
If you open a signal from the Signals section, you can see an example of an infographic:
Normally, the purpose of an infographic is to convey to the end user the pros and cons of a set of properties of the object being analysed.
However, the essence of this infographic is not clear, when a 100% drawdown is displayed as a 100% result on the chart.
Also the same indicator is used twice within the same chart: once in positive and the second time in negative terms (indicators of "Profitable Trades" and "Losing Trades").
Proposed changes:
1. Introduce a countdown for the indicators "Maximum drawdown", "Maximum deposit load", "Losing trades" (the smaller value - the larger indicator value on the chart);
2. Replace one of the duplicated indicators ("Profitable trades" or "Losing trades") with a new indicator (for example, average deviation of the amount of buy to sell, or something else);
3. For certain indicators, such as "Maximum drawdown" and "Maximum deposit load", replace the ubiquitous % scale on the chart with a logarithmic or other display scale. The objective is to increase the impact of the indicator on signal attractiveness.
Why structures can do deep copy, butArrayCopy, even when the class has a copy constructor, can't do anything and gives a compilation error?
"It's not normal, it's not fair!" ©
Differences in almost "identical" functions:
1. no default parameter for ArrayInsert.
2. lack of a "standard" parameter description.
The use of different data types for the same parameters (int, uint) can be understood, referring to compatibility.
No default parameter for ArrayInsert.
Why structures can do deep copy, butArrayCopy, even when the class has a copy constructor, can't do anything and gives a compilation error?
"It's not normal, it's not fair!" ©
I had to implement a full-fledged ArrayCopy myself.
I don't think so, but maybe somebody may find it useful...
Result: