Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 9

 
Dr. Trader:

Eine kleine Ergänzung zum vorherigen Beitrag. Nein, es gibt keine Deltas. Ich werde es ausprobieren müssen.

Wie auch immer, ich habe versucht, eine Korrelation zu Ihren Daten herzustellen. Eher nein als ja. Ich habe zufällig etwas auf der Hälfte der zufällig gemachten Beobachtungen im Zug gefunden. Ich habe die andere Hälfte überprüft, und die gleiche Abhängigkeit ist nicht vorhanden. Es stellt sich heraus, dass sie entweder überhaupt nicht vorhanden ist oder die Daten so aufgebaut sind, dass keine guten Abhängigkeiten gefunden werden können.

Lassen Sie es mich trotzdem noch einmal versuchen. Ich werde mein Feedback geben.

Alexej

 

Ich vermute, dass in diesen Daten etwas fehlt. Es ist wie bei Ihrer Aufgabe im ersten Beitrag - wenn Sie auch nur einen dieser 6 Einträge aus der Stichprobe entfernen, wird das Ergebnis unvorhersehbar. Der Forex hängt eindeutig von seinem eigenen vergangenen Preis, der Tageszeit usw. ab. Und genau dieses "itd" fehlt in meinen Daten, und deshalb können die Modelle einfach keine Regelmäßigkeiten finden und die Logik nicht adäquat beschreiben. Les kann offensichtlich nicht verschiedene Kombinationen ausprobieren, wie z. B. "hoch von niedrig subtrahieren", und während der Optimierung die beste davon nehmen. Solche Dinge müssen der Probe selbst hinzugefügt werden. Ich bin gerade dabei, mein Skript zu überarbeiten, das Forex-Daten in csv speichert, und füge dort eine Menge Deltas hinzu, sowie Abstände zu vergangenen Zickzack-Spitzen, entsprechend den Hinweisen. Ich werde später eine neue Datendatei zum Experimentieren veröffentlichen.

 
SanSanych Fomenko:

In der Anlage finden Sie eine Reihe von Artikeln, die angeblich das Problem lösen, den ursprünglichen Satz von Prädiktoren vom Rauschen zu befreien, und zwar mit wesentlich höherer Qualität. Leider habe ich im Moment keine Zeit, es auszuprobieren. Vielleicht probiert es jemand aus und veröffentlicht das Ergebnis?

Ich konnte den beschriebenen Vorgang wiederholen. Den Ergebnissen zufolge beschreibt mein Satz von Prädiktoren das Ergebnis mit einer Wahrscheinlichkeit von 0,1 %, oder so ähnlich... Es gibt viele Theorien, die mein Wissen übersteigen, ich habe nicht alles verstanden.

Ich habe 3 Dateien hinzugefügt. Sie können dort einfach den Pfad zur csv-Datei ändern und sie ausführen. Das gewünschte Ergebnis sollte in der letzten Spalte der csv-Datei stehen, alles andere sind Prädiktoren. Normalisieren Sie nichts im Voraus, geben Sie die Daten so ein, wie sie sind.

1) Hauptkomponenten-Regression 01. Einige Code aus einleitenden Teil des Artikels, es scheint mir, es ist etwas fehlt, weil ich Fehler beim Ausführen des Codes haben. Es sollte jeder Eingabe eine Punktzahl geben, und ein Diagramm zeichnen, hier verstehe ich leider nicht, was zu was und wie man es anwenden kann.

2) Regression mit Hauptkomponenten 03. Regression mit Hauptkomponenten, Teil 2: Y-bewusste Methoden. Ich habe den ersten Teil übersprungen, weil der Artikel sagt, dass der erste Teil ein anderer, schwächerer Algorithmus ist.
Der Code ist in zwei Teile unterteilt, die nacheinander ausgeführt werden müssen, um das in R gezeichnete Diagramm nach jedem Teil zu betrachten.

