Wednesday, 8 November 2017

Fxt File Metatrader Forex


MetaTrader 4 - Tester Tester im Terminal MetaTrader 4: Es sollte bekannt sein Einleitung Die Arbeit auf den Finanzmärkten ist ohne ein Handelssystem nicht möglich. Trader verbringen viel Zeit und Mühe, Regeln für das Öffnen und Schließen von Positionen zu entwickeln, empirisch wählen Methoden, diese Positionen durch Trailing Stop zu modifizieren. Hier werden Wissen aus verschiedenen Fachgebieten eingesetzt. Und wenn die Strategie erstellt wird, ist das erste, was zu tun ist, das mechanische Handelssystem (MTS) auf historische Daten zu testen. Es bedeutet, dass der Tester die wichtigste Komponente eines jeden Programms wird. Zwei Arten von Modellierung: Nicht alle Programme für die technische Analyse (TA) haben die Möglichkeit, zu testen, so viel nicht jedes Terminal Auch wenn ein Programm wird angegeben, um ein Tester haben und hat die Möglichkeit zu testen, kann es Fehler oder architektonische Einschränkungen und haben Verbote. Deshalb war es während der Testerentwicklung für das Terminal MetaTrader 4 sehr wichtig, die architektonischen Lösungen vorwegzunehmen, die das Vorhandensein einer ganzen Klasse von Strategien, die auf dem Wissen der Zukunft basieren, behindern würden. Es gibt zwei Möglichkeiten, eine Strategie zu testen: Basierend auf den bereits komponierten Balken, bereiten Sie im Voraus eine Datendatei vor, die alle erforderlichen Werte von Preisen, Indikatoren und anderen Parametern enthält und diese Datei dann an den Tester sendet Die notwendige Sequenz mit theoretischer Möglichkeit, in die Zukunft einzutauchen). Die Informationen werden in Form von bereits komponierten Stäben empfangen, ohne die Bildung von Preisschienen zu modellieren, eine Datei mit nur modelliertem Preis vorzubereiten und die Preisänderungen (Preis-Ticks) wie im wirklichen Leben in den Testereintrag zu senden. Hier hat der Tester keine Zukunft. Das Dreieck Current Time bezeichnet einen Ort, an dem sich der Tester zum gegenwärtigen Zeitpunkt befindet. Im ersten Fall sehen wir die vergangene Zeit (Last), wo der Tester Daten verarbeitet hat, und die zukünftige Zeit (Future), in der das Tester arbeitet. Sowohl Vergangenheit als auch Zukunft sind bereits berechnet (Indikatoren, Schlusskurs, offener Preis, Hoch und niedrig), der Tester folgt dieser Reihenfolge. Und wenn es eine Möglichkeit gibt, die Zukunft (real oder fehlerhaft) zu sehen, bedürfen die Ergebnisse der Prüfung einer gründlichen Überprüfung. Und das Schließen bereits bekannter Möglichkeiten stellt sicher, dass es keine anderen Möglichkeiten gibt. Dies ist schließlich ein konstantes Problem für einen Testerentwickler oder Testerbenutzer. Im zweiten Fall haben wir nur die vergangene Zeit (Last), es gibt keine Zukunft (ein dunkles Quadrat). In diesem Ansatz haben wir immer die Informationen nur über die Vergangenheit, und keine Informationen über die Zukunft, wie im realen Handel. Mit jedem neuen Tick (Preisänderung) im Tester bewegen wir uns in der Gegenwart, das aktuelle-Dreieck bewegt sich nach rechts auf die neue bekannte Zeit und erhält neue Preise. Jede neue Tick schafft die Gegenwart, erhöht die Informationen über die Vergangenheit und hat noch dunkel unbekannte Zukunft vor sich. In diesem Fall hat der Tester keine Möglichkeit, eine Zukunft zu sehen, unabhängig von Fehlern, die ein Händler beim Schreiben einer Strategie begehen könnte. Genau das ist der Unterschied zwischen zwei Ansätzen. Der erste Ansatz zur Erstellung des Testers liefert die illusionäre Einfachheit und Schnelligkeit der Tests, die zweite gibt die Gewissheit, dass sich alle schriftlichen Strategien absolut genauso verhalten werden wie im Echtzeithandel zu gleichen Preisveränderungen. Deshalb werden die für den Tester modellierten Sequenzen als Dateien gespeichert, die Snapshots des Barstatus (fxt-Datei) enthalten, die über das Menü Datei - gtgt Open Offline wie ein übliches Diagramm geöffnet werden können. Die Testerdateien sind durch ein Symbol mit dem Buchstaben G gekennzeichnet und geben die Informationen über die Modellierung, den Bereich der modellierten Preisänderungen, die Anzahl der Balken und den Zeitrahmen an: Wenn wir zB die Datei EURUSD M15 öffnen, werden wir Sieht den Weg, ein 15-Minuten-Bar wurde für den Tester modelliert: Das Bild zeigt den Fortschritt einer Bar in der 15-Minuten-Zeitrahmen. Beim Testen eines Expert Advisor hat der Tester diesen 15-minütigen Leuchter (2006.04.21 10:00) genau in einer solchen Sequenz gesehen. Die Anzahl der Preisänderungen auf einem Minutenbalken ist gleich der Anzahl der Leuchteränderungen während des Testens. So sieht der Tester zu jedem Zeitpunkt einen korrekten Preis Open (der fest ist und gleich Open0 ist), korrekte maximale und minimale Preise (die sich während des Zeitraums des Bar-Fortschritts ändern können), gleich dem aktuellen High 0 und Low0 , Und das letzte bekannte Preisangebot. Gleich dem aktuellen Preis Close0. Die sich ändert, bevor die Bar schließt. Volumes werden auch maximal korrekt modelliert, was aus dem wachsenden grünen Histogramm von Volumes, wie auf einem einfachen Graphen, offensichtlich ist. Die rote unterbrochene Linie steht für den Indikator Moving Average (einfach gleitender Durchschnitt) mit der Periode 1. Dieser gleitende Durchschnitt zeigt die Position von Close zu jedem Zeitpunkt während des Testens. Wichtig Der Tester in MetaTrader 4 verarbeitet jede Preisänderung und lässt keine Wege in die Zukunft. Modellierung auf unterschiedlichen Zeitrahmen eines Symbols getestet Das Tester in MetaTrader 4 ermöglicht es, nicht nur den getesteten Zeitrahmen, sondern auch andere - höhere und niedrigere - Zeitfenster zu sehen. So können wir, wenn wir einen Expertenratgeber zum Zeitrahmen EURUSD M15 testen, die Werte der Indikatoren für EURUSD H1 oder EURUSD M5 sehen. Wir können auch die maximalen und minimalen Preise der aktuellen Null-Bar auf jeder verfügbaren Zeit EURUSD sehen. Wenn wir den maximalen Preis des laufenden Tages erreichen wollen, so sehen wir einfach den Wert iHigh (NULL, PERIODD1,0). Es ist wie im Online-Handel. Und es macht keinen Unterschied, in welchem ​​Zeitraum wir den Expert Advisor testen oder auf dem Diagramm, in welchem ​​Zeitrahmen es im Echtzeit-Modus angeschlossen ist. Die Aufgabe des Testers besteht also darin, nicht nur den aktuellen Zeitrahmen, sondern auch alle anderen notwendigen Zeitrahmen korrekt zu modellieren. Diese Aufgabe wird im Tester folgendermaßen gelöst: nicht nur der Balkenfortschritt auf der aktuellen Nullleiste wird modelliert, sondern auch alle anderen Zeitrahmen werden auf die gleiche Weise modelliert. Der Empfang jedes neuen Häkchens ändert die Informationen über den Null-Bar-Zustand auf jeden Zeitrahmen, alles wird synchron durchgeführt. Hier ist ein Bild: Die blaue Farbe zeigt hier die fertiggestellten Balken an, die grüne Farbe - den aktuellen Nullpunkt. Fig. 1 bezeichnen den Empfang eines neuen Häckchens. Jedes Tick wird sofort von allen notwendigen modellierten Zeitrahmen empfangen. Um sicherzustellen, können Sie die Prüfung eines einfachen Expert Advisor CheckModelling. mq4, die Preise für die Tester zu jedem Zeitpunkt angezeigt starten. Alle angeforderten Zeitrahmen (und nicht nur die Preise, sondern auch die Volumina) sind korrekt modelliert. Das Tester sieht den synchronen Preisfortschritt auf jedem Zeitrahmen, wie im wirklichen Leben: Es ist klar, dass sich der Preis für den 15-Minuten-Zeitrahmen von dem Preis niedrig von höheren Zeitrahmen unterscheidet. Das gleiche ist mit dem Preis hoch. Allerdings ist der Preis Bid auf alle Zeitrahmen die gleiche bei Erhalt eines neuen Tick. Wichtig: alle Zeitrahmen der getesteten Symbole werden auch richtig modelliert - Preise Open, High, Low und Close werden 100 richtig modelliert. Volumina höherer Zeitrahmen werden ebenfalls 100 korrekt modelliert. Modellieren von Preisen auf anderen Symbolen Die Menge der modellierten Daten für einen genauen Test auf dem Verlauf ist manchmal groß und erfordert möglicherweise mehr Speicher - und Prozessorressourcen. Der Tester in MetaTrader 4 erlaubt keine tragfähigen Portfoliotests, aber Computertechnologien werden so schnell entwickelt, dass wir wahrscheinlich bald eine genaue Prüfung komplexer Strategien durchführen können, die Positionen auf zahlreichen Symbolen öffnen. Trotzdem ermöglicht der Tester in MetaTrader 4, Informationen zu Preisen anderer Symbole zu erhalten, die sich von den getesteten unterscheiden. Aber in diesem Fall wird die Modellierung nicht durchgeführt, die Daten werden extrahiert, wie sie ist. Die Nullleiste wird vereinfacht, um am Anfang des Prozesses die folgenden einzugeben: High0Low0Close0Open0, Volume01, die es ermöglicht, den Preis zu Beginn der Leiste zu kennen, aber keinen Preis am Ende. Um sicherzustellen, testen Sie einfach einen einfachen Expertenratgeber auf EURUSD im Modus Jedes Häkchen. Berechnung der Indikatoren während der Modellierung Vor zehn Jahren unzureichende Leistung von Heimcomputern und Arbeitsplätzen setzte Beschränkungen für Software-Entwickler. Eingeschränkter Betriebsspeicher, Prozessorfrequenz unter 100 MHz - all dies erlaubt nur die raumsparendsten Arten der Berechnung und Prüfung von Handelsstrategien. Intrabar-Tests gab es überhaupt nicht, alle notwendigen Indikatoren wurden im Voraus berechnet und in einer fertigen, unveränderlichen Form getestet. Zu dieser Zeit war dies eine einzige Lösung, die ihre Grenzen für die Prüfung gesetzt. Bei dieser Vorgehensweise erhalten wir nur für den Moment des Barschliessens korrekte Indikatorwerte, wobei diese Daten auf der Nullbar eigentlich für die Zukunft tauglich sind. Der Tester in MetaTrader 4 erhält keine berechneten Daten, er erhält nur modellierten Preisfortschritt, und auf der Grundlage der neuen Eingangspreise werden alle notwendigen Indikatoren im Laufe der Tests berechnet. D. h. Alle Indikatoren werden auf die gleiche Weise berechnet wie im Online-Betrieb. Dies ist ein ausreichender Vorteil des Testers, aber wenn der Algorithmus des Indikators nicht optimal ist, kann sich ein EA-Test wesentlich verlangsamen. Die Anzeigeberechnung im Tester ist so schnell wie im Terminal, und ein nicht optimierter Algorithmus kann nicht sichtbar sein. Aber in der Tester MetaTrader 4 während der Berechnung auf Millionen von Bars (eine Minute Geschichte von EURUSD aus 1999 enthält fast drei Millionen Bars) jede Nicht-Optimalität wird offensichtlich. Vergessen Sie nicht, dass jede Tick-Modellierung eines Minuten-Bar gibt nicht einen, sondern mehrere Zecken, die jeweils dann durch die Tester berechnet. Heutzutage besitzen Prozessoren Gigabyte Arbeitsspeicher und mehrere Gigahertz-Frequenz, 32-Bit-Architektur wird durch 62-Bit-Systeme ersetzt, sogar Multiprocessing erschien. Aber es gibt noch viele Leute, die mit den Kategorien des letzten Jahrhunderts arbeiten und alle Nachteile der TA-Programme und Entwickler der Vorgängergeneration auf MetaTrader 4 Tester beziehen. Solche Menschen befürchten intrabar Modellierung, sie halten es für eine falsche Tester Operation. Der Tester in MetaTrader 4 beweist nicht nur die Möglichkeit einer korrekten Preismodellierung auf jeden Zeitrahmen, sondern auch die Notwendigkeit exakt dieser Vorgehensweise in der geschichtebasierten Strategieprüfung. Sie können das Video anschauen und den Preisverlauf und die Indikatorberechnung im Tester abschätzen: Wichtig. Führt der Tester ein reales Modell des Testens durch, das bestimmte Ressourcen erfordert. Häufige Fragen, die aus der Ignoranz der korrekten Preismodellierung im Tester resultieren MetaTrader 4 wurde am 1. Juli 2005 offiziell freigegeben, und seitdem erscheinen dieselben Fragen in verschiedenen Foren, und die Fragen sind mit dem falschen Testerbetrieb verbunden. Hier sind die häufigsten Fragen, die sich aus Mythen über vergangene Jahre Tester. Warum mein Expert Advisor mit einem Indikator offene Trades an einer falschen Stelle Nach Abschluss des Tests können Sie mit der Schaltfläche Open Chart ein Diagramm öffnen, das alle Ein - und Ausgänge sowie die aufgerufenen Indikatoren wiedergibt Vom Sachverständigenberater. Es wird jedoch oft ignoriert, dass sich die Indikatorwerte, die zu dem gegebenen Zeitpunkt auf der Historie berechnet wurden, von den Werten unterscheiden können, die zum Zeitpunkt des Tests (tatsächlich, on-line) waren. Ein anschauliches Beispiel ist der Indikator ZigZag. Beim Öffnen der Testkarte der EA, bei der dieser Indikator verwendet wurde, können wir alle Pausen des ZigZag deutlich erkennen. Man könnte einen guten Gewinn aus einer Strategie erwarten, die auf der Verfolgung solcher Pausen auf der Null-Bar basiert. Wer das MT4-Tester-Betriebsprinzip nicht versteht, denkt falsch, dass diese Strategie den absoluten Profit im Tester zeigen sollte, denn in anderen TA-Programmen wird die Zukunft für solche Strategien gesehen. Aber wir sehen keinen Profit, darüber hinaus werden die Trades an einer falschen Stelle geöffnet. Testen Sie im visuellen Modus, fügen Sie dem Diagramm alle Indikatoren bei, die von der EA verwendet werden - und Illusionen lösen sich auf Dies erfordert keine spezielle Kenntnisse - der Tester wird angezeigt Alles im visuellen Modus. Hier ist das Beispiel eines solchen EA - ExpertZigzag: Wichtig. Wenn Sie sich nicht sicher sind über die Richtigkeit des Testerbetriebs, verwenden Sie die visuelle Prüfung. Sie sehen den Prozess des Testens, wie es wirklich ist, und nicht, wie Sie es denken. Warum sind die Indikatorwerte im Test und die Indikatorwerte im Online-Diagramm nicht gleich Einer der Fehler beim Anzeigeschreiben ist eine falsche Berechnung der Indikatorwerte und Paralogie. Infolgedessen beginnt die Anzeige zu lügen und Fehler zu sammeln. Mit anderen Worten, gestern zeigte der Indikator Werte, die sich von den heutigen in der gleichen Periode unterscheiden. Der Fehler dieser Indikatoren kann auch im Online-Betrieb des Indikators gesehen werden. Beispielsweise legen wir den Indikator auf ein 15-minütiges Diagramm, warten auf das Erscheinungsbild von 3-4 neuen Balken und fügen dann eine weitere Anzeige hinzu, jedoch mit anderen Farben. Der Unterschied wird sehr oft visuell gesehen. Hier ein Beispiel für einen solchen falschen Indikator: Wichtig: Indikatoren werden im Laufe der Prüfung berechnet. Wie während der Online-Betrieb, das ist der Grund, warum alle Fehler in der Indikatoren Logik wird deutlich in den Prozess der Prüfung Warum sieht meine EA falsche Preise von einem höheren Zeitrahmen, obwohl ich meine eigene tiefe Geschichte importiert Für die Modellierung der Tester verwendet Daten von fxt - Datei. Normalerweise wird diese fxt-Datei vom Tester auf der Basis des vorhandenen Verlaufs in hst-Dateien erzeugt. Aber wenn die fertige FXT-Datei in einer anderen Zeitzone erzeugt wurde oder auf der anderen Broker-Zitate (oder selbst vorbereitet - das Format der Fxt-Dateien ist offen), und die Daten in dieser Fxt-Datei nicht mit dem übereinstimmen Daten in den vorhandenen hst-Dateien - können verschiedene Fehler auftreten. Normalerweise kann dies nach einem manuellen Import und Rückkonvertierung von Zitaten von Seitenquellen geschehen. Beispielsweise ruft die EA die Funktion iOpen (NULL, PERIODD1,1) oder iHighest (NULL, PERIODD1, MODEHIGH, 20,1) auf. IOpen (NULL, PERIODD1,1) fordert den gestern offenen Preis auf demselben Symbol an, auf dem die Prüfung durchgeführt wird. IHighest (NULL, PERIODD1, MODEHIGH, 20,1) gibt den Index der Tagesbar mit dem größten Wert von High innerhalb von 20 Bar ab dem ersten (von gestern). Beide Funktionen im Tester werden auf Basis der Daten aus hst-Dateien berechnet. Und wenn die fxt-Datei nicht mit dem Verlauf in hst-Dateien übereinstimmt (in diesem Beispiel Daten zu EURUSD1440.hst), sind die Preise im Tester absolut unterschiedlich. Wir haben zwei verschiedene Geschichten - die eine befindet sich im Tester, die andere ist in der Datei EURUSDhst. Wichtig. Eine korrekte Prüfung erfordert eine Korrespondenz zwischen Daten in fxt - und hst-Dateien. Es ist nicht wünschenswert, Patch-Import von Seitenquellen zu verwenden. Verwenden Sie das Standard History Center mit Minute History von Zitaten aus dem Jahr 1999. Minute-Zitate aus dem History Center werden automatisch auf alle Zeitrahmen umgerechnet und in die Zeitzone des aktuellen Accounts konvertiert, was die Zeitverschiebung eliminiert. Warum nach dem Import meiner Quotes Indikatoren aus höheren Zeitrahmen im Tester liegen Während nur die Null-Bar-Preise modelliert werden, werden Werte von Standard - und Custom-Indikatoren auf anderen Balken auf der Basis von Daten aus hst-Dateien berechnet. D. h. Können korrekte Indikatorwerte nicht ohne korrekte Quellpreisdaten aus anderen Zeitrahmen berechnet werden. Wichtig. Bevor Sie mit dem Test beginnen, stellen Sie sicher, dass alle notwendigen Preisdaten anderer Zeitrahmen gepumpt werden und dass diese Daten korrekt sind. Das Standard History Center stellt die Korrektheit aller Zeitrahmen zur Verfügung, da es automatisch alle anderen Perioden aus den Minutendaten neu berechnet. Fazit Der Tester in MetaTrader 4 ist das Ergebnis einer langjährigen Erfahrung, seit dem Jahr 2000 mehrere Generationen von Handelsterminen zu schreiben. Es wurde alles getan, um einem Trader die Möglichkeit zu bieten, Strategien mit maximal möglicher Korrektheit zu testen. Dadurch entfällt die Notwendigkeit einer mehrmonatigen Prüfung von Handelsideen im Echtzeit-Modus. Aber wissen alle Tester Optionen hilft Ihnen, Zeit zu sparen und besser erkennen, die Bedeutung eines korrekten Indikatoren und EAs development. History Dateien im FXT-Format In seinem Betrieb verwendet Tester eine. FXT-Datei mit generierten Nachfolge von Bars. Jeder Satz der erzeugten Folge repräsentiert den Balkenstatus zu jedem Zeitpunkt innerhalb einer Balken. Bei der Modellierung von Balken, Tester nimmt andere Balken aus dieser Datei und aktualisiert die aktuelle Balken oder fügt eine andere, wenn es gerade erst begonnen hat gebildet werden. Eine kurze Beschreibung des Formats ist unten angegeben. Es beginnt mit dem Header: --------------------------------------------- --------------------------------------------------------- -------------------------------------- struktur TestHistoryHeader int Version 405 char copyright64 copyright char symbol12 int Zeitraum Int-Modell für welche Modellierung Typ wurde die Zecken Sequenz generiert int Bars Menge von Bars in der Geschichte Zeitplan ab dem Zeitpunkt ticks aus diesem Datum erstellt Zeit t todate Zecken generiert gestoppt zu diesem Zeitpunkt doppelte Modellqualitäts-Modellierung Qualität ---- allgemeine Parameter char currency12 Währungsbasis int spread Int Ziffern doppelter Punkt int lotmin minimaler Losgröße int lotmax maximaler Losgröße int lotstep int stopslevel stoppt Niveauwert int gtcpendings Anweisung, schwebende ausstehende Aufträge am Ende des Tages zu schließen ---- Gewinnberechnungsparameter doppelte Kontraktkontraktgröße doppelter tickvalue Wert von einem Häckchen Doppelte ticksize Größe einer Tick int profitmode Gewinn-Berechnungsmodus ---- Swap-Berechnung int Swapenable aktivieren Swap int Swaptype - Typ Swap Double Swaplong Double Swapshort Swap über Nacht Wert int swaprollover3days Drei-Tage-Swap-Rollover ---- Margin Berechnung int Leverage Hebel int Fregarginmode free margin rechenmodus int marginstopout margin stopout level int marginstopoutmode stop out checkmodus double margininitial margin requirements double marginmaintenance margin wartungsanforderungen double marginhedged margin anforderungen für hedged positionen double margindivider margin divider char margincurrency12 margin currency ---- Provision Berechnung double commbase Grundkommission int commtype Grundkommission Art int commlots Provision pro Los oder pro Deal ---- für den internen Gebrauch int von bar abdat bar Anzahl int tobar barzahl int startperiod6 Zahl der Bar, bei der die kleinere Periodenmodellierung int von Anfang an begonnen hat Datum aus Tester-Einstellungen int setto Enddatum aus Tester-Einstellungen ---- int freezelevel order39s Einfrieren Ebene in Punkten int Generatorfehler ---- int reserviert60 Dann folgt das Array von modellierten Balken: pragma pack (push, 1) struct TestHistory timet otm Bar Zeit doppelt öffnen OHLCV Werte double low double high double close double volume timet ctm die aktuelle Zeit innerhalb einer bar int Flag Flag zu starten Experten (0 - bar wird geändert, aber der Experte wird nicht gestartet werden) pragma pack (pop)

No comments:

Post a Comment