Nikolai Semko: Yes, I already gave this link to your implementation in post 22214. I'll say it again - I think this is the most sensible option so far. And it seems that there is no better implementation in terms of minimal CPU load and relevance of the moment of a new tick.
The terminal (1874) stops showing (chart or query) the bar history of the custom symbol when switching to another trading server. After Terminal restart the history is shown. As soon as you switch to another server again, the situation repeats.
Tick history does not suffer when switching trading server. This bug is not present there.
template <typename T>
class CLASS
{
public:
T Func() { return(0); }
};
class CLASS2 : public CLASS<int>
{
public:
CLASS2()
{
this.Func(); // ALT+G в ME не производит переход на int CLASS<int>:Func()
}
};
Error in FileLoad. If two local Agents with FILE_COMMON flag try to read data through FileLoad, one of the Agents fails.
It is possible to set appropriate flags in FileOpen, but not in FileLoad. Therefore, please allow access to the file via FileLoad if the other FileLoad reads it.
// Нужно компилировать (не запускать) советник, когда этот файл (с любым содержанием, хоть пустой) лежит в Песочнице.// Иначе Тестер не будет видеть эти данные, даже если соответствующий файл с ними положить после компиляции на место. #property tester_file__FILE__
If you slip a modified tester_file with the same file modification time, the file will be assumed to be unmodified.
The updated modification time has no effect on the result. Expert Advisor
// Нужно компилировать (не запускать) советник, когда этот файл (с любым содержанием, хоть пустой) лежит в Песочнице.// Иначе Тестер не будет видеть эти данные, даже если соответствующий файл с ними положить после компиляции на место. #property tester_file__FILE__sinputint NumPass = 10;
#define TOSTRING(A) #A
void SetArray( int &Array[], constint Amount )
{
MathSrand((int)TimeLocal());
for (int i = ArrayResize(Array, Amount) - 1; i >= 0; i--)
Array[i] = MathRand() * Amount / SHORT_MAX + 1; // Случайное положительное число
}
voidOnTesterInit()
{
ParameterSetRange(TOSTRING(NumPass), true, 0, 0, 1, NumPass - 1); // Задали Оптимизатору количество проходов = NumPass int Array[];
SetArray(Array, NumPass);
FileSave(__FILE__, Array);
ArrayPrint(Array);
}
voidOnTesterDeinit()
{
ChartClose(); // Закрыли чарт Frame-выполнения советника
}
doubleOnTester()
{
int Array[];
return((FileLoad(__FILE__, Array) != -1) ? Array[NumPass]: 0);
}
Result of two consecutive runs
Marked in red, the second run corresponds exactly to the values of the first run, not the second (second line).
The log confirms it
Tester set"Custom max"as optimization criterion for mathematical calculations
Tester input parameter 'NumPass'set to: enable=true, value=0, start=0, step=1, stop=9
Tester cache file 'tester\cache\X2.30.480532BA71563CA64BC267378A0185DD.opt' contains 10 records
Tester Experts\fxsaber\X2.ex5 math calculations test means no history and no symbol info for EURGBP
Tester complete optimization started
Tester optimization already processed, total passes 10
Tester reading of 10 result records from cache...
Tester 1 blocks of results read from cache in0 ms
Statistics optimization done in0 minutes 00 seconds
If I reset the cache (recompile), the first run is fine, further on it is not.
Yes, I already gave this link to your implementation in post 22214. I'll say it again - I think this is the most sensible option so far. And it seems that there is no better implementation in terms of minimal CPU load and relevance of the moment of a new tick.
There will be normal functionality in Services.
In Services there will be normal functionality.
hopefully...
The terminal (1874) stops showing (chart or query) the bar history of the custom symbol when switching to another trading server. After Terminal restart the history is shown. As soon as you switch to another server again, the situation repeats.
Tick history does not suffer when switching trading server. This bug is not present there.
Is this how the ME is supposed to behave?
Error in FileLoad. If two local Agents with FILE_COMMON flag try to read data through FileLoad, one of the Agents fails.
It is possible to set appropriate flags in FileOpen, but not in FileLoad. Therefore, please allow access to the file via FileLoad if the other FileLoad reads it.
Forum on trading, automated trading systems and trading strategy testing
Not for MT Developers! What to replace INIT_PARAMETERS_INCORRECT with ?
fxsaber, 2018.07.10 20:16
Ancient bug.
Is it possible to keep tester_file in RAM to avoid HDD/SSD abuse? There are millions of passes and it's horrible to count the file so many times.
Such a "RAM-disk" would make it much more difficult for unauthorized transfer of personal data to third parties.
The new optimisation caches do not take into account changes to the tester_file and Common files before running Optimisation.
Here is an example of such an EA.
The new optimisation caches do not take into account changes to the tester_file and Common files before running Optimisation.
Here is an example of such an EA.
Have the old ones been taken into account or not?
Nothing has changed from "old" optimization caches.
If you slip a modified tester_file with the same file modification time, the file will be considered as unchanged.
Common files cannot be controlled in any way (and never have been), because it is unknown which of them you use in your Expert Advisor
If you slip a modified tester_file with the same file modification time, the file will be assumed to be unmodified.
The updated modification time has no effect on the result. Expert Advisor
Result of two consecutive runs
Marked in red, the second run corresponds exactly to the values of the first run, not the second (second line).
The log confirms it
If I reset the cache (recompile), the first run is fine, further on it is not.