Der erste Durchlauf - Sie müssen alles aus der Datei kopieren und bis zum Beginn des zweiten Schritts ausführen (der Beginn des zweiten Schritts ist in fetten Buchstaben hervorgehoben, STEP 2). In der R-Konsole wird eine Tabelle angezeigt, in der der Wert der Eingabe umso niedriger ist, je besser sie ist. Wert = 1 = Unsinn. Außerdem ist die Grafik umso schlechter, je länger die Linie ist, ähnlich wie bei der Tabelle.

Als nächstes müssen wir den Code aus Schritt zwei ausführen. Am Ende wird ein Diagramm erstellt, das umso zuverlässiger ist, je länger die Linie im Verhältnis zur Eingabe ist (in Schritt 1 war es umgekehrt). Im Code gibt es auch eine BeispielPruneSig-Variable, die für die Sortierung der Eingänge nach dem psig-Wert aus der Tabelle in Schritt 1 verantwortlich ist. Sie können den Variablenwert =1 setzen, wenn Sie den transformierten Wert der Plausibilität aller Eingaben sehen wollen. Denn es ist möglich, dass eine Eingabe im ersten Schritt schlecht bewertet wurde, im zweiten Schritt aber besser wird. Es wird empfohlen, entweder einen Schwellenwert oder examplePruneSig = 1/number of_inputs zu nehmen, aber es gibt keine genauen Anweisungen.

Der dritte Schritt ist die Hauptkomponentenanalyse (prcomp) selbst. Das ist wieder etwas Neues für mich, aber der Punkt ist, dass diese Funktion versucht, viele "Hauptkomponenten" (PC) auszugeben (so etwas wie interne Variablen, von denen das gewünschte Ergebnis abhängt). Jede dieser internen Variablen beruht auf einem anderen Satz von Eingabedaten. Dann geht es darum, die minimale Menge solcher PCs zu finden, die das Ergebnis zuverlässig bestimmen können. Die sich daraus ergebende Stichprobe von Prädiktoren ist ihrerseits die Prädiktoren derjenigen PCs, die in diese minimale Menge fallen.
Der Artikel selbst löst dieses Problem nicht, er nimmt nur die ersten beiden PCs und prüft, ob sie erfolgreich sind oder nicht. Aber vielleicht habe ich etwas übersehen. Wenn Sie prcomp verstehen, sollten Sie es selbst lesen.
Am Ende des Schritts wird jedoch ein Diagramm mit den ersten 5 PCs und den von ihnen verwendeten Eingängen erstellt. Je länger die Linie im Diagramm ist, desto wichtiger ist die Eingabe.

Vierter, fünfter und sechster Schritt - Bewertung der Ergebnisse anhand von Trainings- und Testdaten.


3) Regression mit Hauptkomponenten 04. Eine Funktion aus einem anderen Paket, die das Gleiche tut wie in Principal Components Regression 03. Ein Vorteil ist jedoch, dass die PC aussortiert werden und eine minimale Anzahl von PC übrig bleibt, die das Ergebnis mit 95 % Genauigkeit beschreiben können.
Aber es gibt keine angemessenen Beispiele und Grafiken, ich schätze, man muss etwas aus der Principal Components Regression 03 verwenden.


tl;dr:

1) Herausfiltern verrauschter Werte. Wir nehmen die Datei "Principal Components Regression 03" und führen nur den Code bis zum zweiten Schritt aus (ohne den zweiten Schritt). R enthält eine Tabelle, in der nur die Eingaben berücksichtigt werden, deren psig-Wert unter dem Schwellenwert liegt. Ein Wert von "1" ist Rauschen und Zufall. "0" ist gut. Ein Schwellenwert von (1/Anzahl der Eingänge) ist unsicher. Diese Methode bietet keine Garantie, dass die Eingaben korrekt abgetastet werden, sondern entfernt einfach die wirklich zufälligen und verrauschten Werte.

2) Ein komplexerer Ansatz. Ein ausgeklügelter Algorithmus erstellt einige Hauptkomponenten, die zur Berechnung des Ergebnisses verwendet werden können. PC ist eine Art Funktion, die einen inneren Prozess beschreibt, der in dem zu modellierenden Modell abläuft. Und das Ergebnis des Modells selbst ist eine Reihe von interagierenden PCs. Als Nächstes nehmen wir eine Mindestmenge von PC's, die das Ergebnis mit hoher Genauigkeit beschreiben, und betrachten die für diese PC's verwendeten Eingaben. Die Datei "Principal Components Regression 04" ermöglicht es uns, den minimalen Satz solcher PCs zu erhalten, aber es ist nicht klar, was wir damit weiter tun sollen, wir müssen die verwendeten Prädiktoren herausziehen.

