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

 
Evgeni Gavrilovi #:

datos - lista generada de predicciones del modelo, los valores negativos se convirtieron en positivos para calcular su media aritmética para la media de Sharpe

¿Por qué? Para Sharpe, se calcula la media con los signos originales.

 
Aleksey Nikolayev #:

¿Por qué? Para Sharpe, se considera la media con los signos originales.

Para tener en cuenta también las órdenes de venta, digamos que hay 2 pronósticos exactos -0,002 (20 pips) y +0,003 (menos - corto, más - largo).

El beneficio es +0,005, la media es 0,0025, y sin cambiar el signo será 0,0005.


Resulta que una métrica personalizada requiere su propia función de pérdida, por analogía claseRmseObjetivo(objeto )
 
Evgeni Gavrilovi #:

Aparentemente sí, me he perdido algo. He utilizado la plantilla del sitio oficial https://catboost.ai/en/docs/concepts/python-usages-examples.

Hay dos tipos de métricas loss_function y eval_metric. Usted probablemente necesita la primera, mira aquí https://catboost.ai/en/docs/concepts/python-usages-examples#user-defined-loss-function

Pero puedo estar equivocado. Aquí hay mejores expertos en python y alabadores de python que yo) Tal vez te ayuden más.

 
Evgeni Gavrilovi #:

Para tener en cuenta también las órdenes de venta, digamos que hay 2 previsiones precisas -0,002 (20 pips) y +0,003 (menos - corto, más - largo).

Beneficio +0.005, la media es 0.0025, y sin cambiar el signo será 0.0005.

Eso no sería un Sharpe. Además, tal vez, sea necesario no sólo tomar el módulo, sino multiplicarlo por el signo de la previsión (por menos uno si se vende y por uno si se compra).

 
Evgeni Gavrilovi catboost, necesito Sharp.

El resultado de entrenar un modelo con mi versión es casi el mismo que con RMSE, así que hay un error en alguna parte del código.

preds y target son return (a[i]-a[i+1])

Imprime los valores que obtengas y compáralos con la otra métrica. Imprime ambos a la vez, por cada iteración. En catbust early stop no olvide incluir el máximo del criterio personalizado y "use best model=True" Puede simplemente activar Verbose, imprimirá los valores de las métricas en cada iteración por sí mismo.
 
Maxim Dmitrievsky #:
Imprime los valores obtenidos y compáralos con la otra métrica. Imprima ambos a la vez, para cada iteración. En catbusta early stop no olvide activar max user criteria y "use best model=True" Puede simplemente activar Verbose, imprimirá los valores de la métrica en cada iteración.

Sería interesante para fines de investigación (aunque es bastante complicado) hacerlo a través de una función de pérdida personalizada. Hay una posibilidad para esto (si usted es lanzado al principio de la página, usted necesita encontrar la función de pérdida definida por el usuario sección en la parte inferior).

Usage examples
Usage examples
  • catboost.ai
Regression CatBoostRegressor class with array-like data.
 
Aleksey Nikolayev #:

Sería interesante para fines de investigación (aunque es bastante complicado) hacer una función de pérdida personalizada. Hay una posibilidad para ello (si se tira al principio de la página, debería encontrar la sección Función de pérdida definida por el usuario en la parte inferior).

Intentémoslo más adelante
 
Aleksey Nikolayev #:

Sería interesante para fines de investigación (aunque es bastante complicado) hacer una función de pérdida personalizada. Hay una posibilidad para esto (si usted es lanzado al principio de la página, usted necesita encontrar la función de pérdida definida por el usuario sección en la parte inferior).

No me funcionó con xgboost....
O más bien funcionó, pero el entrenamiento no funcionó, tienes que hacer buenos amigos con gradientes allí, tienes que hacer la función de aptitud gradiente, con la genética es mucho más simple
 
mytarmailS #:
No tuve éxito con xgboost...
O más bien, lo hice, pero el entrenamiento no funcionó, es necesario hacer buenos amigos con gradientes allí, es necesario hacer que la función de fitness gradiente, con la genética es mucho más fácil

Sí, esa es la parte complicada. Tienes que calcular el gradiente y la matriz de segundas derivadas, el hessiano. El Hessian también debe ser positivamente definido.

Para el beneficio, por ejemplo, el hessiano es degenerado como (igual a cero). Es necesario de alguna manera finesse la función de pérdida a un compromiso razonable entre la necesidad y la necesidad.

 
Andrey Dik #:

1. Mi apellido no está declinado
2. la cuestión no es si el global cambiará o no (cambiará necesariamente), sino si puede encontrar el extremo global en absoluto. si no le importa, puede inicializar los pesos de la red con números aleatorios y ya está, porque ¿qué más da que sea global o no? local))

1. Sobre el apellido, lo tendré en cuenta. Eres la única persona que conozco con ese apellido.

2. Quisiera objetar que no debemos llevar la idea al absurdo, pero en realidad el caso es el mismo: no necesitamos ningún óptimo - necesitamos mesetas, cuanto más extensas, mejor, cuanto más rentables, mejor. Y el extremo es siempre un estado inestable, pero necesitamos un estado estable, y en el futuro. Por lo tanto, resulta que la búsqueda de óptimos es una actividad perjudicial.

Aquí estoy impulsando la idea de que la estabilidad del beneficio en el futuro depende de las propiedades de los predictores y depende muy poco del modelo, y aún menos de los algoritmos de optimización. Es decir, un enfoque completamente distinto.