Jump to content
Tom Next - Daytrading Community

Search the Community

Showing results for tags 'neuronales netz'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Investmentideas
    • Trading + Co.
  • Suspicious Minds
    • fabian.john@gmail.comMr. Fraud & Ms. Scam
    • Red Flag
  • Off-Topic
    • Best Off
  • Trading Desk
    • Contract for Difference
    • Bitcoin
    • Financial Spread Betting
    • Futures & Optionen
    • Finanzwetten · Digitals
  • Behind the scences
    • Public Relations
    • Ich hab da mal 'ne Frage...
    • Technical Support
    • Think Tank
  • Programmierbare Handelsplattformen & Chartsoftware
    • Metatrader
    • MultiCharts
    • Ninjatrader
    • Amibroker
    • Agena Trader
    • JForex
    • Maran-Trader
    • Strategy Trader
    • Informations- und Analyseprogramme
  • Handelsansätze und Tradingstrategien im Praxistest
    • Trading Setups
  • Technische Analyse
    • Charting und Technische Analyse
    • Science
  • Social Investment Networks
    • Social Trading
  • Broker
    • MB Trading
    • Interactive Brokers
  • High Frequency / Algo Trading
    • Black Box
  • Exotics
    • Trading Sports
    • Event Futures
  • Programmierung
    • Programmiersprachen
  • tom-next.com · international
    • International Community
  • Tech Zone
    • Helpdesk
    • IT, Internet, Software

Blogs

  • Call the Shots
  • siscop's Blog
  • First-Level-Trading
  • Ecart's Blog
  • DarthTrader's Blog
  • Henrik's Blog
  • røøt66
  • stefan's Blog
  • tinozi's Blog
  • - Maerl Brontius -
  • Rumpel's Blog
  • Proudroses' Blog
  • Vola's Blog
  • OS_Trading
  • Mako's Alte Zeiten Blog
  • Maerl Brontius' Blog
  • Elad Nava's Blog
  • Corporate Blog
  • Mythos Down Under
  • 17:33h
  • PermissionControll's Blog
  • tester2's Blog
  • IPS' Blog
  • Exchange - Developement
  • Ein Externer Blog
  • MetaTraders
  • Der TEFEx Millionär
  • Lobo's Schnipsel Blog
  • Betfair-Review
  • My-privatbroker
  • Jimboo's Blog
  • KI vs. Evolution
  • Let the machines trade

Categories

  • MT4 Commmunity
    • Community Projekte
    • Einzelprojekte
    • Tickdaten
    • Misc (internal stuff)
  • MT4 Codes
    • A-Z
  • e-Book Exchange
    • .pdf *mixed*
    • Technische Analyse
    • Trading Know How
    • Metatrader/MQL
    • FX Know How
  • Contract for Difference
  • Miscellaneous
  • Allgemein/ Unsortiert
  • Manuals & User Guides
  • Finanzmarktaufsicht
  • Community Projekte
  • Ninjatrader

Calendars

  • Finanzkalender
  • Community Kalender

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Wohnsitz


Interessen


Name des Mitglieds

