Errors, bugs, questions - page 2223

 
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.

There will be normal functionality in Services.

 
fxsaber:

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.

 
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()
  }
};

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

// Нужно компилировать (не запускать) советник, когда этот файл (с любым содержанием, хоть пустой) лежит в Песочнице.
// Иначе Тестер не будет видеть эти данные, даже если соответствующий файл с ними положить после компиляции на место.  
  #property tester_file __FILE__

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.

 
fxsaber:

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

 
Slava:

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__ 

sinput int NumPass = 10;

#define  TOSTRING(A) #A

void SetArray( int &Array[], const int Amount )
{
  MathSrand((int)TimeLocal());
  
  for (int i = ArrayResize(Array, Amount) - 1; i >= 0; i--)
    Array[i] = MathRand() * Amount / SHORT_MAX + 1; // Случайное положительное число
}

void OnTesterInit()
{    
  ParameterSetRange(TOSTRING(NumPass), true, 0, 0, 1, NumPass - 1); // Задали Оптимизатору количество проходов = NumPass    
  
  int Array[];
  
  SetArray(Array, NumPass);      
  FileSave(__FILE__, Array);
  
  ArrayPrint(Array);  
}

void OnTesterDeinit()
{
  ChartClose(); // Закрыли чарт Frame-выполнения советника
}

double OnTester()
{
  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 in 0 ms
Statistics      optimization done in 0 minutes 00 seconds


If I reset the cache (recompile), the first run is fine, further on it is not.

Reason: