Interessantes Thema für viele: was ist neu in MetaTrader 4 und MQL4 - große Änderungen auf dem Weg - Seite 57

 
hrenfx:

Dies ist die Aufgabe eines geeigneten Algotraders, nicht eines Testers.

naja)) D.h. wenn ich mit einem größeren Lot oder einer anderen Einstiegs-/Ausstiegsmethode testen möchte, muss ich manuell einen neuen benutzerdefinierten Verlauf erstellen).

Ein grobes Beispiel für einen benutzerdefinierten Verlauf sind die verschiedenen Testmodi in MT4. Bei Eröffnungskursen wird eine Reihe von Historien (Eröffnungskurse) vorbereitet, bei anderen Modi - andere.

Es werden Indikatoren verwendet und ein Array mit einem berechneten Wert für jeden Balken (wenn optimiert, werden mehrere Indikatoren verwendet).

Wir sollten die Liquidität und die Art der verwendeten Aufträge berücksichtigen, und die Historie kann entsprechend automatisch aufgebaut/vorverarbeitet werden. Das Wichtigste ist der Ausgangsrohstoff.

 
Avals:

naja)) D.h. wenn ich mit einem größeren Los oder einer anderen Einstiegs-/Ausstiegsmethode testen möchte, muss ich manuell eine neue benutzerdefinierte Geschichte erstellen))

Ganz genau! Bitte beachten Sie, dass es sich hier nicht um einen indikativen Verlauf handelt, der vom Kampfroboter gesehen wird, sondern um einen benutzerdefinierten Verlauf für die Ausführung im Prüfgerät. Offensichtlich führt die Änderung der Volumina in TS zu einer Änderung der Ausführungsgeschichte. Oder, zum Beispiel, eine Änderung des Ping - in ähnlicher Weise.

Die Erstellung der Ausführungsgeschichte während der Prüfung ist absurd. Aus diesem Grund müssen wir das Ergebnis mit reinvest-TC richtig einschätzen. Denn wenn das Volumen im laufenden Betrieb zunimmt, ändert (verschlechtert) sich die Ausführungshistorie. Und da es unmöglich ist, die Dynamik der Veränderungen des Arbeitsvolumens im Voraus vorherzusagen, ist es auch problematisch, die Ausführungsgeschichte im Voraus zu erfassen. Aber gerade wegen dieser Nuance würde niemand, der bei klarem Verstand ist, die Ausführungshistorie in einem Echtzeit-Tester erstellen.

Auch hier ist die goldene Mitte wichtig.

Sie brauchen natürlich nicht so einen Tanz mit Tamburin, wie jeder praktisch. Aber es gibt TCs, bei denen man auf das Tanzen nicht verzichten kann.

Um das Maximum aus ihrer TK herauszuholen, müssen Sie sich sehr anstrengen. Fast niemand tut dies, weil er mit dem zufrieden ist, was er bekommt.

 
hrenfx:

Ganz genau! Beachten Sie, dass es sich nicht um den indikativen Verlauf handelt, den der Kampfroboter sieht, sondern um den benutzerdefinierten Verlauf für die Ausführung im Prüfgerät. Es ist offensichtlich, dass eine Änderung der Mengen im TS zu einer Änderung der Ausführungshistorie führt. Oder, zum Beispiel, eine Änderung des Ping - in ähnlicher Weise.

Die Erstellung der Ausführungsgeschichte während der Prüfung ist absurd. Aus diesem Grund müssen wir das Ergebnis mit Reinvest-TC richtig schätzen. Denn wenn das Volumen im laufenden Betrieb zunimmt, ändert sich auch die Ausführungshistorie (verschlechtert sich). Und da es unmöglich ist, im Voraus die Dynamik der Veränderungen des Arbeitsvolumens vorherzusagen, ist es auch problematisch, die Ausführungsgeschichte im Voraus zu erfassen. Aber gerade wegen dieser Nuance würde niemand, der bei klarem Verstand ist, die Ausführungshistorie in einem Echtzeit-Tester erstellen.

Auch hier ist die goldene Mitte wichtig.

Sie brauchen natürlich nicht so einen Tanz mit Tamburin, wie jeder praktisch. Aber es gibt TCs, bei denen man auf das Tanzen nicht verzichten kann.

Um das Maximum aus ihrer TK herauszuholen, müssen Sie sich sehr anstrengen. Fast niemand tut dies, weil er mit dem zufrieden ist, was er bekommt.

