Fehler, Irrtümer, Fragen - Seite 432

 
gumgum:

290 insgesamt und... ein)

Total Overkill macht 290.

Ich gehe davon aus, dass es keinen Pass (echten Lauf) gibt, sondern dass er festgelegt ist (wenn es Übereinstimmungen gibt)?

Da Sie den genetischen Algorithmus gewählt haben, erstellt dieser seinen eigenen Kreuzungsplan und seine eigene Populationsausgabe. Der Algorithmus des genetischen Optimierers wird in dem entsprechenden Artikel beschrieben.

Es ist unvernünftig, die Genetik mit so wenigen (290) Pässen zu betreiben. Der genetische Algorithmus sollte mit einer anfänglichen Aufzählung von mindestens zehntausenden, vorzugsweise Millionen/Billionen/Billionen von Varianten verwendet werden.

Генетические алгоритмы - это просто!
Генетические алгоритмы - это просто!
  • 2010.05.25
  • Andrey Dik
  • www.mql5.com
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
 

MQL5 Referenzhandbuch - Standardbibliothek - Klassen zum Organisieren von Daten - CArrayObj (auf der Website und in der Hilfe):

2. Der Speicherverwaltungsmechanismus ist deaktiviert.

In diesem Fall ist CArrayObj nicht für die Freigabe von Speicherplatz verantwortlich

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
Renat:

Ja, es ist nicht notwendig, zum letzten vorhandenen Datum zu prüfen.

Wählen Sie ein sinnvolles festes Enddatum in Form von 00:00 Uhr des vorhergehenden Arbeitstages oder sogar des Endes der vorhergehenden Arbeitswoche. Wenn Sie immer den letzten Tag verwenden, wird das Ende des Zeitplans in regelmäßigen Abständen verschoben, vor allem, wenn der Testprozess durch den Einsatz von Remote- oder Claud-Agenten sehr lang ist.


Ich habe den Sonntag als Enddatum verwendet. Wo ist das noch sinnvoll? Am Sonntag findet kein Handel statt. Was könnte dort schwimmen???
 
MoneyJinn:
Ich habe den Sonntag als Enddatum verwendet. Wo sonst sollte es Sinn machen? Am Sonntag findet kein Handel statt. Was könnte dort schwimmen???

Dann liegt das Problem vielleicht am anderen Ende der Geschichte. Wie lange muss die Vorgeschichte sein, damit die Indikatoren funktionieren? Zu Beginn der Prüfung werden, soweit ich weiß, hundert vorangehende Balken garantiert.

Wenn Sie mehr benötigen, sollten Sie einen Teil der Historie nach dem Start des Expert Advisors mit einer Länge größer als[necessary_number_of_bars - 100] überspringen. Dies löste meine Probleme mit der Korrelation der Ergebnisse von Tester und Optimierer.

 
MetaDriver:

Dann liegt das Problem vielleicht am anderen Ende der Geschichte. Wie lange muss die Vorgeschichte sein, damit die Indikatoren funktionieren? Zu Beginn der Prüfung werden, soweit ich weiß, hundert vorangehende Balken garantiert.

Wenn Sie mehr benötigen, überspringen Sie ein Stück Geschichte nach dem Start des Expert Advisors mit einer Länge größer als[necessary_number_of_bars - 100]. Dies löste meine Probleme mit der Übereinstimmung von Tester- und Optimiererergebnissen.

Danke, aber aus den Screenshots können wir sehen, dass die Geschichte für Freitag (24.06.11) verloren geht, wenn die Optimierung durch das Netzwerk

 

Das ist zwar keine entscheidende Frage, aber immerhin. String-Verkettung. Die Dokumentation beschreibt zwei Funktionen StringAdd und StringConcatenate.

In der ersten heißt es: "Die Funktion StringAdd() arbeitet schneller und speicherschonender als die String-Verkettung mittels Additionsoperationen.

In der zweiten heißt es: "Die Funktion StringConcatenate() arbeitetschneller und wirtschaftlicher als die String-Bindung mittels Additionsoperationen, da keine temporären Variablen vom Typ String verwendet werden.

