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

 
Aleksey Vyazmikin:

Was ist der Input für das Clustering - alle Stichprobenprädiktoren oder was?

Nun, ja... aber wir können auch experimentieren.

 
Aleksey Nikolayev:

Ich werde die Idee zu einem logischen Schluss bringen. Nehmen wir an, wir haben eine Reihe von Systemen auf demselben Asset. Jedes System hält auf dem Markt eine Position mit festem Volumen, aber die Richtung kann sich ändern. Die Renditen und Volatilitäten der Strategien sind bekannt. Definieren wir die Korrelation zwischen den Strategien mit Hilfe der Formel (t1-t2)/sqrt(T1*T2), wobei T1 und T2 die Dauer ihrer Verweildauer auf dem Markt, t1 und t2 die Dauer der gleichzeitigen Verweildauer dieser Strategien auf dem Markt und ihre Ausrichtung in die gleiche bzw. entgegengesetzte Richtung sind. Dies ist eine vereinfachte Formel, die unter der Annahme der Preisnähe zum SB abgeleitet wurde. Jetzt sind alle Daten vorhanden, um die Markowitz-Theorie anzuwenden und das optimale Portfolio zu finden.

Natürlich erhalten wir auf diese Weise keine aussagekräftigen Portfolios (zumindest, weil nur ein Vermögenswert verwendet wird). Wir brauchen einige Änderungen.

1) Ändern Sie den Optimierungsalgorithmus (Parametergrenzen, Strafen). Klärung der Definition der Korrelation zwischen den Strategien.

2) Optimieren Sie das Portfolio bereits zum Zeitpunkt der Strategieerstellung. Das heißt, Sie suchen nach Strategien, die auf der Bedingung der Portfolio-Optimalität basieren. Es ist nicht ganz klar, wie dies in einer praktisch anwendbaren Weise formalisiert werden kann, aber der Ansatz scheint im Allgemeinen logischer zu sein. Allerdings müssten, wie Sie bereits geschrieben haben, die Algorithmen umgeschrieben werden, usw. usw. Ich weiß nicht, ob es die Mühe wert ist.

Es stimmt alles, was Sie sagen. Aber ich würde nicht nur die Markteintrittszeit berücksichtigen - wir brauchen ein gewisses Maß an Performance während dieses Zeitraums, denn es reicht nicht aus, in den Markt einzusteigen, sondern wir müssen auch rechtzeitig aussteigen, und hier werden zwei ähnliche Strategien, aber eine mit festem Take und eine ohne Take, eine hohe zeitliche Korrelation, aber unterschiedliche finanzielle Ergebnisse liefern. Zwei ähnliche Strategien können nützlich sein, z.B. wird eine von ihnen in flachen Bedingungen Gewinn bringen und die andere wird in Trendbedingungen mehr Gewinn bringen, die zusammen die Gleichgewichtskurve glätten werden.

Wenn es nicht zu viele Strategien gibt, ist ihre direkte Suche und gemeinsame Schätzung möglich.

 
mytarmailS:

Ich denke schon... aber wir können auch experimentieren.

Und welchen Algorithmus sollte ich wählen, um ein akzeptables Ergebnis ohne Randomisierung und mit einer vernünftigen Rechenzeit zu erhalten? Ich bin nicht sehr gut im Clustern.

 
Aleksey Vyazmikin:

Ich habe CatBoost studiert, also werde ich darüber sprechen.

Für die Tiefe des Baumes werden 4-6 Spaltungen empfohlen. Das ist die Tiefe, die ich im Allgemeinen versuche.

Für die Aufteilung der Prädiktoren stehen drei verschiedene Algorithmen zur Auswahl. Es wird ein so genanntes Raster erstellt.

Die Ergebnisse der Aufteilung sind interessant, wenn man sie herauszieht und sich selbst ein Bild davon macht. Wie teilt AlgLib die Prädiktoren bei der Erstellung des Baums für den Wald gleichmäßig auf?

AlgLib teilt das eingehende Stück durch den Median (Korrektur - nicht durch die Mitte, sondern durch den Median. ). Wenn z. B. 100 Beispiele eingegangen sind, werden die Werte sortiert und durch den Wert des 50sten Beispiels dividiert. Der Code enthält eine Quantiloption, die jedoch nicht verwendet wird.

Ich habe mich daran erinnert, dass XGBoost eine Variante der Zufallsdivision hat. Das scheint auch bei Catbust der Fall zu sein.

Generell ist es seltsam, dass sie so flache Bäume empfehlen.
Wie ich bereits geschrieben habe, ist es bei einem so flachen Baum unwahrscheinlich, dass ein Sektor mit 20 bis 30 % des Wertes ausgewählt wird. Bestenfalls 1 oder 2 Mal wird durch Mediane oder durch zufällige Werte in Boosts geteilt.
Wäre die Tiefe 100, könnte sie durchaus einen Sektor von 20-30 % erreichen.

