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

 
Mihail Marchukajtes:
Yuri, ich habe beschlossen, das Allerheiligste zu verwenden und einen Gral zu machen, aber ich habe eine Inschrift, die vorhergesagten Werte können nicht mehr als 10 sein. Ist dies eine absichtliche Einschränkung oder eine Begrenzung des Algorithmus ???? Weil mehr als 10 extrem relevant ist, so....

Nach 10 kann es zu einem Überlauf des Typs int kommen, und dieser hat nur 32 Bits, d.h. vor dem Überlauf kann er Zahlen enthalten, die den Wert 2^32=2147483648 nicht überschreiten. Es sind nur etwas mehr als zwei Milliarden. Natürlich können Sie auch Zähler mit höherer Ziffernkapazität einsetzen, aber die Berechnungsgeschwindigkeit wird dann um ein Vielfaches langsamer sein.

Aus diesem Grund konnte Dr.Trader die in R umgeschriebene libVMR nicht vollständig ausführen - zu viele Berechnungen und zu viel Speicherbedarf.

 
Yury Reshetov:

Nach 10 kann es zu einem Überlauf vom Typ int kommen, und dieser hat nur 32 Bits, d.h. er passt für Zahlen ohne Überlauf, die 2^32=2147483648 nicht überschreiten. Es sind nur etwas mehr als zwei Milliarden. Natürlich können Sie auch Zähler mit größerer Bittiefe schreiben, aber die Berechnungsgeschwindigkeit wird um ein Vielfaches langsamer sein.

HMM... Es ist besser, die Geschwindigkeit nicht zu reduzieren... In früheren Versionen war es eine echte Mühe. ok, 10 so 10, jetzt ist es besser, die Qualität der Eingaben zu erhöhen und ich denke, es ist möglich, zu arbeiten....
 
Yury Reshetov:

Nach 10 kann es zu einem Überlauf des Typs int kommen, und dieser hat nur 32 Bits, d.h. er enthält vor dem Überlauf Zahlen, die den Wert 2^32=2147483648 nicht überschreiten. Es sind nur etwas mehr als zwei Milliarden. Natürlich können Sie auch Zähler mit höherer Ziffernkapazität schreiben, aber die Geschwindigkeit der Berechnungen sinkt dann um ein Vielfaches.

Aus diesem Grund konnte Dr. Trader nicht die gesamte libVMR, die auf R umgeschrieben wurde, ausführen - zu viele Berechnungen und zu viel Speicherbedarf.

Ich möchte Ihnen eine Geschichte erzählen: Ich erinnere mich, dass ich Sie nach parallelen Berechnungen gefragt habe. Damit ich mehr Eingänge am mathematischen Koprozessor zählen kann. Es gab nur ein Arschloch, das LibVMRx in C++ umgeschrieben und irgendwie parallelisiert hat. Er hatte einen sehr leistungsstarken Computer und brauchte etwa 40 Minuten, um 8 Spalten zu verarbeiten, wie er sagte. Er hat mir nicht einmal das Programm oder irgendetwas anderes geschickt, sondern mich nur mit Ausreden und Schwachsinn geplagt. Obwohl ich ihm alle Daten zur Verfügung gestellt habe und bereit war, das System und die Überlegungen zum Aufbau des Modells mit ihm zu teilen. Aber er weigerte sich, mir zu helfen. Es gibt solche Menschen. Ein- und ausblasen ....
 
Mihail Marchukajtes:
Ich möchte Ihnen eine Geschichte erzählen - ich erinnere mich, dass ich Sie nach parallelen Berechnungen gefragt habe. Damit ich mehr Eingänge am mathematischen Koprozessor zählen kann. Ein einziges Arschloch kam daher, schrieb LibVMRx in C++ um und parallelisierte es irgendwie. Er hatte einen sehr leistungsstarken Computer und brauchte etwa 40 Minuten, um 8 Spalten zu verarbeiten, wie er sagte. Er hat mir nicht einmal das Programm oder irgendetwas anderes geschickt, sondern mich nur mit Ausreden und Schwachsinn geplagt. Obwohl ich ihm alle Daten zur Verfügung gestellt habe und bereit war, das System und die Überlegungen zum Aufbau des Modells mit ihm zu teilen. Aber er weigerte sich, mir zu helfen. Es gibt solche Menschen. Ein- und ausblasen ....

