Ошибки, баги, вопросы - страница 2223

 
Nikolai Semko:
Да , я уже давал эту ссылку на Вашу реализацию в 22214 сообщении. Повторюсь - считаю этот вариант пока самым разумным. И похоже,  что лучше реализации в плане минимальности нагрузки на процессор и актуальности получаемого момента нового тика просто не существует.

В Сервисах будет нормальный функционал.

 
fxsaber:

В Сервисах будет нормальный функционал.

надеюсь... 

 

Терминал (1874) при переключении на другой торговый сервер перестает показывать (чарт или запрос) баровую историю кастомного символа. После перезагрузки Терминала история показывается. Стоит переключиться снова на другой сервер - ситуация повторяется.


Тиковая история не страдает при переключении торгового сервера. Там бага этого нет.

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

Так и должен себя вести ME?

 

Ошибка в FileLoad. Если с флагом FILE_COMMON два локальных Агента пытаются считать данные через FileLoad, то один из Агентов обламывается.

В FileOpen можно задать соответствующие флаги, а вот в FileLoad - нет. Поэтому просьба разрешить доступ к файлу через FileLoad, если другой FileLoad его считывает.

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Не для разработчиков МТ! Чем заменить INIT_PARAMETERS_INCORRECT ?

fxsaber, 2018.07.10 20:16

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

Древний баг.

 

Возможно ли tester_file держать в RAM, чтобы не насиловать HDD/SSD? А то проходов бывают миллионы, и столько раз считать файл - ужас.


Такой "RAM-диск" позволит значительно усложнить несанкционированную передачу личных данные третьим лицам.

 

Новые оптимизационные кеши не учитывают изменения tester_file и Common-файлов перед запуском Оптимизации.

Здесь пример такого советника.

 
fxsaber:

Новые оптимизационные кеши не учитывают изменения tester_file и Common-файлов перед запуском Оптимизации.

Здесь пример такого советника.

Старые учитывали или нет?

Ничего не поменялось со "старых" оптимизационных кешей.

Если Вы подсунете изменённый tester_file с прежним временем модификации файла, то будет считаться, что файл не изменён.

Common-файлы вообще никак нельзя контролировать (и никогда было нельзя), так как неизвестно, какие из них вы используете в советнике

 
Slava:

Если Вы подсунете изменённый tester_file с прежним временем модификации файла, то будет считаться, что файл не изменён.

Обновленное время модификации не влияет на результат. Советник

// Нужно компилировать (не запускать) советник, когда этот файл (с любым содержанием, хоть пустой) лежит в Песочнице.
// Иначе Тестер не будет видеть эти данные, даже если соответствующий файл с ними положить после компиляции на место.  
#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);
}


Результат двух подряд запусков


Красным пометил, что второй запуск полностью соответствует значениям первого запуска, не второго (вторая строка).


Лог это подтверждает

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


Если сбрасываю кеш (перекомпиляция), то первый запуск отлично, дальше - нет.