void OnStart() {
  string string1 = "sdfdsfjssdfads";
  string string2 = "bsadfasdfaaa";
  string string3 = "ssdfsdgasgsaggsda";
  string result;
  uint i, start, stop, length = 10000000;

  start = GetTickCount();
  for(i = 0; i < length; i++)
    result = string1 + string2 + string3;
  stop = GetTickCount();
  Print("№1 ", (stop-start), " milliseconds, i = ", i);
 
  start = GetTickCount();
  for(i = 0; i < length; i++) {
    StringAdd(result, string1);
    StringAdd(result, string2);
    StringAdd(result, string3);
  }
  stop = GetTickCount();
  Print("№2 ", (stop-start), " milliseconds, i = ", i);

  start = GetTickCount();
  for(i = 0; i < length; i++)
    StringConcatenate(result, string1, string2, string3);
  stop = GetTickCount();
  Print("№3 ", (stop-start), " milliseconds, i = ", i);
}

Ergebnis:

2011.06.26 19:10:55 test (EURUSD,H1)№1 2012 milliseconds, i = 10000000
2011.06.26 19:11:04 test (EURUSD,H1)#2 8269 Millisekunden, i = 10000000
2011.06.26 19:11:10 test (EURUSD,H1)#3 6661 Millisekunden, i = 10000000

Es stellt sich jedoch heraus, dass die übliche Addition schneller ist.

Документация по MQL5: Строковые функции / StringConcatenate
Документация по MQL5: Строковые функции / StringConcatenate
  • www.mql5.com
Строковые функции / StringConcatenate - Документация по MQL5
 
voix_kas:

Es stellt sich jedoch heraus, dass die normale Addition schneller geht.

Die Frage hat sich bereits gestellt: https://www.mql5.com/ru/forum/58/page13#comment_59630 Schauen Sie sich die Diskussion im weiteren Verlauf des Textes an. An die Entwickler: Die Schlussfolgerung daraus ist, dass dieses Thema in den Referenzmaterialien nicht ausreichend behandelt wird.
Изучаем и пишем вместе на MQL5
Изучаем и пишем вместе на MQL5
  • www.mql5.com
2) вывод всей возможной информации по инструментам, ордерам и др.
 
MoneyJinn:
Ich habe den Sonntag als Stichtag gewählt. Wo ist das noch sinnvoll? Am Sonntag findet kein Torg statt. Was könnte da draußen herumschwimmen?

Da diese Art von Frage Details erfordert, erstellen Sie ein Ticket im Service Desk mit weiteren Details - wir werden versuchen, das Problem zu lösen.

Das Problem ist natürlich die Geschichte und ihre Synchronizität.

 
voix_kas:

Das ist zwar keine entscheidende Frage, aber immerhin. String-Verkettung. Die Dokumentation beschreibt zwei Funktionen StringAdd und StringConcatenate.

In der ersten heißt es: "Die Funktion StringAdd() arbeitet schneller und speicherschonender als die String-Verkettung mittels Additionsoperationen.

In der zweiten heißt es: "Die Funktion StringConcatenate() arbeitetschneller und speichersparender als die Stringbindung mittels Additionsoperationen, da keine temporären Variablen vom Typ String verwendet werden.

Ergebnis:

2011.06.26 19:10:55 test (EURUSD,H1)№1 2012 milliseconds, i = 10000000
2011.06.26 19:11:04 test (EURUSD,H1)#2 8269 Millisekunden, i = 10000000
2011.06.26 19:11:10 test (EURUSD,H1)#3 6661 Millisekunden, i = 10000000

Es stellt sich jedoch heraus, dass die normale Addition schneller ist.

Dies scheint eine Optimierung der Stringverkettung mit + zu sein.

Der Compiler erfährt derzeit einige gravierende Änderungen hinsichtlich der Einbeziehung der lange erwarteten Optimierungsmodi. Wir werden die Ergebnisse in Kürze vorstellen.

 
Renat:

Es sieht so aus, als ob die Optimierung der String-Verkettung mit + funktioniert.

Wir sind nun dabei, den Compiler ernsthaft zu verändern, indem wir die lang erwarteten Optimierungsmodi aktivieren. Wir werden Ihnen die Ergebnisse in Kürze zeigen.

Ich verstehe. Wenn es möglich ist, beschreiben Sie es explizit im Forum (ich versuche, alle Themen zu verfolgen).

Bislang habe ich im Algorithmus die Arbeit "+" gelassen.