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

 
hrenfx:

Wir sprechen hier von einem Optimierer, nicht von vielen einzelnen Testläufen. Das Konzept eines Optimierers ist ganz anders. Dort werden erhebliche Geschwindigkeitsgewinne auf Kosten kleiner Fehler in den Ergebnissen erzielt. Der Optimierer braucht überhaupt keine Modelle, die auf Ticks basieren. Sie beruhen allenfalls auf den Eröffnungspreisen. Ein Optimierer ist kein Tester, er ist etwas ganz anderes. Ihr Ansatz ist anders, und auch ziemlich logisch.

Durch die Herstellung eines unzuverlässigen Testers (und die Fehlermarge wird auf keinen Fall 1 % betragen) erhält der Entwickler einen Fleck fürs Leben. Und das Gerede von "100-mal schneller" wird wenig beeindruckend erscheinen im Vergleich zu "wie hat man gesehen, dass ein Optimierer das Recht hat, etwas zu laden"?

Im Gegenteil, wir kämpfen für maximale Genauigkeit und Geschwindigkeit des Optimierers aufgrund von

  • optimierte Algorithmen
  • Maximierung der Leistung und Funktionalität der MQL5-Sprache
  • Multithreading-, Remote- und Cloud-basierte Agenten
  • Detaillierte M1-Historie mit Unterstützung von Spreads
  • Verwendung von 64-Bit-Versionen
Die Parallelisierung der Optimierung von Strategien hat sofort zu einer linearen Beschleunigung in der Anzahl der Rechenkerne geführt und MQL5 ist im Vergleich zu MQL4 ein riesiger Sprung nach vorne geworden.
 
Renat:

Durch die Herstellung eines unzuverlässigen Prüfgeräts (und es wird keinen Fehler von 1% geben), wird der Entwickler einen Fleck auf Lebenszeit bekommen.

Ich habe das Gefühl, dass wir verschiedene Sprachen sprechen. Ich mache Ihnen keine Vorwürfe. Mehr noch, ich habe gesagt, dass die Entwickler den einzig richtigen Weg eingeschlagen haben.

Kritisieren Sie nur nicht alle anderen Entwicklungen, die Sie nicht betreffen. Mein Expert Advisor ist 100-mal schneller als MT4-Tester und sein Fehler ist <1% nur auf meinem EA. Für andere Expert Advisors benötige ich sie nicht.

Sehen Sie, ich musste es tun, und ich habe es für mich selbst getan, und ich werde diesen Weg niemandem aufzwingen. Ich will damit nur sagen, dass es immer möglich ist, einen nicht UNIVERSELLEN, dummen, aber sehr schnellen Rechner zu schreiben, wenn es nötig ist. Und danach sollten die Ergebnisse auf einem gut konzipierten MT4-MT5-Tester poliert werden, der kein langweiliger, sondern ein echter Handelssimulator ist.

Man muss schon ein Idiot sein, um Entwickler dafür zu kritisieren, dass der Optimierer nicht so schnell ist wie der Taschenrechner. Und man müsste schon sehr hartnäckig sein, um zu behaupten, dass ein speziell für einen bestimmten Fall geschriebener Rechner in diesem speziellen Fall nicht schneller ist als ein universelles Prüfgerät.

Auch hier werden die Entwickler von ihren Kunden gefüttert - den Maklerfirmen, die durch ein Heer von Händlern vertreten werden. MTS beliefert seine Kunden - die Märkte - mit Lebensmitteln. Jeder macht sein eigenes Geschäft. Kritisieren Sie sich einfach nicht gegenseitig. Sie können sich gegenseitig mit Respekt und ohne Respektlosigkeit behandeln.

Der Topikstarter hätte fast mit einem Angriff auf die Entwickler begonnen. Mehrmals sagte er, dass dies nicht erlaubt sei. Schließlich begannen auch die Entwickler, über die Stränge zu schlagen und ihr eigenes Ding durchzuziehen. Wir sollten uns gegenseitig respektieren.

 

Zusammenfassend kann ich für mich feststellen, dass der MT5-Tester/Optimierer ein MUSS ist, auch wenn er für einige spezielle Fälle (sowohl persönlich als auch angewandt) nicht anwendbar ist, denn nichts ist perfekt. Tk.

Für mich persönlich war die Diskussion nützlich. Zumindest wurde mir klar, dass aus Sicht der Entwickler die von ihnen implementierte Lösung die beste ist. Die Tatsache, dass jemand möglicherweise Milliarden von Fahrten machen muss, ist eine andere Frage. Sie können es selbst tun. Das ist alles. Wir können den MT5-Optimierer nicht in Richtung Leistungssteigerung (auf exorbitante Werte) verändern, das ist nicht real. Sie haben viel getan, fast alles, was in Sachen Leistung möglich ist. Gut für sie.

