Ein wenig überrascht :) Ich dachte, ich teile das und stelle eine NICHT rhetorische Frage. - Seite 6

 
hrenfx:

Nehmen wir an, Sie haben zwei EAs mit identischen Ergebnissen im Tester, einen mit Indikatoren und den anderen All-in-One. Die zweite funktioniert um eine Größenordnung schneller.

Die Geschwindigkeit wird nicht um eine Größenordnung steigen, sondern nur um 10-30 %. Geprüft. Der große Geschwindigkeitsgewinn macht es mühsam, zwei Expert Advisors zu schreiben, während der eine "all in one" praktisch nutzlos für das Debugging und nur zur Fehlerbekämpfung ist.

 
Integer:

Offensichtlich hegen Sie eine persönliche Antipathie gegen mich. Oh, scheiß auf mich. Bin ich denn der Mittelpunkt der Welt, dass du überreagierst?

Warum schicke ich dir nicht ein Bild von mir, damit du dich damit abwischen kannst? Ich schere mich einen Dreck um Ihre nervösen Ausbrüche. Verschwenden Sie nicht Ihre Zeit und Energie auf sie.

Ich bitte Sie dringend, konstruktiv zu sein, Sie sind erwachsen.

 
Integer:

Die Geschwindigkeit wird nicht um eine Größenordnung höher sein, sondern nur um 10-30 %. Bewährt. Wegen dieses großen Geschwindigkeitsgewinns lohnt sich die Mühe, zwei Expert Advisors zu schreiben, während der All-in-One Advisor praktisch nicht zum Debuggen geeignet ist, sondern nur zur Fehlerbehebung.

Der Geschwindigkeitsgewinn ist stark vom Gehäuse abhängig. Niemand hat die algorithmische Optimierung aufgehoben. Wenn es sich um eine primitive EMA handelt, ist der Gewinn minimal. Wenn es sich jedoch um etwas Komplexeres handelt, kann es sich um eine Größenordnung handeln. Das hängt von den eigenen Fähigkeiten der algorithmischen Optimierung ab. Sie sollten wissen, wo es zu Neuberechnungen kommen kann und so weiter.

In diesem Sinne ist es sehr hilfreich, einen eigenen Optimierer zu schreiben. Zum Beispiel war die All-in-One-Variante ohne algorithmische Optimierung in meinem Tester 10 Mal schneller (aufgrund des Compilers der Programmiersprache) als die gleiche All-in-One-Variante im MT4-Tester. Nach der algorithmischen Optimierung ist der Vorteil um eine weitere Größenordnung gestiegen.

In diesem Fall würde ich mich nicht um 10-30% bemühen.

 

hrenfx:

1. Der Geschwindigkeitsgewinn ist von Fall zu Fall sehr unterschiedlich. Die algorithmische Optimierung wurde nie aufgehoben. Wenn es sich um eine primitive EMA handelt, wird der Gewinn minimal sein. Wenn es sich jedoch um etwas Komplexeres handelt, kann es sich um eine Größenordnung handeln. Das hängt von den eigenen Fähigkeiten der algorithmischen Optimierung ab. Wissen, wo Berechnungen wiederholt werden können, usw. 2.

2. das Schreiben eines eigenen Optimierers ist in diesem Sinne sehr hilfreich. Zum Beispiel war die All-in-One-Variante ohne algorithmische Optimierung in meinem Tester etwa 10 Mal schneller als im MT4-Tester. Nach der algorithmischen Optimierung ist der Vorteil um eine weitere Größenordnung gestiegen.

Bei 10-30 % würde ich mir in diesem Fall nicht die Mühe machen, es zu tun.

1) Es hängt von der Fähigkeit ab, einen Indikator zu schreiben.

2. Wenn Sie die Leistung des MT-Testers und Ihres eigenen Rechners für eine Strategie genau vergleichen, werden Sie überrascht sein, wie optimal der Algorithmus des Testers ist (auch der von Academician).

 
Integer:

2. Wenn Sie in der Lage sind, die Leistung des MT-Testers und Ihres eigenen Rechners für dieselbe Strategie korrekt zu vergleichen, werden Sie sehr überrascht sein, dass der Algorithmus des Testers optimal ist.

