Fehler, Irrtümer, Fragen - Seite 2223

 
Nikolai Semko:
Ja, ich habe diesen Link zu Ihrer Umsetzung bereits in Beitrag 22214 angegeben. Ich sage es noch einmal: Ich halte dies für die bisher sinnvollste Option. Und es scheint, dass es keine bessere Implementierung gibt, was die minimale CPU-Belastung und die Relevanz des Zeitpunkts eines neuen Ticks angeht.

Die Dienste werden normal funktionieren.

 
fxsaber:

Bei den Diensten wird die normale Funktionalität gegeben sein.

hoffentlich...

 

Das Terminal (1874) zeigt die Balkenhistorie des benutzerdefinierten Symbols nicht mehr an (Chart oder Abfrage), wenn es zu einem anderen Handelsserver wechselt. Nach dem Neustart des Terminals wird der Verlauf angezeigt. Sobald Sie wieder zu einem anderen Server wechseln, wiederholt sich die Situation.


DieTick-Historie wird beim Wechsel des Handelsservers nicht beeinträchtigt. Dieser Fehler ist dort nicht vorhanden.

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

Sollte sich das Europäische Parlament so verhalten?

 

Fehler in FileLoad. Wenn zwei lokale Agenten mit FILE_COMMON-Flag versuchen, Daten über FileLoad zu lesen, schlägt einer der Agenten fehl.

Es ist möglich, entsprechende Flags in FileOpen zu setzen, aber nicht in FileLoad. Erlauben Sie daher bitte den Zugriff auf die Datei über FileLoad, wenn der andere FileLoad sie liest.

 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Nicht für MT-Entwickler! Wodurch ist INIT_PARAMETERS_INCORRECT zu ersetzen?

fxsaber, 2018.07.10 20:16

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

Antike Wanze.

 

Ist es möglich, tester_file im RAM zu halten, um HDD/SSD-Missbrauch zu vermeiden? Es gibt Millionen von Durchgängen, und es ist schrecklich, die Datei so oft zu zählen.


Eine solche "RAM-Disk" würde die unbefugte Weitergabe personenbezogener Daten an Dritte erheblich erschweren.

 

Die neuen Optimierungs-Caches berücksichtigen nicht die Änderungen an den Dateien tester_file und Common, bevor die Optimierung ausgeführt wird.

Hier ist ein Beispiel für einen solchen EA.

 
fxsaber:

Die neuen Optimierungs-Caches berücksichtigen nicht die Änderungen an den Dateien tester_file und Common, bevor die Optimierung ausgeführt wird.

Hier ist ein Beispiel für einen solchen EA.

Sind die alten berücksichtigt worden oder nicht?

An den "alten" Optimierungs-Caches hat sich nichts geändert.

Wenn Sie eine geänderte tester_file mit der gleichen Änderungszeit der Datei unterschieben, wird die Datei als unverändert betrachtet.

Gemeinsame Dateien können in keiner Weise kontrolliert werden (und wurden es auch nie), da nicht bekannt ist, welche davon Sie in Ihrem Expert Advisor verwenden

 
Slava:

Wenn Sie eine geänderte tester_file mit der gleichen Änderungszeit der Datei unterschieben, wird angenommen, dass die Datei nicht geändert wurde.

Die aktualisierte Änderungszeit hat keinen Einfluss auf das Ergebnis. 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);
}


Ergebnis von zwei aufeinanderfolgenden Läufen


Der rot markierte zweite Lauf entspricht genau den Werten des ersten Laufs, nicht des zweiten (zweite Zeile).


Das Protokoll bestätigt dies

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


Wenn ich den Cache zurücksetze (neu kompiliere), ist der erste Durchlauf in Ordnung, alle weiteren nicht.