Tuesday 16 May 2017

Devisenoptimierer V2 7

Gordago, Forex kaufen. : Forex Optimierer Forex Optimizer -,, Forex. Aufrechtzuerhalten. Aufrechtzuerhalten. Forex Optimierer, Forex Optimierer. Forex Optimierer,, Forex Optimierer. Aufrechtzuerhalten. . Aufrechtzuerhalten. . ,. Aufrechtzuerhalten. . API. , Devisenoptimierer. : Devisenoptimierer Open Source. 2.7 Subversion: svn checkout trac. gordago. ru/svn/tags/2.7/ 2.8,,: svn ausprobieren trac. gordago. ru/svn/trunk/ Lite Update Entwickeln Lite Update Entwickeln -. Aufrechtzuerhalten. ,,. , - LiteUpdate LiteUpdate Entwickeln. Spracheditor Spracheditor -. LanguageManager () Spracheditor (). . :: Info at gordago dot com ICQ: 481186408 SnowCron SnowCron Neuronale Netze für FOREX Trading In diesem Artikel: ein Beispiel für die Nutzung unserer Neural Networks Software, um eine komplette neuronale 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 KAUF / SELL Signale: Was ist falsch mit einfachen Beispielen Im Cortex Neural Networks Software Benutzerhandbuch haben wir ein einfaches Beispiel für ein aftifficial Neural Network verwendet. Vorhersage des Preises der GENZ-Aktie. Um herauszufinden, was falsch ist mit diesem Ansatz, lassen Sie uns das gleiche einfache Beispiel, mit MSFT. TXT, anstatt der GENZ. TXT (verwenden Sie 800 Datensätze in der Lern-Set, 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 den Aktienkurs von Microsoft ansehen, werden Sie feststellen, dass es im Lernteil unserer Daten und seitwärts - im Testteil hinuntergeht. 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, um Entscheidungen zu treffen, die auf sie basiert Es ist nicht das, was wir nennen einen Indikator Bingo So, Das werden wir machen - 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. In unserem ersten Beispiel werden wir Laden Sie Aktien-Zitate von 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 Datei, die mit dem Cortex Neural Networks-Softwarearchiv geliefert wurde), und rufen Sie sie unter dem Namen nn. tsc an. 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. Stocks nn. tsc, Teil 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 TABLE LOADER empfängt den Pfad, den leeren String für die Startzeile, 1 -, um die erste Zeile (Spaltennamen), einen Teil der Fußzeile der Datei zu überspringen (die letzte Zeile in MSFT. TXT enthält keine Daten) Auch angewiesen, die Spaltennummer 0 (und rufen sie arrDate), 2 (arrHigh), 3 (arrLow), 4 (arrC) und 6 (arrClose) zu laden. Eine ausführliche Beschreibung von TABLE LOADER finden Sie im SLANG-Referenzhandbuch. Anschließend berechnen wir die Teilung, indem wir die Einstellung "Nah verstellt" beenden und diesen Wert verwenden, um den Wert "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. Lassen Sie uns 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 im Bereich 0 - 1 wollen, um es einfacher zu machen, unser NN s Bereich zu normalisieren (was wiederum 0-1 ist). Bestände nn. tsc, Teil 3 Als nächstes müssen wir eine Lag-Datei erstellen. Lassen Sie s Verzögerungen gleich 1, 2 verwenden. 9 (Details zu Dateifunktionen finden Sie im SLANG-Referenzhandbuch). Beachten Sie, dass das Dialogfeld "Cortex s NN" 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. Stocks nn. 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. Aktien nn. tsc, Teil 5 Nun, nachdem wir ein neuronales Netzwerk und die verzögerte Datei mit Daten haben, müssen wir das Netzwerk lehren. Die Lag-Datei (msft ind. lgg) hat 1074 Datensätze, daher ist es sinnvoll, 800 als Lern-Set zu verwenden und die verbleibenden 274 als Test-Set. Sie können natürlich eine Netzwerkdatei öffnen und auf die Schaltfläche Ausführen auf der Registerkarte Lernen klicken. Aber wie dies ist eine Einführung in fortgeschrittene Cortex Neural Networks Software-Programmierung, lassen Sie uns verwenden SLANG in 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, die Bestände nn. tsc, Teil 6 ändern müssen. BStartLearning kann 0 sein. In diesem Fall wartet der Dialog auf Ihre Eingabe oder 1 Lernen beginnt aytomatisch. 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 . Klicken Sie auf die Registerkarte Ausgabe, wählen Sie msft ind. apl aus, klicken Sie auf Datei durchsuchen, markieren Sie die Felder und wählen Sie das Feld Nein in der linken Liste aus, und halten Sie die STRG-Taste gedrückt, während Sie mit der Maus auswählen Das rechte 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 die Routine-Aufgaben von Cortex automatisieren können. 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. Lassen Sie uns 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. Lassen Sie uns sagen, wir haben ein Netzwerk, das die Vorhersage erzeugt, die 75 genau 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 genaue NN verwendet haben, alles, was wir tun müssen, ist, es zu multiplizieren, um 10 Siehe, die NN wird durch Abstimmung der mittleren quadratischen Fehler, und nicht die Korrelation, also zumindest in Theorie, eine bessere NN kann zeigen, schlechte Ergebnisse, wenn für die tatsächliche Börse / Forex Trading 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. Lassen Sie s ein Programm, das verwendet werden können, um Feinabstimmung NN, und dieses Mal, durch Feinabstimmung, werden wir handeln die Ergebnisse. Neural Network Trading: Wenige kurze Notizen Zunächst einmal wird in unserem obigen Beispiel das automatische Lernen niemals aufhören, da wir keine Anhaltekriterien angegeben haben. Im Dialog oder in der Funktion CREATE NN 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, ist es, mit dem kleinen Netzwerk beginnen, und erhöhen Sie es s 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 eine, 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 Zuerst wollen 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. Forex nn 01.tsc, Teil 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. Zuerst 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). Lassen Sie uns 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. Forex nn 01.tsc, Teil 2 Wenige Worte über den 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 verloren haben, der 1/10 der ursprünglichen Einzahlung (von 1200 bis 1100) entspricht. 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. Lassen Sie s wiederholen die Logik wieder, da es sehr wichtig ist (und es wird noch wichtiger, wenn wir anfangen, Geld-Management). 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, lassen Sie uns sagen, Ihr Handelssystem generiert ein Kaufsignal, am unteren Rand der Preisleiste (wenn dLow Beachten Sie, dass ich mit dLotSize gleich 0,1 Lot (100) Dass es sich bei dem realen Handel um einen großen Vorteil handelt, wenn die Losgröße in Abhängigkeit von dem Geld berechnet wird, das Sie haben, so etwas wie: forex nn 01.tsc, Teil 3 Allerdings tun wir hier das Testen und nicht den Handel Ist es viel einfacher zu tun, wenn die Losgröße gleich ist (im Idealfall, für dLotSize 100 erhalten wir eine gerade Linie, mit etwas positiver Steigung , Während wir im Fall der einstellbaren Losgröße einen Exponenten erhalten, der viel schwerer zu analysieren ist), später werden wir Geldmanagementsysteme auf unser Handelssystem anwenden, aber noch nicht, nachdem wir mit dem letzten fertig sind Teil der Testfunktion, lassen Sie uns durch den Rest des Codes zu gehen. Die folgende Funktion erstellt eine CLV-Indikator. Es nimmt das Intervall als Parameter, was bedeutet, dass wir es oft 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. Forex nn 01.tsc, Teil 4 Um eine Lag-Datei zu erstellen, können wir die Funktion CREATE LAG FILE 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. Forex nn 01.tsc, Teil 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 des Datensatzes. Lassen Sie uns sagen, wir haben MA (14) - was wird es Platz in den Datensätzen 1 - 13 So wählen wir einfach entfernen Sie die ersten paar (unzuverlässige) Datensätze. 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. Forex nn 01.tsc, Teil 6 Die TeachNn-Funktion bringt einfach den NN-Dialog auf. Forex nn 01.tsc, part 7 Schließlich benötigen 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 einen der Beispiele, die sich im Verzeichnis samples / scripts 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. Forex nn 01.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 Handelsstrategien 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 Performance 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 aufs Neue. 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 variieren die Zahl der Neuronen, 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 bar s CLV. Wird der CLV 2 besser sein Was ist mit CLV 3 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, lassen Sie s ein einfaches Testprogramm erstellen. Wir nehmen an, dass unsere Vorhersage 100 genau ist, und, basierend auf dieser Annahme, werden wir CLV N 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 funktionieren, 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 ist ein ultimativer Händler Holly Graal. Forex nn 02.tsc, Teil 1 Sie kennen diesen Code bereits, er wurde in FOREX NN 01.TSC verwendet. Es verarbeitet 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. Forex nn 02.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 eine 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 Falle von forex nn 02, 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. Forex nn 02.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 von allen Elementen eines entsprechenden Arrays, eines in einer Zeit zuweisen. 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. Beachten Sie, dass dieses Diagramm () keine Bilder zeigt, bis alle Zyklen abgeschlossen sind. Die Funktionen Test () und CreateClv () sind fast dieselben wie im vorherigen Beispiel. Der einzige Unterschied ist, dass es mehr als einmal aufgerufen wird. Um es zu tun, rufe ich ARRAY REMOVE zu reinigen Arrays. Beachten Sie auch, dass wir nur erstellen Diagramme für die Kombination von Parametern, die Handelssystem mit positivem Gewinn zu produzieren. Ansonsten rufen wir fortsetzen, um die Funktion Chart () zu überspringen. Schließlich haben wir Take Profit jetzt, so dass unser Handelssystem ein bisschen flexibler sein kann. Sehr seltsam. Das ist es. Weiterlesen.


No comments:

Post a Comment