Was meinen Sie mit korrekt? Mein Rechner ist >100 mal schneller als der MT4-Tester und hat einen Fehler von <1%. Ist das gerechtfertigt oder nicht?

MT4-Tester hat normale Algorithmen, aber er ist auf Universalität ausgelegt und berücksichtigt eine große Anzahl von Faktoren, die meinem Rechner einen unbedeutenden Fehler (für die Schätzung der Ergebnisse) bescheren.

Ein einfaches Beispiel: Wenn ich die Auftragshistorie in meinem EA nicht tiefgreifend berücksichtige, warum brauche ich sie dann im Optimierer? Warum brauche ich die Emulation eines Nullbalkens im Optimierer? Wir brauchen das alles nicht, also läuft alles auf eine dumme for-Schleife hinaus. Das Ergebnis sind mehrere Geschwindigkeiten zum Preis von <1% Fehler.

Wir sind im MQL5-Forum, aber ich diskutiere in dieser Diskussion nicht über die Leistung des MT5-Testers. Ich würde gerne einen offiziellen Vergleich zwischen den beiden Testern sehen.

Эффективность многопотокового тестера стратегий MetaTrader 5 - MQL4 форум
  • www.mql5.com
Эффективность многопотокового тестера стратегий MetaTrader 5 - MQL4 форум
 
hrenfx:

1. Was meinen Sie mit korrekt? Mein Rechner ist >100 mal schneller als der MT4-Tester, mit einem Fehler von <1%. Ist dies gerechtfertigt oder nicht?

MT4-Tester hat normale Algorithmen, aber er ist so konzipiert, dass er universell ist und eine große Anzahl von Faktoren berücksichtigt, weshalb mein Rechner einen unbedeutenden Fehler (für die Schätzung der Ergebnisse) aufweist.

2. Ein einfaches Beispiel: Wenn ich in meinem EA nicht tief in die Auftragshistorie schaue, warum brauche ich sie dann im Optimierer? Warum brauche ich die Emulation eines Nullbalkens im Optimierer? Wir brauchen das alles nicht, also läuft alles auf eine dumme for-Schleife hinaus. Das Ergebnis sind mehrere Geschwindigkeiten zum Preis von <1% Fehler.

Wir sind im MQL5-Forum, aber ich diskutiere in dieser Diskussion nicht über die Leistung des MT5-Testers. Ich würde gerne einen offiziellen Vergleich zwischen zwei Testern sehen.

Ich möchte einen Vergleich der Leistung der beiden Tester sehen, damit wir verstehen können, welche minimale Anzahl von Manipulationen im Tester verwendet wird, um alle Zeitrahmen in Balken zu unterteilen, um verschiedene Symbole zu synchronisieren und um Aufträge auszuführen.

2. Ich hoffe, dass dies nicht im Kontext von "Ich kann einen besseren Strategietester schreiben als MQ" steht.

 
Integer:

1. damit man die minimale Anzahl von Manipulationen im Tester verstehen kann, um die Unterteilung in Balken aller Zeitrahmen, die Synchronisierung verschiedener Symbole und die Ausführung von Aufträgen zu gewährleisten.

Ich bin sicher, dass die Algorithmen des Testers hervorragend sind. Die Entwickler verschwenden ihre Zeit nicht mit der Optimierung auf das Maximum - 100 %. Aber sie haben alles universell gemacht - für alle Varianten. Alle Varianten sind nicht erforderlich, wenn wir einen bestimmten Fall von MTS betrachten. Dies ist der Grund, warum sie in ihren Berechnungen über die Art des DUPLEX für eine Größenordnung gewinnen.

2. Ich hoffe, dass dies nicht im Kontext von "Ich kann einen besseren Strategietester schreiben als MQ" steht.

Sie haben eine vorgefasste Meinung von mir, als ob ich überall auf jeden scheißen würde. In diesem Thread bin ich ganz auf der Seite der Entwickler. Ich kann die Argumente des Themenstarters über den grundsätzlichen Unterschied zwischen den Aufgaben eines Testers und eines Optimierers sehr gut nachvollziehen, teile aber seine Behauptungen gegenüber den Entwicklern nicht. Meine Meinung - wenn nötig, können Sie immer Ihre eigenen Tester-Optimierer (nicht super-vielseitig, aber schnell) für sich selbst erstellen.
 
