Thursday 30 March 2017

M Periode Gleitender Durchschnitt

Moving Average Forecasting. Introduction Wie Sie vielleicht erraten, wir sind auf der Suche nach einigen der primitivsten Ansätze zur Prognose Aber hoffentlich sind diese zumindest eine lohnende Einführung in einige der Computing-Fragen im Zusammenhang mit der Umsetzung von Prognosen in Kalkulationstabellen. In diesem Sinne werden wir weiter vorbei Beginnend am Anfang und beginnen mit Moving Average Prognosen zu arbeiten. Moving Average Prognosen Jeder ist vertraut mit gleitenden durchschnittlichen Prognosen unabhängig davon, ob sie glauben, sie sind alle College-Studenten tun sie die ganze Zeit Denken Sie an Ihre Testergebnisse in einem Kurs, wo Sie gehen werden Haben vier Tests während des Semesters Lassen Sie Sie davon ausgehen, Sie haben eine 85 auf Ihrem ersten Test. Was würden Sie vorhersagen, für Ihre zweite Test-Score. Was denkst du, dein Lehrer würde für Ihre nächste Test-Score vorauszusagen. Was denkst du, deine Freunde können voraussagen Für deine nächste Testpartitur. Was denkst du, deine Eltern könnten für deinen nächsten Testbericht voraussagen. Unabhängig von all dem Blabbing, den du deinen Freunden und Eltern machen kannst, sind sie und dein Lehrer sehr wahrscheinlich, dass du etwas in der Gegend bekommst Von der 85 Sie gerade bekommen. Well, jetzt lassen Sie s davon ausgehen, dass trotz Ihrer Selbst-Förderung zu Ihren Freunden, Sie über-schätzen Sie sich selbst und Figur können Sie weniger für den zweiten Test zu studieren und so erhalten Sie eine 73.Now was sind Alle betroffenen und unbeteiligten gehen zu antizipieren Sie werden auf Ihrem dritten Test Es gibt zwei sehr wahrscheinlich Ansätze für sie, um eine Schätzung zu entwickeln, unabhängig davon, ob sie es mit Ihnen teilen. Sie können sich selbst sagen, Dieser Kerl ist immer bläst Rauch Über seine smarts Er wird eine weitere 73 bekommen, wenn er Glück hat. Maybe die Eltern werden versuchen, mehr unterstützen und sagen, Nun, so weit haben Sie eine 85 und eine 73 bekommen, so vielleicht sollten Sie sich auf eine 85 73 2 79 Ich weiß es nicht, vielleicht, wenn du weniger feiern musstest und den Wiesel an der ganzen Stelle wedeln würdest und wenn du anfingst, viel mehr zu studieren, kannst du eine höhere Punktzahl bekommen. Von diesen Schätzungen werden tatsächlich durchschnittliche Prognosen getragen. Die erste ist nur Ihre jüngsten Score zu prognostizieren Ihre zukünftige Leistung Dies wird als eine gleitende durchschnittliche Prognose mit einer Periode von Daten. Die zweite ist auch eine gleitende durchschnittliche Prognose aber mit zwei Perioden von data. Let s davon ausgehen, dass alle diese Menschen Zerschlagung Auf deinem großen Verstand hast du dich verärgert und du entscheidest, den dritten Test aus deinen eigenen Gründen gut zu machen und eine höhere Punktzahl vor deinen Verbündeten zu setzen. Du nimmst den Test und dein Ergebnis ist eigentlich ein Allein, auch dich selbst , Ist beeindruckt. So jetzt haben Sie die endgültige Prüfung des Semesters kommen und wie üblich fühlen Sie sich die Notwendigkeit, goad jeder in die Herstellung ihrer Vorhersagen darüber, wie Sie tun, auf den letzten Test Nun, hoffentlich sehen Sie das Muster. Jetzt, hoffentlich Du siehst das Muster, das du glaubst, ist das genaueste. Whistle Während wir arbeiten Jetzt kehren wir zu unserer neuen Reinigungsfirma zurück, die von deiner entfremdeten Halbschwester namens Whistle angerufen wurde. Wir arbeiten, wir haben einige vergangene Verkaufsdaten, die durch den folgenden Abschnitt dargestellt werden Kalkulationstabelle Wir stellen zunächst die Daten für eine dreiseitige gleitende durchschnittliche Prognose dar. Der Eintrag für Zelle C6 sollte sein. Jetzt kannst du diese Zellformel in die anderen Zellen C7 bis C11 kopieren. Nichts, wie sich der Durchschnitt über die aktuellsten historischen Daten bewegt Verwendet genau die drei letzten Perioden, die für jede Vorhersage zur Verfügung stehen Sie sollten auch bemerken, dass wir nicht wirklich brauchen, um die Vorhersagen für die vergangenen Perioden zu machen, um unsere jüngste Vorhersage zu entwickeln. Dies ist definitiv anders als das exponentielle Glättungsmodell Vergangenheit Vorhersagen, weil wir sie in der nächsten Web-Seite verwenden, um die Vorhersagegültigkeit zu messen. Jetzt möchte ich die analogen Ergebnisse für eine zwei Periode gleitende durchschnittliche Prognose zu präsentieren. Der Eintrag für Zelle C5 sollte. Jetzt können Sie diese Zelle Formel auf zu kopieren Die anderen Zellen C6 bis C11.Notice, wie jetzt nur die beiden letzten Stücke von historischen Daten für jede Vorhersage verwendet werden Wieder habe ich die Vergangenheit Vorhersagen für illustrative Zwecke und für spätere Verwendung in der Prognosevalidierung enthalten. Einige andere Dinge, die von Bedeutung sind Hinweis: Für eine m-Periode gleitende durchschnittliche Prognose nur die m aktuellsten Datenwerte verwendet werden, um die Vorhersage Nichts anderes ist notwendig. Für eine m-Periode gleitende durchschnittliche Prognose, wenn Vergangenheit Vorhersagen, beachten Sie, dass die erste Vorhersage tritt in der Periode M 1.Both von diesen Fragen wird sehr wichtig sein, wenn wir unseren Code entwickeln. Entwicklung der Moving Average Function Jetzt müssen wir den Code für die gleitende Durchschnittprognose entwickeln, die flexibler genutzt werden kann Der Code folgt Beachten Sie, dass die Eingaben für die Anzahl der Perioden, die Sie in der Prognose verwenden möchten und das Array von historischen Werten Sie können es in beliebiger Arbeitsmappe speichern, die Sie wollen. Funktion MovingAverage Historical, NumberOfPeriods Als Single Declaring und Initialisierung von Variablen Dim Item Als Variant Dim Zähler als Integer Dim Accumulation als Single Dim HistoricalSize als Integer. Initialisierung von Variablen Zähler 1 Akkumulation 0. Ermittlung der Größe des Historischen Arrays HistoricalSize. For Counter 1 Zu NumberOfPeriods. Akkumulation der passenden Anzahl der letzten bisher beobachteten Werte. Accumulation Accumulation Historical HistoricalSize - NumberOfPeriods Counter. MovingAverage Accumulation NumberOfPeriods. The Code wird in der Klasse erklärt Sie wollen die Funktion auf der Tabelle zu positionieren, so dass das Ergebnis der Berechnung erscheint, wo es sollte Wie die folgenden. MetaTrader 5 - Trading Systems. Adaptive Trading Systems und ihre Verwendung in der MetaTrader 5 Client Terminal. Hundreds von Tausenden von Händlern auf der ganzen Welt nutzen die Handelsplattformen von MetaQuotes Software Corp entwickelt Der Schlüsselfaktor für den Erfolg ist die technologische Überlegenheit auf der Grundlage der langjährigen Erfahrung und der besten Softwarelösungen. Viele Menschen haben bereits neue Chancen, die mit der neuen MQL5-Sprache verfügbar sind, geschätzt. Seine Hauptmerkmale sind hohe Leistung und die Möglichkeit, objektorientierte Programmierung zu nutzen. Mit dem Auftauchen des Multi-Währungs-Strategie-Testers im MetaTrader 5-Client-Terminal haben viele Händler einzigartige Werkzeuge für die Entwicklung, das Lernen und die Verwendung von komplexen Handelssystemen erworben. Automated Trading Championship 2010 startet im Herbst Tausende von Handels-Roboter in MQL5 geschrieben werden teilnehmen In it Ein Expertenberater, der den maximalen Gewinn während des Wettbewerbs gewinnt, gewinnt Aber welche Strategie wird am effektivsten erscheinen. Der Strategie-Tester des MetaTrader 5-Terminals ermöglicht es, die besten Parameter zu finden, mit denen das System die maximale Menge an verdient Gewinn während eines bestimmten Zeitraums Aber kann es in der Echtzeit getan werden Die Idee des virtuellen Handels mit mehreren Strategien in einem Expert Advisor wurde in den Contest of Expert Advisors in einem Expert Advisor Artikel, die seine Umsetzung in MQL4 enthält In diesem Artikel werden wir zeigen, dass die Erstellung und Analyse von adaptiven Strategien in MQL5 durch die Verwendung objektorientierter Programmierklassen für die Arbeit mit Daten - und Handelsklassen der Standardbibliothek wesentlich einfacher geworden ist.1 Adaptive Trading Strategies. Markets Ständig ändern Handelsstrategien brauchen ihre Anpassung an die aktuellen Marktbedingungen. Die Werte der Parameter, die die maximale Profitabilität der Strategie geben, können ohne die Optimierung durch sequentielle Änderung der Parameter und die Analyse der Testergebnisse gefunden werden. Abbildung 1 zeigt die Eigenkapitalkurven für Zehn Expert Advisors MA3 MA93 jeweils von ihnen gehandelt durch die Strategie der gleitenden Durchschnitte, aber mit verschiedenen Perioden 3,13 93 Die Prüfung wurde bei EURUSD H1 durchgeführt, die Testperiode ist 4 01 2010-20 08 2010.Figure 1 Diagramme der Eigenkapitalkurven Von zehn Expert Advisors auf dem Konto. Wie Sie in der Abbildung 1 sehen können, hatten die Expert Advisors fast die gleichen Ergebnisse während der ersten zwei Wochen der Arbeit, aber weiter ihre Gewinne begannen, signifikant abzutreten Am Ende der Testperiode die besten Handelsergebnisse Wurden von den Expert Advisors mit den Perioden 63, 53 und 43 gezeigt. Der Markt hat die besten gewählt Warum sollten wir uns nicht entscheiden Was passiert, wenn wir alle zehn Strategien in einem einzigen Expertenberater kombinieren, bieten wir die Möglichkeit des virtuellen Handels für jede Strategie , Und in regelmäßigen Abständen z. B. am Anfang jeder neuen Bar bestimmen die beste Strategie für den realen Handel und Handel in Übereinstimmung mit seinen Signalen. Die Ergebnisse der erhaltenen adaptiven Strategie sind in der Abbildung 2 gezeigt Die Eigenkapitalkurve des Kontos mit adaptivem Handel Wird mit der roten Farbe gezeigt, dass während mehr als der Hälfte der Periode die Form der Eigenkapitalkurve für die adaptive Strategie die gleiche wie die der MA63-Strategie ist, die scheinbar der Sieger endlich geworden ist. Abbildung 2 Eigenkapitalkurven bei Das Konto mit der adaptiven Strategie, die Signale von 10 Handelssystemen nutzt. Die Ausgleichskurven haben die gleiche Dynamik Abb. 3.Bildung 3 Ausgleichskurven der adaptiven Strategie, die Signale von 10 Handelssystemen nutzt. Wenn keine der Strategien im Moment rentabel ist , Die adaptiven Systeme sollten keine Handelsoperationen durchführen. Das Beispiel eines solchen Falles ist in der Abb. 4 vom 4. bis 22. Januar 2010 gezeigt. Abbildung 4 Die Zeitspanne, in der die Anpassungsstrategie aufgrund der Abwesenheit aufgehört hat, neue Positionen zu eröffnen Von profitable strategies. Starting ab dem Januar 2010 die beste Effektivität wird durch die MA3-Strategie gezeigt Da die MA3 blau hatte die maximale Menge an Geld verdient in diesem Moment, die adaptive Strategie rot folgte seinen Signalen In der Zeit vom 8. bis 20. von Januar alle betrachteten Strategien hatten ein negatives Ergebnis, deshalb hat die adaptive Strategie keine neuen Handelspositionen eröffnet. Wenn alle Strategien ein negatives Ergebnis haben, ist es besser, sich vom Handel zu befreien. Dies ist die signifikante Sache, die es ermöglicht, unrentablen Handel zu stoppen Und halten Sie Ihr Geld sparen.2 Implementierung der Adaptive Trading-Strategie. In diesem Abschnitt werden wir die Struktur der adaptiven Strategie, die den virtuellen Handel mit mehreren Handelsstrategien gleichzeitig durchführt, und wählt die profitabelsten für echten Handel nach Zu seinen Signalen Beachten Sie, dass die Verwendung des objektorientierten Ansatzes die Lösung dieses Problems wesentlich einfacher macht. Zunächst werden wir den Code des adaptiven Expertenberaters untersuchen, dann werden wir einen detaillierten Einblick in die CAdaptiveStrategy machen Wo die Funktionalität des adaptiven Systems umgesetzt wird, und dann werden wir die Struktur der CSampleStrategy-Klasse zeigen - die Basisklasse der Handelsstrategien, in denen die Funktionalität des virtuellen Handels implementiert ist. Weiterhin werden wir den Code von zwei betrachten Seine Kinder - die CStrategyMA - und CStrategyStoch-Klassen, die die Handelsstrategien repräsentieren, indem sie Mittelwerte und den stochastischen Oszillator verschieben. Nach der Analyse ihrer Struktur können Sie ganz einfach schreiben und eigene Klassen hinzufügen, die Ihre Strategien verwirklichen.2 1 Code des Expertenberaters. Der Code des Expert Advisor sieht sehr einfach aus. Die ersten drei Zeilen definieren die Eigenschaften des Programms, dann kommt die Include-Direktive, die dem Preprozessor mitteilt, dass er die Datei angibt. Winkelklammern geben an, dass die Datei aus dem Standardverzeichnis genommen werden soll Terminalfolder MQL5 Include. The nächste Zeile enthält die Deklaration der AdaptiveExpert-Objektinstanz der CAdaptiveStrategy-Klasse und der Code der OnInit OnDeinit - und OnTick-Funktionen des Expert Advisor besteht aus den Aufrufen entsprechender Funktionen ExpertOnInit, ExpertOnDeInit und ExpertOnTick und dem AdaptiveExpert-Objekt. 2 2 Die CAdaptiveStrategy Klasse Die Klasse der thr adaptive Expert Advisor CAdaptiveStrategy Klasse befindet sich in der Datei Let s Start mit den Include Dateien. Der Grund, warum wir die Datei enthalten ist die Bequemlichkeit der Arbeit mit Klassen von verschiedenen Strategien mit dem Objekt der CArrayObj-Klasse, die ein dynamisches Array von Zeigern zu den Klasseninstanzen darstellt, die von der Basisklasse CObject und ihren Kindern hervorgebracht werden. Dieses Objekt wird das mallstrategies-Array, es wird ein Container von Handelsstrategien verwendet. Jede Strategie wird als Klasse dargestellt In diesem Fall Haben wir die Dateien enthalten, die die CStrategyMA - und CStrategyStoch-Klassen enthalten, die die Handelsstrategien darstellen, indem sie Mittelwerte und den Handel durch den stochastischen Oszillator durchführen. Für die Anforderung von Eigenschaften der aktuellen Positionen und für die Durchführung von Handelsoperationen werden wir die CPositionInfo - und CTrade-Klassen verwenden Der Standardbibliothek, darum nehmen wir die und files. Let s einen Blick in die Struktur der CAdaptiveStrategy class. To implementieren eine vereinigte Ansatz für die Objekte der verschiedenen Klassen, die Handelsstrategien oder vielmehr die Instanzen ihrer Klassen sind Gespeichert in den dynamischen Array-Mallstrategien des CArrayObj-Typs, der als Container von Klassen der Strategien verwendet wird. Dies ist der Grund, warum die Klasse der Handelsstrategien SampleStrategy aus der CObject-Klasse hervorgebracht wird. Die ProceedSignalReal-Funktion implementiert die Synchronisation der Richtung und Volumen einer realen Position mit der gegebenen Richtung und Volumen. Hinweis, dass es einfacher ist, mit der Handelsposition unter Verwendung der Handelsklassen zu arbeiten. Wir verwendeten die Objekte der CPositionInfo - und CTrade-Klassen für die Anforderung der Eigenschaften der Marktposition und für die Durchführung von Handelsoperationen. Die RealPositionDirection-Funktion fordert die Parameter der realen offenen Position an und gibt ihre Richtung zurück. Jetzt werden wir einen Blick in die Hauptfunktionen der AdaptiveStrategy-Klasse werfen. Mit der ExpertOnInit-Funktion beginnen wir mit dem Satz von Handelsstrategien Die ExpertOnInit-Funktion Zunächst wird das Objekt des dynamischen Arrays der mallstrategies erstellt. In diesem Fall haben wir zehn Instanzen der CStrategyMA-Klasse erstellt. Jeder von ihnen wurde in diesem Fall initialisiert, wir setzen unterschiedliche Perioden und erlaubten den virtuellen Handel mit der Initialisierungsfunktion . Dann setzen wir mit der SetStrategyInfo-Funktion das Finanzinstrument, den Strategienamen und den Kommentar ein. Wenn Sie mit der Funktion SetStops TP, SL einen Wert verwenden, können wir einen Wert in den Punkten "Profit und Stop Loss" angeben, der während des virtuellen Handels ausgeführt wird Wir haben diese Zeile kommentiert. Wenn die Strategieklasse erstellt und angepasst wird, fügen wir sie dem mallstrategies container hinzu. Alle Klassen von Handelsstrategien sollten die CheckTradeConditions-Funktion haben, die die Kontrollen der Handelsbedingungen durchführt. In der Klasse der adaptiven Strategie ist diese Funktion Am Anfang jeder neuen Bar genannt, so geben wir den Strategien die Möglichkeit, die Werte der Indikatoren zu überprüfen und die virtuellen Handelsoperationen zu tätigen. Anstatt von zehn spezifizierten gleitenden Durchschnitten 3, 13, 23 93 können wir Hunderte von gleitenden Mittelwerten hinzufügen Wenn die CStrategyMA-Klasse. Or können wir die Klassen der Strategie, die durch die Signale der stochastischen Oszillator Instanzen der CStrategyStoch-Klasse funktioniert. In diesem Fall enthält der Container 10 Strategien der bewegten Durchschnitte und 5 Strategien des stochastischen Oszillators Klassen von Handelsstrategien sollten die Kinder der CObject-Klasse sein und die CheckTradeConditions-Funktion enthalten. Es ist besser, sie von der CSampleStrategy-Klasse zu erobern Klassen, die Handelsstrategien implementieren, können unterschiedlich sein und ihre Zahl ist nicht begrenzt. Die ExpertOnInit-Funktion endet mit der Liste Von Strategien, die im mallstrategies-Container vorhanden sind Beachten Sie, dass alle Strategien im Container als die Kinder der CSampleStrategy-Klasse betrachtet werden. Die Klassen der Handelsstrategien CStrategyMA und CStrategyStoch sind auch ihre Kinder. Der gleiche Trick wird in der ExpertOnDeInit-Funktion verwendet Container, rufen wir die Funktion SaveVirtualDeals für jede Strategie auf, die sie den Verlauf der ausgeführten virtuellen Deals speichert. Wir verwenden den Namen der Strategie für den Dateinamen, der als Parameter übergeben wird. Dann werden die Strategien durch Aufruf der Deinitialisierungsfunktion und das Löschen des mallstrategiescontainers deinitialisiert. Wenn Sie nicht wissen müssen über die virtuellen Deals, die von den Strategien durchgeführt werden, entfernen Sie die Zeile, wo es heißt. Beachten Sie, dass bei der Verwendung der Strategie-Tester die Dateien in der testerdirectory Files Verzeichnis speichern. Lassen Sie die ExpertOnTick-Funktion der CAdaptiveStrategy-Klasse Das heißt jedes Mal, wenn ein neues Tick kommt. Der Code ist sehr einfach Jede Strategie, die sich im Container befindet, muss in der Lage sein, das aktuelle Finanzergebnis seiner virtuellen Positionen mit den aktuellen Preisen neu zu berechnen. Dies geschieht durch Aufruf der UpdatePositionData-Funktion Wieder nennen wir die Strategien als Erben der CSampleStrategy-Klasse. Alle Handelsoperationen werden zu Beginn einer neuen Bar durchgeführt Die IsNewBar-Funktion ermöglicht die Bestimmung dieses Momentes sowie die anderen Methoden der Überprüfung der neuen Bar In diesem Fall das Ende der Formung Einer Bar bedeutet, dass alle Daten der bisherigen Barpreise und Indikatorwerte nicht mehr geändert werden, so dass sie auf die Korrespondenz zu den Handelsbedingungen analysiert werden können. Zu allen Strategien geben wir die Möglichkeit, diese Überprüfung durchzuführen und ihre virtuelle auszuführen Handeln Sie Operationen, indem sie ihre CheckTradeConditions Funktion anrufen. Jetzt sollten wir die erfolgreichste Strategie unter allen Strategien im mallstrategies Array finden. Um es zu erledigen, verwendeten wir das Performance-Array, Werte, die von der StrategyPerformance-Funktion jeder Strategie zurückgegeben werden Basisklasse CSampleStrategy enthält diese Funktion als Differenz zwischen den aktuellen Werten von virtuellem Eigenkapital und Balance. Die Suche nach dem Index der erfolgreichsten Strategie erfolgt mit der ArrayMaximum-Funktion. Wenn die beste Strategie derzeit einen negativen Gewinn hat und sie nicht hat Echte offene Positionen, dann ist es besser, nicht zu handeln, das ist der Grund, warum wir aus der Funktion aussteigen, siehe Abschnitt 1.Weitere, wir fordern die Richtung der virtuellen Position dieser Strategie bestdirection Wenn sie sich von der aktuellen Richtung des Realen unterscheidet Position, dann wird die aktuelle Richtung der realen Position mit der ProceedSignalReal-Funktion entsprechend der Bestdirection-Richtung korrigiert. 3 Klasse CSampleStrategy. Strategies, die im mallstrategies-Container platziert wurden, wurden als Erben der CSampleStrategy-Klasse betrachtet. Diese Klasse ist die Basis Für die Handelsstrategien enthält es die Umsetzung des virtuellen Handels In diesem Artikel werden wir einen vereinfachten Fall der virtuellen Handelsimplementierung betrachten, die Swaps sollten nicht berücksichtigt werden. Die Klassen von Handelsstrategien sollten von der CSampleStrategy-Klasse geerbt werden Von dieser Klasse. Wir gewonnen t analysieren seine detaillierte Beschreibung, zusätzliche Informationen finden Sie in der Datei Dort können Sie auch die Funktion der Überprüfung der neuen Bar - IsNewBar.3 Klassen von Handelsstrategien. Dieser Abschnitt ist der Struktur der Klassen von gewidmet Handelsstrategien, die im adaptiven Expert Advisor verwendet werden.3 1 Klasse CStrategyMA - Strategie des Handels durch Moving Averages. Die CStrategyMA-Klasse ist ein Kind der CSampleStrategy-Klasse, in der die gesamte Funktionalität des virtuellen Handels implementiert ist. Der geschützte Abschnitt enthält interne Variablen, Wird in der Klasse der Strategie verwendet werden Diese sind Handle - Handle des iMA Indikators, mperiod - Periode des gleitenden Durchschnittes, mvalues ​​- Array, das in der CheckTradeConditions Funktion verwendet wird, um aktuelle Werte des Indikators zu erhalten. Der öffentliche Abschnitt enthält Drei Funktionen, die die Umsetzung der Handelsstrategie bereitstellen. Funktion Initialisierung Die Strategie wird hier initialisiert Wenn Sie Indikatoren erstellen müssen, erstellen Sie sie hier. Funktions-Deinitialisierung Die Strategie wird hier deinstialisiert Die Griffe der Indikatoren werden hier freigegeben. Funktion heckTradeConditions Hier die Strategie Prüft die Handelsbedingungen und generiert Handelssignale, die für den virtuellen Handel verwendet werden Um virtuelle Handelsoperationen durchzuführen, wird die SetSignalState-Funktion der CStrategy-Elternklasse als einer von vier der folgenden Handelssignale bezeichnet, die an sie übergeben werden. Das Signal zum Öffnen eines Lange Position SIGNALOPENLONG. Das Signal zum Öffnen einer Short-Position SIGNALOPENSHORT. Das Signal zum Schließen einer Long-Position SIGNALCLOSELONG. Das Signal zum Schließen einer Short-Position SIGNALCLOSESHORT. The Konzept ist einfach - auf der Grundlage der Indikator-Zustände und Preise ist der Signaltyp Newstate Bestimmt, dann wird der aktuelle Zustand des virtuellen Handels mit der GetSignalState-Funktion angefordert und wenn sie nicht gleich sind, wird die SetSignalState-Funktion zur Korrektur der virtuellen Position aufgerufen.3 2 Class CStrategyStoch - die Strategie des Trading von Stochastic. Der Code von Die Klasse, die den Handel auf der Grundlage der Kreuzung der Haupt - und Signalleitungen des iStochastischen Oszillators durchführt, ist unten angegeben. Wie Sie sehen, sind die einzigen Unterschiede zwischen der Struktur der CStrategyStoch-Klasse und der CStrategyMA die Initialisierungsfunktion verschiedene Parameter, Die Art des verwendeten Indikators und die Handelssignale. Um diese Strategien im adaptiven Expert Advisor zu nutzen, sollten Sie sie in Form von Klassen dieser Art umschreiben und sie in den mallstrategies-Container laden.4 Ergebnisse der Analyse des Adaptiven Handels Strategien In diesem Abschnitt werden wir einige Aspekte der praktischen Anwendung der adaptiven Strategien und die Methoden der Verbesserung zu diskutieren.4 1 Verbesserung des Systems mit Strategien, die Inversed Signals verwenden. Moving Averages sind nicht gut, wenn es keine Trends gibt Wir Ich habe diese Situation schon getroffen - in der Abbildung 3 sehen Sie, dass es in der Zeit vom 8. bis 20. Januar keinen Trend gab, so dass alle 10 Strategien, die bewegte Durchschnitte im Handel verwenden, einen virtuellen Verlust haben. Die adaptive System gestoppt Handel als Folge der Abwesenheit einer Strategie mit positiven Betrag des Geldes verdient Gibt es eine Möglichkeit, solche negativen Effekt zu vermeiden. Let s fügen Sie unsere 10 Strategien MA3, MA13 MA93 weitere 10 Klassen CStrategyMAinv dessen Handel Signale sind umgekehrt die Bedingungen sind Das gleiche aber SIGNALOPENLONG SIGNALOPENSHORT und SIGNALCLOSELONG SIGNALCLOSESHORT tauschten ihre Plätze aus. Neben zehn Trendstrategien Instanzen der CStrategyMA-Klasse haben wir weitere zehn Counter-Trend-Strategien Instanzen der CStrategyMAinv-Klasse. Das Ergebnis der Verwendung des adaptiven Systems, das aus zwanzig besteht Strategien sind in der Abbildung 5 dargestellt. Abbildung 5 Diagramme des Eigenkapitals auf der Rechnung der adaptiven Strategie, die 20 Handelssignale verwendet 10 bewegte Mittelwerte CAdaptiveMA und 10 gespiegelte CAdaptiveMAinv. Sie können an der Abbildung 5 sehen, während der Zeit, in der alle CAdaptiveMA-Strategien hatten ein negatives Ergebnis, nach den CAdaptiveMAinv-Strategien erlaubte der Expert Advisor, unerwünschte Drawdowns am Anfang des Handels zu vermeiden. Figure 6 Zeitraum, in dem die adaptive Strategie die Signale der Gegen-Trend-CAdaptiveMAinv-Strategien verwendet hat. Dieser Ansatz kann scheinen Inakzeptabel, da die Einzahlung der Kaution nur eine Frage der Zeit bei der Verwendung einer Gegenstrategie ist. Allerdings sind wir in unserem Fall nicht auf eine einzige Strategie beschränkt. Der Markt weiß besser, welche Strategien im Moment wirksam sind. Die starke Seite der adaptiven Systeme Ist der Markt von sich aus, welche Strategie verwendet werden sollte und wann es verwendet werden sollte. Es gibt eine Möglichkeit, aus der Logik der Strategien zu abstrahieren - wenn eine Strategie wirksam ist, dann ist die Art und Weise, wie es funktioniert, keine Bedeutung. Der adaptive Ansatz nutzt die Nur das Kriterium des Erfolgs einer Strategie - ihre Wirksamkeit.4 2 Ist es wert, die Signale der schlimmsten Strategie umzukehren. Der Trick mit Inversion, der oben gezeigt wird, führt zu einem Gedanken über die mögliche Möglichkeit, die Signale der schlechtesten Strategie zu verwenden Wenn eine Strategie Ist unrentabel und das Schlimmste dabei, dann können wir einen Gewinn erzielen, indem wir in umgekehrter Richtung handeln. Kann wir eine Trinkstrategie zu einem profitablen durch eine einfache Veränderung ihrer Signale machen Um diese Frage zu beantworten, müssen wir ArrayMaximum mit ArrayMinimum ändern Die ExpertOnTick-Funktion der CAdaptiveStrategy-Klasse sowie die Implementierung der Richtungsänderung durch Multiplikation des Wertes der BestDirection-Variablen um -1.Zusätzlich müssen wir die Begrenzung des virtuellen Handels bei negativer Effektivität kommentieren, da wir gehen Analysieren das Ergebnis der schlimmsten Strategie. Diagramm der Eigenkapital des adaptiven Expert Advisor, die die umgekehrten Signale der schlechtesten Strategie verwendet, ist in der Abbildung 7 dargestellt. Abbildung 7 Diagramme des Eigenkapitals auf den Konten von zehn Strategien und dem adaptiven System, das die verwendet Umgekehrte Signale des schlechtesten Systems. In diesem Fall war die am wenigsten erfolgreiche Strategie für die meiste Zeit diejenige, die auf der Kreuzung der sich bewegenden Mittelwerte mit der Periode 3 MA3 basiert. Wie Sie an der Abbildung 7 sehen können, ist die umgekehrte Korrelation zwischen MA3 blau gefärbt und Die adaptive Strategie, die rot gefärbt ist, aber das finanzielle Ergebnis des adaptiven Systems ist nicht beeindrucken. Kopieren und Umkehren der Signale der schlimmsten Strategie führt nicht zu einer Verbesserung der Effektivität des Handels.4 2 Warum die Bündel von Moving Averages ist nicht so effektiv wie Es schlägt ein. Anstatt von 10 bewegten Durchschnitten können Sie viele von ihnen verwenden, indem Sie weitere hundert CStrategyMA-Strategien mit verschiedenen Perioden zum mallstrategies container hinzufügen. Um es zu tun, ändern Sie den Code in der CAdaptiveStrategy-Klasse. Jedoch sollten Sie verstehen, dass in der Nähe bewegte Mittelwerte werden zwangsläufig schneiden sich der Führer wird sich ständig ändern und das adaptive System wird seine Zustände umschalten und offene Positionen häufiger öffnen, als es notwendig ist. Als Ergebnis werden die Eigenschaften des adaptiven Systems schlechter werden Sie können sicherstellen, dass es auf eigene Faust durch Vergleich der statistischen Merkmale des Systems die Ergebnisse Registerkarte der Strategie Tester. Es ist besser, nicht zu adaptiven Systemen auf der Grundlage von vielen Strategien mit engen Parameter.5 Was sollte berücksichtigt werden. Die Mallstrategies Container können Tausende von Fällen von vorgeschlagenen Strategien enthalten, Sie können sogar alle Strategien mit verschiedenen Parametern jedoch hinzufügen, um die Automated Trading Championship 2010 zu gewinnen, müssen Sie das fortgeschrittene Geldmanagementsystem entwickeln. Beachten Sie, dass wir das Handelsvolumen gleich 0 1 Lose für das Testen von History Daten und im Code von verwendet haben Klassen.5 1 So erhöhen Sie die Profitabilität des Adaptive Expert Advisor. Die CSampleStrategy-Klasse verfügt über die virtuelle Funktion MoneyManagementCalculateLots. Um das Handelsvolumen zu verwalten, können Sie die statistischen Informationen über die Ergebnisse und Merkmale von virtuellen Deals verwenden, die im Mdealshistory array. Wenn Sie das Volumen zum Beispiel erhöhen müssen, um es zu verdoppeln, wenn die letzten virtuellen Deals in der Maldalshistorie rentabel sind oder sie abnehmen möchten, sollten Sie den zurückgegebenen Wert in der entsprechenden Weise ändern. 2 2 Verwenden der Deals Statistics for Calculation of Strategie-Performance Die in der CSampleStrategy-Klasse implementierte StrategyPerformance-Funktion ist für die Berechnung der Strategie-Performance gedacht. Die Formel der Effektivität einer Strategie kann komplexer sein und z. B. die Effektivität des Eintritts, der Beendigung der Effektivität von Deals beinhalten , Gewinne, Drawdowns, etc. Die Berechnung der Effektivität des Eintritts, der Beendigung und der Wirksamkeit der Deals der Eintritts-, Exiteff - und Tradeeff-Gebiete der Strukturen des mdealshistory-Arrays erfolgt automatisch während des virtuellen Handels, siehe die CSampeStrategy-Klasse Diese statistische Information kann sein Verwendet, um Ihre eigenen, komplexeren Raten der Wirksamkeit der Strategie. Zum Beispiel, als Merkmale der Wirksamkeit können Sie den Gewinn der letzten drei Angebote nutzen Sie die posProfit Feld aus dem Archiv der Angebote mdealshistory. Wenn Sie diese Funktion ändern möchten , Ändere es nur in der CSampleStrategy-Klasse, es muss das gleiche für alle Handelsstrategien des adaptiven Systems sein. Allerdings sollten Sie sich daran erinnern, dass der Unterschied zwischen Eigenkapital und Balance auch ein guter Faktor der Effektivität ist.5 3 Mit Take Profit und Stop Loss. Sie können die Effektivität von Handelssystemen ändern, indem sie feste Stopp-Levels festlegen, die durch das Aufrufen der SetStops-Funktion durchgeführt werden können, um die Stopp-Stufen in Punkten für den virtuellen Handel einzustellen. Wenn die Ebenen angegeben sind, wird das Schließen von virtuellen Positionen automatisch diese Funktionalität durchgeführt Wird in der CSampleStrategy-Klasse implementiert. In unserem Beispiel siehe 2 2 die Funktion der Klassen der gleitenden Mittelwerte, die Funktion der Einstellung der Stopp-Levels kommentiert wird.5 4 Periodische Nullstellung des kumulativen virtuellen Profits. Der adaptive Ansatz hat den gleichen Nachteil wie gemeinsame Strategien Haben Wenn die führende Strategie zu verlieren beginnt, beginnt das adaptive System zu verlieren, aber das ist der Grund, warum manchmal müssen Sie die Ergebnisse der Arbeit aller Strategien zu nullisieren und alle ihre virtuellen Positionen zu schließen. Um es zu tun, sind die folgenden Funktionen implementiert in Die CSampleStrategy-Klasse. CheckPoint dieser Art kann von Zeit zu Zeit verwendet werden, zum Beispiel nach jedem N Bars. Sie sollten sich daran erinnern, dass das adaptive System kein Griff ist USDJPY H1, 4 01 2010-20 08 2010.Figure 8 Saldo und Eigenkapital Kurven des adaptiven Systems, das die Signale der besten von 10 Strategien verwendet USDJPY H1.Equity Kurven aller Strategien sind in der Abbildung 9 dargestellt. Abbildung 9 Eigenkapitalkurven auf dem Konto mit dem adaptiven System auf der Grundlage von 10 Strategien USDJPY H1.If Es gibt keine rentablen Strategien in der adaptiven System, mit ihnen ist nicht effektiv Nutzen Sie profitable Strategien. Wir sollten ein anderes wichtiges und interessantes Ding berücksichtigen Achten Sie auf das Verhalten der adaptiven Strategie am Anfang des Handels. Figure 10 Equity-Kurven auf dem Konto Mit 10 Strategien der adaptiven Strategie. Zunächst hatten alle Strategien negative Ergebnisse und die Anpassungsstrategie hielt den Handel an, dann begann sie zwischen Strategien zu wechseln, die ein positives Ergebnis hatten und dann wurden alle Strategien wieder unrentabel. Alle Strategien haben das gleiche Gleichgewicht Am Anfang und erst nach einer Weile wird die eine oder andere Strategie zum Führer, daher empfiehlt es sich, eine Beschränkung in der adaptiven Strategie zu setzen, um den Handel an den ersten Bars zu vermeiden. Um dies zu tun, ergänzen Sie die ExpertOnTick-Funktion der CAdaptiveStrategy-Klasse mit einer Variablen, Welcher Wert wird jedes Mal erhöht, wenn eine neue Bar kommt. Im Anfang, bis der Markt die beste Strategie wählt, solltest du weg von echtem Handel bleiben. In diesem Artikel haben wir ein Beispiel für das adaptive System betrachtet, das aus vielen Strategien besteht, Von denen jeder seine eigenen virtuellen Handelsoperationen macht Der Realhandel wird im Einklang mit den Signalen einer profitabelsten Strategie im Moment durchgeführt. Dank der Verwendung des objektorientierten Ansatzes sind die Klassen für die Arbeit mit Daten - und Handelsklassen der Standardbibliothek Architektur des Systems schien einfach und skalierbar zu sein, jetzt können Sie leicht erstellen und analysieren die adaptiven Systeme, die Hunderte von Handelsstrategien gehören. PS Für die Bequemlichkeit Analyse des Verhaltens von adaptiven Systemen ist die Debug-Version der CSampleStrategy-Klasse das Archiv The beigefügt Unterschied zu dieser Version ist die Erstellung von Textdateien während ihrer Arbeit enthalten sie die zusammenfassenden Berichte über die Dynamik der Veränderung der virtuellen Balance Equity der Strategien in das System enthalten. Chart Studies. Chart Studies verwenden eine Aktie Preisbewegungen, Volumen und andere Historische Informationen zu versuchen, Muster zu finden, die auf Verschiebung Preis Trends. By lernen, was eine bestimmte Studie kann anzeigen und dann die Anwendung dieser Studie auf Ihre Charts, können Sie in der Lage sein, Handelsmöglichkeiten, Punkte der Unterstützung oder Widerstand zu bestimmten Preisschwellen zu identifizieren , Preisentwicklungen und vieles mehr. Stock-Symbole sowie Preis - und Mengenangaben, die hier und in der Software gezeigt werden, dienen lediglich der Veranschaulichung, dass Charles Schwab Co Inc ihre Muttergesellschaft oder ihre verbundenen Unternehmen und / oder ihre Angestellten und / oder Geschäftsführer Positionen in den hierin genannten Wertpapieren haben können Kann als Principal oder Agent von Clients kaufen oder an Clients weitergeben. Zu den Tabellen ein Diagramm aus dem Chart-Einstellungen-Panel auf der rechten Seite des Chart-Tools hinzufügen. Du kannst auch mit der rechten Maustaste in das Diagramm klicken und "Add Study" auswählen oder mehr verwenden Studien in Charts, siehe Chart Settings Studies. Get eine Demonstration und weitere Informationen über Chart Studies. Wenn mit einem Intraday-Chart ausgewählt, wird eine Zeile angezeigt, die Angabe der vorherigen Tag s enge Preis. Uses der Vortag hoch, niedrig und enge Preis zu Erzeugen eine Pivot-Linie, zwei Stützstufen S1 S2 und zwei Widerstandsebenen R1 R2 Diese Studie wird nur auf Intraday-Charts angezeigt. In den Studien-Einstellungen klicken Sie mit der rechten Maustaste auf die Studie und wählen Sie Bearbeiten. Sie können die Zeilen überprüfen, die Sie R2, R1, Pivot, S1, S2.Pivot Point Zeilen sind möglicherweise nicht sichtbar in Abhängigkeit von der Preisskala, die Sie in den Diagrammeinstellungen eingestellt haben, und die Preisdiskrepanz zwischen dem vorherigen und dem aktuellen Handelstag. Pivot Punkte werden berechnet. Pivot YesterdaysHigh YesterdaysLow YesterdaysSchließen 3 0.S1 2 0 Pivot - YesterdaysHigh. R1 2 0 Pivot - YesterdaysLow. S2 Pivot - R1 - S1.R2 Pivot R1 - S1.Adaptive RSI Relative Strength Index. Adaptiert den Standard RSI zu einer Glättungskonstante Anpassbare Ausfall von 14 Perioden Berechnungszwecke, Adaptive RSI ist etwas ähnlich wie ein exponentieller gleitender Durchschnitt, aber anstelle der Mittelung der vorherigen Werte mit einem festen Prozentsatz, verwendet es einen variablen Prozentsatz auf der Grundlage der RSI. wo und n ist die RSI-Periode dh ein n-Periode RSI. Money Flow hält eine laufende Summe des Geldes fließt in und aus einer Sicherheit Die Richtung der Money Flow Linie ist die wichtige Komponente zu beobachten, nicht die tatsächliche Dollar Betrag Dieser Indikator kann verwendet werden, um zugrunde liegende Stärke oder Schwäche einer Preisentwicklung zu bestätigen. Die Formel für einen n-Zeitraum Geldfluss ist. Money Flow Percent. Money Flow Percent normalisiert die Money Flow Berechnung oben durch Aufteilung durch die kumulative Volumen für den Zeitraum Sie können die Perioden in der Berechnung aus dem Standard von 14 ändern. Die Formel Für eine n-Periode Geldfluss Prozent ist. Put Call Ratio - Open Interest. Shows die Anzahl der Puts geteilt durch die Anzahl der Anrufe auf offene Zinsen für einzelne Aktien oder Indizes Das Verhältnis wird oft als ein gegenläufiger Marktindikator verwendet, was bedeutet Dass ein hohes Verhältnis ein bullisierter Indikator sein kann, während ein niedriges Verhältnis oft als bärischer Indikator interpretiert wird. Die Put-Call-Ratio-Studie kann den PC anzeigen. Istwert, bei dem jeder einzelne Datenpunkt die Rohrufdaten oder den PC SMA einfach darstellt Gleitender Durchschnitt der Durchschnitt der Rohdaten über den ausgewählten Zeitraum der Studie. Available für tägliche, wöchentliche und monatliche Charts für wählbare Wertpapiere. Relative Strength Index. Indicates den Grad der positiven und negativen Bewegung durch die Aktie auf einer Skala von 0 am schwächsten Zu 100 Stärksten Bestimmt durch die Feststellung der Verhältnis der durchschnittlichen up schließt für die letzten 14 Tage mit heute s aktuellen Preis für den 15. Tag geteilt durch die Summe der durchschnittlichen up schließt und der Durchschnitt unten schließt für den gleichen Zeitraum Dieses Verhältnis wird multipliziert mit 100 Sie können die Anzahl der Perioden ändern, die in der Berechnung von der Voreinstellung von 14 verwendet werden, und Sie können wählen, welcher durchschnittliche Preis, um die Studie auf Schließen, Öffnen, usw. aus den Studieneinstellungen zu basieren. Der Anfangswert eines n-Perioden-RSI ist Basierend auf der Preiswirkung für die ersten n Perioden Nachfolgende Werte werden unter Verwendung einer induktiven Formel, analog der zuvor beschriebenen EMA-Formel, bestimmt. Die Formel für den Anfangswert von RSI ist überall für alle. Die nachfolgenden Werte von RSI werden nach der Formel bestimmt. Geben Sie True Range. Measures eine Sicherheit s Volatilität durch Mittelung der True Range über einen Zeitraum von Zeit, die Sie bei der Einrichtung der Studie True Range ist die größte der folgenden. Das aktuelle High minus der aktuellen low. The absolute Wert der aktuellen Hoch weniger die vorherige close. The absolute Wert der aktuellen niedrigen weniger der vorherigen close. Customizable Default von 14 Perioden. Die ATR Formel ist ein exponentieller Durchschnitt der wahren Bereich True Bereich berücksichtigt jede Lücke oben oder unten vom Vortag als well as the high and low for the current day The formula is. where TR is the largest of the absolute values of High-Low , High-Yesterdays Close , and Yesterdays Close-Low. The Upper and Lower lines are placed n-standard deviations above and below the Mid line simple moving average Since standard deviations are a measure of volatility, the bands widen during volatile price action and contract when volatility drops You can change the variables used in the calculation from the defaults of period 20 and n 2 standard deviations above and below. Rather than two bands that are always an equal percentage away from the central average, Bollinger Bands expand and contract based on the standard deviation of the historical volatility of the price action. The formulas for the upper and lower bands are. where m is the number of standard deviations and the formula for is. Implied Volatility Avg Calls Puts. The theoretical value in designed to represent the forecasted volatility of the security or index as determined by the prices of multiple call and put options using the Black-Scholes pricing model. Choose to view the Average of Puts Calls Avg , Average of Puts Puts , or Average of Calls Calls Also, choose whether to view actual implied volatility IV Actual or a simple moving average of implied volatility IV SMA Customizable default period for the IV SMA is 20.Implied Volatility studies are only available on daily, weekly, and monthly charts for optionable securities Implied Volatility values are computed using the Black-Scholes model and may not be available on all underlying securities The Schwab Avg Implied Volatility, Call - Implied Volatility, and Put - Implied Volatility, while based on the Robert E Whaley calculation, are derived using methods that may differ from those used by other data providers. The formula used in calculating this value is.2 in-the-money calls nearest to the current underlying price.2 in-the-money puts nearest to the current underlying price for the two nearest expiration months.2 out-of-the-money calls nearest to the current underlying price.2 out-of-the-money puts nearest to the current underlying price for the 2 nearest expiration months 16.The formula used in calculating this value is.2 in-the-money calls puts nearest to the current underlying price for the two nearest expiration months.2 out of the money calls puts nearest to the current underlying price for the two nearest expiration months 8.Keltner Channels consist of two bands that are not equidistant from the EMA. Rather than two bands that are always an equal percentage away from the EMA, Keltner Channels expand and contract based on a moving average of the True Range TR. Customizable default of 20 periods, 10 ATR Average True Range Periods, and an ATR factor of 2.The formulas for the upper and lower bands are. where F is a factor. Use SSPro4 calculation StreetSmart Edge uses the modern calculation for Keltner Channels, which uses EMA rather than SMA as the signal line However, if you want Keltner Channels to continue using SMA as the signal line, check this box. True Range is the greatest of the following. The current high minus the current low. The absolute value of the current high less the previous close. The absolute value of the current low less the previous close. On Balance Volume OBV. This indicator relates volume to price changes by adding volume to a running total when the price closes up for a period, then subtracts the volume if the stock closes down for a period You can overlay the study on or underneath the price chart.


No comments:

Post a Comment