Und es gibt keine Notwendigkeit, mit Reinvestition zu testen)) solche Dinge nur mit Level2 ohne jegliche Vorverarbeitung (entweder manuell oder automatisch). In anderen Fällen kann das Ausführungsvolumen genau genug berücksichtigt werden. Dies kann natürlich nur im realen Handel ohne Einfluss auf den Markt durch eigene Aufträge abgeschätzt werden.

Es gibt 2 globale Möglichkeiten, echte Zecken zu verwenden:

1. Das Terminal speichert Ticks und verarbeitet sie vor der Prüfung vor, um Ressourcen zu sparen.

2. Der Benutzer speichert die Zecken, komprimiert sie selbst (aber nach den Anweisungen des Testers) und gibt sie dem Tester. Zum Beispiel, wie jetzt in mt5, aber tf<1min. Dann können Sie sich an Ihren Bedürfnissen orientieren.

Ich denke, die meisten werden mit jeder dieser Optionen zufrieden sein.

P.S. Aber MQ verdient nicht an denjenigen, die ihre Strategien im MT5 testen, sondern an Brokern und DCs. Letzteren geht es darum, durch sie zu handeln, und es ist ihnen egal, wen und wie sie testen. Das heißt, sie kümmern sich um das Handelsterminal, nicht um den Tester. Aber die Popularität der Plattform hängt vom Tester ab, und damit auch von der Wahl des Brokers) Das Dilemma - benutzerdefinierte Historie und genauere Tests werden die Nutzer etwas vom DC/Broker lösen (was letzteren nicht gefallen wird), aber es wird die Popularität der Plattform etwas erhöhen. Was profitabler ist, hängt von MQ ab)

 

Sie sind einfach nicht mit dem Bild des durchschnittlichen Terminalnutzers vertraut, weshalb Sie ein so verzerrtes Bild davon haben, was die Popularität der Plattform beeinflusst.

Renat macht fast alles richtig, um das Massenprodukt unter den Händlern bekannt zu machen. Ja, es gibt viele Einschränkungen, aber der durchschnittliche Nutzer spürt sie nicht einmal.

Der durchschnittliche Makler ist auch ein dummes Wesen. Und sie richtet sich bestenfalls an den Durchschnittsnutzer.

Das große Geld in FOREX steckt in plattformunabhängigen Plattformen mit fortschrittlichen Ansätzen zur Aggregation. Wir müssen die Handelsbedingungen verbessern, um das Volumen zu erhöhen.

Vergleichen Sie einfach, welches System potenziell mehr Geld hat:

  1. Sie erheben von den Brokern eine Gebühr für die Nutzung ihrer Plattform.
  2. eine Provision (vom Umsatz) von etwaigen Maklern + Institutionen für die Nutzung der Plattform erheben.

Da keine gleichen Wettbewerbsbedingungen herrschen, lässt LMAX die Privatkunden im Stich und wendet sich dem zweiten System zu, um der beste LP zu werden und mit EBS und anderen zu konkurrieren. Verlagerung des Einzelhandels zu ihren IBs mit MT4/5 und anderen Plattformen.

Wer es mit dem Algotrading ernst meint, ist nicht auf Handelsplattformen angewiesen.

 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Wer unterstützt MT5

MetaDriver, 2013.08.13 01:36

Wenn der Zuwachs an Kunden größer ist als der Verlust bei der Umsetzung, handelt es sich eindeutig um eine Miete. Wenn der Kundenzuwachs größer ist als der Verlust bei der Implementierung, ist es bereits eindeutig profitabel.

Im Gegenteil.
 
hrenfx:

Sie sind einfach nicht mit dem Bild des durchschnittlichen Terminalnutzers vertraut, weshalb Sie ein so verzerrtes Bild davon haben, was die Popularität der Plattform beeinflusst.

Renat macht fast alles richtig, um das Massenprodukt unter den Händlern bekannt zu machen. Ja, es gibt viele Einschränkungen, aber der durchschnittliche Nutzer spürt sie nicht einmal.

Der durchschnittliche Makler ist auch ein dummes Wesen. Und sie richtet sich bestenfalls an den Durchschnittsnutzer.

Das große Geld in FOREX steckt in plattformunabhängigen Plattformen mit fortschrittlichen Ansätzen zur Aggregation. Wir müssen die Handelsbedingungen verbessern, um das Volumen zu erhöhen.

Vergleichen Sie einfach, welches System potenziell mehr Geld hat:

  1. Sie erheben von den Brokern eine Gebühr für die Nutzung ihrer Plattform.
  2. eine Provision (vom Umsatz) von etwaigen Maklern + Institutionen für die Nutzung der Plattform erheben.

