Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 14
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
OK, mögen Sie denken. Stellen Sie sich zum Beispiel vor, dass das neuronale Netz bei jeder Iteration keine Standardfehler-Rückwärtsfortpflanzung auf der Grundlage der Zielabweichung von der Vorhersage durchführt, sondern Daten erhält, die bei der vorherigen Version der Gewichte um so viele Punkte vom Idealwert abweichen . Und aktualisiert die Gewichte auf der Grundlage dieser Informationen. Das heißt, die Informationen sollten parallel zur Maschine fließen. Vielleicht ist es machbar.
Warum brauchen Sie Gewichte? Warum sprechen Sie überhaupt über sie?
Ich habe verstanden, dass man vorherige Gewichte braucht, jetzt verstehe ich, dass ich nichts verstehe)
Warum brauchen Sie Gewichte? Warum reden Sie überhaupt über sie?
Ich habe verstanden, dass man vorherige Gewichte braucht, jetzt verstehe ich, dass ich nichts verstanden habe)
Nun, es sieht so aus ))
Wir brauchen die Gewichte nicht. Ich habe sie nur erwähnt, um IHNEN das klar zu machen. Wir müssen wissen, wie das System bei früheren Gewichten gehandelt hat. Wir brauchen das Ergebnis des Handels in einer integrierten Form. Alles.
Die Gewichte werden durch den Algorithmus aktualisiert.
Hier funktioniert eine einfache Funktion. Es muss eine komplexere Lösung ausprobiert werden. Es muss noch differenziert werden, das ist der schwierige Teil.
library(neuralnet)
y <- as.data.frame(matrix(runif(n = 10000, min = -15, max = 15), ncol = 2))
y$V3 <- runif(n = 5000, min = -15, max = 15)
y$V4 <- runif(n = 5000, min = -15, max = 15)
y$V5 <- runif(n = 5000, min = -15, max = 15)
y$V6 <- runif(n = 5000, min = -15, max = 15)
y$V7 <- runif(n = 5000, min = -15, max = 15)
y$V8 <- y$V1 ^ 2 + y$V2 ^ 2
colnames(y) <- c('input_1', 'input_2', 'noise_1', 'noise_2', 'noise_3', 'noise_4', 'noise_5', 'output')
f_f <- function(x, y){
1/2*(y-x)^2
}
print(
nn_model <- neuralnet(formula = output ~ input_1 + input_2 + noise_1
, data = y
, hidden = 1
, threshold = 0.01
, stepmax = 1e+05
, rep = 100
, startweights = NULL
, learningrate.limit = NULL
, learningrate.factor = list(minus = 0.5, plus = 1.2)
, learningrate=NULL
, lifesign = "none"
, lifesign.step = 10
, algorithm = "rprop+"
, err.fct = f_f #"sse"
, act.fct = "logistic"
, linear.output = F
, exclude = NULL
, constant.weights = NULL
, likelihood = FALSE
)
)
f_f <- Funktion(x, y) 1/2*(y-x)^2
f_f - zählt der Fehler für das Netzwerk richtig?
x ist der Wert, der erreicht werden soll (Idealkurve)
y ist, wie es sein sollte (die echte Kurve)
Der Unterschied zwischen ihnen ist der Fehler
Ich benötige einen Vektor von Geschäften nach vorherigen Candlesticks, ich benötige die Regeln für die Eröffnung von Geschäften, ich benötige die Regeln für die Eröffnung von Geschäften, ich benötige das allgemeine Aussehen der Eingabedaten
f_f <- Funktion(x, y) 1/2*(y-x)^2
f_f - zählt der Fehler für das Netzwerk richtig?
x ist der Wert, der erreicht werden soll (Idealkurve)
y ist, wie es sein sollte (die echte Kurve)
Der Unterschied zwischen ihnen ist der Fehler
Ich denke, ich brauche einen Vektor des Handels von Candlesticks, aber ich verstehe nicht, wie man Geschäfte nach welchen Regeln zu öffnen, wie diese Input-Daten aussehen sollte
Ein Kollege hat mir einen Link zu einem Kurs über maschinelles Lernen geschickt, möchten Sie ihn sich ansehen? Es ist kostenlos, aber aus irgendeinem Grund in Python ((
https://www.udacity.com/course/machine-learning-for-trading--ud501
Ein Kollege hat mir einen Link zu einem Kurs über maschinelles Lernen geschickt, möchten Sie ihn sich einmal ansehen? Es ist kostenlos, aber aus irgendeinem Grund in Python ((
https://www.udacity.com/course/machine-learning-for-trading--ud501
Die effektivste:
1. Sie setzen R - 5 Minuten ein.
2. laden Sie das rattle-Paket herunter, das als GUI konzipiert ist und daher keine Kenntnisse von R erfordert.
3. Um Ihre Anlaufkosten zu senken, können Sie meinen Artikel nutzen. Sie enthält Erklärungen und, was noch wichtiger ist, eine fertige Datei. Wenn Sie meine Datei gesehen haben, können Sie leicht Ihre eigene erstellen.
4. Sie erhalten sechs Modelle.
5. Das Wichtigste an Rattle ist, dass man den gesamten Zyklus des maschinellen Lernens sehen kann:
All dies wird Ihnen eine lückenlose Grundlage und vor allem eine konkrete Erfahrung mit maschinellem Lernen im Zusammenhang mit dem Devisenhandel bieten.
PS.
Die Rassel wird Ihnen nicht nur bei den ersten Schritten sehr nützlich sein, sondern auch später: minimale Kosten, um etwas zu schätzen, zu experimentieren...
PSPS
Natürlich kann man auf Bücher nicht verzichten. Davon gibt es hier reichlich. Die Suche funktioniert einwandfrei.
Danke für die ausführliche Erläuterung, Dr. Trader!
Wissen Sie, wahrscheinlich wäre es das Beste und Richtigste, die Umkehrungen selbst zu lehren, sogar den gleichen Zickzack, das heißt, drei Zustände zu geben 1) U-Turn nach oben
2) Umkehrung nach unten
3) keine Kehrtwendung
Aber ob es zu lehren, ist es ziemlich schwierig, Umkehrungen zu fangen, plus die Schieflage in der Anzahl der Beobachtungen, Klassen "nicht Umkehrung" wird Dutzende oder vielleicht Hunderte von Malen mehr sein
Und welche Prädiktoren verwenden Sie und wie sehen die Ergebnisse aus?
Ich habe gerade begonnen, die Spektralanalyse zu verwenden, die ersten Tests erwies sich als viel besser als mit den Indikatoren, lief ich es durch Rattle, der Fehler der Ausbildung und Prüfung war etwa 6%, aber wenn ich begann, R zu verwenden, stieg der Fehler auf 30%, wenn ich mich nicht irre, San Sanich sagt, dass es retraining, so dass ich immer noch nicht viel verstehen
Es gibt auch eine Möglichkeit, durch Spektralanalyse herauszufinden, welche Perioden auf dem Markt dominieren, und diese Perioden dann in Indikatoren zu verwenden. Ich werde adaptive Indikatoren erhalten, die nicht an die Geschichte angepasst sind.
Ich verwende Standardindikatoren als Grundlage für die Erstellung von Prädiktoren. Ich selbst experimentiere noch mit ihnen, indem ich die Ideen aus diesem Forumsthread ausprobiere.
Ich habe es für die letzten Wochen, jetzt das beste Ergebnis ist die folgende: (eine Menge von Berechnungen, ich versuche, D1 Zeitrahmen für schnellere Berechnung verwenden, später werde ich kleinere Zeitrahmen verwenden)
1) Export von mt5 nach csv: ohlc, Zeit, Indikatoren, alle für die letzten 10 Bars. Ich habe vor kurzem damit begonnen, die Zeit nur vom neuesten Takt zu nehmen, ich glaube, die Zeit der anderen Takte ist berechenbar und bringt daher keine neuen Informationen. Es werden mehrere Hundert "primäre" Prädiktoren veröffentlicht. Das gewünschte Ergebnis des Lernens ist "1" oder "0" - Anstieg oder Rückgang des Kurses im nächsten Balken. Meine Methode mit den Zickzacklinien ist nicht stabil und komplex, ich kann jetzt besser mit engen Preisen arbeiten. Wenn ich einen vollständigen Algorithmus für die Modellschulung von Grund auf ausgearbeitet habe, kann ich mit der Arbeit an Zickzacklinien und Trendvorhersagen beginnen.
2) In R führe ich verschiedene mathematische Operationen mit den verfügbaren Daten durch - Addition, Deltas, Minimum, Maximum usw. Es gibt bereits mehr als tausend Prädiktoren.
3) Offensichtlich gibt es nach dem zweiten Schritt mehr Müll als nötig. Ich siebe es nach der Methode des Artikels über die Grundkomponentenhttp://www.r-bloggers.com/principal-components-regression-pt-2-y-aware-methods/, SanSanych schrieb darüber früher. Ich unterrichte das PCR-Modell selbst nicht und habe mich vorerst auf die Funktion zur Vorauswahl der Prädiktoren beschränkt:
srcTable ist eine Tabelle mit Prädiktoren, die letzte Spalte sollte das gewünschte Trainingsergebnis sein.pruneSig sollte besser -1 sein.
Als Ergebnis gibt die Funktion eine Liste mit Spaltennamen aus der Tabelle zurück, die einige nützliche Informationen enthalten. Oder eine leere Liste, wenn nichts Brauchbares gefunden wird. Diese Methode wird in dem Artikel als nicht sehr aussagekräftig bezeichnet, aber sie erweist sich als durchaus geeignet, da sie den Müll sehr gut aussortiert. Außerdem wird die Ergebnisliste nach Relevanz sortiert, d. h. von eher nützlich bis weniger nützlich.
4) Wenn die Funktion eine leere Liste zurückgibt, führe ich den zweiten Schritt erneut aus, generiere erneut verschiedene mathematische Kombinationen aus den verfügbaren Daten und wähle dann den dritten Schritt zur Sichtung aus. Ich muss diesen Schritt 3-4 Mal wiederholen. Die Datenmenge wächst mit jeder Wiederholung, daher ist es besser, die Menge der neu erzeugten Daten irgendwie zu begrenzen. Wir können diese Funktion für die Sichtung so ändern, dass sie, wenn die Liste leer ist, die hundert oder zwei besten Ergebnisse zurückgibt und nur aus diesen neue Prädiktoren erzeugt.
5) Als Nächstes müssen wir laut dem Artikel das Hauptkomponentenmodell selbst trainieren. Ich habe Probleme damit - bis jetzt ist das beste r-Quadrat für das trainierte Modell 0,1, das ist nicht genug, der Artikel sagt, dass ich mindestens 0,95 brauche. Ich kann jedoch ein anderes R-Modell auf die erhaltenen Prädiktoren trainieren, das bessere Ergebnisse liefert. Ich habe die meiste Erfahrung mit Neuronics, das beste Ergebnis im Fronttest damit kommt mit einem Fehler von etwa 37% heraus. Das PCE-Modell soll stabiler sein, ohne Nachschulung usw., aber bisher habe ich noch keine Prädiktoren dafür gefunden.
Wenn Sie Fehler von 30% in Fronttest haben, dann ist es ein ziemlich profitables Modell, machen Expert Advisor für mt5 und überprüfen Sie es in Strategie-Tester.
Ein Kollege hat mir einen Link zu einem Kurs über maschinelles Lernen geschickt, möchten Sie ihn sich einmal ansehen? Es ist kostenlos, aber aus irgendeinem Grund in Python ((
https://www.udacity.com/course/machine-learning-for-trading--ud501