Ich habe alles in der neuesten Version 6.01 parallelisiert. Nichts anderes funktioniert. Wenn es möglich wäre, hätte ich noch einige Parallelen gezogen. Ich habe es für mich selbst getan, d.h. ich muss alles schneller berechnen können.


Jetzt habe ich einen Algorithmus entwickelt, um schwache Prädiktoren zu berechnen, damit sie entfernt werden können. Die Berechnung wird viel Zeit in Anspruch nehmen, aber es wird sich lohnen, denn statt eines schwachen Prädiktors können Sie ihn durch einen stärkeren ersetzen. Oder man beseitigt die schwachen Prädiktoren und erhöht damit sowohl die Berechnungsgeschwindigkeit als auch die Generalisierungsfähigkeit. Denn für den Handel muss man ständig eine Neuberechnung der Modelle durchführen, sobald der Markt zu schummeln beginnt. Und so ist der Markt: Sobald sich andere Händler zusammenschließen, ändern sie ihre Strategien, und man muss sich wieder neu darauf einstellen.

 
Yury Reshetov:

Ich habe alles in der neuesten Version 6.01 parallelisiert. Nichts anderes funktioniert. Wenn es möglich wäre, hätte ich noch einige Parallelen gezogen. Ich habe das für mich selbst gemacht, d.h. ich muss das alles selbst schneller berechnen.

Jetzt habe ich einen Algorithmus entwickelt, wie man schwache Prädiktoren berechnet, so dass sie entfernt werden können. Die Berechnung wird viel Zeit in Anspruch nehmen, aber sie wird sich lohnen, weil wir anstelle eines schwachen Prädiktors einen stärkeren ersetzen können. Oder man beseitigt die schwachen Prädiktoren und erhöht damit sowohl die Berechnungsgeschwindigkeit als auch die Generalisierungsfähigkeit. Denn für den Handel müssen Sie ständig eine Neuberechnung der Modelle durchführen, sobald der Markt zu schummeln beginnt. So ist der Markt: Sobald sich andere Händler zusammentun, ändern sie ihre Strategien, und man muss sich wieder neu darauf einstellen.

Sie liegen goldrichtig. Ich freue mich auf die Veränderungen. Ich bin auf derselben Seite wie Sie und denke auch, dass sich der Markt ständig verändert und man sich jedes Mal darauf einstellen muss, wenn etwas passiert oder neue Nachrichten herauskommen. Und nicht nach einem Gral in 5 Jahren zu suchen, wie es einige Leute hier tun. Das ist eine Utopie, aber ich bin schon ganz erschöpft davon, es zu erklären...
 
HMM... Sehen Sie, ich habe jetzt das Modell trainiert und beide Modelle haben die gleichen Werte für den Generalisierungsgrad, d.h. beide Modelle haben das gleiche Marktsegment gesägt. Ich denke, das ist der Schlüssel zur Wahl des richtigen Modells. Ich trainiere weiter, suche nach Inputs usw.
 
Übrigens gebe ich bei der Optimierung einen Kern frei, sonst wird es unmöglich, am Computer zu arbeiten....
 
Mihail Marchukajtes:
Das war's. Ich freue mich auf die Veränderungen.

Es ist möglich, die Prädiktoren manuell einen nach dem anderen durchzugehen, aber das ist langwierig und mühsam, wenngleich es auch der richtige Weg ist. Sie brauchen viel Zeit, aber es sollte automatisch und in angemessener Zeit geschehen und nicht so quälend sein.

Mihail Marchukajtes:


Wir sind auf der gleichen Seite des Zauns, ich glaube auch, dass der Markt sich ständig verändert und jedes Mal angepasst werden muss, wenn etwas passiert oder Neuigkeiten veröffentlicht werden. Suchen Sie nicht nach einem Gral in 5 Jahren, wie es manche Leute tun. Das ist eine Utopie, aber ich bin schon ganz erschöpft davon, es zu erklären...

Es ist möglich, schwache Langspielgräber zu finden. Ich hatte ein paar von ihnen. Aber mein Gewinn ist am Rande des Ruins, mein Gewinn ist penny-ish, auch wenn ich eine gute Einzahlung haben.