Da keine gleichen Wettbewerbsbedingungen herrschen, lässt LMAX die Kleinanleger im Stich und geht zum zweiten Schema über - um der beste LP zu sein und mit EBS und anderen zu konkurrieren. Verlagerung des Einzelhandels zu ihren IBs mit MT4/5 und anderen Plattformen.

Wer sich ernsthaft mit Algotrading beschäftigt , ist nicht auf Handelsplattformen angewiesen.

Die beiden Optionen werden durch zwei Weltanschauungen gut veranschaulicht.

Der eine sagt, man solle die Umgebung aktivieren, der andere, man solle alles so einfrieren, wie es ist. Demokraten und Republikaner, Liberale und Konservative.

Die erste Option (mit einer Abonnementgebühr) zwingt den Makler dazu, seine Kunden auf dem Laufenden zu halten und sie zum Handel zu ermutigen (die Abonnementgebühr muss zurückgezahlt werden), andernfalls erleidet der Makler Verluste, und es ist fraglich, ob er weiterhin Teil des Marktplatzes bleibt.

Die zweite Option spielt keine Rolle, denn selbst wenn in einem Monat kein einziger Handel getätigt wird, ist der Broker immer noch ein Nutzer der Plattform (keine Transaktionen, keine Kosten).

Die Frage, was besser ist, stellt sich immer wieder. Es gibt Zeiten, in denen das eine besser ist, und Zeiten, in denen das andere besser ist.

 

Ich musste mein Prüfgerät für einen neuen Beruf verbessern. Den Code des alten Systems zu verstehen, hat mehr Zeit gekostet (ich habe mehrere Wochen mit gelegentlichen Versuchen vergeudet), als ein neues System zu schreiben.

Ich habe also 5 Stunden (mit Fehlersuche) gebraucht, um einen neuen Tester von Grund auf zu schreiben. Seine Merkmale (befriedigen mich für den Anfang):

  • Funktioniert mit dem M1 HighBid + LowAsk Wettmodell (die Ergebnisse sind genauer als die des MT5-Testers).
  • Ein Symbol.
  • Geschwindigkeit (i7 2700K) etwa 100.000.000 Balken pro Sekunde (277 Jahre FOREX pro Sekunde) auf dem Test-TS - nicht leer, viele Dinge berechnet. Ständig auf dem Markt.
  • Kein MM - keine Lose.
  • Gewinn nur in Pips.
  • Der Händler hat die Möglichkeit, die Slippage und die Kommission zu kontrollieren.
  • Optimierer mit eigenen Optimierungskriterien - für jedes dieser Kriterien wird eine eigene Datei (kann mehrere GB groß sein) mit sortierten Zeichenfolgen von Geschäften geöffnet.
  • Es gibt keine Fehlerprüfungen im Tester - ich kenne alle Feinheiten meines Testers, also lasse ich sie nicht zu.
  • TS ist in einem leicht verkürzten MQL4 geschrieben - alle unnötigen Dinge wurden entfernt. Aber Sie können die gesamte Leistungsfähigkeit von C++ nutzen.
  • Der Tester ist ohne OOP geschrieben - ich weiß nicht, wie man das kompetent macht. Es ist also praktisch eine reine C-Sprache.
  • Quellcode in freiem C++~ 20Kb.
  • Haltestellen und Marktplätze wurden gestrichen (OrderClose wurde belassen) - nicht notwendig.
  • Jeder Lauf (nach Wahl - Laufnummer angeben) kann im Mathematikpaket visualisiert und studiert werden - Equity and Balance changes file wird einfach geschrieben.
  • Keine Genetik.
  • Kein OpenCL - kann es nicht tun.
  • Einfädig. Lädt alle Kerne dumm - mehrere Optimierer werden manuell ausgeführt.
  • Konsolenanwendung.
  • TC-Eingangsparameter, Testereinstellungen und Optimierungsbereiche werden in der Datei festgelegt.
  • TC wird zusammen mit dem Tester in eine EXE-Datei kompiliert.
  • Vor dem Start gibt es nur drei Dateien: EXE, Verlauf, Einstellungen.
  • Der Optimierer hat eine Unterbrechung des Laufs, wenn der aktuelle Zustand des Laufs die Bedingungen nicht erfüllt (z.B. Setzung zu hoch).
  • Das MQL4-Skript bereitet die Geschichte für den Tester vor, es wurde vor langer Zeit geschrieben.
  • Keine dynamische Zuweisung von Speicher für die Auftragstabelle - einmal zugewiesener Speicher und vergessen.
  • Keine Protokolle - ich sehe sie mir nicht an.
  • Keine Auftragshistorie - auf dieselbe Weise.
  • Es gibt keine Idee über Indikatoren und alles, was mit ihnen zu tun hat - wir brauchen sie nicht für TS.
  • Die Preise sind ganzzahlig (long int).

