Hallo EA-Gurus da draußen, lange Zeit im Handel mit Korrelation und Kointegration Technik. Jetzt bin ich stolz darauf, meine bis unvollendeten EA zu präsentieren. Weitere Informationen zur Kointegration finden Sie unter: Kointegration Mit der Vorarbeit von 7Bit bei FF und meinem Selbst entwickelte ich eine EA, die zwischen zwei Zeitreihen nach Kointegrationsniveaus sucht. Dazu braucht es die statistische Analyse-Software mit dem Namen R. Es ist viel schneller, das Kointegrationsmodell zu berechnen. Für einfache es nahm jedes Währungspaar gegeneinander berechnet Standart Abweichung Ebenen aus der linearen Regression zwischen ihnen. Und wenn der Drift auf den 2. StdDev (Benutzerdefiniert) trifft und zum Mittel zurückkehrt, öffnet er zwei Befehle mit den berechneten Paaren. Ein Dashboard ist vorhanden, um einen Überblick zu haben. Wenn Sie diese EA verwenden möchten, ist es sehr wichtig, dass Sie zuerst die Software R installieren. Projekt R und definieren im EA den Pfad zur Rterm. exe. (Siehe Beispiel in der EA.) Öffnen Sie R mit Admin-Rechten und geben Sie nach der gt-Aufforderung install. packages (zoo) und dem Paket install. packages (tseries) ein, dann müssen Sie die mt4R. dll in den Bibliotheks - (oder Include) - Ordner stecken Von MT4 und dem mt4R. mqh in Include-Ordner. Stellen Sie die EA Cointegration Search Engine in den Expertenordner. Und die Cointegration Profitboard in Indikatoren Ordner. Yeah viele Dateien, aber es ist die Arbeit wert IMHO. Ich werde die EA aktualisieren, wenn im fertig mit jedem Modul. Youll finden Sie einige Notizen von MadCow als PDF unten unten zur Diskussion Input nun einen Filter namens: UseTradeLimiter Wenn es auf TRUE gesetzt wird es nur ermöglichen, dass der Korb nur eine Währung gleichzeitig handeln. Zum Beispiel wenn ein Paar mit XXXUSD geöffnet ist, wird es nicht erlauben, eine andere Kombination mit USD zu öffnen. StdDevEntryLevel 2 (Standard) Dies ist, auf dem Level ein Korb beginnt zu handeln. StdDevReentry 1 (Default) Dies ist, bei welchem Level der Basket eine weitere Entrie öffnet, wenn er sich gegen den Mittelwert bewegt. StdDevExit 1 (Standard) Dies ist, auf dem Level aus dem StdDevEntryLevel wird es den Korb zu beenden. Es wird nur beendet, wenn der Korb im Gewinn ist. Aber ich meine nicht den ganzen Korb mit allen Paaren nur die Kombination von zwei Paar Handel. Geben Sie einen Spreadlimiter ein, der auf 0 (Null) gesetzt wird. Es ist x-stellig konform. Geben Sie 12 für 12 Pip Spread Begrenzung (Dont wissen, wenn dies den Korb unbalancieren) Lotsize Benutzereingaben zur Verfügung steht. Und für Kenfen alles im Doppelzimmer gemacht. StopOpenNewOrders false (Standardeinstellung). Dies löscht nicht die globals, die mit der beendeten Kombination in Verbindung stehen. Dann werden keine neuen Aufträge geöffnet. Besondere Hinweise: Sie brauchen keine gemeinsamen Funktionen mehr. Alles ist jetzt in der EA enthalten. UseCoefficient false (Standard) Broker mit min. 0,01 Lots und Lotstep von 0,01. Vielleicht ist es besser, 100.000 im Demo-Modus zu verwenden. Es ist ein Muss, um Lots in der EA auf min. 0,10. Sie könnten versuchen, 0,05 aber die Ergebnisse waren nicht die gleichen. Fühlen Sie sich frei, die Leverage zu verwenden, die Sie mögen, aber für 10mal mehr Marge vorbereitet werden, was jetzt geschieht. Beispiel: CHFJPYGBPUSD ist ein Kombi, das die Einstiegskriterien erfüllt. Wird der Koeffizient berechnet und die Ergebnisse sind CHFJPY 1060 GBPUSD -730 die Drift ist unter dem Durchschnitt. CHFJPY LONG - GBPUSD KURZ wird der Lotratio berechnet 1060ABS (730) 1.45. Die Lose für CHFJPY 0,10 Lot und GBPUSD 0,101,45 0,068. Wird diese Combo wie CHFJPY LONG 0,1 Lot und GBPUSD KURZE 0,07 (aufgerundet) Die Vorteile sind einige Combos nicht im Gewinn erhalten, wenn sie sich zu bewegen, weil der festen Los zu bewegen. Jetzt gewinnen sie Gewinn zurück zu bedeuten, weil der Lotcoefficience Berechnung. Was noch passieren könnte, ist, dass das Verhältnis groß genug sein wird, dass das zweite Paar eine Menge von 0,001 oder weniger hat. Wenn dieses geschieht, wird dieses Paar NICHT geöffnet und ein einzelner Handel tritt auf. Vielleicht müssen wir herausfinden, ob wir diese Combos herausfiltern, aber wir werden sehen. Die Profitboard wird aktualisiert und zeigt Waisen in aqua Farbe. Sie können nun festlegen, wie viel Zeilen angezeigt werden sollen und an welcher DD-Stufe die Farbe von rot nach blau und von blau nach weiß wechselt. Das Monster wird ebenfalls verbessert. Der Koeffizient ist nun abgeschlossen und scheint korrekt zu funktionieren. wir werden sehen. Benötigen Sie wirklich ein 100.000 Konto mit einigen absteigenden Hebelwirkung. Wer die f könnte diese EA mit echtem Geld handeln. (Default) PositivCorr 75 (Standard), wenn Korrelation über 75 ist, wird dieses Paarcombo gehandelt CorrelationTimeFrame 1440 (Standard) die Berechnung auf Basis des Zeitrahmens (1440 Täglich) Korrelationszeiträume 50 (Standard) die Perioden zurück für Berechnung. Implementiert den Augmented DickeyFuller-Test UseADF false (default) Dies ist der Schalter für den ADF-Test und sollte true sein, wenn UseCoefficient auch TRUE ist. Pthresh 0.10 (default) Dies ist der p-Wert Schwellenwert, bei dem ein Eingabekriterium die offene Bedingung für das berechnete Paar erfüllt. Das Verhalten unterscheidet sich nun von den GVs im Dashboard. Nachdem die Ausbreitung sich von Mittelwert oberhalb von StdDevEntry entfernt hat, wird der ADF berechnet und ein GV gesetzt. Sie sehen im Armaturenbrett den GV mit 0 (weiße Null) und ohne Auftragseröffnung. Der Combo öffnet sich, wenn Spread sich zurück bewegt, um Mittel zu bedeuten und kreuzt wieder StdDev Level und verhält sich wie ein Wiedereintritt. Dieser ADF-Test wird als Filter verwendet und ist die übliche Berechnung, um den Combo für stationäres oder nicht zu testen. Je kleiner der p-Wert, desto besser. 0.10 ist gleich 10. Benutzen Sie google für Kointegrationsanalyse und ADF-Test. Ich habe ein Skript beigefügt, mit dem Sie den ganzen Korb schließen können. Es kann eine Weile dauern, bis alle Bestellungen geschlossen sind, wie viel offen sind. Vor der Verwendung dieses Skripts entfernen Sie die EA aus dem Diagramm oder neue Aufträge könnten möglicherweise ausgelassen werden. Added the CoefThresh 2 (default) Ein Mitglied hier vorgeschlagen, dass ein Verhältnis höher als 2 könnte ein Problem mit dem Handel sein. Also habe ich es implementiert. StopOpenNewOrder ist behoben. Aber Rückzüge sind erlaubt. Verbessert ein wenig die GV-Verwaltung. Das Problem mit No Hedging und Einstellung von GVs ist, dass die EA nicht weiß (jetzt), dass Hedging verboten ist. Und wenn er ein Kriterium für einen ADF gefunden hat, setzt er einen GV. Wenn dann die Bestellung öffnen sollte kann es nicht wegen der Absicherung. Eine weitere großartige Verbesserung i do ist eine externe Anwendung, die heruntergeladen werden könnte, auf den Link unten. Es handelt sich um ein Auftragsmanagement-Tool mit nur einer Funktion: Schließen Sie eine Kombination. Download CISETrader. zip und extrahieren Sie es, wo Sie möchten. Führen Sie mit Administratorrechten aus. Youll siehe 3 Tasten und ein Bearbeitungsfeld. Klicken Sie zuerst auf Hinzufügen, und wählen Sie den Pfad zum Ordner mt4expertsfile. Benennen Sie die CISEBook. txt-Datei nicht um, und klicken Sie auf Speichern. Machen Sie einen Check im linken Feld, wo der Pfad aufgeführt ist. Der CISETrader kommuniziert mit einer Textdatei. Wenn Sie nun eine Kombination in Ihrem Profitboard sehen, die Sie schließen wollen, dann geben Sie in die rechte Textdatei die Kombination zu schließen. Zum Beispiel NZDCHFEURGBP. Und drücken Sie dann die Taste bei Aim. Drücken Sie dann die Combi-Schaltfläche und die Bestellungen, die Sie eingefügt haben, werden geschlossen. Wenn alle Aufträge geschlossen sind, wird der GV auch geschlossen. Thats it, isnt it Eine weitere Verbesserung, die ich tun, ist die ExitStdDev mit einem absolut Ebene statt relativ zu definieren. Altes Verhalten: StdDevEntry 3 und StdDevExit 1. Die EA eröffnet Aufträge im StdDev -3 und schließt bei StdDev-2 (3-1 oder -31). Mit UseAbsolut auf TRUE wird es jetzt auf der angegebenen StdDevExit-Ebene geschlossen. Wegen der Spike oder Einstellung öffnet es bei StdDev 4 und StdDev Exit 1, dann schließt er bei -1 StdDev Ebene. Forward Test seit 13th Februar 2012 Bitte nicht mit Live Account verwenden Du hast nicht die erforderlichen Berechtigungen, um die Dateianhänge dieses Beitrags anzusehen. Peje schrieb: Klingt interessant. Was mit der installierten R-Software zu tun, als nächstes verlassen, wie es ist. Die EA benötigt sie für die schnelle Berechnung der Kointegration. Müssen Sie nur den richtigen Pfad in den Einstellungen eingeben, in denen die Rterm. exe installiert ist. Gibt es zwei dieser EXE-Dateien. Müssen Sie die. exe im Ordner bini386 verwenden. Fchaman schrieb: Hallo, gefolgt alle Anweisungen durch das Buch, aber beim Kompilieren der EA, bekommen diese Fehler. Jede Idee, was ich vermisst wurden dies nicht Fehler. Dies sind nur Warnungen und könnten ignoriert werden. Dies geschieht, wenn einige Funktionen und oder Routinen im Code nicht verwendet werden. Gelbe zeichen ignorieren rote zeichen schlechte kodierung i dont wissen nichts, bis jetzt, wenn es besser ist, einen korb während london-andor new york session zu starten. Ich weiß nicht, ob 576 Vergangenheit Bars für die Berechnung sind genug. Wenn im handeln dieses Handbuch Ich konnte nur Handel während London und New York Sitzung. Und wichtig ist, dass ich den Handel mit 5m TF. So Berechnung mit 576 bar sind wie zwei Tage. Was ich als nächstes tun, ist in einen Filter zu bauen, dass nur eine Währung handelbar ist. Dies würde offene Aufträge sehr beschränken. Mit allen Kombinationen konnten etwa 350 verschiedene Korbgeschäfte eröffnet werden. Fchaman - Ich glaube, dass alle innerhalb der beiden quotincludequot-Dateien aufgerufen werden. Quotinclude lt mt4R. mqh gt enthalten lt commonfunctions. mqh gt quot Im kratzte meinen Kopf auf, wie viele Instrumente und Zeitrahmen, um die Cointegration Search Engine EA an, though. Ive angebracht zu vier Paaren auf M5 für einen Anfang, aber sie alle oben oben mit diesem im Expertsvorsprung. -------------------------------------------------- ---------------------------------- quot 16: 17: 06 Kointegration - Profitboard USDCAD, M5: initialisiert 16:17 : 07 Cointegration Suchmaschine GBPUSD, M5: initialisiert 16:17:07 Cointegration Suchmaschine USDCAD, M5: initialisiert 16:17:07 Cointegration Suchmaschine EURUSD, M5: initialisiert 16:17:07 Cointegration Suchmaschine AUDUSD, M5: initialisiert 16 : 17: 12 Cointegration Suchmaschine EURUSD, M5: neue Größe -4 für ArrayResize Funktion ist falsch 16:17:12 Cointegration Suchmaschine EURUSD, M5: neue Größe -2 für ArrayResize Funktion ist falsch 16:17:13 Cointegration Suchmaschine AUDUSD , M5: neue Größe -4 für ArrayResize Funktion ist falsch 16:17:13 Cointegration Suchmaschine AUDUSD, M5: neue Größe -2 für ArrayResize Funktion ist falsch 16:17:13 Cointegration Suchmaschine AUDUSD, M5: Nullteilung 16:17 : 15 Cointegration Suchmaschine GBPUSD, M5: neue Größe -4 für ArrayResize Funktion ist falsch 16:17:15 Cointegration Suchmaschine GBPUSD, M5: neue Größe -2 für ArrayResize Funktion ist falsch 16:17:15 Cointegration Suchmaschine GBPUSD, M5 : Zero divide 16:17:15 Cointegration Suchmaschine EURUSD, M5: zero divide 16:17:19 Cointegration Suchmaschine USDCAD, M5: neue Größe -4 für ArrayResize Funktion ist falsch 16:17:19 Cointegration Suchmaschine USDCAD, M5: Neue Größe -2 für ArrayResize Funktion ist falsch 16:17:19 Cointegration Suchmaschine USDCAD, M5: null dividequot --------------------------- -------------------------------------------------- ------- Weiter, wenn ich die Cointegration - Profitboard Indikator auf einem Diagramm zu befestigen, sehe ich ein kleines bisschen gelb und grün font oben links von einem Diagramm, wo MT4 zeigt Paare, TF und OHLC info, aber cant Sogar aus der Ferne machen, was es sagt. Ich habe zu sortieren eine Image Shack-Lösung (nie verwendet), um Bilder zu posten, wenn erforderlich. Wir hoffen jedoch, dass sie bei Ihrer Reiseplanung weiterhilft. Sorry Mediator. Ich weiß nicht, wie ich didnt sehen Sie Ihre Post Kann ich nur fragen. In Ihrem Beispiel eines Pfadnamens zu R, Sie haben es mit enden, quotRterm. exe --no-save. quot Können Sie erklären, die quotno savequot Teil Sollte das bleiben, oder ausgenommen werden Ich versuche, für die Kointegration zwischen zwei Zeit zu testen Serie. Beide Reihen haben wöchentliche Daten, die ich versuche, die Engle-Granger Zwei-Schritt-Methode zu tun. Meine Reihenfolge der Operationen folgt. Testen Sie jede Zeitreihe für Einheitswurzel über Augmented Dickey-Fuller. Angenommen, beide haben Einheitswurzeln, dann finden Sie lineare Annäherung der Beziehung über OLS. Dann erstellen Sie eine Reihe der Residuen. Testreste für Einheitswurzel über Augmented Dickey-Fuller. Schließen Sie die Kointegration (oder nicht) durch das Ergebnis von 3. Ist diese Methode okay aussehen (Im ein Undergraduate, und Im Blick auf meine Daten in einer legitimen Weise, nicht unbedingt zu analysieren, um es in der strengsten bekannten Methode zu analysieren.) Wenn eine Serie nicht Lehnen Sie die Nullhypothese mit dem ADF (und daher nicht über eine Einheit Wurzel) in Schritt 1, ist es vernünftig zu folgern, dass die beiden Serien nicht kointegriert, weil ein Datensatz nichtstationär ist würde ich nicht denken, aber ich möchte sicher sein . Beide Datasets sehen stochastisch aus, also frage ich mich, ob es angebracht ist, OLS zu verwenden, um die Beziehung zu messen, um die Residuen zu erhalten. Erstens, zwei Zeitreihen, x und x, die beide sind Ileft (1rechts), d. H. Beide Serien enthalten eine Einheit Wurzel. Wenn diese beiden Serien kointegrieren, gibt es Koeffizienten, mu und beta, so dass: ein Gleichgewicht definiert wird. Um die Kointegration mit dem Engle-Granger 2-Schritt-Ansatz zu testen, würden wir 1) Die Serien, x und x für Einheitswurzeln testen. Wenn beide Ileft (1rechts) sind, fahren Sie mit Schritt 2) fort. 2) Führen Sie die oben definierte Regressionsgleichung und speichern Sie die Residuen. Ich definiere eine neue Fehlerkorrektur Begriff, hat Hut. 3) Testen Sie die Residuen (Hut) für eine Einheit Wurzel. Man beachte, dass dieser Test derselbe ist wie ein Test für keine Kointegration, da unter der Nullhypothese die Residuen nicht stationär sind. Wenn jedoch eine Kointegration vorliegt, sollten die Reste stationär sein. Denken Sie daran, dass die Verteilung für den Rest-basierten ADF-Test nicht mit den üblichen DF-Verteilungen übereinstimmt und von der Menge der geschätzten Parameter in der statischen Regression abhängt, da zusätzliche Variablen in der statischen Regression die DF - links. Die 5 kritischen Werte für einen geschätzten Parameter in der statischen Regression mit einem Konstanten und Trend sind -3,34 bzw. -3,78. 4) Wenn Sie den Nullwert eines Einheitswurzels in den Residuen ablehnen (Null der Nicht-Kointegration), dann können Sie nicht ablehnen, dass die beiden Variablen kointegrieren. 5) Wenn Sie ein Fehlerkorrekturmodell einrichten und die Langzeitbeziehung zwischen den beiden Baureihen untersuchen möchten, empfehle ich Ihnen, eher ein ADL - oder ECM-Modell einzurichten, da es eine kleine Probenvorspannung gibt, die an den Engle - Granger statische Regression und wir können nichts über die Bedeutung der geschätzten Parameter in der statischen Regression sagen, da die Verteilung von unbekannten Parametern abhängt. Um Ihre Fragen zu beantworten: 1) Wie oben gesehen, ist Ihre Methode korrekt. Ich wollte nur darauf hinweisen, dass die verbleibenden Tests kritische Werte sind nicht die gleichen wie die üblichen ADF-Test kritische Werte. (2) Ist eine der Reihen stationär, dh Ileft (0recht) und die andere Ileft (1right), können sie nicht kointegriert werden, da die Kointegration bedeutet, dass sie gemeinsame stochastische Trends teilen und dass eine lineare Beziehung zwischen ihnen seit dem Stochastischen stationär ist Trends werden abgebrochen und dadurch eine stationäre Beziehung erzeugt. Um dies zu betrachten, betrachten Sie die beiden Gleichungen: Beachten Sie, dass varepsilon sim i. i.d. , X sim Ileft (1right), x sim Ileft (1rechts), u betaprime x sim Ileft (0rechts), varepsilon sim i. i.d. Zuerst lösen wir für Gleichung links (3right) und erhalten Plug Diese Lösung in Gleichung links (2rechts) zu bekommen: Wir sehen bei den beiden Serien teilen eine gemeinsame stochastische Trend. Wir können dann einen Kointegrationsvektor betaleft (1-beta rechts) prime definieren, so dass: u betaprime x links (1-beta rechts) links (beginn mubeta x beta sum varepsilon varepsilon x sum varepsilon Ende rechts) u betaprime x mubeta x beta sum Varepsilon varepsilon - beta x - beta sum varepsilon Wir sehen, dass durch die Definition eines korrekten Kointegrationsvektors die beiden stochastischen Trends abbrechen und die Beziehung zwischen ihnen stationär ist (u betaprime x sim Ileft (0right)). Wenn x lleft (0recht) wäre, dann würde der stochastische Trend in x nicht durch Definition einer Kointegrationsbeziehung gelöscht. Also ja, Sie müssen beide Ihre Serie zu Ileft (1right) (3) Die letzte Frage. Ja OLS ist gültig für die beiden stochastischen Reihen, da gezeigt werden kann, dass der OLS-Schätzer für die statische Regression (Gleichung links (1right)) super konsistent ist (Varianz konvergiert zu Null bei T), wenn beide Reihen Ileft sind 1rechts) und wenn sie zusammenfallen. Also, wenn Sie Kointegration finden und Ihre Serie sind Ileft (1rechts) Ihre Schätzungen werden super konsistent. Wenn Sie keine Kointegration finden, ist die statische Regression nicht konsistent. Für weitere Lesungen siehe die Vorlage von Engle und Granger, 1987, Kointegration, Fehlerkorrektur: Darstellung, Schätzung und Prüfung. Beantwortet Dez 30 14 um 20:16
No comments:
Post a Comment