Theoretisch ist es möglich, einen starken, lange spielenden Gral zu finden, aber die Wahrscheinlichkeit ist wahrscheinlich Nullkommanull?

Das ist der sicherste Weg:

  1. Richtige Auswahl der stärksten Prädiktoren
  2. Kurzfristige Modelle mit systematischen Anpassungen an Marktveränderungen. Aber es ist besser, all diese Dinge vollautomatisch zu erledigen oder zumindest manuelle Eingriffe auf ein Minimum zu beschränken.
 
Mihail Marchukajtes:
HM... Schauen Sie, jetzt habe ich das Modell trainiert, beide Modelle haben die gleichen Werte für den Generalisierungsgrad, d.h. das Marktsegment wird von beiden Modellen auf die gleiche Weise zerlegt. Ich denke, das ist der Schlüssel zur Wahl des richtigen Modells. Ich trainiere weiter, suche nach Inputs usw.

Schauen Sie in der Java-Datei nach. Wenn es Linien "Variable unter Reduktion" gibt, weisen sie auf schwache Prädiktoren hin. Solche Prädiktoren sind aus dem Modellcode ausgeschlossen - sie werden nirgendwo im Code des binären Klassifikators berechnet.

Es stimmt, wenn alle Prädiktoren ungefähr gleich sind, erscheinen solche Linien nicht.

Hier ist ein Beispiel (fett hervorgehoben). Der sechste Prädiktor v5 (von Null an gezählt) - die siebte Spalte im CSV kann durch einen anderen, stärkeren Prädiktor ersetzt werden:

double getBinaryClassificator1(double v0, double v1, double v2, double v3, double v4, double v5) {
   double x0 = 2.0 * (v0 + 1.0) / 2.0 - 1.0;
   double x1 = 2.0 * (v1 + 1.0) / 2.0 - 1.0;
   double x2 = 2.0 * (v2 + 1.0) / 2.0 - 1.0;
   double x3 = 2.0 * (v3 + 1.0) / 2.0 - 1.0;
   double x4 = 2.0 * (v4 + 1.0) / 2.0 - 1.0;
//Variable v5 got under reduction
   double decision = -0.23641879194630872 -0.10890380313199105 * x2
 -0.14546040268456376 * x0 * x2
 + 0.07270693512304251 * x1 * x2
 -0.07182997762863534 * x3
 -0.07383982102908278 * x0 * x1 * x2 * x3
 -0.4362541387024608 * x4
   ;
   return decision;

}
 
Yury Reshetov:

Schauen Sie in der Java-Datei nach. Wenn es Linien "Variable unter Reduktion" gibt, weisen sie auf schwache Prädiktoren hin. Solche Prädiktoren sind aus dem Modellcode ausgeschlossen - sie werden nirgendwo im Code des binären Klassifikators berechnet.

Es stimmt, wenn alle Prädiktoren ungefähr gleich sind, erscheinen solche Linien nicht.

Hier ist ein Beispiel (fett hervorgehoben). Der sechste Prädiktor v5 (von Null an gezählt) - die siebte Spalte in der CSV kann durch einen anderen, stärkeren Prädiktor ersetzt werden:

double getBinaryClassificator1(double v0, double v1, double v2, double v3, double v4, double v5) {
double x0 = 2,0 * (v0 + 1,0) / 2,0 - 1,0;
double x1 = 2,0 * (v1 + 1,0) / 2,0 - 1,0;
double x2 = 2,0 * (v2 + 1,0) / 2,0 - 1,0;
double x3 = 2,0 * (v3 + 1,0) / 2,0 - 1,0;
double x4 = 2,0 * (v4 + 1,0) / 2,0 - 1,0;
//Variable v5 wurde unter Reduzierung
double decision = -0.23641879194630872 -0.10890380313199105 * x2
-0,14546040268456376 * x0 * x2
+ 0,07270693512304251 * x1 * x2
-0.07182997762863534 * x3
-0,07383982102908278 * x0 * x1 * x2 * x3
-0.4362541387024608 * x4
;
Rückkehrentscheidung;

}

Ich weiß, ich benutze Ihre Bibliothek schon seit einem Jahr. Solche Dinge sind für mich klar..... Ich habe keine solchen Zeichenfolgen, alle Prädikate sind beteiligt.....