Ich habe also eine Antwort auf meine nicht rhetorische Frage erhalten.


An hrenfx : Welche Antwort wollen Sie von Renat? Er antwortet so, wie es ein Entwickler tun sollte. IMHO versteht er alles, was Sie sagen. Aber er antwortet nicht Ihnen persönlich - sondern jedem, der ihn liest. Sie sollten also immer die Antworten der Entwickler lesen.


Wir beklagen uns über das Leben, während sie Software nicht für uns persönlich, sondern für die Verbraucher herstellen. Wenn wir ihnen Millionen zahlen würden, würden sie anscheinend Software für uns persönlich herstellen.


Ich danke Ihnen also. Antwort erhalten. :)

 
Academic:

An hrenfx : Welche Antwort wollen Sie von Renat? Er antwortet, wie es sich für einen Entwickler gehört. IMHO versteht er alles, was Sie sagen, sehr gut. Aber er antwortet nicht Ihnen persönlich - sondern allen, die ihn lesen. So sollten Sie die Antworten der Entwickler immer lesen.

Jeder versteht den anderen. Die Gesetze der Wirtschaft wurden nicht aufgehoben...
 
Im Zusammenhang mit dem Thema Qualität und Geschwindigkeit der verschiedenen Universaltester habe ich vergessen, den wirklichen Konkurrenten von MQL5 zu erwähnen - Stock#.
StockSharp торговые роботы. Создание, обучение, разработка торговых роботов.
  • StockSharp
  • stocksharp.com
Библиотека для создания торговых роботов (HFT, Арбитраж и т.д.) Графическая платформа для торговых роботов. Создание и тестирование роботов
 
hrenfx:
In Anbetracht des obigen Themas der Qualität und Geschwindigkeit der verschiedenen Universaltester habe ich vergessen, den wirklichen Konkurrenten von MQL5 zu erwähnen - Stock#.

In der Tat ist die Erstellung eines Data-Crusher oder eines Parsers, wie Sie es nennen, keine einfache Sache.

Wie Sie oben schon bemerkt haben - es ist sinnvoll, von Preisen in Form von Gleitkommazahlen auf Preise in Form von Ganzzahlen umzusteigen, denn erstens reduziert sich dadurch die Speicherkapazität um mindestens das Vierfache, weil USHORT nur zwei Bytes belegt und einen Wertebereich von 0 bis 65535 hat, was selbst für fünf Stellen im Prinzip ausreicht. Es stellt sich also heraus, dass 6553 alte Punkte mehr als genug sind, während DOUBLE 8 Bytes benötigt.


Das heißt, wenn wir zum Beispiel 50 Millionen Ticks auf einem Symbol haben (wenn wir berücksichtigen, dass wir auch die Zeit in USHORT kodieren, erhalten wir die Tickgröße 3*2 = 6 Bytes) 50 * 6 sind also etwa 300 Megabyte. Und in einem Fall, in dem wir den Tick als DOUBLE speichern und selbst wenn die Zeit USHORT ist, erhalten wir 2 * 8 + 2 = 20 Bytes, dann sind 20 * 50 mindestens ein Gigabyte.

Nun, wenn die Zeichen sagen wir 7, ist es in einer Version von 7 * 300 = 2,1 Gigabyte, und die zweite 7 giga. OP. Wenn wir 4 Gigabyte Arbeitsspeicher für 64-Bit-Maschinen als Standard nehmen, stellt sich heraus, dass wir bereits zu 100 % auf Swap umgestellt haben.

Nun, wenn Sie während der Optimierung keine Ticks speichern und sie vor einem Lauf erzeugen, wird dies sicherlich weniger Platz benötigen :)). Aber es wird kein digitaler Roboter mehr sein.


OK - gehen wir noch einen Schritt weiter: Nehmen wir an, wir sind clever und haben Ticks erzeugt. Und sie benötigen 2 Gigabyte Speicher, aber wenn wir klug und fleißig sind, aber keine Erfahrung haben und wenig über hohe Leistung wissen - dann werden wir unseren eigenen "Thread" für jeden Durchlauf vom Anfang der Geschichte bis zum Ende erstellen, und er wird laufen. Aber nur bei der letzten "Dummheit" werden wir etwa das Vierfache an Produktivität verlieren. Denken Sie darüber nach! Viermal so viel - mir geht es natürlich nur um C. Wenn also jemand mehr als einen Super-Performance-Optimierer (kein Tester) haben möchte, bin ich bereit, ein solches Programm zu erstellen. Aber es wird Zeit brauchen, und deshalb will ich Geld. :)

Ich meine, hier habe ich gerade eine SIEBENfache Beschleunigung gezählt.


Das sind etwa 150 Millionen Ticks in 12 Sekunden auf DOUBLE in ganzen Zahlen sogar viermal schneller, d.h. 4 Sekunden laufen alle Ticks auf drei Zeichen von 1999 bis zum heutigen Tag.