Hier noch einmal der Artikel selbst und der dazugehörige Code.

http://www.r-bloggers.com/principal-components-regression-pt-2-y-aware-methods/

https://github.com/WinVector/Examples/blob/master/PCR/YAwarePCA.Rmd


Principal Components Regression, Pt. 2: Y-Aware Methods | R-bloggers
Principal Components Regression, Pt. 2: Y-Aware Methods | R-bloggers
  • Nina Zumel
  • www.r-bloggers.com
In our previous note, we discussed some problems that can arise when using standard principal components analysis (specifically, principal components regression) to model the relationship between independent (x) and dependent (y) variables. In this note, we present some dimensionality reduction techniques that alleviate some of those problems...
 
Dr. Trader:

Ich vermute, dass in diesen Daten etwas fehlt. Es ist wie bei Ihrer Aufgabe im ersten Beitrag - wenn Sie auch nur einen dieser 6 Einträge aus der Stichprobe entfernen, wird das Ergebnis unvorhersehbar. Der Forex hängt eindeutig von seinem eigenen vergangenen Preis, der Tageszeit usw. ab. Und genau dieses "itd" fehlt in meinen Daten, und deshalb können die Modelle einfach keine Regelmäßigkeiten finden und die Logik nicht adäquat beschreiben. Les kann offensichtlich nicht verschiedene Kombinationen ausprobieren, wie z. B. "hoch von niedrig subtrahieren", und während der Optimierung die beste davon nehmen. Solche Dinge müssen der Probe selbst hinzugefügt werden. Ich bin gerade dabei, mein Skript zu überarbeiten, das Forex-Daten in csv speichert, und füge dort eine Menge Deltas hinzu, sowie Abstände zu vergangenen Zickzack-Spitzen, entsprechend den Hinweisen. Ich werde später eine neue Datendatei für Experimente veröffentlichen.

Ich habe weiter gesucht. Und führte eine Validierungsprüfung durch. Die festgestellte Abhängigkeit wurde jedoch nicht bestätigt. Alles in allem bin ich der Meinung, dass die Daten nicht genügend Informationen enthalten. Versuchen Sie, die Liste der Eingaben zu erweitern, ja.

Und hier sind meine Forex-Daten: https://drive.google.com/drive/folders/0B_Au3ANgcG7CYnhVNWxvbmFjd3c

dat_train_final ist eine Datei für das Modelltraining. Es enthält die Historie für 5 Währungspaare über 10 Jahre und alle meine Prognosen.

Many_samples - Ich muss in R laden. Es handelt sich um eine Liste - jedes Element enthält eine Validierungsprobe, und es gibt insgesamt 49 davon. Jede oder jeder von ihnen kann validiert werden.

Meet Google Drive – One place for all your files
  • accounts.google.com
Google Drive is a free way to keep your files backed up and easy to reach from any phone, tablet, or computer. Start with 15GB of Google storage – free.
 

Ich kann Ihre Dateien nicht sehen, der Link ist nur ein leerer Ordner.

Wie auch immer, hier ist meine neue Datei für die Ausbildung Modell auf eurusd (h1, 5 Bars, Ziel ist Anstieg/Abnahme der Preis für die nächste Bar). Ich habe sie nach dem oben erwähnten Artikel principal-components-regression-pt-2-y-aware-methods analysiert und es stellte sich heraus, dass die Daten weniger als 1% der Ergebnisse zuverlässig beschreiben.
(RData von SanSanych hat diese Zahl mehr als 10% für Rat_DF1), also sieht es so aus, als ob ich wieder Unsinn gemacht habe. Es ist unwahrscheinlich, ein Modell auf dieser Datei zu trainieren, es ist besser geeignet, wenn man trainieren will, um Prädiktoren auszusieben.

