Friday 5 May 2017

Automatisierte Forex Trading Algorithmen Beispiele


Grundlagen des algorithmischen Handels: Konzepte und Beispiele Ein Algorithmus ist ein spezifischer Satz von klar definierten Anweisungen, die darauf abzielen, eine Aufgabe oder einen Prozess durchzuführen. Algorithmischer Handel (automatisierte Handel, Black-Box-Handel oder einfach Algo-Trading) ist der Prozess der Verwendung von Computern programmiert, um eine definierte Reihe von Anweisungen für die Platzierung eines Handels zu folgen, um Gewinne mit einer Geschwindigkeit und Häufigkeit zu generieren, die für eine unmöglich ist Menschlicher Händler Die definierten Regelsätze basieren auf Timing, Preis, Menge oder einem mathematischen Modell. Neben den Gewinnchancen für den Händler macht algo-trading die Märkte liquider und macht den Handel systematischer, indem er emotionale menschliche Auswirkungen auf die Handelsaktivitäten ausübt. Angenommen, ein Trader folgt diesen einfachen Handelskriterien: Kaufen Sie 50 Aktien einer Aktie, wenn der 50-Tage-Gleitender Durchschnitt über den 200-Tage-Gleitender Durchschnitt geht. Teilen Sie Aktien der Aktie, wenn der 50-Tage-Gleitender Durchschnitt unter den 200-Tage-Gleitender Durchschnitt geht Mit diesem Satz von zwei einfachen Anweisungen ist es einfach, ein Computerprogramm zu schreiben, das automatisch den Aktienkurs (und die gleitenden durchschnittlichen Indikatoren) überwacht und die Kauf - und Verkaufsaufträge platziert, wenn die definierten Bedingungen erfüllt sind. Der Trader muss nicht mehr auf Live-Preise und Grafiken aufpassen oder die Aufträge manuell einlegen. Das algorithmische Handelssystem tut es automatisch für ihn, indem es die Handelsmöglichkeit korrekt identifiziert. (Für mehr über bewegte Durchschnitte siehe: Einfache Umzugsdurchschnitte machen Trends heraus.) Algo-Trading bietet folgende Vorteile: Trades, die zu den bestmöglichen Preisen ausgeführt werden Sofortige und genaue Trading-Platzierung (damit hohe Chancen auf Ausführung auf Wunsch) Trades Zeitlich abgestimmt und sofort, um signifikante Preisänderungen zu vermeiden Reduzierte Transaktionskosten (siehe Implementierungsfehlbetrag Beispiel unten) Gleichzeitige automatisierte Überprüfung auf mehrere Marktbedingungen Reduziertes Risiko von manuellen Fehlern bei der Platzierung der Trades Backtest der Algorithmus, basierend auf verfügbaren historischen und Echtzeitdaten Reduziert Möglichkeit von Fehlern von menschlichen Händlern, die auf emotionalen und psychologischen Faktoren basieren Der größte Teil des heutigen Algo-Handels ist der Hochfrequenzhandel (HFT), der versucht, eine große Anzahl von Aufträgen mit sehr schnellen Geschwindigkeiten über mehrere Märkte und mehrere Entscheidungen zu tätigen Parameter, basierend auf vorprogrammierten Anweisungen. (Zu mehr im Hochfrequenzhandel siehe: Strategien und Geheimnisse von High Frequency Trading (HFT) - Firmen) Algo-Trading wird in vielen Formen der Handels - und Investitionstätigkeit eingesetzt, darunter: mittel - bis langfristige Anleger oder Buy-Side-Unternehmen (Pensionsfonds) , Investmentfonds, Versicherungsgesellschaften), die in großen Mengen in Aktien kaufen, aber nicht die Aktienpreise mit diskreten, großvolumigen Investitionen beeinflussen wollen. Kurzfristige Händler und Verkaufsseitenteilnehmer (Market Maker, Spekulanten und Arbitrageure) profitieren von der automatisierten Handelsabwicklung darüber hinaus, Algo-Trading hilft bei der Schaffung von ausreichenden Liquidität für Verkäufer auf dem Markt. Systematische Händler (Trendfolger, Paar Trader, Hedgefonds etc.) finden es viel effizienter, ihre Handelsregeln zu programmieren und das Programm automatisch zu handeln. Der algorithmische Handel bietet einen systematischeren Ansatz für den aktiven Handel als Methoden, die auf einer menschlichen Trader-Intuition oder einem Instinkt basieren. Algorithmische Handelsstrategien Jede Strategie für den algorithmischen Handel erfordert eine identifizierte Chance, die in Bezug auf verbesserte Erträge oder Kostensenkungen rentabel ist. Im Folgenden werden gemeinsame Handelsstrategien verwendet, die im Algo-Trading verwendet werden: Die gängigsten algorithmischen Trading-Strategien folgen den Trends bei gleitenden Durchschnitten. Kanalausbrüche. Preisniveaubewegungen und zugehörige technische Indikatoren. Dies sind die einfachsten und einfachsten Strategien, um durch algorithmischen Handel zu implementieren, da diese Strategien keine Vorhersagen oder Preisvorhersagen beinhalten. Trades werden auf der Grundlage des Auftretens von wünschenswerten Trends initiiert. Die einfach und unkompliziert sind, um durch Algorithmen zu implementieren, ohne in die Komplexität der prädiktiven Analyse zu kommen. Das oben genannte Beispiel von 50 und 200 Tage gleitenden Durchschnitt ist ein beliebter Trend nach Strategie. (Weitere Informationen zu Trendhandelsstrategien finden Sie unter: Einfache Strategien zur Aktivierung von Trends.) Der Kauf eines dualen Börsenplatzes zu einem niedrigeren Preis in einem Markt und der gleichzeitige Veräußerung zu einem höheren Preis in einem anderen Markt bietet die Preisdifferenz als risikofreier Gewinn Oder Arbitrage. Der gleiche Vorgang kann für Aktien gegen Futures-Instrumente repliziert werden, da Preisdifferenzen von Zeit zu Zeit existieren. Die Implementierung eines Algorithmus zur Identifizierung solcher Preisunterschiede und die Platzierung der Aufträge ermöglicht rentable Möglichkeiten in effizienter Weise. Index-Fonds haben Perioden des Neugewinns definiert, um ihre Bestände mit ihren jeweiligen Benchmark-Indizes in Einklang zu bringen. Dies schafft profitable Chancen für algorithmische Händler, die auf erwarteten Trades profitieren, die 20-80 Basispunkte Gewinne in Abhängigkeit von der Anzahl der Aktien im Indexfonds, kurz vor dem Indexfonds-Rebalancing anbieten. Solche Trades werden über algorithmische Handelssysteme für rechtzeitige Ausführung und beste Preise initiiert. Viele bewährte mathematische Modelle, wie die delta-neutrale Trading-Strategie, die den Handel auf Kombination von Optionen und deren zugrunde liegenden Sicherheit ermöglichen. Wo Trades gesetzt werden, um positive und negative Deltas zu versetzen, so dass das Portfolio-Delta auf Null gehalten wird. Die mittlere Reversionsstrategie basiert auf der Idee, dass die hohen und niedrigen Preise eines Vermögenswertes ein temporäres Phänomen sind, das periodisch auf ihren Mittelwert zurückkehrt. Identifizieren und Definieren einer Preisspanne und Implementierung von Algorithmen auf der Grundlage, dass Trades automatisch platziert werden, wenn der Preis von Asset Pausen in und aus seinem definierten Bereich. Die volumengewichtete durchschnittliche Preisstrategie zerbricht einen großen Auftrag und gibt dynamisch bestimmte kleinere Stücke des Auftrags auf den Markt mit Aktienspezifischen historischen Volumenprofilen frei. Ziel ist es, den Auftrag in der Nähe des volumengewichteten Durchschnittspreises (VWAP) auszuführen und damit zu einem durchschnittlichen Preis zu profitieren. Die zeitgewichtete durchschnittliche Preisstrategie zerbricht einen großen Auftrag und gibt dynamisch bestimmte kleinere Stücke des Auftrags auf den Markt mit gleichmäßig geteilten Zeitschlitzen zwischen Start - und Endzeit frei. Ziel ist es, den Auftrag in der Nähe des Durchschnittspreises zwischen Start - und Endzeiten auszuführen und damit die Markteinwirkung zu minimieren. Bis der Trade Order vollständig ausgefüllt ist, fährt dieser Algorithmus fort, Teilaufträge zu senden, entsprechend der definierten Beteiligungsquote und nach dem Volumen, das auf den Märkten gehandelt wird. Die zugehörige Schrittstrategie sendet Aufträge zu einem benutzerdefinierten Prozentsatz des Marktvolumens und erhöht oder verringert diese Erwerbsquote, wenn der Aktienkurs benutzerdefinierte Werte erreicht. Die Implementierungs-Defizitstrategie zielt darauf ab, die Ausführungskosten eines Auftrags durch den Handel auf dem Echtzeitmarkt zu minimieren und dadurch die Kosten der Bestellung zu senken und von den Opportunitätskosten der verzögerten Ausführung zu profitieren. Die Strategie wird die gezielte Erwerbsquote erhöhen, wenn sich der Aktienkurs günstig bewegt und abnimmt, wenn sich der Aktienkurs negativ bewegt. Es gibt ein paar spezielle Klassen von Algorithmen, die versuchen, Ereignisse auf der anderen Seite zu identifizieren. Diese Sniffing-Algorithmen, die zum Beispiel von einem Sell-Side-Market-Maker verwendet werden, haben die eingebaute Intelligenz, um die Existenz von Algorithmen auf der Kaufseite eines großen Auftrags zu identifizieren. Solche Erkennung durch Algorithmen wird dem Marktmacher dabei helfen, große Auftragsmöglichkeiten zu identifizieren und ihm zu ermöglichen, durch die Besetzung der Aufträge zu einem höheren Preis zu profitieren. Dies wird manchmal als Hightech-Frontlauf bezeichnet. (Für mehr auf High-Frequenz-Handel und betrügerische Praktiken, siehe: Wenn Sie Aktien kaufen Online, sind Sie in HFTs beteiligt.) Technische Voraussetzungen für Algorithmic Trading Die Umsetzung der Algorithmus mit einem Computer-Programm ist der letzte Teil, Clubbed mit Backtesting. Die Herausforderung besteht darin, die identifizierte Strategie in einen integrierten computergestützten Prozess umzuwandeln, der Zugang zu einem Handelskonto für die Platzierung von Aufträgen hat. Folgende werden benötigt: Computerprogrammierkenntnisse zur Programmierung der geforderten Handelsstrategie, angepasste Programmierer oder vorgefertigte Trading-Software Netzwerkkonnektivität und Zugriff auf Handelsplattformen für die Platzierung der Aufträge Der Zugriff auf Marktdaten-Feeds, die vom Algorithmus für die Möglichkeit der Platzierung überwacht werden Aufträge Die Fähigkeit und die Infrastruktur, das System einmalig zu testen, bevor es auf echten Märkten geht Erhältlich historische Daten für das Backtesting, abhängig von der Komplexität der im Algorithmus implementierten Regeln Hier ist ein umfassendes Beispiel: Royal Dutch Shell (RDS) ist in Amsterdam aufgeführt Börse (AEX) und Londoner Börse (LSE). Lets bauen einen Algorithmus, um Arbitrage-Möglichkeiten zu identifizieren. Hier sind einige interessante Beobachtungen: AEX handelt in Euro, während LSE in Pfund Sterling pflegt. Aufgrund der einstündigen Zeitdifferenz eröffnet AEX eine Stunde früher als LSE, gefolgt von beiden Börsen, die gleichzeitig für die nächsten Stunden handeln und dann nur in LSE handeln Die letzte Stunde als AEX schließt können wir die Möglichkeit der Arbitrage Handel auf der Royal Dutch Shell Aktie auf diesen beiden Märkten in zwei verschiedenen Währungen gelistet ein Computer-Programm, das aktuelle Marktpreise lesen können Preis Feeds von sowohl LSE und AEX A Forex Rate Feed für GBP-EUR Umrechnungskurs Bestellen von Platzierungsmöglichkeiten, die den Auftrag an den richtigen Austausch weiterleiten können Back-Testing-Fähigkeit zu historischen Preisfuttermitteln Das Computerprogramm sollte folgendes ausführen: Lesen Sie den eingehenden Preisvorschub der RDS-Aktie von beiden Börsen unter Verwendung der verfügbaren Wechselkurse . Umwandlung des Preises einer Währung in andere Wenn es eine ausreichend große Preisdiskrepanz (Abzinsung der Vermittlungskosten) gibt, die zu einer gewinnbringenden Gelegenheit führt, dann legen Sie den Kaufauftrag auf niedrigeren Preisvermittlungs - und Verkaufsauftrag auf höherer Preisvermittlung Wenn die Aufträge als ausgeführt werden Gewünscht, wird die Arbitrage Gewinn folgen Simple und Easy Allerdings ist die Praxis der algorithmischen Handel ist nicht so einfach zu pflegen und auszuführen. Denken Sie daran, wenn Sie einen Algo-generierten Handel platzieren können, so können die anderen Marktteilnehmer. Infolgedessen schwanken die Preise in Milli - und sogar Mikrosekunden. In dem obigen Beispiel, was passiert, wenn Ihr Kaufhandel ausgeführt wird, aber verkaufen Handel nicht als die Verkaufspreise ändern sich um die Zeit Ihre Bestellung trifft den Markt Sie werden am Ende sitzen mit einer offenen Position. Ihre Arbitrage-Strategie wertlos machen. Es gibt zusätzliche Risiken und Herausforderungen: z. B. Systemausfallrisiken, Netzwerkverbindungsfehler, Zeitverzögerungen zwischen Handelsaufträgen und Ausführung und vor allem unvollständige Algorithmen. Je komplexer ein Algorithmus ist, desto strengeres Backtesting ist nötig, bevor es in die Tat umgesetzt wird. Die quantitative Analyse einer Algorithmen-Performance spielt eine wichtige Rolle und sollte kritisch untersucht werden. Es ist spannend, für die Automatisierung zu helfen, die von Computern mit einer Vorstellung geboten wird, um mühelos Geld zu verdienen. Aber man muss sicherstellen, dass das System gründlich getestet ist und die erforderlichen Grenzwerte festgelegt sind. Analytische Händler sollten überlegen, Programmierung und Gebäude-Systeme auf eigene Faust zu lernen, um sicher zu sein, die Umsetzung der richtigen Strategien in narrensicherer Weise zu sein. Vorsichtige Verwendung und gründliche Prüfung von Algo-Trading kann rentable Chancen. Strategien für Forex Algorithmic Trading Als Ergebnis der jüngsten Kontroverse, der Forex-Markt wurde unter erhöhter Kontrolle. Vier große Banken wurden schuldig befunden, um Wechselkurse zu manipulieren, die den Händlern erhebliche Einnahmen mit relativ geringem Risiko vergaben. Insbesondere haben sich die weltgrößten Banken darauf geeinigt, den Preis des US-Dollar und des Euro von 2007 bis 2013 zu manipulieren. Der Devisenmarkt ist trotz der Umgang mit 5 Billionen Transaktionen jeden Tag bemerkenswert unreguliert. Infolgedessen haben Regulatoren die Annahme des algorithmischen Handels aufgefordert. Ein System, das mathematische Modelle in einer elektronischen Plattform verwendet, um Trades auf dem Finanzmarkt auszuführen. Aufgrund des hohen Volumens der täglichen Transaktionen schafft der forex-algorithmische Handel mehr Transparenz, Effizienz und eliminiert menschliche Vorurteile. Eine Reihe von verschiedenen Strategien können von Händlern oder Firmen im Forex-Markt verfolgt werden. Zum Beispiel bezieht sich die automatische Absicherung auf die Verwendung von Algorithmen zur Absicherung von Portfolio-Risiken oder um eine effiziente Positionierung von Positionen. Neben der automatischen Absicherung umfassen algorithmische Strategien den statistischen Handel, die algorithmische Ausführung, den direkten Marktzugang und den Hochfrequenzhandel, die alle auf Devisentransaktionen angewendet werden können. Auto-Hedging Bei der Investition ist die Absicherung eine einfache Möglichkeit, Ihre Vermögenswerte vor erheblichen Verlusten zu schützen, indem sie die Menge verringert, die Sie verlieren können, wenn etwas Unerwartetes auftritt. Im algorithmischen Handel kann die Absicherung automatisiert werden, um die Gefahr von Händlern zu reduzieren. Diese automatisch generierten Hedging-Aufträge folgen bestimmten Modellen, um das Risiko eines Portfolios zu verwalten und zu überwachen. Innerhalb des Devisenmarktes sind die primären Methoden der Absicherung von Geschäften durch Spotkontrakte und Devisenoptionen. Spotverträge sind der Kauf oder Verkauf einer Fremdwährung mit sofortiger Lieferung. Der Fprex-Spotmarkt ist seit Anfang der 2000er Jahre aufgrund des Zustroms von algorithmischen Plattformen deutlich gewachsen. Insbesondere die rasche Verbreitung von Informationen, wie sie sich in den Marktpreisen widerspiegeln, ermöglicht es, dass Arbitrage-Chancen entstehen. Arbitrage-Chancen treten auf, wenn die Devisenpreise fehlausgerichtet werden. Dreieckige Arbitrage. Wie es auf dem Forex-Markt bekannt ist, ist der Prozess der Umwandlung einer Währung zurück in sich selbst durch mehrere verschiedene Währungen. Algorithmische und Hochfrequenz-Händler können diese Chancen nur durch automatisierte Programme identifizieren. Als ein Derivat. Forex-Optionen funktionieren in ähnlicher Weise wie eine Option auf andere Arten von Wertpapieren. Die Fremdwährungsoptionen geben dem Käufer das Recht, das Währungspaar zu einem bestimmten Wechselkurs zu einem bestimmten Zeitpunkt künftig zu kaufen oder zu verkaufen. Computerprogramme haben Binäroptionen als Alternative zur Absicherung von Devisengeschäften automatisiert. Binäre Optionen sind eine Art von Option, bei der Auszahlungen eines von zwei Ergebnissen einnehmen: Entweder setzt sich der Handel auf Null oder auf einen vorgegebenen Ausübungspreis. Statistische Analyse Innerhalb der Finanzbranche bleibt die statistische Analyse ein wichtiges Instrument, um die Preisbewegungen einer Sicherheit im Laufe der Zeit zu messen. Im Forex-Markt werden technische Indikatoren verwendet, um Muster zu identifizieren, die helfen können, zukünftige Kursbewegungen vorherzusagen. Das Prinzip, das die Geschichte wiederholt, ist für die technische Analyse von grundlegender Bedeutung. Da die Devisenmärkte 24 Stunden pro Tag betreiben, erhöht die robuste Menge an Informationen damit die statistische Signifikanz der Prognosen. Aufgrund der zunehmenden Raffinesse von Computerprogrammen wurden Algorithmen in Übereinstimmung mit technischen Indikatoren erzeugt, einschließlich der Verschiebung der durchschnittlichen Konvergenzdivergenz (MACD) und des relativen Stärkeindex (RSI). Algorithmische Programme deuten auf bestimmte Zeiten hin, bei denen Währungen gekauft oder verkauft werden sollen. Algorithmische Ausführung Algorithmischer Handel erfordert eine ausführbare Strategie, die Fondsmanager verwenden können, um große Mengen von Vermögenswerten zu kaufen oder zu verkaufen. Handelssysteme folgen einem vorgegebenen Satz von Regeln und sind so programmiert, dass sie einen Auftrag unter bestimmten Preisen, Risiken und Anlagehorizonten ausführen. Im Forex-Markt ermöglicht der direkte Marktzugang, dass Buy-Side-Händler Forex-Aufträge direkt auf den Markt ausführen können. Der direkte Marktzugang erfolgt über elektronische Plattformen, was oft Kosten und Handelsfehler senkt. In der Regel ist der Handel auf dem Markt auf Makler und Market Maker beschränkt, aber direkten Marktzugang bietet Buy-Side-Unternehmen Zugang zu Sell-Side-Infrastruktur, Gewährleistung der Kunden mehr Kontrolle über Trades. Aufgrund der Natur des algorithmischen Handels und der Devisenmärkte ist die Auftragsabwicklung extrem schnell, so dass die Händler kurzfristige Handelsmöglichkeiten nutzen können. High Frequency Trading Als die häufigste Teilmenge der algorithmischen Handel, Hochfrequenz-Handel hat sich immer beliebter in der Forex-Markt. Basierend auf komplexen Algorithmen ist der Hochfrequenzhandel die Ausführung einer großen Anzahl von Transaktionen mit sehr schnellen Geschwindigkeiten. Da sich der Finanzmarkt weiterentwickelt, können schnellere Ausführungsgeschwindigkeiten den Händlern die Möglichkeit geben, im Forex-Markt profitabel zu nutzen. Eine Reihe von Hochfrequenz-Handelsstrategien sind darauf ausgelegt, profitable Arbitrage - und Liquiditätssituationen zu erkennen. Gelieferte Aufträge werden schnell durchgeführt, Händler können Arbitrage nutzen, um risikofreie Gewinne zu sperren. Aufgrund der Geschwindigkeit des Hochfrequenzhandels kann die Arbitrage auch über die Spot - und zukünftigen Preise der gleichen Währungspaare erfolgen. Die Befürworter des Hochfrequenzhandels im Devisenmarkt unterstreichen ihre Rolle bei der Schaffung eines hohen Liquiditätsniveaus und der Transparenz in den Bereichen Handel und Preise. Die Liquidität neigt dazu, laufend und konzentriert zu werden, da es eine begrenzte Anzahl von Produkten im Vergleich zu Aktien gibt. Im Forex-Markt zielen Liquiditätsstrategien darauf ab, Auftragsungleichgewichte und Preisunterschiede zwischen einem bestimmten Währungspaar zu erkennen. Ein Auftrags-Ungleichgewicht tritt auf, wenn es eine überschüssige Anzahl von Kauf - oder Verkaufsaufträgen für einen bestimmten Vermögenswert oder eine bestimmte Währung gibt. In diesem Fall fungieren Hochfrequenz-Trader als Liquiditätsanbieter, verdienen die Spread durch die Arbitragierung der Differenz zwischen dem Kauf und Verkaufspreis. Die Bottom Line Viele fordern eine größere Regulierung und Transparenz im Forex-Markt im Lichte der jüngsten Skandale. Die wachsende Annahme von forex algorithmischen Handelssystemen kann die Transparenz im Forex-Markt effektiv erhöhen. Neben der Transparenz ist es wichtig, dass der Devisenmarkt mit einer niedrigen Preisvolatilität flüssig bleibt. Algorithmische Handelsstrategien, wie z. B. automatische Absicherung, statistische Analyse, algorithmische Ausführung, direkter Marktzugang und Hochfrequenzhandel, können Preisinkonsistenzen aussetzen, die für Trader rentable Chancen darstellen. SnowCron Genetischer Algorithmus in FOREX Trading Systems mit genetischem Algorithmus, um profitable FOREX Trading zu schaffen Strategie. Genetischer Algorithmus in Cortex Neuronale Netzwerke Software Feedforward Backpropagation Neuronales Netzwerk Anwendung für genetische Berechnungen basierte Forex Trading. Dieses Beispiel verwendet Konzepte und Ideen des vorherigen Artikels, also lesen Sie bitte Neural Network Genetic Algorithm in FOREX Trading Systems zuerst, obwohl es nicht obligatorisch ist. Über diesen Text Bitte lesen Sie zuerst den Haftungsausschluss. Dies ist ein Beispiel für die Verwendung von Cortex Neural Networks Software genetische Algorithmus-Funktionalität, kein Beispiel für die Gewinnung von rentablen Handel. Ich bin nicht dein Guru, auch ich sollte nicht für deine Verluste verantwortlich sein. Cortex Neural Networks Software hat neuronale Netze in ihr, und FFBP, die wir vorher diskutiert haben, ist nur eine Möglichkeit, eine Forex Trading Strategien zu wählen. Es ist eine gute Technik, mächtig und wenn richtig angewendet, sehr versprochen. Allerdings hat es ein Problem - das neuronale Netzwerk zu unterrichten. Wir müssen die gewünschte Ausgabe kennen. Es ist ziemlich einfach zu tun, wenn wir die Näherung funktionieren, wir nehmen einfach den wahren Wert einer Funktion, weil wir wissen, was es sein sollte. Wenn wir neuronale Netzwerkprognosen machen. Wir verwenden die Technik (beschrieben in früheren Artikeln) der Lehre des Neuronalen Netzes auf die Geschichte, wieder, wenn wir voraussagen, sagen wir, einen Wechselkurs, wissen wir (während des Trainings) was die richtige Vorhersage ist. Allerdings, wenn wir ein Handelssystem bauen, haben wir keine Ahnung, was die richtige Handelsentscheidung ist, auch wenn wir den Wechselkurs kennen. In der Tat haben wir viele Devisenhandelsstrategien, die wir zu jedem Zeitpunkt nutzen können Wir müssen ein gutes finden - wie was sollten wir als die gewünschte Ausgabe unseres Neuronalen Netzes füllen Wenn Sie unserem vorherigen Artikel folgten, wissen Sie, dass wir betrogen haben, mit diesem Problem umzugehen. Wir lehrten das Neuronale Netzwerk, um Wechselkurs (oder Wechselkurs basierte Indikator) Vorhersage zu tun, und dann verwendet diese Vorhersage, um den Handel zu tun. Dann, außerhalb des Neuronalen Netzwerks Teil des Programms, haben wir eine Entscheidung getroffen, welche Neuronale Netzwerk ist die beste. Genetische Algorithmen können mit diesem Problem direkt umgehen, sie können das Problem lösen, um die besten Handelssignale zu finden. In diesem Artikel werden wir Cortex Neural Networks Software verwenden, um ein solches Programm zu erstellen. Mit genetischen Algorithmen Genetische Algorithmen sind sehr gut entwickelt und sehr vielfältig. Wenn du alles über sie lernen willst, schlage ich vor, dass du Wikipedia benutzt, da es sich bei diesem Artikel nur darum geht, was Cortex Neural Networks Software machen kann. Mit Cortex Neural Networks Software. Wir können ein Neuronales Netzwerk erstellen, das einige Inputs, sagen wir, Werte eines Indikators, und produziert einige Ausgaben, sagen wir, Handelssignale (kaufen, verkaufen, halten.) Und stoppen Verlust nehmen Gewinnniveaus für Positionen, die geöffnet werden sollen. Natürlich, wenn wir diese Neuronalen Netze säumen zufällig, werden die Handelsergebnisse schrecklich sein. Allerdings sagen wir, dass wir ein Dutzend solcher NNs erstellt haben. Dann können wir die Leistung von jedem von ihnen testen, und wählen Sie die beste, der Gewinner. Dies war die erste Generation von NNs. Um die zweite Generation fortzusetzen, müssen wir unserem Gewinner erlauben zu zeigen, aber um zu vermeiden, dass identische Kopien, können wir zufällige Geräusche zu seinen Abstammungsgewichten hinzufügen. In der zweiten Generation haben wir unsere erste Generation und ihre unvollkommenen (mutierten) Kopien. Lets testen erneut. Wir werden noch einen Gewinner haben, der BESSER ist, dann ein anderes Neuronales Netzwerk in der Generation. Und so weiter. Wir erlauben es einfach, die Gewinner zu züchten und die Verlierer zu beseitigen, genau wie in der Evolution des wirklichen Lebens, und wir werden unser Best-Trading Neural Network bekommen. Ohne vorherige Kenntnisse darüber, was das Handelssystem (genetischer Algorithmus) sein sollte. Neuronales Netzwerk Genetischer Algorithmus: Beispiel 0 Dies ist das erste Beispiel für genetisches Algorithmus. Und eine sehr einfache. Wir werden es Schritt für Schritt durchlaufen, um alle Tricks zu lernen, die folgende Beispiele verwenden werden. Der Code hat Inline-Kommentare, so können wir nur auf wichtige Momente konzentrieren. Zuerst haben wir ein neuronales Netzwerk geschaffen. Es benutzt zufällige Gewichte und wurde noch nicht unterrichtet. Dann, im Zyklus, machen wir 14 Exemplare davon, mit MUTATIONNN Fumktion. Diese Funktion macht eine Kopie einer Quelle Neuronales Netzwerk. Hinzufügen von zufälligen Werten von 0 zu (in unserem Fall) 0,1 zu allen Gewichten. Wir halten Griffe zu den resultierenden 15 NNs in einem Array, wir können es tun, da Handle nur eine ganzzahlige Zahl ist. Der Grund, warum wir 15 NNs verwenden, hat nichts mit dem Handel zu tun: Cortex Neural Networks Software kann bis zu 15 Zeilen auf einem Diagramm gleichzeitig aufstellen. Wir können verschiedene Ansätze für die Prüfung verwenden. Zuerst können wir das Lernset verwenden, alles auf einmal. Zweitens können wir auf 12000 Resonzen (von 100000) testen und durch das Lernset gehen, von Anfang bis Ende. Das macht Lernenden anders, denn wir werden nach Neuronalen Netzwerken suchen, die auf jedem gegebenen Teil der Daten rentabel sind, nicht nur auf dem ganzen Set. Der zweite Ansatz kann uns Probleme geben, wenn Daten vom Anfang bis zum Ende wechseln. Dann wird sich das Netzwerk weiterentwickeln, die Fähigkeit, am Ende des Datensatzes zu handeln, zu gewinnen und die Fähigkeit zu handeln, zu Beginn zu verlieren. Um dieses Problem zu lösen, werden wir zufällig 12000 Datensatzfragmente aus Daten nehmen und es dem Neuronalen Netzwerk zuführen. Ist einfach ein endloser Zyklus, da 100000 Zyklen nie mit unserer Geschwindigkeit erreicht werden. Unten fügen wir ein Kind für jedes Netzwerk mit etwas unterschiedlichen Gewichten hinzu. Beachten Sie, dass 0,1 für Mutation Tange ist nicht die einzige Wahl, da die Tatsache, auch dieser Parameter kann mit Hilfe von genetischen Algorithmus optimiert werden. Neu erzeugte NNs werden nach 15 vorhandenen hinzugefügt. Auf diese Weise haben wir 30 NNs in einem Array, 15 alte und 15 neue. Dann werden wir den nächsten Zyklus des Testens machen und die Verlierer von beiden Generationen töten. Um das Testen durchzuführen, wenden wir Neural Network auf unsere Daten an, um Ausgänge zu erzeugen und dann die Testfunktion aufzurufen, die diese Ausgänge verwendet, um den Handel zu simulieren. Ergebnisse des Handels werden verwendet, um zu beschwören, welche NNs am besten sind. Wir verwenden ein Intervall von nLearn Datensätzen, von nStart zu nStart nLearn, wobei nStart ein zufälliger Punkt innerhalb des Lernsatzes ist. Der untenstehende Code ist ein Trick. Der Grund, warum wir es verwenden, ist, die Tatsache zu veranschaulichen, dass der genetische Algorithmus einen genetischen Algorithmus erzeugen kann. Aber es wird nicht unbedingt das Beste sein, und auch, um vorzuschlagen, dass wir das Ergebnis verbessern können, wenn wir irgendwelche Einschränkungen für den Lernprozess implizieren. Es ist möglich, dass unser Handelssystem sehr gut auf lange Trades arbeitet und sehr schlecht auf kurz oder umgekehrt ist. Wenn ja, lange Trades sind sehr gut, kann dieser genetische Algorithmus auch bei großen Verlusten auf kurzen Trades gewinnen. Um es zu vermeiden, weisen wir den langjährigen Trades in ungeraden und kurzen Trades in gleichmäßigen Zyklen mehr Gewicht zu. Dies ist nur ein Beispiel, es gibt keine Garantie, dass es etwas verbessern wird. Mehr darüber unten, in der Diskussion über Korrekturen. Technisch, man muss es nicht tun, oder kann es anders machen Profit zu einem sortierten Array hinzufügen Es gibt eine Einfügeposition zurück, dann verwenden wir diese Position, um Neural Network Handle hinzuzufügen, Lernen und Testen von Gewinnen an nicht sortierte Arrays. Jetzt haben wir Daten für das aktuelle Neuronale Netzwerk auf dem gleichen Array-Index wie sein Gewinn. Die Idee ist, zu Array von NNs zu kommen, sortiert nach Profitabilität. Als Array ist nach Profit zu sortieren, um 12 von Netzwerken zu entfernen, die weniger rentabel sind, müssen wir nur NNs entfernen 0 bis 14 Handelsentscheidungen basieren auf dem Wert des Neuronalen Netzwerks, von diesem Gesichtspunkt aus ist das Programm identisch mit Beispielen aus Vorheriger Artikel. FOREX Trading-Strategie: Diskussion Beispiel 0 Zunächst einmal werfen wir einen Blick auf Charts. Das erste Diagramm für den Gewinn während der ersten Iteration ist überhaupt nicht gut, wie man erwarten sollte, das Neuronale Netzwerk verliert Geld (Bild evolution00gen0.png kopiert nach dem ersten Iteration aus Bilder Ordner): Das Bild für Profit auf Zyklus 15 ist besser, manchmal , Genetischer Algorithmus kann wirklich schnell lernen: Allerdings bemerke die Sättigung auf einer Gewinnkurve. Es ist auch interessant, auf die Art und Weise zu denken, wie sich einzelne Gewinne ändern, wenn man bedenkt, dass Kurve Zahl, sagen wir, 3 ist nicht immer für das gleiche Neuronale Netzwerk. Wie sie geboren werden und beendet die ganze Zeit: auch beachten Sie, dass aus wenig Forex automatisierte Handelssystem führt schlecht auf kurze Trades, und viel besser auf Longs, die möglicherweise oder nicht in Zusammenhang mit der Tatsache, dass Dollar im Vergleich zu Euro in diesem Zeitraum. Es kann auch etwas mit Parametern unseres Indikators zu tun haben (vielleicht brauchen wir einen anderen Zeitraum für Shorts) oder die Wahl der Indikatoren. Hier ist die Geschichte nach 92 und 248 Zyklen: Zu unserer Überraschung scheiterte der genetische Algorithmus vollständig. Lass uns versuchen, herauszufinden, warum, und wie man die Situation zu helfen. Zuerst einmal ist nicht jede Generation besser als die vorherige Die Antwort ist nein, zumindest nicht innerhalb des Modells, das wir verwendet haben. Wenn wir ENTIRE Lern-Set auf einmal genommen und verwendet es immer wieder, um unsere NNs zu lehren, dann ja, sie werden auf jeder Generation zu verbessern. Aber stattdessen nahmen wir zufällige Fragmente (12000 Datensätze in der Zeit) und benutzten sie. Zwei Fragen: warum das System auf zufällige Fragmente des Lernens gescheitert ist, und warum havent wir das ganze Lernset verwendet haben. Um die zweite Frage zu beantworten, habe ich. NNs haben sich sehr gut entwickelt. Und sie scheiterten auf Test-Set, aus dem gleichen Grund fehlschlägt es, wenn wir FFPB Lernen verwendet. Um es anders auszudrücken, haben unsere NNs überdimensioniert, sie haben gelernt, in der Umgebung zu überleben, die sie gewohnt sind, aber nicht draußen. Das passiert viel in der Natur. Der Ansatz, den wir stattdessen nahmen, sollte das kompensieren, indem wir NNs dazu zwingen, auf jedem zufälligen Fragment des Datensatzes gut zu spielen, so dass sie hoffentlich auch auf einem unbekannten Testset vorgehen konnten. Stattdessen scheiterten sie sowohl beim Testen als auch beim Lernen. Stellen Sie sich vor, Tiere, die in einer Wüste leben. Viel Sonne, kein Schnee. Dies ist ein metafor für Rising-Markt, wie für unsere NNs Daten spielen die Rolle der Umwelt. Tiere lernten in einer Wüste zu leben. Stellen Sie sich vor, Tiere, die in einem kalten Klima leben. Schnee und gar keine Sonne. Nun, sie haben sich angepasst. Doch in unserem Experiment haben wir zufällig unsere NNs in eine Wüste, im Schnee, im Wasser, auf die Bäume gelegt. Indem sie ihnen verschiedene Fragmente von Daten (zufällig steigend, fallend, flach) vorstellen. Tiere starben. Oder anders ausgedrückt, haben wir das beste Neuronale Netzwerk für den zufälligen Datensatz 1 ausgewählt, der für den steigenden Markt gilt. Dann haben wir den Gewinnern und ihren Kindern eine fallende Marktdaten vorgestellt. NNs schlecht durchgeführt, nahmen wir am besten von armen Performern, vielleicht einer der mutierten Kinder, die verlorene Fähigkeit, auf steigenden Markt zu handeln, aber bekam einige Fähigkeit, mit einem zu fallen. Dann machten wir den Tisch wieder, und wieder bekamen wir den besten Darsteller - aber am besten unter den armen Performern. Wir haben unseren NNs keine Chancen gegeben, universell zu werden. Es gibt Techniken, die es dem genetischen Algorithmus ermöglichen, neue Informationen zu erlernen, ohne die Leistung auf alte Informationen zu verlieren (schließlich können Tiere im Sommer und im Winter leben, so dass Evolution in der Lage ist, wiederholte Änderungen zu bewältigen). Wir können diese Techniken später besprechen, obwohl dieser Artikel mehr über die Verwendung von Cortex Neural Networks Software ist. Als über den Aufbau eines erfolgreichen Forex automatisierten Handelssystems. Neuronales Netzwerk Genetischer Algorithmus: Beispiel 1 Jetzt ist es Zeit, über Korrekturen zu sprechen. Ein einfacher genetischer Algorithmus, den wir im vorigen Schritt erstellt haben, hat zwei Hauptfehler. Erstens hat es geschafft, mit Gewinn zu handeln. Es ist ok, wir können versuchen, ein teilweise geschultes System zu benutzen (es war am Anfang rentabel). Der zweite Fehler ist ernster: Wir haben keine Kontrolle über die Dinge, die dieses System tut. Zum Beispiel kann es lernen, rentabel zu sein, aber mit riesigen Drawdowns. Es ist eine bekannte Tatsache, dass im wirklichen Leben die Evolution gleichzeitig mehr als einen Parameter optimieren kann. Zum Beispiel können wir ein Tier bekommen, das schnell laufen kann und kältebeständig ist. Warum nicht zu versuchen, das gleiche in unserem Forex automatisierten Handelssystem zu versuchen. Das ist, wenn wir Korrekturen verwenden, die nichts als die Menge der zusätzlichen Strafen sind. Sagen Sie, unser System handelt mit Drawdown 0,5, während wir es auf 0 - 0,3 Intervall bestätigen wollen. Um dem System zu sagen, dass es einen Fehler gemacht hat, verringern wir seinen Gewinn (einer verwendet, um zu bestimmen, welcher genetische Algorithmus gewonnen hat), das ist proportional zur Größe von DD. Dann kümmert sich der Evolutionsalgorithmus um den Rest. Es gibt noch wenige Faktoren, die wir berücksichtigen wollen: Vielleicht möchten wir mehr oder weniger gleich viele Kauf - und Verkaufsaktivitäten haben, wir wollen mehr von rentablen Operationen haben, dann von Misserfolgen, können wir die Gewinndiagramm haben Linear sein und so weiter. In evolution01.tsc implementieren wir einen einfachen Satz von Korrekturen. Zuerst verwenden wir eine große Anzahl für einen anfänglichen Korrekturwert. Wir multiplizieren sie mit einem kleinen (meist zwischen 0 und 1) Werten, je nach der Bestrafung, die wir anwenden möchten. Dann multiplizieren wir unseren Gewinn mit dieser Korrektur. Als Ergebnis wird der Gewinn korrigiert, um zu reflektieren, wie sehr der genetische Algorithmus unseren anderen Kriterien entspricht. Dann verwenden wir das Ergebnis, um ein Gewinner Neuronales Netzwerk zu finden. FOREX Trading Strategy: Discussing example 1 Example 1 works much better, than example 0. During first 100 cycles, it learned a lot, and profit charts look reassuring. However, as in example 0, long trades are much more profitable, which most likely means that there is a problem in our approach. Nevertheless, the system found a balance between couple of contradictory initial conditions: There is some positive dynamics both in learning set and, more important, in testing set. As for further learning, at cycle 278 we can see, that our system got overtrained. It means, we still have progress on learning set: But testing set shows weakness: This is a common problem with NNs: when we teach it on learning set, it learns to deal with it, and sometimes, it learns too well - to the degree, when it looses performance on testing set. To deal with that problem, a traditional solution is used: we keep looking for the Neural Network . that performs best on testing set, and save it, overwriting previous best one, every time new peak is reached. This is the same approach, we used in FFBP training, except, this time we have to do it ourselves (adding code, that looks for a best Neural Network on a testing set, and calling SAVENN, or exporting weights of Neural Network to a file). This way, when you stop your training, youll have the best performer ON TESTING SET saved and waiting for you. Note also, that it is not the max. profit you are after, but optimal performance, so consider using corrections, when looking for a best performer on a testing set. Genetic Algorithm for FOREX Technical Analysis: Where now After you got your winner Neural Network . you can follow the steps, described in previous article, to export weights of that Neural Network . and then to use them in your real time trading platform, like Meta Trader, Trade Station and so on. Alternatively, you can focus on other ways of optimizing the Neural Network . unlike with FFBP algorithm, here you can get avay from using learning and testing sets, and move sequential learning. Download Cortex Order Cortex View Price List Visibility is very important for this site. If you like it please link to this URL

No comments:

Post a Comment