Ich habe einen solchen Tester (für MT4-Umgebung sogar mit Unterstützung für Compiler mit MT4 und C++ nativen ein) mit Mehrwährung. Es ist einfach, sie für den Nettohandel umzugestalten. Ich werde nicht mit MT5 kompilieren, ich bin zu faul. Übrigens, es unterstützt MT4 Debugging :)) Direkt im Studio. Ich kann dort verteilte Verarbeitung auf benachbarten Rechnern anbringen, aber ob es einen Leistungsgewinn gibt, werden wir sehen müssen.

Mit Diagrammen, mit Leistungszählern, mit Laden der eigenen Historie ... Es handelt sich also nicht um ein kleines Projekt - schätzungsweise 10.000 Zeilen. :)

 
Academic:

Wenn die Moderatoren nichts dagegen haben, können Sie hier Screenshots von Beispielen Ihres Testers posten. Nehmen Sie einen Standard-EA, konvertieren Sie ihn in einen "All-in-One" (ohne Indikatoren) und lassen Sie ihn in verschiedenen Optimierern laufen, auch in Ihrem eigenen. Die Ergebnisse, zumindest in Form von Bildschirmfotos.

Es macht keinen Sinn, mir meine Strichliste zu zeigen (ich habe es oben schon gesagt), denn sie kann nicht besser als das Wort "Strichliste" bezeichnet werden. Nach Ihrer Aussage haben Sie fast (ich weiß nicht alle) vollwertige Optimierer. Die Entwickler haben ihre Optimierer (sogar zwei von ihnen - MT4 und MT5) ausgelegt. Wir können sie diskutieren und kritisieren. Zeigen Sie uns etwas von sich selbst. Es könnte potenzielle Käufer geben.

Vielleicht haben sogar die Entwickler Bedenken, wenn Ihr Universaloptimierer wirklich viel schneller und mit einem akzeptablen Fehler rechnet.

Es ist auch eine Frage der Indikatoren. Ich persönlich benötige sie nicht zum Schreiben von EAs, aber 99% der Expert Advisors verwenden sie, so dass die Architektur ihres Tester-Optimierers an die Realitäten der Mehrheit angepasst wurde. Daher kann es zu einem gewissen architektonischen Geschwindigkeitsverlust für "all-in-one" kommen (es könnte schneller sein), aber es gibt einen großen Vorteil für Varianten mit Indikatoren (als es sein könnte).

P.S. Ihre Zahlen sind offensichtlich ungenau: Sie können nicht eine Geschichte in INT haben, die 2,1 GB belegt, und eine Geschichte in DOUBLE, die 7 GB belegt. Die Differenz sollte immer genau 2 (USHORT reicht nicht aus) mal sein. Die Umstellung auf ganzzahlige Arithmetik mit Preisen bietet einen erheblichen Vorteil, wenn die gesamte Logik in einem EA durch ganzzahlige Logik ersetzt werden kann. Das kommt nicht sehr oft vor.

 
hrenfx:

Wenn die Moderatoren nichts dagegen haben, können Sie hier Screenshots von Beispielen Ihres Testers posten. Nehmen Sie einen Standard-EA, konvertieren Sie ihn in einen "All-in-One" (ohne Indikatoren) und lassen Sie ihn in verschiedenen Optimierern laufen, auch in Ihrem eigenen. Die Ergebnisse, zumindest in Form von Bildschirmfotos.

Es macht keinen Sinn, mir meine Strichliste zu zeigen (ich habe es oben schon gesagt), denn sie kann nicht besser als das Wort "Strichliste" bezeichnet werden. Nach Ihrer Aussage haben Sie fast (ich weiß nicht alle) vollwertigen Optimierer. Die Entwickler haben ihre Optimierer (sogar zwei von ihnen - MT4 und MT5) ausgelegt. Wir können sie diskutieren und kritisieren. Zeigen Sie uns etwas von sich selbst. Es könnte potenzielle Käufer geben.

Vielleicht haben sogar die Entwickler Bedenken, wenn Ihr Universaloptimierer wirklich viel schneller und mit einem akzeptablen Fehler rechnet.

Es ist auch eine Frage der Indikatoren. Ich persönlich benötige sie nicht zum Schreiben von EAs, aber 99% der Expert Advisors verwenden sie, so dass die Architektur ihres Tester-Optimierers an die Realitäten der Mehrheit angepasst wurde. Daher kann es einen gewissen architektonischen Geschwindigkeitsverlust für "all in one" geben (es könnte schneller sein), aber es gibt einen großen Vorteil für Varianten mit Indikatoren (als es sein könnte).

