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

 
Vladimir Perervenko:

La función de aptitud calcula el valor del criterio de optimización durante el proceso de optimización. No tiene nada que ver con la formación de modelos.

Pero en la regresión tenemos un objetivo en forma de vector numérico y tratamos de aproximarnos a él mediante el vector del modelo, para minimizar el error (que también es optimización)... o buscar los pesos correctos de las neuronas.

Bueno, esto es lo que estoy haciendo ahora, estoy creando un modelo de armónicos, de hecho

 
mytarmailS:

He añadido una nueva función de cálculo del equilibrio a la función de aptitud, teniendo en cuenta la comisión...

está empeorando en términos de aprendizaje, ......

tal vez habría que añadir una validación, para mantenerlo clásico.

 
Maxim Dmitrievsky:

tenemos que cambiar la multiclase catbust en el metaq para añadir "no trading"

la gama de estrategias aumentará.

Sería fantástico que lo hicieras.

 
Aleksey Vyazmikin:

Sería estupendo que lo hicieras.

puede utilizar 2 modelos de orientación diferente

 
Maxim Dmitrievsky:

hay que repasar la multiclase catbust en el metac para añadir "no comerciar"

la gama de estrategias aumentará.

Al marcarlo, aquí.

....
rand = random.randint(min, max)
        if dataset['close'][i] >= (dataset['close'][i + rand]):
            labels.append(1.0)
        elif dataset['close'][i] <= (dataset['close'][i + rand]):
            labels.append(0.0)              
        else:
            labels.append(0.0)
.....

cambiar a, por ejemplo

rand = random.randint(min, max)
        if dataset['close'][i] - (dataset['close'][i + rand])>= 2*spred:
            labels.append(-1.0)
        elif dataset['close'][i] - (dataset['close'][i + rand])<= -2*spred:
            labels.append(1.0)              
        else:
            labels.append(0.0)

Es decir, con un delta inferior a algún valor, en la valla.

 
mytarmailS:

Pero en la misma regresión tenemos el objetivo en forma de vector numérico y tratamos de aproximarlo por un vector del modelo, esos minimizan el error (esos también son optimización)... o buscan los pesos correctos de las neuronas

Lo que estoy haciendo ahora es esencialmente crear un modelo a partir de los armónicos.

Por supuesto que es una optimización, pero esta optimización se realiza mediante un modelo de regresión.

 
mytarmailS:

He añadido una nueva función de cálculo de saldo y comisión a la función de aptitud...

Creo que el algoritmo intenta ahora minimizar el número de operaciones para ahorrar comisiones... como resultado, menos oficios dan lugar a menos experiencia...

Aquí están los gráficos, se puede ver claramente que cuando hay pocas operaciones, el aprendizaje no funciona...

gris es TRAIN 1500 pips

el negro es el TEST 500 puntos

He tenido muy pocas operaciones aquí, el algo no ha aprendido nada, es de muy baja frecuencia...


Estaría bien conocer los puntos de entrada con 2 días de antelación ))

Pero probablemente sea mejor volver a entrenar todo el tiempo, aún no sé cómo probarlo todo

¿Cómo es eso?

¿Dónde está el código para sintetizar la curva general? Creo que lo he visto, pero ahora no lo encuentro.

 
Vladimir Perervenko:

Por supuesto, la optimización, pero esta optimización la realiza el modelo de regresión.

entonces no lo entiendo((( ¿por qué no se puede incorporar la función de fitness?

 
mytarmailS:

Entonces no lo entiendo((( ¿Por qué no se puede construir la diversión de fitness. allí entonces?

¿Dónde está?

 
Vladimir Perervenko:

¿Dónde está el código de síntesis de la curva resumen? Creo que lo he visto, pero ahora no lo encuentro.

Lo he borrado, he pensado que a nadie le interesa, puedo enviarte el código, pero necesito traducirlo en forma legible.

Por cierto, me he enfrentado a la inestabilidad del método de recocido, no sé ni cómo trabajar con él, los resultados son muy inestables, los parámetros saltan mucho...


He llegado a esto

Primero inicializo aleatoriamente el punto de partida,

entonces cuando se encuentra una solución la guardo

y luego empiezo a grabar de nuevo con los parámetros de inicio de la solución encontrada, así sucesivamente...