Metatrader 4 Handelsstrategien


Algorithmischer Handel Entwicklung von Handelsrobotern und technischen Indikatoren Algorithmischer Handel (automatisierter Handel) ist eines der stärksten Merkmale von MetaTrader 4, mit dem Sie Expertenberater und technische Indikatoren entwickeln, testen und anwenden können. Es eliminiert alle Hindernisse in der analytischen und Handelsaktivität. Die Plattform verfügt über die MQL4 IDE (Integrated Development Environment), die es Ihnen erlaubt, Expert Advisors (Handelsroboter) und technische Indikatoren jeder Komplexität zu entwickeln. Sein Kern ist MQL4 objektorientierte Programmiersprache für die Entwicklung von Handelsstrategien. Es bietet hohe Effizienz, Flexibilität und Funktionalität. Der integrierte MetaEditor ist für die Entwicklung von Handelsstrategien in MQL4 konzipiert. Es hat auch den Debugger. Zusammenstellung wird auch im Editor durchgeführt. Danach wird die Anwendung automatisch auf MetaTrader 4 verschoben, wo sie im Strategy-Tester getestet oder optimiert werden kann, was wiederum eine weitere MQL4 IDE-Komponente ist. Die MetaTrader 4-Plattform bietet Trading-Anwendungen und ist damit der letzte Bestandteil der Umgebung. Also, in MetaTrader 4, Ihr Indikator analysiert die Märkte, während ein Expert Advisor Trades in ihnen. Aber das ist nicht alles. Sie können Ihr fertiges Produkt auf andere Art und Weise verwenden: Veröffentlichen Sie es in der Codebasis. So dass Millionen von Händlern können sie kostenlos herunterladen, verkaufen sie im Markt liefern sie an Ihren Kunden über Freelance Service und erhalten eine Zahlung für Ihre Arbeit Automated Trading Championship (ein Wettbewerb der Handelsroboter von unserem Unternehmen gehalten) deutlich gezeigt, die Macht der Sprache. Über drei Monate kämpften die MQL4 Expert Advisors um einen Preisfonds von 80 000 USD ohne menschliches Eingreifen, und Sie können die Details herausfinden. 2006 2007 2008 2010 2011 2012 Mit anderen Worten: MetaTrader 4 bietet Ihnen die breitesten Möglichkeiten für die Entwicklung von Expertenberatern und technischen Indikatoren. Außerdem erhalten Sie mit MetaTrader 4 zusätzliche Services, die es Ihnen ermöglichen, Ihre Programmierungstalente voll auszuschöpfen. Automatisiertes Trading mit MetaTrader 4 Automatisiertes Trading ist eine relativ neue, aber vielversprechende Technologie. Seine Hauptidee ist die Übertragung von Account Management auf ein Computerprogramm. In MetaTrader 4 ist auch die Marktanalyse an diesen Programmen (Expert Advisors) beteiligt. Mit anderen Worten, MetaTrader 4 komplett freigibt Händler von der Routine-Markt beobachten und die Durchführung von Handelsgeschäften. Um zu sehen, wie es funktioniert, besuchen Sie die Website der jährlichen Automated Trading Championships. Das MetaTrader 4 Client-Terminal wird mit der MetaQuotes Language 4 Integrated Development Environment (MQL4 IDE) geliefert. Diese Umgebung besteht aus folgenden Teilen: MetaTrader 4 Terminal - das Modul, in dem automatisierte Handelsprogramme verwaltet und ausgeführt werden. MetaQuotes Language 4 (MQL4) - die Programmiersprache für die Umsetzung von Handelsstrategien. MetaEditor - Editor und Compiler von Expert Advisors. Strategy Tester - das Modul zum Testen und Optimieren von Expertenberatern. Mit diesen Tools können Sie eigene Expert Advisors erstellen oder die Entwicklungen anderer Programmierer nutzen. Alle Expertenberater sind in der MQL4 in MetaEditor geschrieben. Sobald ein Expert Advisor kompiliert ist, erscheint er im Client-Terminal, wo er im Strategy Tester getestet werden kann oder gleich losläuft. (Je niedriger der Index, desto besser) MQL4 ist eine C-ähnliche Sprache, die eine der schnellsten und am meisten funktional wertvollen Sprachen der Welt ist. Seine Flexibilität macht es möglich, alle Parameter von Expert Advisors gründlich zu überprüfen. Dies ermöglicht es Entwicklern, fast jede Handelsstrategie zu automatisieren. Soweit seine Geschwindigkeitsmerkmale betroffen sind, übertrifft MQL4 alle spezialisierten Sprachen für Handelsstrategien und kommt an zweiter Stelle zu solchen Hochsprachen wie Java und C. Diese Kombination aus breiter Funktionalität und hoher Leistung hat MQL4 die erste Wahl einer Mehrheit von gemacht Händler. Die Entwicklungsumgebung ist in erster Linie darauf ausgelegt, Expert Advisors zu schaffen. Diese Programme ermöglichen eine vollständige Automatisierung der Analyse - und Handelsprozesse. Um alle Möglichkeiten von MQL4 zu demonstrieren, beherbergt unser Unternehmen die jährliche Automated Trading Championship. Während dieses Wettbewerbs, teilnehmen Experten Expert Advisors Handel ohne menschliche Eingriffe für drei Monate. Besuchen Sie die Championship-Website und erfahren Sie, welche erstaunlichen Ergebnisse mit Hilfe eines Expertenberaters erreicht werden können. Neben Expert Advisors können Sie MQL4 verwenden, um benutzerdefinierte Indikatoren und Skripts zu erstellen. Kundenspezifische Indikatoren sind vollständige Analoga zu integrierten technischen Indikatoren. Sie sind unentbehrlich für die Analyse der Preisdynamik von Finanzinstrumenten und Handelsaussagen. Und wenn vorhanden technische Indikatoren arent genug, können Sie Ihre eigenen oder verwenden Sie die von anderen Händlern entwickelt. Skripte sind Mini-Programme, die kleine häufig wiederholte Aktionen automatisieren. Im Gegensatz zu Expert Advisors, Skripte werden nur einmal durchgeführt, nicht mit jedem Tick. Beispielsweise könnte ein typisches Skript ein kleines Programm sein, das alle offenen Positionen für alle Instrumente mit einer einzigen Taste schließt. Der automatisierte Handel mit MetaTrader 4 bietet noch mehr. Eine ganze Infrastruktur hat sich um die MQL4-Entwicklungsumgebung herum entwickelt. Die offizielle Website MQL4munity enthält die Code-Basis für kostenlose MQL4-Programme, die von jedermann genutzt werden können. Neue Expert Advisors von höherer Qualität erscheinen jeden Tag, und die Menschen verkaufen und tauschen sie aus. Wenn Sie anfangen, eigene Programme zu entwickeln, finden Sie eine vollständige Beschreibung der Sprache und Hunderte von Artikeln über verschiedene Aspekte der MQL4-Programmierung. Darüber hinaus können Sie immer auf die Hilfe der Community-Mitglieder zählen. Jedes Jahr hunderte von Entwicklern ihre Experten-Berater einzureichen, um an der automatisierten Handel-Meisterschaft teilzunehmen, um ihre Resultate zu präsentieren. Zusammenfassend, wählen Sie MetaTrader 4 und Sie haben keine Schwierigkeiten mit fertigen Programmen oder die Entwicklung Ihrer eigenen mit Hilfe der verfügbaren Wissensbasis. Copyright 2000mdash2017, MetaQuotes Software Corp. MetaTrader 4 - Beispiele Portfolio-Handel mit MetaTrader 4 Magnus ab integro saecorum nascitur ordo Publius Vergilius Maro, Eclogues Einführung Das Portfolio-Prinzip ist seit langem bekannt. Durch die Diversifizierung der Fonds in mehrere Richtungen schaffen die Anleger ihre Portfolios, die das Gesamtverlustrisiko reduzieren und das Einkommenswachstum reibungsloser gestalten. Die Portfoliotheorie hat im Jahre 1950 an Dynamik gewonnen, als das erste mathematische Modell des Portfolios von Harry Markowitz vorgeschlagen wurde. In den achtziger Jahren hat ein Forschungsteam von Morgan Stanley die erste verbreitete Handelsstrategie entwickelt, die den Weg für die Gruppe der marktneutralen Strategien ebnet. Die heutige Portfolio-Theorie ist vielfältig und komplex, so dass es kaum möglich ist, alle Portfolio-Strategien in einem einzigen Artikel zu beschreiben. Daher wird hier nur ein kleiner Bereich spekulativer Strategien und deren mögliche Implementierung in der MetaTrader 4 Plattform betrachtet. Einige Definitionen in diesem Artikel sind wie folgt: Portfolio (Korb, synthetisches Instrument) Satz von Positionen an mehreren Handelsinstrumenten mit berechneten optimale Volumen. Positionen bleiben für einige Zeit offen, werden als ein verfolgt und geschlossen mit einem gemeinsamen finanziellen Ergebnis. Portfolio (Basket, synthetisches Instrument) Anpassung Änderung der Palette von Instrumenten und ihre Volumen, um Verluste zu minimieren oder Zwischenergebnisse zu fixieren. Synthetische Volumen Anzahl der synthetischen Positionen (Anzahl, wie oft das Portfolio gekauft oder verkauft wurde). Virtuelles Profitverlust-Finanzergebnis, das erhalten werden kann, wenn eine Position innerhalb eines bestimmten Zeitintervalls gehalten wird. Klassische Anlageportfolios werden üblicherweise an den Aktienmärkten angewendet. Allerdings ist ein solcher Ansatz nicht für Forex viel, da die meisten Portfolios sind hier spekulativ. Sie werden etwas anders geschaffen und gehandelt. Soweit Forex betrifft, ist der Portfolio-Handel tatsächlich ein Multi-Devisen-Handel, aber nicht alle Multi-Währungs-Strategien sind Portfolio ein. Wenn Symbole unabhängig voneinander gehandelt werden und keine Gesamt-Ergebnisdynamik verfolgt wird, ist dies ein Multisymbol-Handel. Wenn mehrere unabhängige Systeme auf einem einzigen Handelskonto handeln, ist dies ein Strategieportfolio. Hier wird ein Portfoliohandel im engeren Sinne betrachtet, wenn aus mehreren Symbolen eine synthetische Position gebildet wird und anschließend verwaltet wird. Grundsätze Die Portfolioentwicklung besteht aus den beiden Stufen: Auswahl von Symbolen und Berechnung von Losungen und Richtungen für diese. Hier werden wir nur ein paar einfache Portfolio-Entwicklung Methoden zusammen mit Algorithmus-Proben zu diskutieren. Insbesondere schlagen wir die Methode der Methode der kleinsten Fehlerquadrate (OLS) und der Hauptkomponentenanalyse (PCA) vor. Weitere Informationen finden Sie hier: Bei der Entwicklung eines Portfolios ist es meist notwendig, das gewünschte Verhalten des Portfoliendiagramms zu definieren. Das Portfolio-Diagramm stellt die Veränderungen des Gesamtgewinns aller Positionen dar, die innerhalb eines bestimmten Zeitintervalls in das Portfolio aufgenommen wurden. Portfolio-Optimierung ist eine Suche nach einer Kombination von Losen und Richtungen, die am besten zu dem gewünschten Portfolio-Verhalten passen. Beispielsweise kann es je nach unserer Aufgabenstellung erforderlich sein, dass ein Portfolio eine Wiederholung des Durchschnittswerts oder der Attribute eines deutlich gekennzeichneten Trends aufweist oder sein Diagramm ähnlich einem Diagramm einer Funktion sein sollte. Drei Portfolio-Typen (Trend, Flat, Funktion): Ein Portfolio kann durch die folgende Gleichung dargestellt werden: A, B, C. Zeitreihen entsprechen den Portfolio-Symbolen k1, k2, k3. F-Zielfunktion (durch Werte in Zeitreihen-Punkten gesetzt) ​​Dies ist eine multivariate lineare Regressionsgleichung mit einem Null-Konstanten-Term. Seine Wurzeln können leicht mit OLS gefunden werden. Zunächst sollten Zeitreihen vergleichbar sein, was bedeutet, dass Preispunkte auf eine Einlagenwährung gebracht werden sollten. In diesem Fall repräsentiert jedes Element jeder Zeitreihe einen virtuellen Gewinnwert eines einzelnen Loses des entsprechenden Symbols zu einem bestimmten Zeitpunkt. Für statistische Anwendungsaufgaben wird in der Regel eine vorläufige Preislogarithmierung oder Preisdifferenzen empfohlen. Allerdings kann dies in unserem Fall unnötig und sogar schädlich sein, da kritische Gesamtsymbole Dynamikdaten auf dem Weg zerstört werden würden. Die Zielfunktion definiert den Portfolio-Diagrammtyp. Die Zielfunktionswerte sollten in jedem Punkt entsprechend vorberechnet werden. Wenn beispielsweise ein einfaches wachsendes Portfolio (Trendportfolio) entwickelt wird, hat das Zielportfolio die Werte 0, 1S, 2S, 3S usw., wobei S ein Inkrement des Geldwertes ist, an dem das Portfolio an jedem Balken erhöht werden soll Auf einem vorbestimmten Intervall. Der OLS-Algorithmus fügt A, B, C. Zeitreihen hinzu, sodass ihre Gesamtsumme das Ziel-Funktionsplan wiederholt. Um dies zu erreichen, minimiert der OLS-Algorithmus die Summe der quadrierten Abweichungen zwischen der Seriensumme und der Zielfunktion. Dies ist eine statistische Standardaufgabe. Es ist kein detailliertes Verständnis der Algorithmus-Operation erforderlich, da Sie eine fertige Bibliothek verwenden können. Es kann auch vorkommen, dass die Zielfunktion nur Nullwerte enthält (flaches Portfolio). In diesem Fall sollte ein zusätzliches Verhältnis Summengrenze (zum Beispiel: k1 k2 k3. 1) hinzugefügt werden, um eine Regressionsgleichung mit Nullwurzeln zu lösen. Die Alternative besteht darin, einen Gleichungsausdruck nach rechts zu verschieben, wodurch er eine Zielfunktion erhält, die das Verhältnis von -1 empfängt, während die restlichen Terme wie üblich optimiert werden. In diesem Fall setzen wir den Instrumentenkorb auf ein ausgewähltes Instrument und schaffen so ein Spread-Portfolio. Schließlich kann der fortgeschrittenere PCA-Algorithmus verwendet werden, um solche Portfolios zu entwickeln. Es wendet die Instrumentenkovarianzmatrix an, um den Koeffizientenvektor zu berechnen, der der Punktwolkenquerschnitts-Hyperplane mit den Portfolios der minimalen Restvarianz entspricht. Auch hier müssen Sie den Algorithmus im Detail nicht verstehen, da Sie eine fertige Bibliothek verwenden können. Algorithmen Jetzt ist es an der Zeit, alle oben beschriebenen Ideen mithilfe der MQL-Sprache zu implementieren. Wir verwenden eine bekannte ALGLIB-Mathematik-Bibliothek, die für MT4 angepasst ist. Manchmal können Probleme während seiner Installation entstehen, so werde ich mehr darüber wohnen. Wenn mehrere Terminals auf einem PC installiert sind, ist es sehr wichtig, den richtigen Datenordner zu finden, da der Compiler die Bibliothek nicht sieht, wenn er sich in einem anderen Terminals-Datenordner befindet. Installieren der ALGLIB-Bibliothek: Laden Sie die Bibliothek (mql5encode11077), entpacken Sie Zip-Datei öffnen Sie Include-Ordner und finden Sie Math-Verzeichnis im Start der etarader 4 Plattform, zu der die Bibliothek hinzugefügt werden soll, wählen Sie den Menübefehl: Datei Öffnen Datenordner öffnen MQL4 und Include Unterordner kopieren Mathe-Ordner auf Include-Ordner des Terminals überprüfen Sie die Ergebnisse:. Mhq-Dateien sollten innerhalb MQL4IncludeMathAlglib. Die erste Schlüsselstufe: Umwandlung von Zeitreihen von Preispunkten in die Devisenwährung. Um dies zu erreichen, müssen wir eine spezielle Funktion schreiben, um einen Vertragspreis zu einem beliebigen Zeitpunkt zu berechnen. Die herkömmliche MarketInfo-Funktion ist dafür nicht gut geeignet, da sie nur für die letzte Diagrammleiste einen korrekten Punktpreis liefert. Das Problem ist, dass Abweichungen unvermeidlich in der Geschichte auftreten, wenn Punktpreise einiger Symbole sich ständig ändern. Daher ist es entscheidend, Datenreihen genau zu konvertieren, um erhebliche Ungleichgewichte im Portfolio zu vermeiden. Die Beispielfunktion zur Berechnung des Vertragspreises ist nachfolgend dargestellt: Diese Funktion wird in Zukunft immer verwendet. Es funktioniert mit Währungspaaren, Indizes, Futures und CFDs. Darüber hinaus berücksichtigt es auch Symbol-Präfixe und Postfixes (FXprefix, FXpostfix) von einigen Brokern angewendet. Das Ergebnis wird in eine Zielwährung (ChartCurrency) konvertiert. Wenn wir den zurückgegebenen Funktionswert mit dem aktuellen Symbolpreis multiplizieren, erhalten wir den Preis der Symbole ein Los. Nach Summierung aller Vertragspreise im Portfolio unter Berücksichtigung von Lots erhalten wir den Preis des gesamten Portfolios. Wenn wir den Funktionswert mit einer Zeitdifferenz multiplizieren, erhalten wir bei dieser Preisänderung Gewinn oder Verlust. Der nächste Schritt ist die Berechnung des virtuellen Gewinns für alle einzelnen Loskontrakte. Die Berechnung ist als ein zweidimensionales Array implementiert, wobei die erste Dimension ein Punktindex im berechneten Intervall ist, während die zweite Dimension ein Symbolindex ist (die zweite Dimensionsgröße kann durch eine bestimmte Anzahl begrenzt werden, wobei man weiß, dass die Menge der Symbole in Das Portfolio wird es offensichtlich nicht überschreiten): Zuerst sollten wir die Anfangspreise für alle Symbole (auf der linken Grenze des berechneten Intervalls) speichern. Dann wird der Unterschied zwischen dem Anfangs - und dem Endpreis an jedem Punkt des berechneten Intervalls berechnet und multipliziert mit dem Vertragspreis. Jedes Mal verschieben wir nach rechts um ein Zeitintervall in der Schleife: Im obigen Codefragment, Nullzeit der berechneten Intervalle linke Grenze, limittime Zeit der berechneten Intervalle rechte Grenze, Zeitrahmenzahl von Minuten in einem Balken der Arbeit Zeitrahmen, Punkte Gesamtzahl der erkannten Punkte im berechneten Intervall. In dem obigen Beispiel wird die Einhaltung der Regeln für die Zeitmarke verwendet. Wenn ein Balken für eine bestimmte Zeitmarke selbst bei einem Symbol fehlt, wird eine Position übersprungen und eine Verschiebung zum nächsten durchgeführt. Das Verwalten von Zeitetiketten ist für die vorbereitende Datenaufbereitung sehr wichtig, da Datenverlagerungen auf verschiedenen Symbolen zu erheblichen Verzerrungen im Portfolio führen können. Die Beispielportfoliodaten für drei Symbole und eine unabhängige Funktion (Quadratwurzelparabel): Nachdem wir Daten vorbereitet haben, ist es Zeit, sie an das Optimierungsmodell zu senden. Die Optimierung erfolgt mittels LRBuildZ-, LSFitLinearC - und PCABuildBasis-Funktionen aus der ALGLIB-Bibliothek. Diese Funktionen werden kurz in der Bibliothek selbst sowie auf der offiziellen Projekt-Website: alglib. netdataanalysislinearregression. php und hier: alglib. netdataanalysisprincipalcomponentsanalysis. php beschrieben. Stellen Sie zunächst sicher, dass die Bibliothek enthalten ist: Als nächstes sollte das Codefragment unter Berücksichtigung der Modellmerkmale für jedes Optimierungsmodell festgelegt werden. Zunächst untersuchen wir das Beispiel-Trend-Modell: Zunächst mag dies kompliziert erscheinen, aber im Grunde ist alles einfach. Zu Beginn wird die lineare Trendfunktion berechnet und ihre Werte werden dem MODEL-Array zugewiesen. Der Parameter ModelGrowth setzt den Wachstumswert für das gesamte Berechnungsintervall (den Wert, um den das Portfolio in der Einlagenwährung wachsen soll). Die Parameter ModelAbsolute und ModelPhase sind optional und spielen keine Rolle. Die Matrix wird für Berechnungen (MATRIX) erstellt. Daten zum virtuellen Gewinn aller Verträge aus dem EQUITY-Array sowie die Zielfunktionswerte aus dem MODEL-Array werden in die letzte Zeile der Matrix geladen. Die Anzahl der unabhängigen Regressionsgleichungsvariablen wird in Variablen gespeichert. Die Funktion LRBuildZ wird danach aufgerufen, um die Berechnung durchzuführen. Danach werden die Wurzeln der Regressionsgleichung mit Hilfe der LRUnpack-Funktion in das ROOTS-Array geschrieben. Alle komplexen Mathematik befindet sich innerhalb der Bibliothek, während Sie die fertigen Funktionen verwenden können. Die Hauptschwierigkeit ist technischer Natur und bezieht sich auf die korrekte Einstellung aller Anrufe und Aufrechterhaltung der Daten während der Vorbereitungen. Das gleiche Codefragment kann für jede Funktion verwendet werden. Ersetzen Sie einfach den MODEL-Array-Inhalt durch Ihre Zielfunktion. Nachstehend ist ein Beispiel einer komplexeren Funktion dargestellt, die die Summe aus einem linearen Trend und harmonischen Schwingungen darstellt: Im obigen Beispiel ist es möglich, eine Trendgröße (unter Verwendung des ModelGrowth-Parameters) und eine Oszillation zu verwalten Amplitude (unter Verwendung des ModelAmplitude-Parameters). Die Anzahl der Oszillationszyklen wird durch ModelCycles eingestellt, während die Oszillationsphasenverschiebung mit ModelPhase durchgeführt wird. Zusätzlich sollte die vertikale Verschiebung durchgeführt werden, um die Funktion gleich Null an einem Nullpunkt zu lassen, um sicherzustellen, dass die Berechnungen korrekt sind: Diese Beispiele machen es einfach, eine benutzerdefinierte Funktion zu entwickeln. Je nach Aufgabe und Handelseinrichtung können Sie beliebige Funktionstypen anlegen. Je komplexer der Funktionstyp ist, desto schwieriger ist es, die beste Lösung auszuwählen, da der Markt nicht verpflichtet ist, der Funktion zu folgen. Hier ist die Funktion nur eine Annäherung. Sie brauchen keine Zielfunktion, um Spread - und Return-Flat-Portfolios zu erstellen. Wenn Sie zum Beispiel eine Spalte zwischen zwei Symbolkörben erstellen möchten, wird der optimierte Korb in den Hauptteil der Matrix geladen, während der Referenzkorb als Zielfunktion verwendet und als Gesamtsumme in die letzte Spalte der Matrix geladen wird Betrag: Nachfolgend eine Beispiel-Portfolio-Portfolio-Berechnung, bei der die LSFitLinearC-Funktion das Portfolio innerhalb des berechneten Intervalls um symmetrisch wie möglich um Null herum macht: Nachfolgend noch ein weiteres wichtiges Beispiel für die Berechnung eines flachen Portfolios mit der minimalen Varianz nach der PCA-Methode. Hier berechnet die PCABuildBasis-Funktion die Verhältnisse so, dass das Portfoliogramm möglichst innerhalb des Berechnungsintervalls komprimiert bleibt: Wenn Sie sich von all diesen mathematischen Konzepten überwältigt fühlen, machen Sie sich keine Sorgen. Wie ich bereits gesagt habe, müssen Sie nicht alle mathematischen Details verstehen, um Portfolios zu entwickeln und zu nutzen. Im allgemeinen sieht die Folge von Stufen wie folgt aus: Berechnung des virtuellen Profits für Portfolio-Symbole mit einzelnen Chargen Graphische Berechnung und Handel mit dem Portfolio Nachdem wir nun eine Reihe von Prozeduren mit dem ROOTS-Array optimaler Verhältnisse erhalten haben, ist es Zeit, viele. Dazu benötigen wir eine Normalisierung: Skalierung und Rundung. Die Einstellung einer erforderlichen Waage macht den Handel sehr komfortabel. Rundung ist notwendig, um die Lose Kapazität im Einklang mit Broker Anforderungen zu bringen. Manchmal empfiehlt es sich, eine Normalisierung durch Portfolio-Gesamt-Marge durchzuführen, aber diese Methode hat gravierende Nachteile (da die Marge der einzelnen Symbole variiert und sich ändern kann). Daher ist es viel vernünftiger, eine Normalisierung durch einen Portfoliopreis oder seine Volatilität durchzuführen. Unten ist ein einfaches Beispiel des Normalisierungsalgorithmus durch den Portfolio-Preis: Hier wird der Portfoliostückpreis über die Proportionen dem geforderten entspricht. PortfolioValue erforderliche Portfolio-Preis, totalvalue Gesamtportfolio-Preis mit den Standard-Verhältnisse, scalevolume Skalierung Verhältnis, LotsDigits viel Kapazität, LOTS-Array der Loswerte für den Handel geeignet. Lot-Werte bilden die endgültige Portfolio-Struktur. Positive Lose entsprechen einer Longposition, negative Lose zu einem Short. Wenn wir die Portfolio-Struktur kennen, können wir ihr Diagramm darstellen und Handelsgeschäfte mit dem Portfolio durchführen. Nachfolgend ist eine Musterportfolio-Struktur nach der Normalisierung aufgeführt: Das Portfolio-Diagramm wird nur durch die Kurve Preise gezeichnet und in einem separaten Indikator-Unterfenster angezeigt. Um das Portfoliendiagramm aufzubauen, müssen wir jede Chartbar auf die gleiche Weise berechnen, wie virtuelle Gewinne für separate Symbole vorher berechnet wurden. Nun werden sie unter Berücksichtigung der zugewiesenen Partien zusammengefasst: In diesem Codefragment sehen wir, dass das Diagramm zwischen den Anfangs - und Endbildern aufgetragen ist: drawbegin und drawend. Der Portfoliowert ist gleich der Summe der Profitschoner bei allen Symbolwerten, berechnet als Preisdifferenz multipliziert mit einem Vertragspreis und einem vorher berechneten Los. Ich habe technische Aspekte im Zusammenhang mit Indikatorpuffern, Formatierung und dergleichen übersprungen. Das Muster der fertigen Portfolio-Indikatoren ist im folgenden Abschnitt beschrieben. Hier können Sie die Musterportfoliendarstellung (Indikator unteres Teilfenster) mit dem angehängten Zielfunktionsgraphen untersuchen: Hier wird die quadratische Wurzelparabel symmetrisch zum Referenzpunkt (ModelAbsolutetrue) als Zielfunktion verwendet. Berechnete Intervallgrenzen sind als rote gepunktete Linien dargestellt, während das Portfoliograph dazu neigt, sich entlang der Zielfunktionszeile sowohl innerhalb als auch außerhalb des berechneten Intervalls zu bewegen. Sie können technische Analysen von Portfolio-Graphen ähnlich wie herkömmliche Symbolpreis-Charts durchführen, einschließlich der Anwendung von Bewegungsdurchschnitten, Trendlinien und Ebenen. Das erweitert die Analyse - und Trading-Fähigkeiten, die es Ihnen ermöglichen, die Portfolio-Struktur zur Bildung eines bestimmten Handelsaufbaus auf einem Portfolio-Graphen auszuwählen, beispielsweise Korrektur nach einem Trendimpuls, Trendabschwächung, Austritt eines flachen, überkauften Überverkaufs, Konvergenz-Divergenz, Breakout Konsolidierung und andere Setups. Die Qualität der Handelseinrichtung wird durch die Portfoliozusammensetzung, die Optimierungsmethode, die Zielfunktion und das ausgewählte Historiensegment beeinflusst. Es ist notwendig, die Volatilität des Portfolios zu kennen, um ein angemessenes Handelsvolumen auszuwählen. Da die Portfolio-Chart zunächst auf einer Depotwährung basiert, können Sie einen Portfolio-Schwankungsbereich und eine potenzielle Drawdown-Tiefe direkt in dieser Währung mit dem Fadenkreuz-Cursor-Modus und dem Ziehen bewerten. Ein Trading-System sollte auf Portfolio-Verhalten Eigenschaften und Setup-Statistiken basieren. Bisher haben wir nicht erwähnt, dass sich das Portfolioverhalten außerhalb des Optimierungsintervalls drastisch verändern kann. Eine Wohnung kann sich in einen Trend verwandeln, während ein Trend zu einer Umkehrung wird. Ein Handelssystem sollte auch berücksichtigen, dass die Portfolio-Eigenschaften anfällig für Veränderungen im Laufe der Zeit sind. Dieses Problem wird nachstehend erörtert. Der Handel mit einem Portfolio besteht aus einem einmaligen Kauf aller Portfolio-Symbole mit berechneten Volumina. Für mehr Komfort wäre es vernünftig, einen speziellen Expert Advisor zu haben, der alle Routinearbeiten durchführt, einschließlich der Erlangung von Portfoliostrukturdaten, der Vorbereitung synthetischer Positionen, der Verfolgung von Einstiegsebenen, der Festsetzung von Gewinn und der Begrenzung von Verlusten. Wir wenden für den EA-Betrieb folgende Bedingungen an: lange synthetische Portfolio-Position und kurze synthetische Portfolio-Position (bei denen Long-Positionen durch kurze ersetzt werden und umgekehrt). Die EA sollte in der Lage sein, Positionen zu sammeln, synthetische Volumen zu verfolgen, sowie Portfolio-Netting und Transformation durchzuführen. Die Probe EA wird im nächsten Abschnitt betrachtet, obwohl ihre Struktur nicht aufgrund der Artikelmengenbeschränkungen erklärt wird. Unten ist die beispielhafte minimalistische Schnittstelle für ein Portfolio EA: Manchmal ist es notwendig, nicht ein, sondern mehrere Portfolios aufzubauen. Im einfachsten Fall ist es notwendig, zwei Portfolios miteinander zu vergleichen. Einige Aufgaben erfordern, dass eine ganze Portfolioserie auf einem einzigen Segment erstellt wird, das zu einer Reihe von Portfolios führt, die bestimmte Muster enthalten. Um solche Aufgaben zu realisieren, ist der Algorithmus, der Portfolios nach einer bestimmten Vorlage erzeugt, erforderlich. Das Beispiel für die Implementierung eines solchen Indikators finden Sie im nächsten Abschnitt. Hier beschreiben wir nur die wichtigsten Funktionen. Wir müssen ein Strukturarray anordnen, um die Daten von mehreren Portfolios zu speichern, zum Beispiel: In diesem Codefragment legt DIMSIZE die maximale Größe für die Speicherung von Portfolios fest. Die Struktur ist folgendermaßen aufgebaut: Symbol-Portfolio-Symbol-Array, Lot-Array für Portfolio-Symbole, Formeltextstring mit der Portfolio-Gleichung, Richtung Portfolio-Richtung (lang oder kurz), Filterfilterattribut (inklusive ausgeschlossen). Das Anwenden des Strukturarrays ist bequemer und angemessener als die Verwendung von separaten Arrays. Das Strukturarray kann auch zum Speichern von Portfolio-Graphen-Arrays erstellt werden: Die Portfolios innerhalb des Sets variieren durch ihre Symbolkombinationen. Diese Kombinationen können im Voraus definiert oder nach bestimmten Regeln erstellt werden. Die Arbeit mit einer Reihe von Portfolios kann mehrere Stufen abhängig von einer Aufgabe. Lets betrachten die folgende Sequenz von Stufen hier: Berechnung von Diagrammen von separaten Portfolios Zuerst werden separate Portfolios innerhalb eines Satzes nach vorher beschriebenen Prinzipien berechnet. Die Kombination von Portfolios an einem Nullpunkt ist für eine einfache Analyse erforderlich. Dazu wird ein Punkt ausgewählt, bei dem alle Portfolios gleich Null sind. Reverse-Portfolios relativ zu einer Null-Ebene kann auch nützlich sein, um die Analyse zu vereinfachen. Fallende Portfolios werden wachsende, nachdem Lose umgekehrt sind. Das Filtern von Portfolios innerhalb eines Satzes bedeutet, die besten Portfolios nach einem Kriterium auszuwählen, beispielsweise eine Wachstumsgeschwindigkeit, Abweichung von Null, Position innerhalb eines Satzes relativ zu anderen Portfolios. Also, die besten Portfolios ausgewählt und gekämmt in einen Korb von Portfolios, oder ein Superportfolio (Überlagerung von Portfolios). Das folgende Bild veranschaulicht diese Schritte: Eine vertikale Verschiebung wird verwendet, um Portfolios zu kombinieren. Das Portfolio wird umgekehrt, wenn es mit -1 multipliziert wird. Schließlich wird ein Filter durch Sortieren und Abtasten nach Werten aufgebracht. Eine detaillierte Beschreibung dieser Algorithmen wird hier nicht bereitgestellt, um einen großen Teil des Routine-Codes zu vermeiden. Im Folgenden finden Sie eine Reihe von Portfolios, die nach den genannten Prinzipien erstellt wurden: Die Grafik zeigt eine Reihe von Portfolios, die mit dem PCA-Modell mit einer kurzen Periode berechnet wurden. Die berechneten Intervallgrenzen sind als rote gestrichelte Linien dargestellt. Hier sehen wir die Erweiterung des Portfolios auf beiden Seiten des Optimierungsintervalls. Der Nullpunkt wird an der linken Optimierungsintervallgrenze ausgewählt, während die Umkehrmomente gegen Null und die Filteranwendung durch die purpurfarbenen Punkte markiert sind. Die dicke Linie umreißt das Superportfolio, bestehend aus den aktivsten Portfolios und damit einen anständigen Lauf vom Nullpunkt aus. Die Kombination von Portfolios bietet zusätzliche Analysemöglichkeiten und die Entwicklung von Handelsstrategien, wie z. B. Diversifikation zwischen Portfolios, Portfoliostrukturen, Konvergenz-Divergenz der Portfolios, Warten auf das Verdrehen eines Portfolios, Übergang von einem Portfolio zum anderen und andere Ansätze. Implementierungsbeispiele Die im aktuellen Artikel beschriebenen Methoden wurden als Portfolioindikator und halbautomatisiertes EA implementiert. Hier finden Sie die Anleitungen, laden Sie den Quellcode herunter und passen Sie ihn Ihren Bedürfnissen an: Portfolio Modeller Portfolioentwickler und Optimierer. Es verfügt über mehrere Optimierungsmodelltypen mit konfigurierbaren Parametern. Außerdem können Sie eigene Modelle und Zielfunktionen hinzufügen. Es gibt auch grundlegende Werkzeuge für die technische Analyse von Portfolios, sowie verschiedene Chart-Formatierung Optionen. Portfolio Multigraph-Generator von Portfolio-Sets mit den gleichen Modellen und Parametern und zusätzlichen Optionen für Portfolio-Transformation und Filtration sowie die Schaffung eines Superportfolios. Portfolio Manager EA für die Arbeit mit Portfolios und Superportfolios. Es arbeitet in Verbindung mit dem Portfolio-Indikator und ermöglicht die Eröffnung und Verwaltung synthetischer Positionen sowie Portfolio-Korrektur-Funktionalität und Auto-Trading-Modus auf der Grundlage von grafischen Linien von virtuellen Bestellungen. Handelsstrategien Es gibt viele Handelsstrategien, die auf der Anwendung synthetischer Instrumente basieren. Lets betrachten ein paar grundlegende Ideen, die nützlich sein können, wenn die Schaffung einer Portfolio-Trading-Strategie. Gleichzeitig können wir nicht über Risiken und Grenzen zu vergessen. Der klassische Ansatz zur Erstellung eines Portfolios besteht darin, unterbewertete Vermögenswerte mit einem Wachstumspotenzial zu identifizieren und in das Portfolio mit dem Erwartungswert ihres Anstiegs aufzunehmen. Die Volatilität des Portfolios ist immer niedriger als die Summe der Volatilitäten der enthaltenen Instrumente. Dieser Ansatz ist gut für den Aktienmarkt, aber es ist von begrenztem Einsatz auf Forex, da Währungen in der Regel nicht zeigen, nachhaltiges Wachstum, im Gegensatz zu Aktien. Darunter ist das langfristige Portfolio von Warren Buffetts: Bei der Arbeit mit Standard-Investmentportfolios ist es notwendig, den aktuellen Vermögensstatus sorgfältig zu bewerten, um ihn während des Kursabbaus zu kaufen. Die erste und einfachste Option für die spekulative Portfolio-Trading ist ein Paar Handel die Schaffung einer Ausbreitung von zwei korrelierenden Symbole. Bei Forex ist dieser Ansatz wesentlich eingeschränkt, da selbst hochkorrelierende Währungspaare keine Kointegration aufweisen und daher mit der Zeit erheblich divergieren können. In diesem Fall beschäftigen wir uns mit einer gebrochenen Ausbreitung. Außerdem wird ein solches Paarhandeln in den Handel mit einer synthetischen Kreuzrate umgeschaltet, da Paare mit einer gemeinsamen Währung üblicherweise in einen Spread einbezogen werden. Diese Art von Paar Handel ist eine sehr schlechte Idee. Nach dem Öffnen entgegengesetzter Positionen durch Ausbreitung, müssen wir manchmal eine sehr lange Zeit warten, bevor die Kurven wieder zusammenlaufen. Unten ist ein Beispiel für hochkorrelierende Paare und deren allmähliche und unvermeidliche Divergenz: Die Entwicklung dieses Ansatzes ist ein multilateraler Spreadhandel, wenn drei und mehr Währungspaare in die Spreads einbezogen werden. Dies ist schon besser als Paar Handel, da es einfacher ist, eine gleichmäßigere Verbreitung mit einer größeren Anzahl von Kombinationsmöglichkeiten zu schaffen. Allerdings bleiben die gleichen Risiken bestehen: ein Spread kann divergieren und nicht wieder konvergieren. Es ist viel einfacher, eine gute Rendite auf einem ruhigen Markt zu erreichen, aber starke fundamentale Nachrichten verursachen eine rasche und irreversible Divergenz nach einer Weile. Interessanterweise erhöht sich die Divergenzwahrscheinlichkeit, wenn wir die Anzahl der Instrumente in einem Spread erhöhen, da die Währungen umso größer sind, je größer die Wahrscheinlichkeit ist, dass etwas während einer Pressemitteilung passiert. Warten auf die Ausbreitung wieder zu konvergieren wäre eine äußerst schädliche Strategie, da dies nur auf einem ruhigen Flachmarkt funktioniert. Im Folgenden finden Sie ein Beispiel für ein multilaterales Spread-Verhalten während einer Pressemitteilung: Spread-Trading hat mehr Chancen auf Aktien - oder Devisenmarkt, falls eine fundamentale Verbindung zwischen den Vermögenswerten besteht. Allerdings bestehen noch keine Garantien gegen Spread-Lücken am Dividenden - tag oder bei Futures-Kontrakten. Spreads können auch aus Marktindizes und Futures bestehen, aber dies erfordert die Berücksichtigung der Börsenhandelseigenschaften. Ein Sackgasse-Zweig des Spread-Trades wird durch ein Multi-Lock dargestellt, wenn zyklisch zusammenhängende Währungspaare (zB EURUSD-GBPUSD-EURGBP) ausgewählt und zur Bildung eines ausgewogenen Spread verwendet werden. In diesem Fall haben wir eine perfekte Verbreitung, die unmöglich ist zu handeln, da die Gesamtausgaben und Provisionen zu hoch sind. Wenn wir versuchen, unausgewogen viel ein wenig, wird die Grafik mehr trend-like, die Spread-Trading widerspricht, während die Kosten bleiben hoch genug, dass dieser Ansatz bedeutungslos. Unten ist ein Beispiel für ein symmetrisches Multiblock. Die gesamte Spread wird als zwei rote Linien angezeigt: Spread Handelsnachteile machen uns zu Trendmodellen wechseln. Auf den ersten Blick scheint hier alles harmonisch genug zu sein: Trend identifizieren, bei einer Korrektur eingeben und mit Gewinn auf höheren Ebenen beenden. Unten ist ein Beispiel für ein gutes Trendmodell: Trendmodelle können jedoch nicht so einfach und handlich sein. Manchmal weigert sich ein Portfolio, weiter zu wachsen und manchmal schrumpft es ab. In diesem Fall beschäftigen wir uns mit einem gebrochenen Trend. Dies geschieht häufig bei kurzen und mittelfristigen Modellen. Die Traffic-Effizienz hängt hier stark von der Marktphase ab. Wenn der Markt ist trendy, funktioniert das System gut. Wenn der Markt flach oder besonders volatil ist, können zahlreiche Verluste auftreten. Unten sehen Sie eine scharfe Trendvollendung: Diese Nachteile machen uns zu überdenken traditionellen Ansätzen. Nun können wir einen Blick auf Ausbreitung und Trendwende Trading-Methoden. The common supposition is that since we cannot avoid portfolio instability, we should learn how to use it. In order to develop a spread breakout setup, we need to create a very compact short-period spread with the minimum volatility in anticipation of a strong movement. The more we compress the portfolio volatility, the stronger it bursts out. For accelerated spread breakout, it is possible to form a setup before beginning trade sessions and before the news selecting certain intervals of a quiet market. PCA optimization method is best suited for volatility compression. In this setup, we do not know in advance, in which direction the breakout is to occur, therefore, the entry is already defined when moving from the spread boundaries. Below is a sample exit from the short-period spread channel with the spread channel boundaries highlighted: The method advantages: short-period spreads are frequent on charts and the volatility after the breakout often exceeds the spread corridor width. The drawbacks: spreads are expanded during news releases and a saw may form when the price moves up and down a few times. The conservative entry can be proposed as an alternative after exiting a spread corridor during the correction to the corridor boundary if possible. In order to create a trend reversal setup, a trend model is created, as well as turning movements and portfolio price levels are tracked. The movement direction is clearly defined but we do not know in advance when the trend reverses. An internal trend line crossing, reverse correction and roll-back are tracked for a conservative entry. Touching an external trend line and a roll-back are tracked for an aggressive entry. Below is an example of a trend portfolio with the external and internal lines displayed: The method advantages: good entry price, convenience, extreme price instability works in favor of the setup. Disadvantages: portfolio price may go up the trend due to fundamental reasons. In order to improve the situation, we may enter in fractional volumes from multiple levels. A similar setup can be implemented using square root parabolic function model. The setup is based on a well-known property: when the price reaches a theoretical limit of a market distribution range, its further movement is hindered. Like in other cases, the target optimization function is adjusted for the current market distribution. If the markets had featured normal Gaussian distribution, the time-based square root law would have always worked perfectly but since the market distribution is fractal and non-stationary in its nature, the situational adjustment is required. You can find more about market distributions in the following books by Edgar Peters: Chaos and Order in the Capital Markets Fractal Market Analysis Below is an example of a portfolio moving away from the parabolic function: This setup is perfect for adapting to mid-term volatility. However, just like in case of a trend setup, a portfolio price may move upwards due to fundamental factors. The market is not obliged to follow any target function behavior, but neither it is obliged to deviate from it as well. Some degree of freedom and duality remain at all times. All trade setups are not market-neutral in the absolute sense but are based on some form of technical analysis. The dual nature of trend and flat can be seen below. A trend model looks similar to an uneven flat on a bigger scale: Apart from symbol combination and model type, location of estimated interval boundaries is of great importance when developing a portfolio. When configuring the portfolio, it might be useful to move the boundaries and compare the results. Good choice of boundaries allows finding portfolios that are more suitable in terms of a trading setup. If a portfolio position enters a drawdown, it is possible to correct the portfolio without closing existing positions. Shifting the boundaries changes the portfolio curve adapting it to a changing situation. Positions should be corrected accordingly after re-arranging the portfolio. This does not mean that the drawdown will decrease in a moment, but the corrected portfolio might become more efficient. Next, lets consider some properties of portfolio sets and their possible applications in trading systems. The first property of portfolio sets to catch the eye is a set expansion, or divergence of portfolios with distance from the zero point. It would be only natural and reasonable to use this property for trading: buying rising portfolios and selling falling ones. Below is a sample expanding set of portfolios: The second property portfolio set compression (convergence) is opposite to the previous one. It happens after an expansion. Expansion and compression cycles suggest that this behavior can be used to open synthetic positions in anticipation of returning to the center of the set after reaching an alleged highest degree of expansion. However, the expansion highest degree always vary, and it is impossible to predict the final boundaries of the set curves expansion. Below is a sample compressing set of portfolios: Applying various target functions, filtration parameters, reversals and combinations provides good opportunities for experimenting and searching for efficient trading setups. Generally, all setups can be divided into two classes: trading breakouts and trading roll-backs. Below is an example of the first type trading setup with a reversal and shift of a portfolio set: A sample roll-back trading setup based on the multi-trend model is provided below: Another recurring portfolio property is a set twist (self-crossing). Typically, this corresponds to a change of a market trend. If we trade in anticipation of an expansion of portfolios, a twist is a negative effect requiring the set re-arrangement. For other strategies, crossing of some portfolio curves can be used to identify promising and played-out portfolios. Besides, it is necessary to consider a distance traveled, levels, position in a set and position relative to the target function. Below is an example of a set twisting multiple times: We have not focused out attention on the volume management issue up until now, though this is a critical part of any trading system. Generally, we can describe the following approaches: trading a single synthetic position (the simplest case) dividing the volumes (extended entry by levels) adding to a rising portfolio (pyramiding by trend) adding to a portfolio in a drawdown (position averaging) adding to a portfolio after a correction (finishing method) adding to a portfolio after a reversal (expansive strategy) adding to new portfolios (portfolio consolidation) combined approach (combining several approaches) Specific volume management method should be selected considering trading system features. When planning a profit and a drawdown, your calculations should be based on a portfolio volatility. In the simplest case, the portfolio volatility can be evaluated as the movement range of its graph within a certain segment. It is much better to evaluate volatility not only within the optimization interval but on the previous history as well. Knowing the portfolio volatility, it is possible to calculate a theoretical value of the maximum total drawdown at a series of positions. Traditionally, we caution against too frequent aggressive volume adding. The total funds allocated for a portfolio coverage on a trading account should be able to withstand unfavorable movement considering all additional positions. Multi-portfolio trading means systematic portfolio selection and consolidation. If one portfolio is bought and another one is added to it, this may have a positive diversification effect if the portfolios have noticeable differences. But if portfolios are correlating, this may have a negative effect, since they both may find themselves in a drawdown in case of an unfavorable movement. Normally, you should avoid adding correlating portfolios. At first glance, trading spread between two correlating portfolios may seem to be very promising but closer examination shows that such spreads are no different from usual spreads since they are not stationary. Various exit strategies can be applied in multi-portfolio trading, including: closing by total result of all portfolios closing a group of portfolios by the groups total result closing by certain portfolios targets and limits. For some strategies, the entry point is of critical importance. For example, if a strategy applies extreme prices before a trend reversal or correction, a period suitable for entry is very short. Other strategies are more reliant on the optimal calculation of a position adding system and portfolio selection principle. In this case, individual portfolios may enter a drawdown, but other (more efficient) portfolios within the consolidated series adjust the overall result. Conclusion Portfolio trading advantages: optimization allows you to create a portfolio curve according to your preferences, as well as form a desired trading setup and trade it similar to trading symbols on a price chart. However, unlike trading portfolios, buying and selling conventional assets leave traders in passive position (since they are only able to accept the current price chart or avoid using it). Besides, as the situation evolves, traders can adjust their portfolios to new market conditions. Portfolio trading drawbacks: standard pending orders are not applicable, more stringent minimum volume requirements, bigger spreads on 30 and lower charts, hindered intraday scalping, no OHLC data, not all indicators can be applied to portfolios. Generally, this is a rather specific approach in trading. Here we have only made an introductory overview of the portfolio properties and working methods. If you want to perform deeper studies of portfolio trading systems, I recommend using the MetaTrader 5 platform for that, while market distribution properties should be studied in specialized statistical packages. Warning: All rights to these materials are reserved by MQL5 Ltd. Copying or reprinting of these materials in whole or in part is prohibited.

Comments