Das Archiv enthält 2 Dateien. Die Bedingung ist, das Modell in der ersten Datei zu trainieren (es ist bequemer, es in mehrere Teile für Test und Validierung aufzuteilen, standardmäßig teilt Rattle es in 75%/15%/15% auf) und dann, wenn die Eingaben ausgewählt sind und das Modell trainiert ist, einen physischen Test mit der zweiten Datei durchzuführen. Wenn der Fehler weniger als 45% beträgt, haben Sie eine Chance, mit einem solchen Modell im Forex zu handeln. Sie werden vielleicht keinen Gewinn erzielen, aber Sie können von den Brokern Boni für die Anzahl der Geschäfte und Rabatte erhalten. Wenn der Klassifizierungsfehler bei der zweiten Datei weniger als 40 % beträgt, ist dies bereits eine rentable Strategie.

Dateien:
 
Dr. Trader:

2) Regression mit Hauptkomponenten, Teil 2: Y-bewusste Methoden. Ich habe den ersten Teil weggelassen, weil der Artikel sagt, dass der erste Teil ein anderer, schwächerer Algorithmus ist.

Wie mir scheint, kann ich mich irren, aber die Unsicherheit Ihres Ergebnisses ist darauf zurückzuführen, dass Sie das Wesen der Hauptkomponentenmethode nicht verstehen. Und das Wesentliche ist folgendes.

Erstellen Sie aus den vorhandenen Prädiktoren neue Prädiktoren, die einige neue nützliche Eigenschaften aufweisen.

Das Ergebnis wird in einer Tabelle dargestellt, mit PC1, PC2... in der Kopfzeile, die Namen der Tabellenzeilen sind die Namen Ihrer Prädiktoren und in den Spalten unter jedem PC stehen Zahlen - die Koeffizienten, mit denen Sie Ihren ursprünglichen Prädiktor multiplizieren müssen, um den Wert von PC zu bilden. D.h.: für einen bestimmten Balken nehmen wir die Werte der anfänglichen Prädiktoren, multiplizieren sie mit den Koeffizienten und erhalten den PC-Wert, dann den nächsten Balken und so weiter. Als Ergebnis erhalten wir neben den ursprünglichen Vektoren, zum Beispiel Ask, einen weiteren Vektor

Alle PCs in der Tabelle sind geordnet. Das erste ist das MS, das die Variabilität im ursprünglichen Satz am besten erklärt, das zweite ist das MS, das die Variabilität von dem, was vom ersten MS übrig ist, am besten erklärt. Zum Beispiel: PC1 = 0,6, PC2 = 0,2, dann erklären PC1+PC2 insgesamt 0,8 der Variabilität. Bei großen Mengen von Prädiktoren reichen in der Regel 5-6 dieser "Hauptkomponenten" aus, um über 95 % der Variabilität zu erklären. Dies ist der Fall, wenn die meisten Prädiktoren Rauschen sind und es echte "Hauptkomponenten" unter ihnen gibt!

Ich habe die klassischen "Hauptkomponenten" beschrieben. Der Artikel ist für uns interessant, weil er im Gegensatz zum klassischen Artikel die Variabilität in Bezug auf die Zielvariable berechnet. Schwellenwerte hingegen werden benötigt, um aus einer völlig aussichtslosen Menge von Prädiktoren etwas herauszufiltern. Dies scheint mir für uns nicht relevant zu sein. Dies ist zum Beispiel für Statistiken in der Soziologie von Bedeutung, wo es sehr schwierig ist, zusätzliche Daten zu erheben. In unserem Fall kann sogar ein einziges Währungspaar verwendet werden, um eine enorme Anzahl von Prädiktoren zu erstellen.

Vielleicht könnten Sie einen weiteren Versuch (Hit) zu diesen grundlegenden Komponenten unternehmen?

PS.

1. Wir dürfen nicht vergessen, dass die Hauptkomponenten eine vorherige Normalisierung der Rohdaten erfordern

2. Die resultierenden Hauptkomponenten haben die bemerkenswerte Eigenschaft, dass sie voneinander unabhängig sind.