P.S. Ihre Zahlen sind offensichtlich ungenau: Sie können nicht eine Geschichte in INT haben, die 2,1 GB belegt, und eine Geschichte in DOUBLE, die 7 GB belegt. Die Differenz sollte immer genau 2 (USHORT reicht nicht aus) mal sein. Die Umstellung auf ganzzahlige Arithmetik mit Preisen bietet einen erheblichen Vorteil, wenn die gesamte Logik in einem EA durch ganzzahlige Logik ersetzt werden kann. Das kommt nicht sehr oft vor.

Nun, wenn Sie denken, dass USHORT nicht ausreicht, dann ja. Meiner Meinung nach wird es aber ausreichen. Außerdem brauchen Sie nicht das Doppelte - FLOAT ist halb so viel und schneller.

Und was ist mit Fellen - dann :

Ja, okay - ich zeige es Ihnen, wenn ich Zeit habe, aber keine Skins - da es sich nicht um eine Fensteranwendung handelt, aber ich zeige etwas wie ein Video.

Käufer wird es meiner Meinung nach nicht geben. :) Und im Sommer, wenn die Zeit reif ist, werde ich es in ein Netz umwandeln und es zum Verkauf anbieten. Ich werde eine Website in englischer Sprache erstellen und sie aufschalten. Ich denke, damit ist es verkauft :) (Ich bin eigentlich schon lachen - hier habe ich nicht in das Leben sharavara toloko engagiert) wird für 30-50 Pfund sein. Aber es ist interessant - denken Sie darüber nach: Sie schreiben es auf MT4 und debuggen es im Studio :) :)


Wenn ein solcher Indikator auf einem Symbol mit denselben Parametern vorhanden ist, wird er nicht neu berechnet. Aber um ehrlich zu sein, weiß ich nicht mehr, was genau nicht da ist, aber alles ist da, was in MT4 notwendig ist. Und die Ticks kommen von jedem Symbol im EA, auf dem der Test läuft, und nicht nur von dem Symbol, auf dem der EA läuft, wie jetzt im MT5.

Da fällt mir ein - es gibt sogar Bibliotheken und Export ... Nun, es gibt alles. :)

 
Die Umrechnung von Preisen in ganzzahlige Werte hat keine besonderen Vorteile. Ja, es verringert effektiv die Lautstärke, aber es verliert oft die Geschwindigkeit aufgrund der unvermeidlichen Umkodierung in Double. Das ist unvermeidlich, denn es ist unmöglich, das gesamte System ganzzahlig zu machen, die berechenbare Mathematik muss immer noch in Double (was nicht einmal genau genug ist) durchgeführt werden.

Ganzzahlige (und auch kurze) Daten können nicht für Divisions- und Multiplikationsoperationen verwendet werden. Wo sind 15-stellige Nachkommastellen zu speichern? Ebenso ist es gefährlich und selbstmörderisch, den Float zu verwenden, der absolut nicht präzise ist. Die Menge der kumulierten Fehler in Float ist so groß, dass man sie niemals zur Berechnung von Indikatoren verwenden sollte.

Anfänger in der Entwicklung sind sich dessen nicht bewusst. Sie sehen noch nicht das ganze Ausmaß der Komplexität.
 
Renat:
Die Umwandlung von Preisen in Ganzzahlen hat keinen besonderen Vorteil. Ja, das Volumen wird effektiv reduziert, aber in vielen Fällen geht die Geschwindigkeit durch die unvermeidliche Umwandlung in das Doppelte verloren. Das ist unvermeidlich, denn es ist nicht möglich, das gesamte System ganzzahlig zu machen, die berechenbare Mathematik muss immer noch in doppelter Ausführung erfolgen (deren Genauigkeit nicht einmal ausreichend ist).

Ganzzahlige (und auch kurze) Daten können nicht für Divisions- und Multiplikationsoperationen verwendet werden. Wo sind 15-stellige Nachkommastellen zu speichern? Ebenso ist es gefährlich und selbstmörderisch, einen Float zu verwenden, der völlig ungenau ist. Die Menge der kumulierten Fehler in Float ist so groß, dass man sie niemals zur Berechnung von Indikatoren verwenden sollte.

Anfänger in der Entwicklung sind sich dessen nicht bewusst. Sie sehen nicht das ganze Ausmaß der Komplikationen.
In "diesem" Optimierer ist alles dasselbe wie in Ihrem Fall - Fehler. Aber was Sie über die Unmöglichkeit der Nutzung sagen - nun, vielleicht. Obwohl... ? - Preis in Pips, Indikatoren in Pips, alles in Pips ... Nur das, was jeweils einem PUNKT entspricht, kann unterschiedlich sein - das heißt, wir haben eine Zahl, die einer bestimmten Art zugeordnet ist (Kühe, Kilometer usw.), und sie hat ihre eigenen Punkte. In ganzen Zahlen ist also alles perfekt gelöst. Das ist der Punkt, an dem Sie sich irren. :)