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

 
Maxim Dmitrievsky:

Ich verstehe überhaupt nicht, was das ist. Wikipedia sagt so viel, dass man es ohne einen Kryptographen nicht herausfinden kann. Mehrdimensionale Verteilungen, und ich weiß nicht, wie man sie erstellt, es sei denn, ich kann Python-Code knacken.

und zum Teufel mit ihm. Es ist nur ein schönes Bild des Backtests, verglichen mit der Kointegration

hier ist ein Pruf: https://www.quantconnect.com/tutorials/strategy-library/pairs-trading-copula-vs-cointegration

Die Kopula ist eine Funktion der gemeinsamen Dichte der Verteilung mehrerer Zufallsvariablen. Um es zu verstehen, nehmen Sie zum Beispiel zwei Zufallsprozesse und erstellen Sie ein 2D-Diagramm als Abhängigkeit der Wahrscheinlichkeit eines Prozesses vom anderen. Wenn die Prozesse unabhängig sind, ist es ein gleichmäßiges quadratisches Feld, aber wenn sie abhängig sind, gibt es unterschiedliche Muster, Verdichtung der Punkte an einigen Stellen und Verdünnung an anderen, hier ist die lokale Dichte der Punkte eine Kopula, sie zeigt die Abhängigkeit, linear oder nicht-linear.

 
Igor Makanu:

Imho müssen Sie den Unterschied zwischen Vorhersage und realem Leben verstehen. Die Aufgabe des Handelssystems ist es, eine Vorhersage zu treffen, die Aufgabe des Risiko- und Geldmanagements ist es, das Überleben des Systems sicherzustellen.

Was ist mit Copulas oder Homunculi, wie wurde die TS abgeleitet oder mit Hilfe von MO oder mit Hilfe von optimizer.... - es ist eine Vorhersage, aber sie kann die reale Situation - den Preis - nicht kontrollieren

Ich habe nichts gegen Kopulas, ich bin sogar für sie, danke an Max, dass er sie in Erinnerung gerufen hat, vielleicht können sie in gewisser Weise im Risikomanagement und in der Prognose mit Hilfe von MO angepasst werden.

 

typedef struct

{

double dist;

double* vector;

} distvect;


int distvectcomp(distvect *v1, distvect *v2)

{

if (v1->dist == v2->dist) return 0;

double sub = v1->dist - v2->dist;

return sub / fabs(sub);

}


double* parsen(dataset inputs, dataset outputs, int k, double kernel(double), double vector[])

{

distvect* dvarr = malloc(inputs.length * sizeof(distvect));


for (int i = 0; i < inputs.length; ++i)

{

double dist = 0;

for (int j = 0; j < inputs.dimentions; ++j) dist += pow(vector[j] - inputs.data[i][j], 2);

distvect dv = { dist, outputs.data[i] };

dvarr[i] = dv;

}

qsort(dvarr, inputs.length, sizeof(distvect), distvectcomp);


double *res = calloc(outputs.dimentions, sizeof(double));

double W = 0;


for (int i = 0; i < k; ++i)

{

if (dvarr[i].dist == 0) continue;

double w = kernel(dvarr[i].dist);

W += w;

for (int d = 0; d < outputs.dimentions; ++d)

res[d] += dvarr[i].vector[d] * w;

}


for (int d = 0; d < outputs.dimentions; ++d) res[d] /= W;


free(dvarr);

return res;


}

Der "quasi-optimale" MO-Algorithmus soll sein
 
Was meinen Sie, um welche Art von SVM handelt es sich?
 
Maxim Dmitrievsky:
Was meinen Sie, um welche Art von SVM-Wisp handelt es sich?

Nein, welche Art von svm ist diese "Parzen-Fenster", Kernel-Glättung, und"quasi-optimal" in dem Sinne, dass es fast perfekt ist (Mitchell hatte es irgendwo), aber nur sehr langsam, jede Iteration - Sortieren der gesamten Datensatz zu einem neuen Punkt und Faltung mit dem Kernel

 

Ich verstehe nicht, warum es keine Algorithmen zur Erstellung eines Baums gibt, die die Gleichmäßigkeit der Signalverteilung über die gesamte Stichprobe bei der Erstellung eines Baums berücksichtigen?

Können wir dies in irgendeiner Weise umsetzen, da es für den Handel entscheidend ist?

Ich schätze die Blätter mit Blick auf diese Verteilung, aber wenn der Baum mit Blick auf diese Verteilung gebaut würde, gäbe es viel mehr effektive Blätter/Bäume.
 
Aleksey Vyazmikin:
Ich kann es nicht mit Sicherheit sagen, aber ich schließe nicht aus, dass Sie die Bäume umsonst mit dem Beschneiden quälen.
Das ist so, aus allgemeinen Überlegungen und persönlicher Erfahrung.
 
Aleksey Vyazmikin:

Ich verstehe nicht, warum es keine Algorithmen zur Erstellung eines Baums gibt, die die Gleichmäßigkeit der Signalverteilung über die gesamte Stichprobe bei der Erstellung eines Baums berücksichtigen?

Vielleicht können wir sie in irgendeiner Form umsetzen, denn sie ist für den Handel von entscheidender Bedeutung.

Ich schätze die Blätter mit Blick auf diese Verteilung, aber wenn der Baum mit Blick auf diese Verteilung gebaut würde, gäbe es viel mehr effektive Blätter/Bäume.
Vor jeder Teilung werden die Daten nach Fichen sortiert (was sie nach Zeit mischt), geteilt (durch die Mitte oder durch Quartile), die Fehlerreduktion gespeichert und für alle Fichen wiederholt. Die beste Abteilung wird zu einem Knoten.

Schlagen Sie einen besseren Algorithmus vor.

 
Yuriy Asaulenko:
Ich kann es nicht mit Sicherheit sagen, aber ich schließe nicht aus, dass man Bäume umsonst mit Baumschnitt quält.
Das sind nur allgemeine Überlegungen und persönliche Erfahrungen.

In meiner Jugend dachte ich, Bonsai sei eine Verhöhnung der Natur, aber als ich Eltern wurde, verstand ich die Tiefe der Idee.

 
elibrarius:
Vor jeder Teilung werden die Daten nach Fichen sortiert (was sie nach Zeit mischt), geteilt (durch die Mitte oder durch Quartile), die Fehlerreduktion gespeichert und für alle Fichen wiederholt. Der beste Split wird zu einem Knoten.

Schlagen Sie einen besseren Algorithmus vor.

Aus diesem Grund müssen wir bei der Sortierung der Prädiktoren und ihrer Werte eine Schätzung vornehmen und nicht die Prädiktoren nehmen, deren Werte (Bereiche) sehr eng beieinander liegen, sondern diejenigen bevorzugen, die über die gesamte Stichprobe verteilt sind.

Das heißt, wir müssen die Häufigkeit der Wiederholung des Splits in der Stichprobe schätzen, nicht nur seine absolute Wiederholbarkeit.