Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 1486

 
Maxim Dmitrievsky:

No entiendo para nada lo que es, la wikipedia dice tanto que no se puede averiguar sin un criptógrafo. Distribuciones multidimensionales, y no sé cómo construirlas, a menos que pueda descifrar el código de Python.

y al diablo con ello. Es sólo una bonita imagen del backtest, comparada con la cointegración

aquí hay un pruf eshttps://www.quantconnect.com/tutorials/strategy-library/pairs-trading-copula-vs-cointegration

La cópula es una función de densidad conjunta de distribución, de varias variables aleatorias. Conceptualmente es una estructura matemática bastante simple, para entenderla toma por ejemplo dos procesos aleatorios y construye un gráfico 2D como dependencia de la probabilidad de uno de otro, obtienes un campo de puntos, si los procesos son independientes entonces será un campo cuadrado uniforme, pero si son dependientes entonces diferentes patrones, compactación de puntos en algunos lugares y rarefacción en otros, aquí la densidad local de puntos es cópula, muestra la dependencia, lineal o no lineal.

 
Igor Makanu:

imho, usted necesita entender la diferencia entre la predicción y la vida real, la tarea del sistema de comercio es hacer una predicción, la tarea de la gestión del riesgo y el dinero es asegurar que el sistema sobrevive

qué pasa con las cópulas u homúnculos, cómo se derivó el TS o con la ayuda de MO o con la ayuda de optimizer.... - es una predicción pero no puede controlar la situación real: el precio

No estoy en contra de las cópulas, de hecho estoy incluso a favor de ellas, gracias a Max por recordármelas, quizás se puedan adaptar de alguna manera en la gestión del riesgo y la previsión con la ayuda de MO.

 

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;


}

Se dice que el algoritmo MO "cuasi-óptimo" es
 
¿Qué quiere decir? ¿Qué tipo de SVM es?
 
Maxim Dmitrievsky:
¿Qué quiere decir? ¿Qué tipo de SVM wisp es?

No, qué tipo de svm es este "parzen window", kernel smoothing, y"cuasi-óptimo" en el sentido de que es casi perfecto (Mitchell lo tenía en alguna parte), pero sólo muy lento, cada iteración - ordenar todo el conjunto de datos a un nuevo punto y la convolución con el kernel

 

No entiendo por qué no hay algoritmos para construir un árbol que tengan en cuenta la uniformidad de la distribución de la señal en toda la muestra cuando se construye un árbol.

Podemos aplicarlo de alguna manera, ya que es fundamental para el comercio.

Estimo las hojas teniendo en cuenta esta distribución, pero si el árbol se construyera teniendo en cuenta esto, habría hojas/árboles mucho más efectivos.
 
Aleksey Vyazmikin:
No puedo asegurarlo, pero no excluyo que estés torturando a los árboles con la poda para nada.
Esto es así, por consideraciones generales y por experiencia personal.
 
Aleksey Vyazmikin:

No entiendo por qué no hay algoritmos para construir un árbol que tengan en cuenta la uniformidad de la distribución de la señal en toda la muestra cuando se construye un árbol.

Tal vez podamos aplicarlo de alguna manera, porque es crucial para el comercio.

Estimo las hojas teniendo en cuenta esta distribución, pero si el árbol se construyera teniendo en cuenta esto, habría hojas/árboles mucho más efectivos.
Allí, antes de cada división, los datos se ordenan por fichas (que se barajan por tiempo), se dividen (por medio o por cuartiles), se recuerda la reducción de errores y se repite para todas las fichas. La mejor división se convierte en un nodo.

Sugiera un algoritmo mejor.

 
Yuriy Asaulenko:
No puedo asegurarlo, pero no excluyo que se torture a los árboles con la poda para nada.
Son sólo consideraciones generales y experiencia personal.

En mi juventud pensaba que los bonsáis eran una burla a la naturaleza, pero cuando me convertí en padre comprendí la profundidad de la idea.

 
elibrarius:
Allí, antes de cada división, los datos se clasifican por fichas (que se barajan por tiempo), se dividen (por medio o por cuartiles), se recuerda la reducción de errores y se repite para todas las fichas. La mejor división se convierte en un nodo.

Sugiere un algoritmo mejor.

Por eso hay que dar una estimación a la hora de ordenar los predictores y sus valores y no tomar aquellos predictores con valores (rangos) muy concurridos, sino dar preferencia a los que se distribuyen por toda la muestra.

Es decir, necesitamos estimar la frecuencia de repetición de la división en la muestra, no sólo su repetibilidad absoluta.