Fehler, Irrtümer, Fragen - Seite 2658

 
Nikolai Semko:

Igor, dann versuchen Sie MathSrand(int(GetMicrosecondCount()%16384));

Ich frage mich, wie sich das Bild verändern wird

int OnInit()
   {
   MathSrand(int(GetMicrosecondCount()%16384));   
   return(INIT_SUCCEEDED);
   }
//+------------------------------------------------------------------+
void OnTick()
   {
   }
//+------------------------------------------------------------------+
double OnTester()
   {
      return(rand());
   }
//+------------------------------------------------------------------+


 

Das ist ein Problem.

CSymbolInfo-Klasse.

Wenn er sich auf den aktuellen Brief- oder Geldkurs bezieht, gibt er 0 zurück.

Alle anderen Parameter funktionieren einwandfrei, z. B. AskHigh oder Point

 
Ruslan Udintsev:

Das ist ein Problem.

CSymbolInfo-Klasse.

Wenn er sich auf den aktuellen Brief- oder Geldkurs bezieht, gibt er 0 zurück.

Alle anderen Parameter funktionieren einwandfrei, zum Beispiel AskHigh oder Point

Ich muss zuerst die Preise aktualisieren.

//+------------------------------------------------------------------+
//| Refreshes the symbol quotes data                                 |
//+------------------------------------------------------------------+
bool RefreshRates()
  {
//--- refresh rates
   if(!m_symbol.RefreshRates())
     {
      if(InpPrintLog)
         Print(__FILE__," ",__FUNCTION__,", ERROR: ","RefreshRates error");
      return(false);
     }
//--- protection against the return value of "zero"
   if(m_symbol.Ask()==0 || m_symbol.Bid()==0)
     {
      if(InpPrintLog)
         Print(__FILE__," ",__FUNCTION__,", ERROR: ","Ask == 0.0 OR Bid == 0.0");
      return(false);
     }
//---
   return(true);
  }
 
Igor Makanu:


Wow. Ich versteh's nicht.
 
Nikolai Semko:
Wow, das verstehe ich überhaupt nicht.

Was gibt es da zu verstehen? - im Prüfgerät sind GetMicrosecondCount() , GetTickCount() , GetTickCount64() an den Prüfgerätestart gebundenhttps://www.mql5.com/ru/forum/35402/page5#comment_15165640

und MathSrand(GetTickCount())-Konstrukt aus der Hilfe;

die Entwickler sollten sowohl die Print()-Operation durchgeführt haben - es werden keine Nachrichten im Tester im GA-Modus ausgegeben,

und MathSrand(GetTickCount()); sollte durch die Zeit initialisiert werden ..... wer weiß, welche Zeit, aber nicht durch die GA-Startzeit - jetzt funktioniert MathSrand() nicht wie erwartet

 
Igor Makanu:

Was gibt es da zu verstehen? - im Prüfgerät sind GetMicrosecondCount() , GetTickCount() , GetTickCount64() an den Prüfgerätestart gebundenhttps://www.mql5.com/ru/forum/35402/page5#comment_15165640

und MathSrand(GetTickCount())-Konstrukt aus der Hilfe;

die Entwickler sollten sowohl die Print()-Operation durchgeführt haben - es werden keine Nachrichten im Tester im GA-Modus ausgegeben,

und MathSrand(GetTickCount()); sollte durch die Zeit initialisiert werden ..... wer weiß, welche Zeit, aber nicht durch die GA-Startzeit - jetzt funktioniert MathSrand() nicht wie erwartet

Es ist also nicht die Zeit, die man für Scrand verwendet, sondern ein Griff, der sich jedes Mal ändert.
 
Nikolai Semko:
Es ist also nicht die Zeit, die für srand zu verwenden ist, sondern eine Art Griff, der sich jedes Mal ändert.

Ich weiß, wie man dieses Problem lösen kann - ich werde mir die Zeit in WinAPI nehmen, aber ist dies eine weitere Funktion, die ständig überprüft werden muss? ))))

ZS: der alglieb hatte eine höhere Präzision generator.... aber auch hier ist die Frage, ob das Beispiel aus der Hilfe korrekt funktioniert

 
Igor Makanu:

Ich weiß, wie man dieses Problem lösen kann - ich werde mir die Zeit in WinAPI nehmen, aber ist dies eine weitere Funktion, die ständig überprüft werden muss? ))))

Wenn Pässe nicht blitzschnell sind und Sie sie ohne DLL benötigen, können Sie das tun.

MathSrand((uint)GetTimeLocal()); // https://www.mql5.com/ru/forum/170952/page105#comment_9044250

Wie sich das auf die SSD auswirkt, weiß ich nicht. Ich verwende RAMDrive.

 
fxsaber:

Wenn die Pässe nicht blitzschnell sind und keine DLL benötigt wird, können Sie es auf diese Weise tun.

Ich weiß nicht, wie sich das auf die SSD auswirkt. Ich verwende RAMDrive.

Ich habe es durch die Ausgabe an OnTester() überprüft

Bild wie oben

der ganze Punkt hier ist, sicher zu sein, dass, wenn Sie optional NS über GA-Tester laden, es nicht eine Garantie ist, dass alle lokalen Prozessorkerne nicht mit der gleichen Anfangskonfiguration der NS-Gewichte arbeiten - dies wird Ergebnisse des Trainings verderben, imho

 

Tut mir leid, dass ich hier eine Tasche einbaue, aber ich muss wirklich herausfinden, was zu tun ist.

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Fehler beim Herunterladen von Indikatoren von höheren TFs (z. B. D1)

Vladislav Andruschenko, 2020.02.27 18:42

Das ist das Wesentliche:

Ich habe am Anfang dieser Fehler und Störungen beim Zugriff auf höhere TF D1 und W1 aus dem EA, die ich auf M5 zum Beispiel installiert haben (ich weiß nicht, welche TF) bemerkt.

Jetzt habe ich den gleichen Fehler im Strategietester eines anderen EA gefunden (der sich nicht mit dem vorherigen überschneidet)

Meine Handlungen:

  1. Der Expert Advisor prüft komplexe Signale von 3 Indikatoren (2 Indikatoren + 3 TF)
  2. Wenn diese Indikatoren und TF Daten von jeder TF bis D1 (alles darunter) nehmen, dann gibt es keine Fehler! Und der Test mit und ohne Visualisierung ist derselbe!
  3. Wenn Sie jedoch einen Indikator mit TF D1 und höher auswählen, sind die Ergebnisse unterschiedlich (Visualisierung und ohne Visualisierung).