Wenn derselbe Unsinn in MQL5 implementiert ist, können wir Cloud im Modus der Matrixoptimierung verwenden. Nur der Verlauf muss jedes Mal gesendet werden - die eingebaute Komprimierung solcher Informationen ist erforderlich.

Theoretisch kann eine Geschwindigkeit von ~ 100 Bb/s (beim Test-TS) erreicht werden. Ich frage mich, was ist die Leistung der MT5-Tester auf die gesamte Wolke in den gleichen Papageien?

100 Milliarden Balken pro Sekunde sind eine gute Geschwindigkeit für alle Arten von Forschung. In andere Einheiten umgerechnet, bedeutet diese Geschwindigkeit, dass ein Jahr mit einer Minute FOREX-Geschichte ~300.000 Mal pro Sekunde auf einem Symbol durchlaufen wird.

Die meiste Zeit habe ich damit verbracht, die Syntax der Sprache zu lernen, indem ich sie einfach gegoogelt habe. Ich bin kein Programmierer.

Ich sage Ihnen gleich, dass es eine riesige Zeitverschwendung ist, einen universellen Rahmen für Ihre eigenen bescheidenen Bedürfnisse zu schreiben. Besser zu erkunden. Wenn etwas berücksichtigt werden muss, fügen Sie es einfach hinzu.

Dies ist nur ein Kern, jetzt brauchen Sie ein schlaues Toolkit für den Optimierer. Hier braucht man wesentlich mehr Zeit - man muss nachdenken.

The Dev-C++ Resource Site
  • Hongli Lai
  • www.bloodshed.net
Dev-C++ is Free Software distributed under the GNU General Public License. This means you are free to distribute and modify Dev-C++, unlike most Windows software! Be sure the read the license. Donations Please support Dev-C++ by making a donation ! The money will be shared between the active developers and the support manager in order to...
 
hrenfx:
  • Geschwindigkeit (i7 2700K) um 100.000.000 Balken pro Sekunde (277 Jahre FOREX pro Sekunde) auf dem Test-TS - nicht nichts, es wird viel berechnet. Ständig auf dem Markt.

Vergessen Sie vor allem nicht, die Zeit für das Lesen von der Festplatte zu addieren.

Die Zahl von 100 000 000 Balken ist sehr erfreulich, insbesondere mit der Klarstellung, dass es HighBid + LowAsk gibt (d.h. nein). Oder gibt es nur 100 000 Balken?

Analysieren Sie die Testergebnisse in Excel? In einer Sekunde rechnen und eine Stunde lang auf Excel schauen?


Zum Vergleich, der MetaTrader 5 Tester auf M1 auf Openbar, ohne Indikatoren, aber mit allem Gepäck und Dienstleistungen (die Sie nicht mit gestört haben), einschließlich GUI-Animation und Heben der gesamten Basis von der Festplatte:

  • EURUSD,M1: 19.538.553 Ticks (5.180.083 Balken) erzeugt innerhalb von 7906 ms

was etwa 2,4 Millionen Ticks pro Sekunde bei einem ähnlichen i7 ergibt.

 
Renat:

Das Wichtigste ist, dass Sie nicht vergessen, das Lesen von der Festplatte zur Zeit hinzuzufügen.

Diese Zeit ist nutzlos, da sie keine Auswirkungen auf die Optimierung hat. Jetzt, wo Sie SSD haben, können Sie auch RAM-Drive einrichten. Kurzum, diese Zeit ist nicht von Nutzen.

Die Zahl von 100 000 000 Balken ist sehr angenehm, vor allem wenn man angibt, dass es HighBid + LowAsk gibt(d.h. nein). Oder gibt es nur 100 000 Balken?

Warum ist das nicht der Fall? Für den Test TS habe ich nur ein paar hunderttausend Takte verwendet. D.h. 100 Millionen Balken pro Sekunde ist die Optimierungsgeschwindigkeit. Die Dauer der anfänglichen Geschichte ist also für diesen Parameter nicht von Bedeutung.

Zum Beispiel wird die anfängliche Geschichte von 100 000 Takten 1000 Mal pro Sekunde im Optimierer durchlaufen - das bedeutet eine Geschwindigkeit von 100 Millionen Takten pro Sekunde.