Found 2 results

  1. 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 Black-Box mit einer fixen Menge an Eingabeparametern und einer fixen Menge an Ausgaben. Man versucht also eine Funktion zu "schätzen" deren wahre Logik man nicht kennt, von der man aber eine gewisse Menge an Beispielwerten (Eingabeparameter mit dazugehörigen Ausgaben) hat. Aber warum heißt es dann "neuronales Netz"? Ein NN ist eine Menge von Knoten (genannt "Neuronen") die miteinander in einer Netzartigen Struktur verbunden sind. Jede Verbindung kann man sich wie eine Datenübertragungsleitung vorstellen über die jeweils eine Zahl übertragen wird. Ein Neuron hat eine beliebige Anzahl an Eingangsverbindungen (über die jeweils eine Zahl an das Neuron geschickt wird). Aus all diesen Zahlen berechnet das Neuron eine neue Zahl (mit der sogenannten Übergangsfunktion). Diese Zahl sendet das Neuron dann über seine Ausgangsverbindungen an die nächsten Neuronen weiter. Damit es nicht zu kompliziert wird sind die Neuronen in Schichten (Layern) angeordnet. Die erste Schicht besteht aus den Input-Neuronen, diese erhalten ihre Werte aus den Inputparametern. Die letzte Schicht sind die Output-Neuronen, deren Ergebnisse sind die Ausgaben des NN. Feed Forward Um es nicht unnötig kompliziert zu machen, verwende ich ein feed forward NN. Das bedeutet einfach, das es innerhalb des Netzwerks nur Verbindungen von einer Schicht zu Neuronen in der direkt nächsten Schicht gibt. Also weder Verbindungen die "zurück zum Eingang" laufen, noch Verbindungen die Schichten überspringen. Die Übergangsfunktionen Nicht unwesentlich für die Funktion des NN sind die Übergangsfunktionen. In der Regel haben sie eine sehr einfache Form: Jede Eingangsverbindung erhält ein fixes Gewicht. Kommt ein neuer Satz von Eingangswerten (also 1 Zahl pro Verbindung) daher, wird der jeweilige Wert mit dem entsprechenden Gewicht multipliziert und die Ergebnisse summiert. Sprich es wird eine gewichtete Summe gebildet. Dieser Summenwert ist nun der Input für die Aktivierungsfunktion, deren Ergebnis auch schon der Ausgangswert des Neurons ist. Typische Beispiele für diese Aktivierungsfunktion ist zB die sogenannte HeavySide Funktion die 0 liefert solang der Wert unter einem fixen Schwellwert ist und 1 wenn er darüber ist. Oder die lineare Aktivierungsfunktion die einfach den Eingangswert 1:1 als Ausgang zurückgibt. Wie lernt ein NN Die gerade beschriebenen Gewichte sind auch schon der Schlüssel wie ein NN nun lernt. Einfach ausgedrückt so wie ein Mensch auch: Man zeigt ihm eine Reihe von Beispielhaften Inputdaten und die dazugehörigen Outputs. Das NN rechnet nun für diese Inputdaten aus welche Outputs es gerade liefern würde, vergleicht diese mit den gewünschten Outputs und passt alle internen Gewichte so an, das ab sofort für diese Inputs die gewünschten Outputs geliefert werden. (Der eigentlich Lernalgorithmus ist etwas komplizierter, aber das ist die Grundidee) Auswendig lernen Man kennt es vom optimieren: Overfitting. Auch beim NN gibt es dieses Problem: Man hat ein hochkomplexes NN mit massig Neuronen und Schichten und trainiert es auf wenige Testdaten (Inputs mit entsprechenden Outputs). Nun besteht das große Risiko, dass das Netz einfach diese Testdaten auswendig lernt. Somit für die Testmenge perfekte Ergebnisse liefert, aber für leicht veränderte Daten komplett daneben liegt. Verhindert wird es mit der gleichen Technik wie beim Trading: Out of Sample. Man teilt die Menge der vorhandenen Testdaten auf. Mit der einen Menge trainiert man das Netz, nach jeder Lerniteration (davon braucht man meist sehr viele) testet man das Netz an der zweiten Menge (lässt es aber nicht "lernen" also die Gewichte bleiben unverändert). Zu Beginn sollte der Fehler nun bei beiden Mengen sinken. Sobald der Fehler bei der zweiten Menge wieder steigt, beginnt offensichtlich das overfitten und man stoppt den Lernalgorithmus. Nun sollte das NN bestmöglich trainiert sein. Soweit der Überblick über neuronale Netze. Wie ich ein solches Netz jetzt im Trading anwenden will, gibts in einem nächsten Eintrag.
  2. 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 ;) Softwarestruktur Die Lib wird so aufgebaut das sie genau 1 NN repräsentiert. Sprich es gibt globale variablen in der Lib die Status und Konfiguration speichern, und dann Funktionen für die entsprechenden Zugriffe. Gespeichert werden muss: Anzahl der Schichten -> integer bzw. direkt über größe des layers array Anzahl der Neuronen pro Schicht -> int-array: layers Definition der Übergangsfunktion pro Neuron -> zweidimensionales array (anzahl schichten x knoten pro schicht) Gewichte pro Verbindung -> wird wohl ein dreidimensionales double array. Ebene 1: layer, ebene 2: neuron am layer Ebene 3: neuron auf nächstem Layer Nötige Zugriffsfunktionen: Erzeuge NN. Parameter: ,, , Berechne NN. , Lade Parameter von File: Speichere in File: Autosave (nimmt filename aus dem geladen wurde Trainiere 1 Schritt: , Als Lernalgorithmus werd ich den backpropagation verwenden, einfach weil ich ihn kenne ;) Sprich die Lib wird ein komplett allgemeines NN, das man ggf. auch für ganz andere Varianten verwenden kann. Alle Projektspezifischen Einstellungen werd ich in eine mqh packen die die NN-Lib dann verwendet. Dann geh ich mal an die Implementation der Lib. Mal sehen wie lang es dauert ;)
×
×
  • Create New...