3. Die Hauptkomponenten können vorhergesagt werden.

 

Ich verstehe jetzt, danke für die Aufklärung. Ich habe von diesem Modell erst durch den Artikel erfahren. Ich dachte, dass PC1 und PC2,3,4,... verschiedenen Gruppen von Prädiktoren und nicht Koeffizienten entsprechen. Ich habe die Tabelle mit den Koeffizienten gesehen, jetzt habe ich schnell herausgefunden, wo ich was bekomme.

Der Code aus PrincipalComponentRegression04.txt scheint zu kompliziert zu sein. Außerdem scheint es keine Definition der Variabilität in Bezug auf dieZielvariable zu geben. Ich habe mir die Datei PrincipalComponentRegression03.txt aus dem Archiv angesehen, das ich heute Morgen angehängt habe.

Sie müssen die ersten 5 Schritte ausführen.

Nächste,

> model$coefficients

(Schnittpunkt) PC1 PC2

0.02075519 0.40407635 -0.42250678

Das Ergebnis der Ausführung sollte sein: intercept + coef1 * PC1 + coef2 * PC2 + ... + verbleibender PC, falls vorhanden

Die Werte von PC1, PC2. :

> proj

> proj

PC1 PC2

X_clean 0,00516309881 0,00477076325

X1_clean 0.00142866076 0.00149863842

X2_clean -0,00008292268 0,00001010802

.....

PC1 = X_clean * 0.00516309881 + X1_clean*0.00142866076 +.

Es ist mir nun ein Rätsel, ob das Postfix "clean" ein Verweis auf den ursprünglichen Wert der Eingänge X, X1, X2,... ist. vor Normalisierungen und Transformationen, oder nicht.

Später werde ich ein einfacheres Beispiel nehmen und alle Werte manuell berechnen, um zu vergleichen, ob ich die Formeln richtig verstanden habe oder nicht. Nur eine Vermutung im Moment )

Es stellt sich jedoch heraus, dass diese Methode nicht dazu gedacht ist, Prädiktoren auszusortieren, sondern vielmehr ein Modell zu trainieren, das selbst die maximale Anzahl von Prädiktoren ignoriert. Alles, was wir tun können, ist, den durchschnittlichen Koeffizienten für jeden Prädiktor zu berechnen und etwas unterhalb des Schwellenwerts auszuschließen.
Dieses Modell selbst ist neuroncu sehr ähnlich, jedoch ohne Aktivierungsfunktion und ohne Verschiebungen auf den Neuronen der inneren Schicht. Aber die Essenz ist dieselbe.

Ein weiteres Problem: Wie viele PC-Komponenten sollen mitgenommen werden? Wenn ich weniger als 95 % Konfidenz erhalte, muss ich zu Schritt 3 zurückkehren und proj <-extractProjection(2,princ) von zwei auf drei ändern, dann die Schritte 3,4,5 durchführen, den Fehler berechnen und, wenn er weniger als 95 % beträgt, zu Schritt 3 zurückkehren und die Anzahl der Komponenten erneut erhöhen.

Hätten wir direkten Zugriff auf R im MT5, hätten wir ein fertiges Modell, mit dem wir handeln könnten. Ich gehe davon aus, dass dieses Modell nicht unter dem Problem der Umschulung leidet, und wenn ja, ist es sehr gut. D.h. die 10%ige Konfidenzgrenze ist erreicht und das ist gut so.

Bei dem Modell ist fast alles klar. Es wäre sehr gut, es in MT5 zu implementieren, um nur die Logik der Entscheidungsfindung durch Koeffizienten zu implementieren. Es ist nicht klar, wie man R mit MT5 verbindet. Ich kann alle Daten aus mt5 in eine csv-Datei exportieren und sie dann in R verarbeiten, das Modell trainieren und die Koeffizienten in eine andere csv-Datei schreiben. CSV mit aus Expert Advisor gelesenen Koeffizienten. Und weiter wird es sehr schlecht sein, weil R viele Funktionen hat, die Daten normalisieren, bevor sie PC aus ihnen berechnen. Diesen Code für die Normalisierung im MT5 zu wiederholen, ist kaum möglich. Wir müssen nachdenken.

 
Dr. Trader:

Ich verstehe jetzt, danke für die Aufklärung. Ich habe von diesem Modell erst durch den Artikel erfahren. Ich dachte, dass PC1 und PC2,3,4,... verschiedenen Gruppen von Prädiktoren und nicht Koeffizienten entsprechen. Ich habe die Tabelle mit den Koeffizienten gesehen, jetzt habe ich schnell herausgefunden, wo ich was bekomme.

Der Code aus PrincipalComponentRegression04.txt scheint zu kompliziert zu sein. Außerdem scheint es keine Definition der Variabilität in Bezug auf dieZielvariable zu geben. Ich habe mir die Datei PrincipalComponentRegression03.txt aus dem Archiv angesehen, das ich heute Morgen angehängt habe.

Sie müssen die ersten 5 Schritte durchführen.

Nächste,

(Schnittpunkt) PC1 PC2

0.02075519 0.40407635 -0.42250678

Das Ergebnis der Ausführung sollte sein: intercept + coef1 * PC1 + coef2 * PC2 + ... + verbleibender PC, falls vorhanden

Die Werte von PC1, PC2. :

> proj

PC1 PC2

X_clean 0,00516309881 0,00477076325

X1_clean 0.00142866076 0.00149863842

X2_clean -0,00008292268 0,00001010802

.....

PC1 = X_clean * 0.00516309881 + X1_clean*0.00142866076 +.

Es ist mir nun ein Rätsel, ob das Postfix "clean" ein Verweis auf den ursprünglichen Wert der Eingänge X, X1, X2,... ist. vor Normalisierungen und Transformationen, oder nicht.

Später werde ich ein einfacheres Beispiel nehmen und alle Werte manuell berechnen, um zu vergleichen, ob ich die Formeln richtig verstanden habe oder nicht. Nur eine Vermutung im Moment )

Doch dann stellt sich heraus, dass diese Methode nicht dazu gedacht ist, Prädiktoren herauszufiltern, sondern vielmehr ein Modell zu trainieren, das die maximale Anzahl von Prädiktoren ignoriert. Alles, was wir tun können, ist, den durchschnittlichen Koeffizienten für jeden Prädiktor zu berechnen und alles auszuschließen, was unter dem Schwellenwert liegt.
Dieses Modell selbst ist neuroncu sehr ähnlich, jedoch ohne Aktivierungsfunktion und ohne Verschiebungen auf den Neuronen der inneren Schicht. Aber die Essenz ist dieselbe.

Ein weiteres Problem: Wie viele PC-Komponenten sollen mitgenommen werden? Wenn ich weniger als 95 % Konfidenz erhalte, muss ich zu Schritt 3 zurückkehren und proj <-extractProjection(2,princ) von zwei auf drei ändern, dann die Schritte 3,4,5 durchführen, den Fehler berechnen und, wenn er weniger als 95 % beträgt, zu Schritt 3 zurückkehren und die Anzahl der Komponenten erneut erhöhen.

Hätten wir direkten Zugriff auf R im MT5, hätten wir ein fertiges Modell, mit dem wir handeln könnten. Ich gehe davon aus, dass dieses Modell nicht unter dem Problem der Umschulung leidet, und wenn ja, ist es sehr gut. D.h. die 10%ige Konfidenzgrenze ist erreicht und das ist gut so.

Bei dem Modell ist fast alles klar. Es wäre sehr gut, es in MT5 zu implementieren, um nur die Logik der Entscheidungsfindung durch Koeffizienten zu implementieren. Es ist nicht klar, wie man R mit MT5 verbindet. Ich kann alle Daten aus mt5 in eine csv-Datei exportieren und sie dann in R verarbeiten, das Modell trainieren und die Koeffizienten in eine andere csv-Datei schreiben. CSV mit aus Expert Advisor gelesenen Koeffizienten. Und weiter wird es sehr schlecht sein, weil R viele Funktionen hat, die Daten normalisieren, bevor sie PC aus ihnen berechnen. Diesen Code für die Normalisierung im MT5 zu wiederholen, ist kaum möglich. Wir müssen nachdenken.

