Es wird wiedermal Zeit für einen Zwischenbericht. Derzeit gehts leider etwas mühsam voran um nicht zu sagen gar nicht. Was sich bereits abzeichnet: Je höher der TF desto besser die Trefferquote. Zumindest die Trefferquote die mir angezeigt wird. Nach ein paar 100000 Generationen ist das beste gefundene Pattern in M15 bei 35%, M30 bei 40%, H1 61%, H4 77% und D1 auf unglaublichen 90%. Ich hab ein bissl die Befürchtung das diese hohen Trefferquoten in größeren TFs auch darauf beruhen das hier
Und wieder hat es eine halbe Ewigkeit gedauert seit dem letzten Eintrag. Der Grund ist neben den technischen Problemen hier leider wieder in anderen Verpflichtungen und einer fiesen Erkältung zu suchen. Aber jetzt gibt es endlich wieder was erwähnenswertes also los gehts: was bisher geschah Nachdem die erste Version der CDL fertig war, entstanden sofort Generationen von Pattern mit über 90% Trefferquote. Wie zu erwarten war beruhte diese Trefferquote rein auf Denk- und Programmierfehlern. Also
Da bin ich wieder. Wie zu erwarten war geht nach Behebung (hoffentlich) aller Denk- und Implementierungsfehler die Trefferquote nicht mehr entsprechend nach oben. Also heißt es die Logiken überarbeiten. Einerseits hab ich eine Sinnhaftigkeitsfilterung eingebaut. Damit es nicht passieren kann das zb eine Regel den gleichen Wert mit sich selbst vergleichen will etc. Andererseits überlege ich grade ob der Matchingalgo wirklich so sinnvoll ist. Es gibt derzeit Regeln die aus mehreren Teilkriteri
Hallo Leute, zuerstmal sorry für die lange Wartezeit. Die letzten Wochen waren bei mir beruflich sehr stressig wodurch die Motiviation und Energie für alle anderen Projekte leider entsprechend gelitten hat. Zusätzlich muss ich sagen das die Umsetzung der CDL doch etwas komplexer war als erhofft, aber alles der Reihe nach: Die Implementierung Wie der Titel schon sagt steht Version 0.2 der CDL, wobei ich immer schlecht in Versionsnummern bin. Eigentlich stehts kurz vor Version 1.0 . Von den Fu
Eigentlich wollte ich gerade mit der Implementierung anfangen, da hab ich gemerkt das ich das Bewertungssystem noch gar nicht beschrieben habe. Im letzten Eintrag hab ich gerade noch beschrieben wann ein Chartpattern auf den aktuellen Kursverlauf matcht. Aber für die Evolution dürfen sich ja nur die "erfolgreichsten" fortpflanzen. Also folgender Plan für die "natürliche Auslese" : Jede Generation wird natürlich neu bewertet, es bringt also nix wenn die Eltern erfolgreich waren. Jedes Pattern
Weiter gehts. In Teil 1 hab ich die Grundstruktur und die Targets beschrieben. Jetzt kommen die eigentlichen Regeln der CDL: Ein Chartpattern soll wie gesagt durch eine Anzahl an Regeln beschrieben werden. Für den Anfang werd ich mich auf 2 Typen von Regeln beschränken und mal hoffen damit möglichst viel abzudecken. Die Regeln RULE_BAR_FORM Diese Regel definiert das Aussehen eines bestimmten Bars im Pattern. Damit werden bei Patterns mit nur 1 Bar zB typische Candle-patterns abgedeckt (Ham
Wie versprochen Version 0.1 der CDL aka "Was ich mir grad vorm Fernseher zusammengereimt habe" Anforderungen Die CDL soll wie gesagt die Möglichkeit liefern ein Chartpattern möglichst genau zu beschreiben und dabei einem möglichst allgemeinem Muster folgen. Jede Pattern-Beschreibung soll aus ein Reihe eigenständiger Definition/Regeln bestehen, die beliebig kombiniert und ersetzt werden können. Es sollte möglich sein Regeln miteinander zu vergleichen um "ähnliche" Regeln zu vermischen
Dann legen wir mal mit dem 2. Teil des Projektes los: Die Evolution der Pattern-Recognition. (Der Titel ist doch schon mal schön ;) Die Idee dahinter Es wird wie gesagt ein Evolutionsalgorithmus. Entwickelt (Evolutioniert klingt komisch) werden Chartpatterns die eine statistisch signifikante Prognose geben. Hierbei will ich mich gar nicht weiter einschränken was die Chartpatterns angeht. Zu Beginn werden es sicher nur simple Patterns, mit der Zeit soll aber deren Komplexität auch ausgebaut wer
Wie versprochen hier ein bissl was grundlegendes zu Evolutionsalgorithmen. Gleich vorweg: Ich hab keine "Ausbildung" in dem Bereich. Alles was ich hier schreibe hab ich mir selbst erarbeitet. Es kann also leicht sein das meine Definitionen und Vorgehensweisen von den "offiziellen" abweichen. Das hier ist also die "Evolutionstheorie von mythos" Evolution at its best Wenn man Evolutionsalgorithmen verstehen will, muss man zuerst die Evolution als solches verstehen. Jeder hat den Begriff schon
Wird Zeit für ein neues Update: Auf meinem Rechner läuft jetzt seit ca. 1 Woche ständig irgendein Trainingsdurchlauf. MT nutzt zwar leider nur 1 Kern (ja man könnte es mit mehreren Installationen parallelisieren) aber da ich ja eigentlich selber beim "lernen" bzw. Erfahrung sammeln bin, und unter der Woche nicht gerade viel freie Zeit hab, passt das ganz gut. Wie gehe ich derzeit vor Ich habe einerseits eine mqh, die mir die Vorbereitung der Inputs (Erstellung des Inputvektors inkl. Normieru
Kommen wir zum letzten Teil der NN-Lib Implementierung: Der Lernalgorithmus. Wie gesagt habe ich mich für den Backprop entschieden, einfach weil ich ihn kenne und verstehe ;) Die implementierung ist derzeit noch nicht performance optimiert, aber das kann man später auch noch machen. Vom Ablauf her siehts so aus: Bereche den Output des NN wie übliche und speichere dabei für jede Schicht die Inputliste (also die Outputs der Schicht davor) Berechne die deltas für die Output-schicht und pas
Es ist wiedermal ein bissl Zeit für Theorie. Ich habs in Neuronale Netze: Hintergrund bereits kurz angerissen, aber da es jetzt zur konkreten Implementierung geht werd ich es doch nochmal detailierter angehen. Also: wie lernt ein Neuronales Netz? Etwas präziser gehts um den sogenannten Backpropagation Lernalgorithmus. Ich erspar euch die mathematischen Details und beschränk mich auf verständliches Kauderwelsch ;) Der backprop-algo ist ein häufig verwendeter Algorithmus zum trainieren von fee
Es hat (leider) etwas länger gedauert als erwartet, aber jetzt steht mal die erste Version. Ausgeführt wie gesagt als eine Library. Folgende Probleme (und Lösungen) sind während der Implementierung aufgetreten: Transferfunktionen Ich kann leider nicht beliebige Transferfunktionen zulassen, Grund ist genaugenommen nur die "Beschränktheit" von MQL. Mit OO könnte man eine Abstrakte "Transferfunction" Klasse machen und dem NN pro neuron ein solches Objekt übergeben. Aber is halt nicht. Also gibt
Kommen wir zum schwierigen Teil: Die Implementierung. Für das ganze restliche rundherum hab ich das EA Kitchen Framework genommen. Den aktuellen Source gibts dann immer im dazugehörigen Thread. Die konkrete Implementierung der NN Logik wird in eine Lib ausgelagert. Ich hatte zwar schon mal so eine geschrieben, aber keine Ahnung mehr wo die is. Also nochmal. Das ganze wird jetzt sicher ein bissl hardcore programmiertechnisch, also wems nur ums prinzip geht: besser wegschaun ;) Softwarestr
Kommen wir zum ersten spannenden Teil: Das Design des NN. Ob das NN die gewünschte Funktion richtig erlernt, hängt einerseits natürlich von der Funktion selbst ab. Aber zu einem großen Teil auch von der gewählten Form des Netzes und den Inputdaten. Ich habe vor für das Experiment verschiedene Ausprägungen eines Typs von NN zu testen. Grundsätzlich wird es wie gesagt ein mehrschichtiges feedforward NN. Die Anzahl der Schichten und Anzahl der Neuronen auf den Schichten werde ich variabel gestalt
Dann starten wir mal mit ein bisschen Theorie. Heute: Neuronale Netze. Wer sich "ernsthaft" mit dem Thema auseinandersetzen will, findet im Netz jede Menge "serious shit" zum Thema. Ich will hier eher einen (weiteren) kurzen Streifzug zu dem Thema geben, damit der geneigte Leser im weiteren Verlauf die Grundmechanismen versteht die ich zu verwenden gedenke. Was ist ein Neuronales Netz Prinzipiell ist ein NN nichts anderes als die Approximation einer (beliebig komplexen) Funktion. Also eine Bla
Also die Eckpfeiler. Ich möchte das System eigentlich möglichst "einfach" halten. Vor allem zu Beginn und solange noch nicht klar ist was die Ansätze überhaupt können. Die Eckpfeiler bestehen für mich (u.a.) aus diesen Punkten: Welcher Markt/Märkte Welcher Timeframe Einstiegslogik Ausstiegslogik MM/RM Markt: Da die Systeme selbstlernend werden (sollen), werde ich mich auf keinen Markt einschränken, sondern die Systeme dann mit diversen Märkten füttern und schaun was passiert, Schwerpunkt
Es werden also 2 Systeme werden. Da damit aber 2 Techniken verglichen werden sollen, haben beide Systeme die gleiche Basis und damit fangen wir mal an. Für die erfahreneren Handelssystementwickler: Ich will hier mal wirklich von ganz ganz unten anfangen, an dem Punkt der normalerweise unbeachtet bleibt weil er "selbstverständlich" passiert. Aber manchmal ist es gut sich klar zu machen worauf alles aufbaut. Also nicht wundern und ggf. einfach Einträge überspringen ;) Die Grundannahmen Jedes H
Hi zusammen, da ich scheinbar zuviel freie Zeit habe (obwohl eigentlich nicht) oder weil mir meine anderen Projekte zu langweilig werden (das wohl eher), hat sich letztens irgendwo über Stuttgart eine Idee festgesetzt: Ich werd nach längerer Abstinenz wieder mal ein Handelssystem schreiben. (Ja ich weiß, das is eigentlich keinen Blog wert, wartet ab ;) Da es wie alle wissen auch passieren kann das ich keinen Gral entwickle und nicht reich werde (ich geh natürlich davon aus das ich heute in ein