Renat:

Ein korrekt geschriebener, sparsamer Indikator sollte besser intern verwendet werden, als in den Code des Expert Advisors aufgenommen zu werden.

Die Übertragung in den Code des Expert Advisors bedeutet in der Regel, dass eine extrem benutzerdefinierte Methode zur Optimierung der Berechnungen implementiert wird, wenn die Hauptmenge der Berechnungen verworfen wird und 300 Balken der Historie übrig bleiben (zum Beispiel). In den meisten Fällen werden dabei Fehler gemacht, aber der Autor achtet in der Regel nicht auf sie. Unerwarteterweise kann sich in der Praxis herausstellen, dass der Basisindikator und seine reduzierte Kopie im Expert Advisor nicht übereinstimmen.

Dem würde ich zustimmen, aber es gibt ein Problem, das in manchen Fällen ein fettes Kreuzchen macht.

Es ist das Fehlen einer normalen Realisierung von IndicatorCounted() - jeden Moment wird es auf Null zurückgesetzt, Sie wissen es sehr gut.

Ich bin einen anderen Weg gegangen - habe meinen eigenen Datenprovider erstellt (ziemlich optimierter Algorithmus mit zirkulärer Adressierung der Daten), habe meine Funktion IndicatorCounted() erstellt.

Dieser Ansatz hat sich unter realen Bedingungen voll bewährt.

Außerdem werden die Indikatoren praktisch 1:1 übertragen, und es gibt keine Probleme mit ihrer Fehlersuche usw.

Implementierung von Indikatoren als Klassen am Beispiel von Zigzag und ATR

Es gibt sogar einen Vergleich der Algorithmen und des Ansatzes im Prüfgerät:

P.S. Was den Fehler betrifft, so hängt er vom Algorithmus des Indikators ab. In den meisten Fällen genügt es, die ersten paar Takte zu ignorieren, und der Rest wird 1:1 übereinstimmen.

Ich habe eigens zu diesem Zweck Prüfkonstrukte geschrieben.


P.S.2 Für ZigZag ist dies einfach ein unverzichtbarer Ausweg aus dieser Situation.

Ich rufe die Neuberechnung nur auf, wenn ich sie brauche, und sie kann das erweiterte Ergebnis zurückgeben, dass nur der letzte Punkt neu gezeichnet wurde.

Sie ermöglicht die Optimierung anderer Algorithmen eines Expert Advisors.


P.S. 3 Was den MT5 betrifft, so möchte ich sagen, dass er eine großartige Plattform ist. Allerdings gibt es einige schwerwiegende Fehler:

- kritische Fehler (die natürlich rechtzeitig behoben werden)

- fragwürdiger Ansatz zu TERMINALMaxBar (ich schrieb darüber, dass die Situation eine Sackgasse ist)

- Fehlen einer adäquaten IndicatorCounted()-Funktion (aber die brauche ich jetzt gar nicht)


P.S.4 Ich kann nichts über den Tester sagen, weil ich das Spiel "Optimierung" nicht spiele.

 
AlexSTAL:

Dem würde ich zustimmen, aber es gibt ein Aber, das in manchen Fällen ein dickes Ende setzt.

...

Welchen Sinn hat es, wenn nach Ihren eigenen Tests die in Expert Advisor eingebettete Klasse langsamer ist als der Aufruf über iCustom()?

Eine weitere Frage: Sind Sie bereit, alle Indikatoren in diesem Stil neu zu schreiben?

 
Integer:

Welchen Sinn hat es, wenn Ihren Tests zufolge die in den Expert Advisor integrierte Klasse langsamer ist als der Aufruf über iCustom()?

Eine weitere Frage: Sind Sie bereit, alle Indikatoren in diesem Stil neu zu schreiben?

Der Punkt liegt nicht im Tester, nicht im Tester, sondern unter realen Bedingungen, wo die Geschichte heruntergeladen wird und Verbindungsabbrüche auftreten.

Zu den Indikatoren - wo liegt das Problem?