Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 881
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Tengo una pregunta sobre la variable objetivo.
Si nuestra variable objetivo es el resultado financiero de una operación, entonces es razonable normalizar este resultado, como pensaba. Pero aquí estoy buscando información en la página web, y en todas partes dice que la variable objetivo debe tener dos valores: compra o venta. Y si voy a tener una pérdida en cualquier caso -compra o venta (¡y sucede!), entonces ¿por qué debo cortar todas las variables negativas? ¿Y si es la presencia de variantes negativas lo que afecta a las estadísticas?
En general, me gustaría saber qué redes funcionan (¿y dónde conseguirlas?) en el caso extremo con un disparador de compra/venta/nada, y en el mejor de los casos con una función (antes pedí una función aquí ya que buscaba una solución teórica, pero ahora hice un script que resume los predictores) que hace el ranking.
> Si nuestra variable objetivo es el resultado financiero de una operación, entonces es razonable normalizar este resultado, como pensé
No normalizo los objetivos, los utilizo tal y como son (aumento de precios). Si usas neuronas, es mejor normalizar los predictores (otro nombre para las entradas, las fichas). Para el bosque de alguna manera no necesito molestarme con la normalización, funciona bien en cualquier caso.
Nótese que una neuronaka muy a menudo tiene una salida que también pasa por una función de activación, y sólo puede estar dentro de (0;1) para una sigmoide. Entonces, el objetivo también debe ser normalizado si no está dentro de este intervalo. O podríamos eliminar la activación para la salida para que pueda tomar cualquier valor.
> Pero aquí estoy buscando información en el sitio, y en todas partes se habla de que la variable objetivo debe tener dos valores: comprar o vender.
Esto se llama clasificación. Cuando en lugar del precio - sólo algún conjunto (0 y 1; -1 y 1; "comprar" y "vender").
Si se predice el propio precio o su incremento, no se llama clasificación, sino regresión.
> Si voy a tener pérdidas en cualquier caso -compra o venta (¡suele ocurrir!), entonces ¿por qué debería cortar todas las opciones negativas? ¿Y si es la presencia de opciones negativas lo que afecta a las estadísticas?
Todo depende de tus predictores, sólo puedes averiguar la respuesta experimentalmente, probando ambas variantes. Por ejemplo, intenté crear mi propia función de aptitud para el bosque - construí un diagrama de comercio (teniendo en cuenta la propagación) utilizando las previsiones del bosque y utilicé el diagrama para definir el ratio de sharpe, que fue el valor que traté de aumentar como resultado.
> En general, me gustaría saber qué redes funcionan.
Actualmente estoy tomando los precios abiertos y utilizándolos con indicadores (caseros) para crear nuevas funciones. Estoy entrenando la neurona que predice el aumento del precio por barra. Necesito mucho tiempo para crear nuevos indicadores, de lo contrario el modelo no superará el diferencial.
Revisando tus archivos veo que ya tienes muchos predictores. Si su objetivo es sólo un conjunto de -1,0,1 - utilice el bosque. Si quieres predecir el precio, mejor utiliza la neurona.
Error... sí, los puntos en los que el beneficio máximo es posible, por supuesto, por ejemplo.
para la clasificación, un perseptrón multicapa con una capa de salida softmax (produce probabilidades de pertenencia a la clase)
¿has leído esto? https://www.mql5.com/ru/articles/497 en el ejemplo de la 1ª neurona. Y luego imagina que hay muchos de ellos, así que esa es toda la red neuronal.
Son exactamente las funciones de umbral por las que preguntabas.
Bueno, parece un buen resultado, sí.
Me perdí ese artículo - gracias por señalarlo, ¡algunas cosas se han aclarado! Pero no todo a la vez, hay que leer esas cosas una y otra vez... Entendí lo de repartir coeficientes y escuchar su suma con una función.
Probé el primer archivo, lo dividí en 3 partes:
Formación
Predicción
Actual 0 1
0 28107 1244
1 3045 4119
Prueba 1
Predicción
Actual 0 1
0 5950 356
1 742 776
Corriente 2
Predicción
Actual 0 1
0 5945 333
1 779 769
Calculado en una red con 10 neuronas en una capa oculta (NS del paquete Rattle de R)
Peor que tu bosque, pero no está mal. El segundo archivo puede tener resultados similares.
Gracias. Creo que estos resultados se pueden utilizar como un filtro, es decir, para prohibir el comercio, ya que adivinar los ceros es más estable.
Me perdí este artículo. Gracias por señalarlo, me ha aclarado algunas cosas. Pero no todo de una vez, hay que leer esas cosas un par de veces... Entiendo lo de los coeficientes de dispersión y escucho su suma por una función.
Gracias. Creo que estos resultados pueden utilizarse como filtro, es decir, para prohibir el comercio, porque adivinar los ceros es más estable.
Bueno, hay más en la realidad - por eso es fácil de adivinar)
> Si nuestra variable objetivo es el resultado financiero de la operación, es razonable normalizar este resultado, como pensé
No normalizo los objetivos, los utilizo tal cual (ganancias de precio). Si usas neuronas, entonces es mejor normalizar los predictores (otro nombre es entradas, fichas). Para el bosque de alguna manera no es realmente necesario molestarse con la normalización, funciona bien en cualquier caso.
Hm, y por el contrario, pensé, que para el bosque lo más importante es hacer predictores lógicos, como sí / no, eso es lo que hice y por eso hay un montón de ellos, y sería mucho menos. Intentaré hacerlo de otra manera: daré 8 valores a un predictor y veré si el resultado cambia.
Nótese que muy a menudo la salida de una neurona-clave también pasa por la función de activación, y sólo puede estar dentro de (0;1) para una sigmoide. Entonces, el objetivo también debe ser normalizado si no está dentro de este intervalo. O podemos eliminar la activación de la salida para que pueda tomar cualquier valor.
¿A qué se refiere con la eliminación de la activación para la entrada? No sé lo que es - la activación...
> Pero aquí está buscando información en el sitio, y en todas partes dice que la variable de destino debe tener dos valores - comprar o vender.
Se llama clasificación. Cuando en lugar de precio - sólo algún conjunto (0 y 1; -1 y 1; "comprar" y "vender")
Si predice el precio en sí o su crecimiento, se llama regresión, no clasificación.
Sí, pero si no necesito comprar o vender, sino simplemente omitir una señal, ¿qué hacer? Así que he decidido hacer dos NS separadas para tener en cuenta el momento - no para comerciar.
> Si voy a tener pérdidas en cualquier caso -compra o venta (¡puede ocurrir así!), ¿debo simplemente eliminar las variantes negativas? ¿Y si es la presencia de opciones negativas lo que afecta a las estadísticas?
Todo depende de tus predictores, sólo puedes averiguar la respuesta experimentalmente, probando ambas variantes. Por ejemplo, traté de construir mi función de aptitud para el bosque - Hice un diagrama de comercio (teniendo en cuenta la propagación) utilizando las previsiones de bosque y utilizó el diagrama para definir la relación de sharpe que era el valor que traté de aumentar como resultado.
Es decir, para algunos predictores el historial no es muy importante, mientras que para otros es crítico, y como puede haber ambos, resulta que recortar no es deseable...
Ahora estoy tomando los precios abiertos y utilizándolos con indicadores (caseros) para crear nuevas características. Estoy entrenando la neurona que predice el aumento del precio por barra usando estos chips. Se necesita mucho tiempo para crear nuevos indicadores, de lo contrario el modelo no superará el diferencial.
En parte, la mayoría de mis características funcionan con la predicción, pero no del precio sino de su nivel - uso mi ATR, pero el estándar debería funcionar de la misma manera.
Bueno, hay más en la realidad - por eso es fácil de adivinar)
Así que no importa - lo principal es saber en qué áreas hay un mayor riesgo para el comercio, que más o menos demostraron.
La otra cosa es que no tengo ni idea de cómo convertirlo todo en el mismo indicador, ¿es realmente necesario reescribir todas las reglas que se han formado o qué?
Hmm, yo pensaba que era más importante para el bosque hacer los predictores lógicos, como el sí/no, que es lo que hice y por eso hay tantos, pero sería mucho menos. Intentaré hacerlo de otra manera: daré a un predictor 8 valores y veré si el resultado cambia.
El bosque es peor con características escasas, habrá pocas divisiones
Y si hay muchas características dispersas y una de ellas no es dispersa, entonces el bosque se ajustará en exceso a ella y las importaciones de ésta serán las mayores, y las otras tendrán muy poco efecto en el resultado
Un bosque funciona peor con características dispersas, habrá pocas divisiones
Además, si hay muchas características dispersas y una de ellas no es dispersa, entonces el bosque se ajustará en exceso a ella y tendrá las mayores importaciones, y las demás tendrán muy poco efecto en el resultado
¿Bosque normal o bosque aleatorio, o ambos?
Puse el Rattle y R (bueno, y glitches todo el asunto ...), y ahora no puedo entender cómo hacer un ajuste comparable, como en la captura de pantalla a continuación? Porque la configuración estándar de Rattle dio peores resultados que el programa que usaba antes.
Un bosque funciona peor con características dispersas, habrá pocas divisiones
y si hay muchos signos dispersos y uno no disperso entre ellos, el bosque se ajustará a él y tendrá las mayores importaciones, y los demás tendrán muy poco efecto en el resultado
Las mismas indicaciones, los mismos ajustes, pero las indicaciones están colapsadas, no expandidas como antes.
Variante antigua
Nueva variante
Encontré un poco más de ceros, pero bastantes menos de unos, ¡casi el doble! No pensé que las variables colapsadas y expandidas pudieran tener tal efecto...
¿Maderas normales o maderas al azar, o ambas?
Puse Rattle y R (qué fallo tiene todo esto...), y ahora no sé cómo hacer ajustes comparables, como en la captura de pantalla de abajo? Porque la configuración por defecto de Rattle daba peores resultados que el programa que utilizaba antes.
el bosque normal y el bosque aleatorio y el bosque arbóreo son lo mismo :) El bosque es un conjunto de árboles
¿son menos o qué? ¿son menos? son raros y/o categóricos como los unos y los ceros (eso es un nivel alto de comprensión)
No uso R porque los gurús locales de sus gafas bañadas en oro me lo han impedido.
de todos modos, mientras te molestes, estudia la teoría de lo que son los árboles y lo que es un bosque de árboles
https://habr.com/post/171759/
https://habr.com/post/116385/
Si quieres cambiar la configuración de Rattle, deberías llevarlo a Sanych, pero no sé por qué, sólo quieres darte el gusto, o molestarte con la integración del EA en mt5 y R
https://www.mql5.com/ru/articles/1165
En sus datos, el archivo Pred_004_Buy dividido por la mitad, puede obtener 0,85 de cabeza.
Los datos son basura y es mejor tirarlos. El resto lo alcanzamos por nuestra cuenta. En silencio...
¿Por qué apestan los datos? Es un resultado muy bueno.