Fehler, Irrtümer, Fragen - Seite 2153

 
Es gibt einen Eintrag im Optimiser's Journal auf Russisch
2018.03.03 15:48:04.722 Tester  Вы можете ускорить оптимизацию в сотни раз с помощью MQL5 Cloud Network
 
Andrii Djola:

Woher weiß ich, wann der Handel mit Devisensymbolen endet?

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Merkmale der Sprache mql5, Tipps und Tricks

fxsaber, 2017.02.25 16:39

ENUM_DAY_OF_WEEK GetDayOfWeek( const datetime time )
{
  MqlDateTime sTime = {0};

  ::TimeToStruct(time, sTime);

  return((ENUM_DAY_OF_WEEK)sTime.day_of_week);
}

// true - находимся в торговой сессии
bool SessionTrade( const string Symb )
{
  datetime TimeNow = ::TimeTradeServer();

  const ENUM_DAY_OF_WEEK DayOfWeek = GetDayOfWeek(TimeNow);

  TimeNow %= 24 * 60 * 60;

  bool Res = false;
  datetime From, To;

  for (int i = 0; (!Res) && ::SymbolInfoSessionTrade(Symb, DayOfWeek, i, From, To); i++)
    Res = ((From <= TimeNow) && (TimeNow < To));

  return(Res);
}

// Возвращает true, если символ торгуемый. Иначе - false.
bool SymbolTrade( const string Symb )
{
  MqlTick Tick;

  return(::SymbolInfoTick(Symb, Tick) ? ((Tick.bid != 0) && (Tick.ask != 0) && SessionTrade(Symb) /* &&
         ((ENUM_SYMBOL_TRADE_MODE)::SymbolInfoInteger(Symb, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_FULL) */
) : false);
}

Verwendung von

if (OrderCheck(Request, CheckResult) && SymbolTrade(Request.symbol))
  OrderSend(Request, Result);
 
fxsaber:

Ein sehr unangenehmer Fehler bei benutzerdefinierten Charakteren. Der Tickverlauf der benutzerdefinierten Zeichen kann vollständig verschwinden.

Es gab mehrere Dutzend Stunden Optimize an den echten Ticks der benutzerdefinierten Figur. Keiner kam in die Nähe des Computers und unternahm nichts.

Nach 15 Stunden der Optimierung kam das Ergebnis zu sehen. Die Verwendung des Menüpunkts "Run Single Test" bei einem beliebigen Lauf ist nicht möglich - der Tester startet und endet sofort.

Das Protokoll lautet

2018.03.03 15:48:04.696 Tester  file cache used 3010 times
2018.03.03 15:48:04.698 Tester  optimization finished, total passes 352000
2018.03.03 15:48:04.708 Statistics      optimization done in 41 hours 32 minutes 37 seconds
2018.03.03 15:48:04.708 Statistics      local 348990 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2018.03.03 15:48:04.708 Core 1  connection closed
2018.03.03 15:48:04.709 Core 2  connection closed
2018.03.03 15:48:04.710 Core 3  connection closed
2018.03.03 15:48:04.710 Core 4  connection closed
2018.03.03 15:48:04.711 Core 5  connection closed
2018.03.03 15:48:04.711 Core 6  connection closed
2018.03.03 15:48:04.712 Core 7  connection closed
2018.03.03 15:48:04.714 Core 8  connection closed
2018.03.03 15:48:04.716 Tester  348990 records written to file cache C:\Program Files\Alpari Limited MT5\tester\cache\Test.TESTER_EURUSD.M1.4.xml
2018.03.03 15:48:04.722 Tester  Вы можете ускорить оптимизацию в сотни раз с помощью MQL5 Cloud Network
2018.03.04 08:26:30.933 Tester  single pass 297022 started
2018.03.04 08:26:31.000 Tester  TESTER_EURUSD: history data begins from 2018.02.06 00:00
2018.03.04 08:27:36.409 Tester  single pass 297022 started
2018.03.04 08:27:36.491 Tester  TESTER_EURUSD: history data begins from 2018.02.06 00:00
2018.03.04 14:05:10.940 Tester  single pass 297022 started
2018.03.04 14:05:11.007 Tester  TESTER_EURUSD: history data begins from 2018.02.06 00:00

Ich habe festgestellt, dass die Häkchen aller benutzerdefinierten Charaktere gelöscht worden sind.

 
Nach der Optimierung wird diese Textdatei
2018.03.03 15:48:04.716 Tester  348990 records written to file cache C:\Program Files\Alpari Limited MT5\tester\cache\Test.TESTER_EURUSD.M1.4.xml
nimmt 1 GB in Anspruch. 7z komprimiert sie um den Faktor 100. Warum eine so ineffiziente Art, den Cache zu speichern?
 

Wenn Sie den XML-Export verwenden

350.000 Durchgänge werden in eine 320 MB große XML-Datei geschrieben. Dadurch wird die XML-Datei aus irgendeinem Grund automatisch geöffnet. Ich versuche dies mit Notepad, das sich beim Lesen solcher Monster aufhängt. Bitte informieren Sie sich im Voraus über die ungefähre Größe der Datei, wenn Sie das XML-Menü auswählen, und über die Folgen, die sich beim weiteren Öffnen ergeben können.

 

Fehler bei der Kompilierung

es kann noch kein Codefragment ausgewählt werden

 
fxsaber:

Wenn Sie den XML-Export verwenden

350.000 Durchgänge werden in eine 320 MB große XML-Datei geschrieben. Dadurch wird die XML-Datei aus irgendeinem Grund automatisch geöffnet. Ich versuche dies mit Notepad, das sich beim Lesen solcher Monster aufhängt. Bitte geben Sie bei der Auswahl des XML-Menüs im Voraus an, wie groß die Datei ungefähr sein wird und welche Folgen das weitere Öffnen der Datei haben wird.

Ich stimme zu, aber es ist nicht notwendig, eine Warnung auszusprechen, sondern das Öffnen der Datei zu deaktivieren, so dass der Benutzer selbst entscheiden kann, wie er sie öffnet.

 

Fehler bei der Kompilierung

template<typename T>
class A { T t; };
void OnStart() { A<void *> a; } //Error: '<' - cannot to apply function template

Ansonsten:

template<typename T>
class A { T t; };
void OnStart() { A<void *> a; }
class B {};

Das ist in Ordnung. Welchen Unterschied macht das?

 

Kompilierungsfehler

template<typename T>
struct A { T    *t; };
struct B { void *b; };
void OnStart()
{
        A<void> a; //Error: 'void' - expression of 'void' type is illegal
        B       b; //номально
} 
 
fxsaber:

Mehrere Dutzend Stunden lang wurde an den echten Ticks der benutzerdefinierten Figur optimiert. Niemand hat sich dem Computer genähert und nichts getan.

Nach 15 Stunden der Optimierung konnte ich die Ergebnisse sehen. Die Verwendung des Menüpunkts "Run Single Test" auf einem beliebigen Durchgang ist nicht möglich - der Tester startet und endet sofort.

Das Protokoll lautet

Ich habe festgestellt, dass die Häkchen bei allen benutzerdefinierten Symbolen entfernt worden sind.

Reproduzierbar. Sie müssen Tester/Optimizer ausführen. Warten Sie einige Stunden nach Beendigung des Vorgangs. Ich habe genau 10 Stunden später alle benutzerdefinierten Charakterticks gelöscht.