Soweit ich sehe, ist Principal Components Regression, Pt. 2: Y-Aware Methods

Aus der oberflächlichen Sicht des Textes verstehe ich, dass die Würze darin besteht, dass die Skalierung auf der Zielfunktion basiert. Bei der herkömmlichen PCA wird die Zielfunktion überhaupt nicht berücksichtigt. Aus diesem Grund sind die ersten Komponenten vermutlich die wichtigsten Komponenten zur Erklärung der Zielfunktion und nicht zur Erklärung der Variabilität der gesamten Prädiktorengruppe!


Ein weiteres Problem ist die Frage, wie viele PC-Komponenten man nehmen soll

Das ist der Grund für die ganze Aufregung. Intuitiv gibt es keine Schwellenwerte. Wenn die ersten 5 Komponenten nicht mehr als 95 % der Variabilität erklären, sollten wir nach einem neuen Satz von Prädiktoren suchen. Ich kann mich aber auch irren.

Bei dem Modell ist fast alles klar. Es wäre sehr gut, dies in MT5 zu implementieren.

In MT4 funktioniert alles einwandfrei. Es gibt eine Pascal-Bibliothek mit Quellcode. Ich habe es nicht selbst ausprobiert, aber wenn MT4 in der Lage ist, die Bibliothek auf Pascal anzusprechen, dann sollte MT5 es auch können.

Der Appell an R sieht folgendermaßen aus.

1. onInit stellt die Verbindung mit R her. Wenn spezielle vorbereitete Daten vorhanden sind, wird der Arbeitsbereich geladen. Außerdem wird der in einer oder mehreren Funktionen angeordnete Code in R geladen. Die Anzahl der Zeichenketten in jeder Funktion ist natürlich willkürlich und wird durch die Logik bestimmt.

2. Der Hauptteil des Expert Advisors oder des Indikators ruft diese Funktionen auf.

Wenn wir bedenken, dass R die reichhaltigsten Grafiken hat, die nicht an das Terminalfenster gebunden sind, haben wir große Möglichkeiten, Daten parallel zum Terminal zu visualisieren.

 
SanSanych Fomenko:
Hier lese ich, lesen.... und kann nicht verstehen, was die Zielvariable aus formaler Sicht zuerst ist: eine reelle Zahl (Regression) oder ein Nominalwert (Klassifizierung). Wenn es um die Frage geht, inwieweit die Prädiktoren die Zielvariable beeinflussen, ist es außerdem sinnvoll, die inhaltliche Bedeutung eben dieser Zielvariable zu kennen.

Paradoxerweise ist die Klassifizierung dasselbe wie die Regression.

Nur bei der Regression ist die Ausgabe real, während sie bei der Klassifikation eine Wahrscheinlichkeit ist.

Und das Ziel für die Regression ist eine kontinuierliche Kurve, während es für die Klassifizierung Impulse (0, 1) oder (-1,+1) sind.

Diese Ausgabe wird dann in die entsprechende Klasse übersetzt (ifelse(y > 0,5, 1, 0).

 
Dr. Trader:

Ich kann Ihre Dateien nicht sehen, der Link zeigt nur einen leeren Ordner.


Das ist Ausbildung: https://drive.google.com/file/d/0B_Au3ANgcG7CN2tTUHBkdEdpVEU/view?usp=sharing

Dies ist die Validierung: https: //drive.google.com/file/d/0B_Au3ANgcG7CZmFWclFOd0RqNFk/view?usp=sharing

die Validierung sollte wie folgt gehandhabt werden load(validation_file)

jedes Listenelement enthält eine einzigartige Validierungsstichprobe mit unabhängigen Beobachtungen. Es gibt fast keine Überschneidungen zwischen den Validierungsstichproben, da die Beobachtungen in ihnen zu zufälligen Zeitpunkten gemacht werden. Jede Validierungsstichprobe kann als eine Punktschätzung des Handels behandelt werden.

Dies geschieht, um nicht zu simulieren, dass der Handel in jeder Minute stattfindet. Die Abschlüsse werden etwa alle 12 Stunden modelliert.