Thursday, February 23, 2017

Nnfxs Forex Neuronales Netzwerk

Neuronale Netze Forex System (NNFXS) Hat jemand Handel Experince mit NNFXS System. Ich interessiere mich für den Handel mit NN-Systemen anstatt sich auf EAs. My Bruder ist ein Maschinenbau-Ingenieur und er macht seinen Master auf künstliche 304ntelligence. We arbeiten an wie Zu machen NN Handelssystem.304s es lohnt es versuchen, unser eigenes System zu machen oder sollten wir ein fertiges Programm wie dieses oneYour Meinungen sind willkommen. Arbeiten Sie mit Ihrem Bruder und entwickeln Sie Ihre eigene EA. Es wurde immer und immer wieder auf diesem Forum. Wenn ein EA so gut ist. Warum sollte jemand verkaufen sie Sie könnten reich werden off it yourself. Neural Netzwerk in Forex Trading Die besten Indikatoren zu wählen, während Sie versuchen, Forex-Markt vorherzusagen So Im eine Forschung im Bau eines neuronalen Netzwerks Forex Forecast vorhersagen Markt. Wenn Sie nicht wissen, was ein neuronales Netz ist, betrachten es eine magische Blackbox mit Eingängen und Ausgängen. Meine Frage ist ganz über die Eingaben gerade jetzt. Neben (offenen, hohen, niedrigen, engen, Volumen), was andere technische Indikatoren gegeben werden sollte, um das neuronale Netzwerk mit mehr Informationen bieten, so könnte es besser vorhersagen. In diesem Artikel, How-to-Select-Indikatoren (vergessen Sie, den Raum zu entfernen, wenn Sie kopieren und Einfügen), erklärte es, dass: Trendindikatoren - Volumenindikatoren - Momentum Indikatoren - Volatilitätsindikatoren - Cycle-Indikatoren sind die Kategorien von Indikatoren zur Verfügung Mehr Meine Frage ist jetzt, bitte schlage mir einen technischen Indikator in jeder Kategorie zu verwenden Dies wird nicht funktionieren. Sie können nur cant Mischung und Match Indikatoren von Fremden vorgeschlagen, zusammen zu arbeiten. Außerdem. Technische Analyse ist nicht ein quotpredicationquot Spiel. Sein viel mehr beteiligt als das. Youll brauchen Jahre der erfolgreichen Handelserfahrung, um sogar dieses Projekt zu betrachten. BTW: Wo werden Sie Volumen-Indikatoren in FX erhalten Sie nicht in Forex existieren. Tags: nnfxs 276 pips - 106 uptrend 170 downtrend USDBOT Automatisiertes Forex Trading Robot Einleitung NeuralSpray Forex Trading System - Echtes Konto und Backtest (WORKS GOOD) Börsenanalysten auf Probe 2002- 02-09 14:24:25 by on-trial Die Menge der schlechte und selbstinteressierte Beratung, die von Maklern und ihre Analysten ausgestellt wird. Bis zum heutigen Tag wird die Mehrheit der Börsenmakler auf die Anzahl der Geschäfte ihrer Kunden, nicht auf die Renditen, die sie für sie zu generieren oder auf die Qualität der Beratung, die sie bieten kompensiert. Wir glauben, dass die Kursziele und die Analystenbewertungen mit mehreren Meistern gemacht werden, von denen keiner der einzelne Investor ist. In ähnlicher Weise werden Sell-Side-Aktien-Analysten in der Regel auf der Grundlage der Gesamt-Rentabilität ihrer Unternehmen, nicht die Qualität oder Genauigkeit ihrer Analyse kompensiert. Am Ende haben Analysten einen minimalen strukturellen Anreiz, um in ihren Prognosen genau zu sein, stattdessen sollte ihr eingebauter Anreiz so günstig für ihre Firmenkunden wie möglich sein. Es ist ein. Gurus39 Ergebnisse bleiben konsequent Bad mdash Forbes Investment-Gurus machen ihr Geld verkaufen Marktvorhersagen, nicht nach ihnen. Ihre Gesamtleistung war historisch und konsequent düster. Warum Menschen für die Marktprognosen bezahlen, ist eine der größten Geheimnisse der Wall Street. Forex neural networkSnowCron Neuronale Netze für FOREX Trading In diesem Artikel: ein Beispiel für die Nutzung unserer Neural Networks Software, um ein komplettes neuronales Netzwerk Handelssystem zu schaffen. In diesem Beispiel wird die Cortex-integrierte Skriptsprache verwendet. So lesen Sie bitte zuerst die Skriptsprache. Mit Neuronalen Netzwerken zu schaffen FOREX Trading-Strategie In diesem kostenlosen Online-Tutorial finden Sie den vollen Zyklus der Verwendung neuronaler Netze (Cortex Neural Networks Software) für Forex-Handel (oder Börsenhandel die Idee ist die gleiche). Sie lernen, Eingaben für die künstlichen neuronalen Netze zu wählen. Und wie zu entscheiden, was als Ausgang zu verwenden. Hier finden Sie ein Beispiel für ein fertiges Skript, das die neuronale Netzwerkoptimierung sowohl der Struktur des Neuronalen Netzes (Anzahl der Neuronen) als auch des Devisenhandelssystems ermöglicht (Stopverlust etc.) Die meisten Tutorials), werden Sie lernen, was als nächstes zu tun. Schließlich kann Cortex Neural Networks Software nicht tun, Echtzeit-Trading, müssen Sie etwas wie Trade Station, MetaQuotes oder MetaTrader verwenden. Wie portiere ich das Forex-Handelssystem von Cortex zu deiner bevorzugten Handelsplattform? Du musst mit DLLs, ActiveX-Steuerelementen und Low-Level-Programmen umgehen. Cortex Neural Networks Software kommt mit der einfach zu bedienenden Funktion, mit der Sie das entstandene (trainierte) Neuronale Netzwerk problemlos in die Skriptsprache Ihrer Handelsplattform portieren können. Keine DLLs, DDE, ActiveX oder andere Low-Level-Lösungen - alles ist einfach und einfach. Wichtiger Hinweis: Dies ist NICHT ein wie Tutorial zu handeln. Stattdessen erfahren Sie, wie Sie Cortex Neural Networks Software verwenden. Aber Sie müssen noch Ihr eigenes Handelssystem erfinden. Die, die wir hier verwenden, ist kaum ein Ausgangspunkt und sollte nicht als Forexhandelsstrategie verwendet werden, wie ist. Die Idee dieses Textes ist es, Ihnen beizubringen, NN-basierte Handelssysteme zu schaffen und sie an die Handelsplattform Ihrer Wahl zu portieren. Das Beispiel ist jedoch vereinfacht und kann nur als Darstellung der Handelsprinzipien verwendet werden. Gleichermaßen funktioniert das MACD-Handelssystem, das in vielen Tutorials zu finden ist, nicht mehr gut (wie sich die Märkte geändert haben), ist aber dennoch ein gutes Beispiel für den Einsatz von Indikatoren für den mechanischen Handel. In zwei Worten: tun Sie Ihre eigene Analyse. Eine weitere wichtige Anmerkung: das Tutorial verwendet Beispiele, viele von ihnen. Um Ihr Leben zu erleichtern, habe ich sie alle, nicht nur Fragmente. Allerdings macht es den Text viel länger. Außerdem gehe ich von der ersten, ungeschickt, Forex Trading System. Bis fortgeschritten, jedes Mal erklären, was verbessert worden war und warum. Seien Sie geduldig oder springen Sie direkt zu dem Abschnitt, den Sie benötigen. Abschließende wichtige Anmerkung: der Code ist nicht etwas, das in Stein gemeißelt wird, es könnte ändern, während dieser Text geschrieben wurde. Die endgültigen Versionen der Script-Dateien sind im Cortex-Archiv enthalten. Fallstricke von FOREX BUY SELL Signale: Was ist falsch mit einfachen Beispielen In der Cortex Neural Networks Software Benutzer führen wir ein einfaches Beispiel für ein aftifficial Neural Network. Vorhersage des Preises der GENZ-Aktie. Um herauszufinden, was mit diesem Ansatz falsch ist, können Sie das gleiche einfache Beispiel mit MSFT. TXT anstelle der GENZ. TXT (verwenden Sie 800 Datensätze in der Lerngruppe, wie MSFT. TXT ist ein wenig kürzer, dann GENZ. TXT). Es würde einfach nicht funktionieren Warum Der Grund wird offensichtlich, wenn Sie sich fragen: Was ist der Grund neuronale Netzwerk-Prognose der zukünftigen Werte kann auf dem ersten Platz getan werden Die Antwort ist: es ist das Lernen zu tun, was heißt neuronale Netzwerk-Muster Anerkennung. Um Muster zu erkennen, und wenn es eine verborgene Logik in diesen Mustern gibt, dann wird sogar ein neues Muster (mit derselben Logik) erkannt. Das ist ein Trick - mit der gleichen Logik. Es gibt nicht einmal ein, aber drei Probleme hier. Zunächst einmal, wenn Sie sich die Microsofts Aktienkurs, werden Sie feststellen, dass es ging in den Lernteil unserer Daten, und seitwärts - in der Prüfung Teil. So ist es möglich, dass sich die Logik geändert hat. Zweitens und noch wichtiger - WAS IST DAS MUSTER Du siehst, wenn wir das neuronale Netzwerk im Bereich von 10 - 100 lehrten und es dann in der 1 bis 3 Reihe vorstellten, sind es unterschiedliche Muster 10, 20, 30 und 1, 2, 3 ähneln dem menschlichen, weil - WEIL - wir diese Fähigkeit haben, durch zehn zu dividieren, wenn sie mit Zahlen mit null endet. Es ist, was eine Vorverarbeitung der Daten genannt wird, und standardmäßig kann das NN es nicht tun. Können wir es lehren Natürlich. Was ist es genau, müssen wir es lehren Dies ist die dritte, und die wichtigste. Wir brauchen nicht die Preisvorhersage Wir interessieren uns nicht Was wir brauchen, ist FOREX Verkaufssignale zu kaufen. Nun, warten Sie eine Minute Wir müssen a) unseren Eingang (sowohl Lernen und Testen) im gleichen Bereich haben, und wir brauchen b) in der Lage sein, Entscheidungen zu treffen, die auf sie basiert Es ist nicht das, was wir nennen einen Indikator Bingo So, thats Was wir tun werden - wir werden einen Indikator aufbauen, um ihn dem NN als Input zuzuführen, und wir werden versuchen, eine Vorhersage des Indikatorwerts und nicht des wertlosen Aktienkurses zu erhalten Zitate aus der Festplatte, öffnen Sie die Neural Network-Datei und starten Sie das Lernen - alle in einem automatisierten Modus. Erstellen Sie eine neue Skriptdatei (oder öffnen Sie die mit dem Cortex Neural Networks-Softwarearchiv) und nennen es stocksnn. tsc. Zuerst müssen wir die Preiswerte aus der MSFT. TXT-Datei herunterladen. Wir werden die CLV-Anzeige verwenden (siehe unten), aber um sie zu berechnen, brauchen wir Split-eingestellte Werte für High und Low, nicht nur für Close. Hier ist, wie sie zu bekommen. Stocksnn. tsc, part 1 Die erste Zeile weist den Pfad der StrStockPath-Variable zu, natürlich müssen Sie sie bearbeiten, wenn sich Ihre Datendatei im anderen Verzeichnis befindet. In der zweiten Zeile geben wir an, dass dieser Pfad nicht relativ (relativ zum Speicherort der Cortex. exe-Datei) ist. Der TABLELOADER empfängt den Pfad, den leeren String für die Startzeile, 1 -, um die erste Zeile (Spaltennamen), einen Teil der Fußzeilenzeile (die letzte Zeile in MSFT. TXT enthält keine Daten) zu überspringen, wird ebenfalls angewiesen Um die Spaltennummer 0 zu laden (und arrDate aufzurufen), 2 (arrHigh), 3 (arrLow), 4 (arrC) und 6 (arrClose). Eine vollständige Beschreibung von TABLELOADER finden Sie im SLANG-Referenzhandbuch. Anschließend berechnen wir die Teilung, indem wir die Einstellung "Nah verstellt" auf "Schließen" setzen und diesen Wert verwenden, um "niedrig" und "hoch" einzustellen. Die MSFT. TXT-Datei enthält die neuesten Daten FIRST, während wir sie LAST möchten. Als Nächstes müssen wir einen Indikator erstellen. Lets sagen, es wird ein Close Location Value-Indikator sein, obwohl im realen Leben würde ich wahrscheinlich mehr als ein Indikator als NN-Eingang. Der Wert Close Location Value wird wie CLV (Close - Low) - (High - Close)) (High - Low) berechnet, wobei Close, Low und High für das Intervall gelten, nicht unbedingt für einen einzelnen Balken. Beachten Sie, dass wir es in der 0 - 1 Bereich, um es einfacher zu normalisieren, um unsere NNs Bereich (das ist wieder, 0-1) wollen. Stocksnn. tsc, part 3 Als nächstes müssen wir eine Lag-Datei erstellen. Verwenden Sie Lags gleich 1, 2. 9 (Details zu Dateifunktionen finden Sie im SLANG-Referenzhandbuch). Beachten Sie, dass das Cortexs NN-Dialogfeld einfache Verzögerungen automatisch erzeugen kann (Sie können die Schaltfläche "Verzögerung generieren" verwenden). Aber später in diesem Text, werden wir mit komplexen Verzögerungen arbeiten (das heißt, sie sind nicht 1, 2, 3. aber 1, 3, 64. was auch immer), so müssen wir den Code, der diese Aufgabe umgehen kann, zu schaffen Eine flexiblere Weise. Stocksnn. tsc, Teil 4 Mit der Lag-Datei sind wir bereit, unser erstes neuronales Netzwerk zu erstellen. Diese Funktion nimmt viele Parameter, also seien Sie vorsichtig. Allerdings ist der Code wirklich einfach. By the way, die meisten dieser Code kann entfernt werden, wenn Sie denken, Sie können Zahlen verarbeiten, anstatt sinnvolle Namen in Ihrem Code, aber das wäre eine sehr schlechte Kodierung Praxis sein. Stocksnn. tsc, Teil 5 Nachdem wir ein neuronales Netzwerk und die verzögerte Datei mit Daten haben, müssen wir das Netzwerk lehren. Die Lag-Datei (msftind. lgg) hat 1074 Datensätze, so dass es sinnvoll ist, 800 als Lern-Set und die restlichen 274 als Test-Set verwenden. Sie können natürlich eine Netzwerkdatei öffnen und auf die Schaltfläche Ausführen auf der Registerkarte Lernen klicken. Aber da dies eine Einführung in die erweiterte Cortex Neural Networks Software-Programmierung ist, können wir verwenden SLANG builtin Skriptsprache statt. Der folgende Code bringt den modalen Dialog mit den Ann NN-Einstellungen auf. Beachten Sie, dass, wenn Sie ein Privileg haben möchten, auf die Schaltfläche Ausführen zu klicken, Sie das stocksnn. tsc ändern müssen, Teil 6 Das bStartLearning kann 0 sein. In diesem Fall wartet der Dialog auf Ihre Eingabe oder 1, dann auf das Lernen Wird aytomatisch beginnen. Das bResumeScript, wenn gleich 1, wird das Skript wieder aufnehmen, wenn Sie den Dialog schließen, indem Sie auf die Schaltfläche OK klicken. Das bReset wird verwendet, um das Netzwerk zurückzusetzen, bevor das Lernen beginnt. Führen Sie das Skript aus, und warten Sie, bis der Epoch-Zähler 1000 überschreitet, und klicken Sie dann auf Beenden. Klicken Sie auf Apply (Übernehmen). Dies führt den gesamten Datensatz (sowohl Lernen und Testen) über die NN, und erstellen Sie die. APL-Datei, die sowohl die ursprüngliche Input-Output und die NN-generierte Vorhersage, so können Sie leicht darstellen und gegeneinander kompatibel . Gehen Sie auf die Registerkarte Ausgabe, wählen Sie die Datei msftind. apl aus, klicken Sie auf Datei durchsuchen, markieren Sie Felder und wählen Sie dann das Kontrollkästchen Nein in der linken Liste aus, und halten Sie die STRG-Taste gedrückt, während Sie mit der Maus auswählen Rechten Listenfeld. Klicken Sie auf Diagramm, um zu sehen, wie gut unsere Vorhersage ist. Gut. Es ist mehr oder weniger gut, von dem, was wir sagen können, indem wir es betrachten. Trotzdem nichts Außergewöhnliches. Dies war nur ein Beispiel dafür, was Sie mit SLANG Scripting tun können, und wie Sie Cortexs Routine-Aufgaben zu automatisieren. Allerdings haben wir bis jetzt nichts von Hand gemacht. Gut. Fast nichts, denn wenn Sie eine benutzerdefinierte Lag-Datei erstellen wollen, mit, sagen wir, Clv-100, Clv-50, Clv-25. Spalten, dann müssen Sie SLANG (oder Excel.) Verwenden, da Sie nicht in Cortex ohne Skripting tun können. FOREX Handelsstrategie: was zu optimieren Hier ist unser nächstes Problem. Brauchen wir eine gutaussehende Vorhersage, oder brauchen wir die, die wir verwenden können, um mit Gewinn zu handeln? Die Frage scheint seltsam, aber nur darüber nachdenken für einen Moment. Lets sagen, wir haben eine sehr gute 1-Stunden-Vorhersage. 95 genau. Dennoch, wie weit kann der Preis in einer Stunde gehen Nicht zu weit, ich habe Angst. Vergleichen Sie es mit der Situation, wenn Sie eine ziemlich ungenaue 10-Stunden-Vorhersage haben. Wird es besser sein, diese Frage zu beantworten, müssen wir tatsächlich handeln, wird ein einfacher Vergleich der mittleren Fehler, die von den beiden NNs wird nicht helfen. Der zweite Teil (des gleichen Problems) liegt in der Art, wie wir eine gute Vorhersage definieren. Nehmen wir an, wir haben ein Netzwerk, das die Vorhersage erzeugt, die genau 75 ist. Vergleichen Sie es mit dem NN, das 100 genaue Vorhersage produziert. Der letzte ist besser. Nun, DIVIDE die Ausgabe (Vorhersage) der 100 genaue NN von 10. Wir haben ein sehr ungenaues Netzwerk, da sein Signal nicht in der Nähe des Signals, das wir als eine gewünschte Ausgabe verwendet. Und doch kann es genauso verwendet werden, wie wir 100 genaues NN verwendet haben, alles, was wir tun müssen, ist, es zu multiplizieren, um 10 Siehe, die NN wird durch Abstimmung des mittleren quadratischen Fehlers und nicht der Korrelation, also zumindest in Theorie, eine bessere NN können schlechte Ergebnisse zeigen, wenn für die tatsächliche Aktien-Forex-Handel verwendet. Um dieses Problem zu lösen, müssen wir unsere NNs mit dem Handel testen und die Ergebnisse dieses Handels (Gewinn und Drawdowns) verwenden, um zu entscheiden, ob diese NN besser ist als die andere. Machen wir das. Lets erstellen Sie ein Programm, das verwendet werden, um Feinabstimmung NN, und dieses Mal, durch Feinabstimmung, werden wir handeln Ergebnisse bedeuten. Neural Network Trading: Wenige kurze Notizen Zunächst einmal, in unserem Beispiel oben, wird das automatische Lernen nie aufhören, weil wir keine Stop-Kriterien angegeben haben. Im Dialog oder in der CREATENN-Funktion können Sie die min. (Wenn das NN es erreicht, stoppt es und wenn bResumeScript auf 1 gesetzt ist, wird der Dialog geschlossen und das Skript wird fortgesetzt). Auch yo kann die maximale Anzahl von Epochen, oder beides. Ich verwende es nicht im Beispiel unten, zumindest nicht immer, denn ich plane das Lernen zu beobachten und auf STOP zu klicken, wenn ich denke, dass die NN bereit ist. Wenn Sie es im vollautomatischen Modus tun möchten, achten Sie auf diese Parameter. Zweite. Eine der Möglichkeiten, um ein Netzwerk kleiner, schneller und genauer zu machen, ist mit dem kleinen Netzwerk beginnen, und erhöhen Sie die Größe, Neuron von Neuron. Die Anzahl der Eingangsneuronen wird durch die Anzahl der Eingangsdatenspalten bestimmt (aber wir können sie auch variieren), und die Anzahl der Ausgangsneuronen sollte gleich der Anzahl der Ausgangsdatenspalten sein (normalerweise ein, aber nicht notwendigerweise ). Das bedeutet, dass wir die Anzahl der Neuronen in den ausgeblendeten Layern optimieren müssen. Auch, wie ich schon erwähnt, wissen wir nicht wirklich, welche Daten zu verwenden. Will Clv-256 (15 Tage verzögert) erhöhen die Genauigkeit unserer Vorhersage Brauchen wir Clv-256 Wird es besser sein, beide von ihnen in der gleichen NN verwenden, oder wird das Hinzufügen Clv-256 Ruine unsere Leistung Mit verschachtelten Zyklen zu versuchen, verschiedene Input-Parameter können Sie: Erstellen Sie die NN, so wie wir es für die Bestandsdaten (lassen Sie mich wiederholen, für die NN gibt es keinen Unterschied zwischen Aktien und FOREX, es ist nur passiert, dass ich paar hochwertige Dateien für Dateien haben FOREX, die ich verarbeiten möchte, beim Schreiben dieses Textes). Versuchen Sie verschiedene Kombinationen von Verzögerungen. Versuchen Sie verschiedene Anzahl von Neuronen in der ausgeblendeten Ebene. . Und verschiedene Kombinationen von verschiedenen Indikatoren. . und so weiter. Jedoch wenn Sie alle möglichen Kombinationen aller möglichen Parameter versuchen, erhalten Sie NIE Ihre Resultate, egal wie schnell Ihr Computer ist. Im folgenden werden wir einige Tricks verwenden, um Berechnungen auf ein Minimum zu reduzieren. Übrigens kann es scheinen, dass wenn Sie von einem verborgenen Neuron beginnen, dann erhöhen Sie es auf 2, 3 und so weiter, und an einem gewissen Punkt der Fehler (Qualität der Vorhersage) oder der Gewinn (wenn Sie die NN durch testen Handel mit ihm) beginnt zu gehen, dann haben Sie Ihren Gewinner. Leider kann ich nicht beweisen, dass es nach dem ersten Auftritt keinen zweiten geben kann. Es bedeutet, dass der Fehler wie 100, 30, 20, 40, 50 gehen kann (es war nur auf seinem Minimum, rechts) und dann 30, 20, 10, 15. (das zweite Minimum). Wir müssen nur alle vernünftigen Zahlen testen. Dritte. Optimierung ist ein zweischneidiges Schwert. Wenn Sie Ihren Code zu optimieren, funktioniert es möglicherweise nicht außerhalb der Daten, die Sie zur Feinabstimmung verwendet. Ich werde mein Bestes tun, um diese Falle zu vermeiden. Wenn Sie weitere Optimierungen an Ihrem Code oder NN vornehmen möchten, rate ich Ihnen, eine Recherche im Internet durchzuführen, um mehr über versteckte Probleme dieses Ansatzes zu erfahren. Ich werde auch auf die Glätte der Profitkurve achten. Der Gewinn, der wie 0, -500, 1000, -100, 10000 aussieht, kann groß sein, aber der Profit 0, 100, 200, 300, 400. ist besser, da es weniger riskant ist. Wir können später darüber reden. Schließlich, für dieses Beispiel werden wir FOREX verwenden, anstatt Aktienkurse. Aus der Sicht der NN gibt es keinen Unterschied, und von meinem Punkt - Forex ist viel mehr Spaß zu handeln. Wenn Sie Aktien bevorzugen, kann der Code einfach geändert werden. Eine FOREX-Handelsstrategie zum Spielen Zunächst einmal können wir einen Prototyp unseres Codes erstellen, der in Zukunft einfach optimiert werden kann. Es wird ein Handelssystem, das ein Neuronales Netzwerk zu handeln und produziert ein Diagramm (Gewinn gegen Handels-Nummer). Es wird auch kalkulieren Drawdown, als Maß für die Robustheit unseres Handelssystems. Forexnn01.tsc, part 1 Der Hauptunterschied hier ist, dass wir Funktionen verwenden, anstatt alle Code in den Hauptblock des Programms. Auf diese Weise ist es viel einfacher zu verwalten. Zweitens haben wir eine TestNet-Funktion. Ich bin mit einem sehr einfachen Algorithmus des Handels. Die CLV-Anzeige ist auf 0 - 1 Intervall beschränkt (unsere Version von CLV ist), also wenn der Indikator den dBuyLevel kreuzt (siehe Code oben), kaufe ich, wenn er den dSellLevel überquert, den ich verkaufe. Offensichtlich ist es nicht die beste Handelsstrategie, aber es wird für unseren Zweck (nur für jetzt) ​​zu tun. Wenn Sie es verbessern wollen, hier sind einige Hinweise. Erstens möchten Sie vielleicht ein System haben, das nicht IMMER auf dem Markt ist. Zweitens können Sie mehr als ein Kennzeichen als Eingaben und vielleicht mehr als ein NN verwenden, damit die Handelsentscheidung auf der Basis von wenigen vorhergesagten Indikatoren erfolgt. Wir werden einige Verbesserungen des Handelsalgorithmus später hinzufügen. Wir verwenden einige Standardannahmen des FOREX-Handels: Spread ist 5 Punkte, Hebelade ist 100, min. Los ist 100 (Mini-FOREX). Werfen wir einen Blick auf unser Handelssystem. Wieder einmal ist es ein überdimensionaler. Ein wichtiger Hinweis: Der TestNn () wird zuletzt aufgerufen und hat Zugriff auf alle Variablen, die zu diesem Zeitpunkt erstellt wurden. Wenn Sie also eine Variable sehen, die ich verwende, ohne sie zu initialisieren, bedeutet das wahrscheinlich, dass sie in NewNn (), TeachNn () oder einer anderen Funktion initialisiert wurde, die vor TestNn () aufgerufen wurde. Um die Dinge zu erleichtern, werden Kommentare in den Code platziert. Forexnn01.tsc, Teil 2 Wenige Worte zum Drawdown. Es gibt wenige Weisen, es zu berechnen, und wir verwenden, was ich die ehrlichste betrachte. Der Drawdown ist ein Maß für die Instabilität unseres Systems. Was ist eine Chance, dass es Geld verlieren lets sagen, dass der anfängliche Betrag 1000 ist. Wenn der Gewinn 100, 200, 300, 400 geht, ist der Drawdown 0. Wenn es 100, 200, 100. dann geht, ist der Drawdown 0.1 ( 10), da wir gerade einen Betrag von 110 der ursprünglichen Einzahlung (von 1200 bis 1100) verloren haben. Ich würde stark Ratschläge gegen den Einsatz von Handelssystemen mit großen Drawdowns. Auch hier nutze ich einen Drawdown, der mit variabler Losgröße verwendet werden soll. Jedoch in den tatsächlichen Proben, die mit dem eBook kommen, sehen Sie eine andere Version: Wie Sie sehen können, hier verwenden wir immer 1000 (der Anfangsbetrag), um den Drawdown zu berechnen. Der Grund ist einfach: Wir verwenden immer die gleiche Losgröße (kein Geldmanagement noch), so gibt es keinen Unterschied, wie viel Geld wir bereits auf unserem Konto angesammelt haben, sollte ein durchschnittlicher Gewinn konstant sein. Das schlimmste Szenario in diesem Fall sieht so aus: Von Anfang an (1000 auf Rechnung) verlieren wir Geld. Wenn wir 1000 verwenden, um den Drawdown zu berechnen, erhalten wir den schlechteren Drawdown. Das wird uns helfen, uns nicht zu betrügen. Zum Beispiel sagen wir, wir handelten für einige Zeit, und wir haben 10.000 auf unserem Konto. Dann verlieren wir etwas Geld, und wir haben jetzt 8.000. Dann haben wir uns erholt und 12.000. Gutes Handelssystem Wahrscheinlich nicht. Lets wiederholen Sie die Logik wieder, da es sehr wichtig ist (und es wird noch wichtiger, wenn wir mit Money Management beginnen). Wir handeln mit festen Größe Lose. Also, statistisch gesehen, gibt es keine Garantie, dass der maximale Verlust nicht am Anfang geschieht, wenn wir nur 1000 haben. Und wenn es passiert, haben wir -1000 (10.000 - 8.000), so ist das Handelssystem wahrscheinlich auch riskant. Wenn wir über das Geldmanagement reden (vermutlich nicht in diesem Text), müssen wir einen anderen Ansatz zur Drawdown-Berechnung verwenden. Beachten Sie, dass in diesem Handelssystem, ich bin mit dem schlechteren möglichen Szenario: Ich bin mit High-und Verkauf, mit Low kaufen. Viele Tester folgen nicht diesen Regeln und schaffen Handelssysteme, die auf historischen Daten gut funktionieren. Aber im wirklichen Leben haben diese Handelssysteme sehr schlechte Leistung. Warum Werfen Sie einen Blick auf die Preisleiste. Es hat Open, High, Low und Close. Weißt du, wie sich der Preis in der Bar bewegte. Also, sagen wir, dein Handelssystem hat ein Kaufsignal erzeugt, am unteren Rand der Preisleiste (wenn dLow beachte, dass ich dLotSize gleich 0.1 Lot (100) verwende. Offensichtlich, in der realen Handel profitieren Sie stark, wenn die Losgröße wird abhängig von dem Geld, das Sie haben, so etwas wie: forexnn01.tsc, Teil 3 Allerdings tun wir hier testen, nicht zu handeln (DLotSize 100), so erhalten wir eine gerade Linie mit einer positiven Steigung, während wir in der Lage sind, Englisch: eur-lex. europa. eu/LexUriServ/LexUri...0053: EN: HTML In diesem Text werden wir Geldmanagementsysteme auf unser Handelssystem anwenden, aber noch nicht, nachdem wir mit dem letzten Teil unserer Arbeit fertig sind Funktion, lässt Sie durch den Rest des Codes zu gehen. Die folgende Funktion erstellt eine CLV-Indikator. Es nimmt das Intervall als Parameter, das bedeutet, dass wir es viele Male nennen können, während der Optimierung, die Übergabe von verschiedenen Zahlen. Beachten Sie, dass ich die NN, die im 0 - 1-Intervall arbeitet. Die Daten können natürlich normalisiert werden, aber ich entschied mich, den Indikator durch 2 zu teilen und 0,5 hinzuzufügen, so dass er im Bereich von 0 - 1 liegt. Forexnn01.tsc, Teil 4 Um eine Lag-Datei zu erstellen, können wir die CREATELAGFILE-Funktion verwenden. Alternativ können wir es durch explizite Bereitstellung aller erforderlichen Code. In diesem Fall haben wir mehr Kontrolle, und wir werden es brauchen, wenn wir anfangen, die Anzahl der zurückgebliebenen Spalten und so weiter zu ändern. Forexnn01.tsc, part 5 Der Parameter nRemoveFirst ist wichtig. Viele Funktionen, wie Indikatoren, gleitende Durchschnitte, Lag-Generatoren, für diese Angelegenheit, funktionieren nicht gut innerhalb der ersten Datensätze der Datenmenge. Nehmen wir an, wir haben MA (14) - was wird es in den Datensätzen platzieren 1 - 13 Also wählen wir einfach die ersten (unzuverlässigen) Datensätze entfernen. Für die NewNn, sowie für alle Funktionen dieses Programms, müssen wir als Parameter nur übergeben, was während des Optimierungsprozesses geändert werden kann. Beispielsweise besteht keine Notwendigkeit, einen Sprung vor dem Parameter zu übergeben, da er immer derselbe ist. Forexnn01.tsc, Teil 6 Die TeachNn-Funktion bringt einfach das NN-Dialogfeld auf. Forexnn01.tsc, part 7 Schließlich brauchen wir eine Chartfunktion. Es ist nicht zwingend, aber es ist immer eine gute Idee, um zu sehen, wie unsere Gewinnlinie aussieht. Der folgende Code verwendet das XML, um ein Diagramm zu erstellen, also ist es eine gute Idee, das Tutorium zu lesen. Alternativ können Sie das Diagramm zeichnen, anstatt es in einer Datei zu speichern. Verwenden Sie dazu eine der Samples, die sich im Verzeichnis samplesscripts befinden. Schließlich können Sie den Code ändern, um HTML, anstatt XML zu erzeugen. HTML ist leichter zu lernen, aber der Code selbst wird ein bisschen weniger lesbar sein. Forexnn01.tsc, part 8 Kompilieren Sie das Skript und führen Sie es aus. Gut. Wie erwartet zeigte die Verwendung von 7 Stunden als Intervall für den CLV sehr schlechte Ergebnisse: FOREX Trading Strategien und Optimierung Der Grund für die schlechten Ergebnisse ist ganz offensichtlich: Wir haben die Intervall, Stop Loss, Kauf und Verkauf Ebenen und andere Parameter, die waren Rein zufällig - wir haben uns nur das erste Mal ausgesucht Was passiert, wenn wir versuchen, einige Kombinationen FOREX Trading Signals: Was zu optimieren Vor allem durch Überoptimierung der Kauf-und Verkauf Ebenen können wir unsere zukünftige Leistung ruinieren. Allerdings können wir noch tune sie, vor allem, wenn die Performance ist für enge Werte von Kauf-und Verkauf Grenzen zu schließen. Zum Beispiel, wenn wir -10 Gewinn zu kaufen Grenze gleich 0,3 haben, und 1000 Gewinn, wenn es 0,35 entspricht, dann gibt es wahrscheinlich einen glücklichen Zufall, und wir sollten nicht 0,35 für unser Handelssystem, wie in Zukunft wird es wahrscheinlich nicht passieren Nochmals. Wenn stattdessen haben wir -10 und 10 (anstelle von 1000), kann es sicherer zu verwenden. In der Regel sollte unser Trading-System für WORSE mögliche Szenario, als ob während des realen Handels die Leistung besser sein wird, dann während des Tests werden wir überleben, aber nicht umgekehrt. Wir können den Wert für das Indikatorintervall variieren, sofern wir genügend Trades haben, so dass wir in Bezug auf die Statistik in der Performance eines Systems überzeugt sein können. Wir können sicherlich die Anzahl der Neuronen variieren, ich glaube nicht, dass es leicht überoptimiert werden kann. Wir können die Anzahl der Eingänge und Verzögerungen für Eingänge variieren. Es ist möglich, dies zu optimieren, aber es ist nicht sehr wahrscheinlich zu passieren. Und natürlich können wir verschiedene Indikatoren ausprobieren. Genaue FOREX-Signale: Wie zu optimieren Wie bereits erwähnt, wenn wir versuchen, alle möglichen Kombinationen, wird es ewig dauern. Also werden wir betrügen. Wir erstellen vordefinierte Sätze von Parametern, die wir für vernünftig halten und an das Programm weitergeben. Um so wenig Berechnungen wie möglich zu machen, ist es wichtig, dass Clv-1 und Clv-2 wichtig sind, aber was ist mit Clv-128 Und - wenn wir bereits Clv-128 haben, brauchen wir Clv-129 Wahrscheinlich nicht. So werden wir so etwas wie Clv-1, Clv-2, Clv-4, Clv-8 haben. Clv-128 mit nur wenigen Variationen, die unsere Berechnungszeit tausendmal kürzer machen wird. FOREX Professional System Trading: Kann es überhaupt funktionieren Was genau ist es genau wollen wir vorhersagen Bis zu diesem Punkt haben wir 1-Stunden-Chart für EURUSD verwendet, und wir waren die Vorhersage der nächsten Bars CLV. Wird der CLV2 besser sein Was ist mit CLV3 Auch angesichts der schlechten Performance unseres ersten Handelssystems wäre es schön zu wissen, dass - zumindest in der idealen Welt - das Ziel (profitables Trading) erreicht werden kann. Um diese Fragen zu beantworten, können wir ein einfaches Testprogramm erstellen. Wir nehmen an, dass unsere Vorhersage 100 genau ist, und, basierend auf dieser Annahme, werden wir CLVN verwenden, nicht die NN vorhergesagt. Das ist richtig - wir nehmen Daten aus der Zukunft und nutzen sie statt der NN-Vorhersage. Dieser Ansatz würde nicht im wirklichen Leben arbeiten, natürlich, aber bei leats, wird es geben uns einige Ideen, was zu erwarten. Wenn Sie die Ergebnisse betrachten, denken Sie bitte daran, dass wir keine fortgeschrittene Geldverwaltung verwenden, unsere Losgröße ist auf ein Minimum von 100 festgelegt. Wenn Sie variable Losgrößen verwenden, werden die Ergebnisse dramatisch anders sein. Aber selbst bei einer Menge, die auf 0,1 gesetzt ist, können wir (unten) sehen, dass immer die Informationen aus der Zukunft ein ultimatives Trader Holly Graal ist. Forexnn02.tsc, part 1 Sie kennen diesen Code bereits, er wurde in FOREXNN01.TSC verwendet. Es behandelt das Laden von Daten. Der einzige Unterschied besteht in dem Teil, der die Liste der Dateien im Bilderverzeichnis erhält und alle Dateien mit der Erweiterung. PNG löscht. Der Grund für diesen Code ist einfach: Während unserer Tests werden wir viele Tausenderbilder erstellen. Wir wollen nicht, dass sie hängen, nachdem wir fertig sind. Also am Anfang des Skripts löschen wir Bilder, die von anderen Skripten erstellt wurden. Forexnn02.tsc, part 2 Nur ein paar Kommentare. Wir wollen nicht alle möglichen Werte für zB CLV-Intervall ausprobieren. Stattdessen können wir ein Array erstellen, das nur Werte enthält, die wir testen möchten. Dann (siehe unten) gehen wir durch dieses Array. Stop-Verluste sind wichtiger Bestandteil jeder Trading-Strategie, so habe ich beschlossen, sie auch zu variieren. Es ist jedoch eine gefährliche Idee, da es leicht ist, das System zu überoptimieren. Ich plane, verschiedene Werte für Kauf - und Verkaufsniveaus zu prüfen, aber es erfolgt im Zyklus, ohne Arrays zu verwenden. Anders als in unserem vorherigen Beispiel wollen wir eine große XML-Datei mit vielen Bildern haben. Um dies zu tun, habe ich den Code verschoben, der den XML-Header und die Fußzeile außerhalb der Diagrammfunktion bildet. Lesen Sie eines der Online-XML-Tutorials für Details. Beachten Sie, dass ich 0 als erste Verzögerung verwende, was bedeutet, dass ich zuerst den Indikator (CLV) teste, der nicht von der Zukunft verschoben wurde. Nur um eine Idee zu bekommen, wie gut Out-Trading-System wäre ohne NN (schrecklich, ist das richtige Wort, es ist das ganze Geld verlieren). Cortex verwendet das Internet Explorer-Steuerelement, um XML-Seiten anzuzeigen. Wenn Seiten groß werden, dauert es eine Menge Speicher. Wenn Ihr Computer nicht damit umgehen kann, sollten Sie stattdessen mehrere XML - oder HTML-Seiten erstellen. Im Fall von forexnn02 sollte es kein Problem sein, da die Seite relativ kurz ist. Alternativ (das ist, was ich tue, in Skripten später in diesem Text), erstellen Sie XML-Datei, aber nicht öffnen Sie es von Cortex. Öffnen Sie sie mit Internet Explorer stattdessen - im Gegensatz zu IE-Steuerelement verfügt der Internet Explorer nicht über das Speicherproblem. Nun ist der Code, der verschiedene Kombinationen von Parametern versucht. Forexnn02.tsc, part 3 Hier verwenden wir verschachtelte Zyklen. In jedem Zyklus sind wir assidning einige Variable (zum Beispiel nInterval für den äußeren Zyklus). Auf diese Weise wird der Zyklus Werte für alle Elemente eines entsprechenden Arrays zuweisen, eine zu einer Zeit. Dann wird innerhalb des Inneren der innere Zyklus verwendet, und so weiter, so dass alle Kombinationen aller Arrayelemente getestet werden. Im innersten Zyklus rufe ich die Test () - Funktion auf, um den Handel zu testen, und Chart (), um ein neues Bild zu einer Liste von Bildern hinzuzufügen, die auf der Festplatte gespeichert sind. Note, that this Chart() does not show any images, until all cycles are completed. The Test() and CreateClv() functions are almost the same as in the previous example. The only real difference is due to the fact that it is called more then once. To do it, I am calling ARRAYREMOVE to cleanup arrays. Also, notice, that we are only creating charts for the combinations of parameters, that produce trading system with positive profit. Otherwise, we call continue, to skip the Chart() function. Finally, we have Take Profit now, so our trading system can be a bit more flexible. forexnn02.tsc, part 4 The Chart() function was broken into two pieces. The header and the footer should be written to the XML file only once, so they were moved to the main part of the program. Also, I am using the counter, to save files under the different names. The information about parameters is written to the header of an image, so we can easily see which one it is. Finally, images are only saved for winning configurations, meaning the balance at the end should be more, then at the beginning. forexnn02.tsc, part 5 Run the program (it will take some time to complete). You will end up with a large XML page with images, one for each winning configuration. Some of the results are great, however, as we used data from the future, this system will not work in the real life. Actually, if you look at the Test() function, you will notice, that the cycle stops before we reach the last element of arrClose: for(nBar nRemoveFirst 1 nBar THIS IS C, just an example. As you can see, the code is really simple. Now lets do the same using the SLANG script. As in examples before, we will keep the overall structure of the code, so that this example looks familiar. The only difference is that instead of using the built-in APPLYNN function, we call the function of our own. The code that we do not use (such as cycles) is commented, but not removed. Note, that the logic behind it was discussed in Neural Networks and Stock Forex Trading article already. Briefly, the output of this script is formated to be compatible with the MQL, MetaTraders scripting engine. MetaTrader is a trading platform we use, if you want something different, like TradeStation, for example, you will have to alter the code to comply to its syntax. Then, in the following chapters, we are going to insert this code in the MetaTraders indicator, and to use it to trade. Porting script to trading platform The next step is not really required, but it is something, that may be useful. We are going to create a version of a tsc file (one above), but this time, we will use SLANG (Cortex scripting language) to emulate APPLYNN function. The reason is, in the next chapter we are going to port it to the scripting language of a MetaTrader trading platform, so it is a good idea to make sure everything works. After we run this function, we discover, that the result it produces is the same, as the forexnn05a produced, which means the code works fine. Note, that there is a difference at the beginning of the charts, as our NN does not try to process the data at the beginning (where lag is incomplete), while the built-in NN does not know about this problem. Of course, it doesnt affect the result, as the beginning of the chart is ignored by using the nRemoveFirst parameter in our script (set to 200, which is guaranteed to be larger, then our lag). Using third-party trading platform We have the NN that (more or less) can be used. We have the script, implementing this NN without calls to the Cortex-specific NN functions. Now we are going to port it to the trading platform that can be used for the real trading, which means it can contact brocker, place orders and earn (or loose) money. As a trading platform, I am going to use MetaTrader Disclaimer: I am not related to MetaQuotes in any way. I do not work for them, I am not their affiliate and so on. I use MetaTrader, ONLY because I like it. I find this program user-friendly, flexible and powerful, and not a monster. Also, it is free (compare to other packages of this class). The only (minor) problem is that it is not always easy to find the dealer using MT in your area. Then, when you do a research, you may find couple of brockers, with screenshots on their web sites, that look suspiciously familiar. Yes, they use MetaTrader, but they dont call it MetaTrader I have asked for clarification at the companys forum, and they have told me, that they dont reveal brockers using their services. Very strange. One of the brockers that is not hiding the fact they use MT, is Alpari. They will allow you to open a Demo account, so that you can trade in a real time, but without risking your money. Warning I am not going to recommeng services of Alpari. Once again, I am not being paid for that. Try their Demo account, and use your own judgement. Or you can start your own research at Internet forums. Finally, if you do not like the MT, you can probably follow the example below using TS, MS or some other trading platform. This is just an example. Our MT-based trading system will include two files, the indicator and an expert. This is the way they call it in MQL (scripting language of MT), and I am going to follow this naming convention. The indicator implements the neural network and draws a chart. An expert takes these data and does trading. As MetaTrader has a strategy tester, we will be able to test our strategy, to see how good it is. I will assume, that you are familiar with MQL programming, it is quite close to SLANG and tutorials can be found both at MetaQuotes and Alpari. Finally, I am using the code structure, that is borrowed from MetaQuotes forum, permission to use it the author of the corresponding posts had granted me permission to use fragments of his code. Also, as some of our MetaTrader code is the same for all experts and indicators, we moved it to a separate library file. MetaTraders libraries are nothing but includable files. This library takes care of synhronization, when two or more expert are trying to run in the same time, as well as of few other things. If you use MetaTrader, it will help you to create robust experts, in any case, the MQL language is easy to understand. mylib. mql, a helper library The code should look familiar, all I did was re-writing it, using slightly different language syntax of MQL. This indicator has two buffers, and draws two lines, one for the original NOC, and one for the NN-predicted NOC. For trading, you dont have to draw both indicator lines, of course (see MQL tutorials to learn how to do it), but I have decided to show them together, so you can compare. Another difference, that you should know about, is the way MT performs testing. It may, in some cases, be more accurate, then one we did (we did the worse case scenario). Of course, you can always to change the SLANG script from the examples above, to implement any logic you want. The result of our testing in MT is a bit better, then in Cortex, due to all these reasons. Keep in mind, that MT calculates the DD in a different way. I still think, that my way is better. In should be especially noted, that no additional optimization had been performed using MetaTraders optimizer. We have just plugged our MTS (mechanical trading system) in, and it worked as expected. Das ist es. You can now create Cortex Neural Network, optimize it to do trading, and to port it to the trading platform of your choice. 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