Analysieren Sie die Testergebnisse in Excel? In einer Sekunde rechnen und eine Stunde lang auf Excel schauen?

Excel ist Mist (kenne es nicht wirklich einfach). In Matrixpaketen ist es elementar, das Ergebnis eines Laufs zu drehen und zu wenden. Sie brauchen das Matrixdokument selbst nicht zu ändern. Nahezu alle Merkmale von TC geben auf der Stelle nach. Dies ist viel fortschrittlicher und effizienter als die Analyse in einem MT5-Tester oder in jedem anderen Tester.

Übrigens hat der MT5-Tester keine Filter für die Optimierungsergebnisse. Ich tat es sofort (ohne GUI, aber es ist 100% gerechtfertigt) . Ich habe zum Beispiel die Läufe nach Gewinn sortiert. Ich habe den Filter nach Drawdown eingestellt, und alles ist klar: Die Zeile darunter ist immer ein Lauf mit weniger Drawdown als die darüber. Eine sehr effektive Methode - ich empfehle Ihnen, sie in Ihren Tester zu implementieren.

Zum Vergleich, MetaTrader 5 Tester auf M1 auf Openbar, ohne Indikatoren, aber mit allen Gepäck und Dienstleistungen (die Sie nicht die Mühe mit), einschließlich GUI-Animation und Heben der gesamten Basis von der Festplatte:

  • EURUSD,M1: 19.538.553 Ticks (5.180.083 Balken) erzeugt innerhalb von 7906 ms

was ungefähr 2,4 Millionen Ticks pro Sekunde auf einem ähnlichen i7 ergibt.

Geben Sie lieber die Optimierungsgeschwindigkeit an (siehe oben) - theoretisch sollte sie für Sie höher sein. Ich bin mir nicht ganz sicher, warum die Ticks im Openbar-Modus erzeugt wurden?

Übrigens, schlägt MT4 noch (und wenn ich MQL4 Code-Beschleunigung berücksichtigen?) die Geschwindigkeit von MT5 im Openbar-Modus in der Optimierung oder nicht?

 

Ich verstehe, es geht also ausschließlich um den Zyklus for(i=0;i<100000;i++) { microdevice(); }, die Kosten für alles andere werden verworfen.

In diesem Fall gibt es keine nennenswerten Geschwindigkeitseffekte. Denn auf einer solchen Bare-Metal-Engine kann man nicht einmal eine Optimierungsaufgabe starten. Sie können keine Forschung starten. Man steht sofort vor dem Problem, dass man für eine sinnvolle Aufgabe Indikatoren, bequeme Analysemechanismen, mathematische Funktionen und so weiter braucht".

Über Matpackages, wo man alles, was man will, spinnt - auch aus dem gleichen Thread, wie "Ich merke den Overhead nicht". Nichts in Matpackages (wie viel kosten die übrigens?) wird gesponnen, alles muss von Hand gemacht werden, schlimmer als Excel. Ganz zu schweigen davon, dass man mit einem Knopfdruck alle Trades korrekt auf dem Preisdiagramm sieht.

Wir sind noch dabei, die wichtigsten Punkte der offenen Balken zu überprüfen und zu überlagern. Und ja, wir simulieren die Entwicklung der Geschichte aus Gründen der Genauigkeit und weil wir nicht in die Zukunft schauen können. Wir haben keinen schmutzigen "Geh durch die Balken, wie es ist"-Modus, Sie drücken einfach ein Auge zu, dass in Ihrem Fall der volle Balken ganz liegt, Sie schauen nur auf den Eröffnungskurs und schützen sich so vor einem Blick in die Zukunft. Können Sie sich vorstellen, wie man uns nennen würde, wenn wir einen Modus einführen würden, mit dem man in die Zukunft schauen kann? Ganz genau.

MT4 ist architektonisch schneller als MT5, da der Tester in das Terminal integriert ist und keine Overhead-Kosten für die Übertragung der gesamten Marktumgebung an einen Drittanbieterprozess über TCP/IP, das Entpacken der gut komprimierten Historie auf dem Agenten, die Durchführung des Tests, die Weiterleitung von Protokollen und Status an das Terminal und die Rückgabe der Ergebnisse anfallen.

Erstaunlich ist, dass Sie seit so vielen Jahren über Arbitrage, Scalping, Vortexing von Micropips im Tick-Flow berichten, unsere Tester kritisieren und uns jetzt einen For-Bar-Zyklus mit zwei Bid/Ask-Kursen zeigen.