Ich nehme an, dass dies in Boosts durch eine große Anzahl von Verfeinerungsbäumen kompensiert wird, die andere Prädiktoren verwenden können, die nicht im Hauptbaum verwendet wurden, aber auch sie werden nur 1-2 Mal getrennt sein.

 
Aleksey Vyazmikin:

Und welchen Algorithmus sollte ich wählen, um ein akzeptables Ergebnis ohne Zufälligkeiten und mit einer vernünftigen Rechenzeit zu erhalten? Ich bin nicht sehr gut im Clustern.

Ja in einem Anhänger jede (knn,som,dtwclust...), die beste Variante wird sicherlich zeigen, Experiment ...

Verstehen Sie mich nicht falsch, ich verwende das, worüber ich geschrieben habe, nicht, ich habe nur Ihre Idee gelesen und sie von einer etwas anderen Seite der Umsetzung aus betrachtet, also habe ich mich zu Wort gemeldet... Ich garantiere kein Ergebnis

 
elibrarius:

Algib teilt den eingehenden Slice durch den Median. D.h. wenn 100 Beispiele kommen, werden die Werte sortiert und durch den Wert des 50sten Beispiels geteilt. Es gibt eine Variante nach Quantilen im Code, die aber nicht verwendet wird.

Ich habe mich daran erinnert, dass XGBoost eine Option für zufällige Teilung hat. Das scheint auch bei Catbust der Fall zu sein.

Generell ist es seltsam, dass sie so flache Bäume empfehlen.
Wie ich bereits geschrieben habe, ist es bei einem so flachen Baum unwahrscheinlich, dass ein Sektor mit 20 bis 30 % des Wertes ausgewählt wird. Bestenfalls 1 oder 2 Mal wird durch Mediane oder durch zufällige Werte in Boosts geteilt.
Wäre die Tiefe 100, könnte sie durchaus einen Sektor von 20-30 % erreichen.

Ich nehme an, dass dies in Boosts durch die große Anzahl von Verfeinerungsbäumen kompensiert wird, die andere Prädiktoren verwenden können, die im Hauptbaum nicht verwendet wurden.

Die Realität ist vielleicht nicht so, wie wir sie uns vorstellen - wir sollten versuchen, die Partitionierungsalgorithmen von CatBoost zu reproduzieren und zu sehen, was dort wirklich passiert und wie korrekt es ist.

Was die Zufälligkeit betrifft - es gibt eine Zufälligkeit bei der Wahl der Partition des Prädiktorenrasters, zwar nicht die beste, aber eine zufällige, wenn ich das richtig verstehe. Und es gibt Algorithmen, die den Stapel ungleichmäßig nach Bereichen aufteilen.

 
mytarmailS:

Ja, in einem Anhänger kann man alles verwenden (knn,som,dtwclust...), die beste Option wird sich natürlich im Experiment zeigen...

Verstehen Sie mich nicht falsch, ich verwende das, worüber ich geschrieben habe, nicht, ich habe nur Ihre Idee gelesen und sie von einer etwas anderen Seite der Umsetzung aus betrachtet, also habe ich mich zu Wort gemeldet... Ich garantiere kein Ergebnis.

Ich spreche von Garantien - ich bin nur daran interessiert, Ihre Idee zu verstehen.

 


Der Neuro-Indikator ist fast fertig )) Das ist ein EA, ein reiner Indikator, für den mir die Fähigkeit fehlte.
 
Orangefarbener Bereich oben - sagt eine Abwärtsbewegung voraus, grüner Bereich unten - eine Aufwärtsbewegung, Stärke des Vertrauensgrads des neuronalen Netzes. Funktioniert nur auf BTCUSD M1 (im Moment...).
Ist das in Ordnung? ))
 
Evgeny Dyuka:
Der orangefarbene Bereich oben sagt eine Abwärtsbewegung voraus, der grüne Bereich unten eine Aufwärtsbewegung. Es funktioniert nur auf BTCUSD M1 (für jetzt).
Ist das in Ordnung? ))

Ich würde sagen, nicht schlecht, aber es ist frustrierend.

Er funktioniert im Grunde wie ein normaler Überkauft/Überverkauft-Indikator.

Manchmal ist es richtig, manchmal ist es falsch, es sollte nicht sein...

Haben Sie dieses Netz überhaupt für den Handel getestet? Meine Erfahrung sagt mir, dass man damit kein Geld verdienen wird...

Es sei denn, Sie setzen einen Filter für das "Vertrauen" in das Netz.

Grund der Beschwerde: