Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 88
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
Yur, hacer una versión normal del programa (o actualizado) para la gente))
1.Que lea archivos estándar de este tipo - cabecera (con comillas y sin ellas), datos, delimitadores, que lea zpt, diff.zpt, tabulación. Ejemplo -
"Date";"V1";"A77";"V23A";"Целевая"
01.01.2000;4.999995E-03;1.499891E-03;-2.000213E-03;-5.000234E-03;1
2.dejar que sólo se utilicen 10 entradas para el modelo, pero hacer que se puedan cargar muchas, entonces
en una pestaña separada, o poner mayúsculas (se seleccionan las entradas), o bien.
3. ¡Sin normalización! (o desactivada), porque si los datos están inicialmente centrados en 0, después de la conversión
x-x.min/....(o lo que tengas) - vuela))
4.Deseche la aleatoriedad (o conmutable), deje que solo divida los datos en dos partes, cuente en orden y emita el % de predicciones exitosas para 1 (para 0 no)
5. Hizo la importancia de los insumos - ¡bien!
6.Que además de esa fórmula que se emite, se emita la completa!, es decir, ahora
double x2 = 2,0 * (v5 + 1,0) / 2,0 - 1,0;
doble decisión = -0,2632437547312642 -0,2634178652535958 * x2
+ 0.05267978803936412
tenemos que -
Nombre objetivo = -0,2632437547312642 -0,2634178652535958 * insertar construcción x2= (2,0 * (v5 + 1,0) / 2,0 - 1,0)
+ 0.05267978803936412
obtenemos -
Nombre objetivo = -0,2632437547312642 -0,2634178652535958 * (2,0 * (v5 + 1,0) / 2,0 - 1,0)
+ 0.05267978803936412
Obtendrás un dispositivo algo utilizable para pruebas rápidas. Entonces todavía se puede insertar etc, simple (no codicioso)
algoritmos, con una elección... De lo contrario, la herramienta es inútil. Mientras se edita el archivo, esto y aquello... Es más fácil usar otra cosa...
¿Dónde está la versión 7?
Más o menos, pero no hay tiempo ni cerebro suficientes.
Hay que empezar con una variable objetivo y luego seleccionar predictores para ella, y luego volver a comprobarlos con matemáticas, de alguna manera. En fin, es un proceso doloroso y no puedo formalizarlo.
4.Desechar la aleatoriedad (o deshabilitarla), dejar que sólo se dividan los datos en dos partes, contar en orden y emitir el % de predicciones exitosas para el 1 (no es necesario el 0)
Si se trata de utilizar jPrediction para el mercado de divisas, esto es probablemente lo principal que hay que añadir. Hay muchos modelos que pueden dividir los datos aleatoriamente en dos partes, entrenar en la primera y mostrar buenos resultados también en la segunda. Pero la mayoría de estos modelos serán ineficaces con los nuevos datos. No hay dependencias constantes en Forex, los buenos resultados en una muestra de prueba aleatoria no garantizan buenos resultados en los nuevos datos. La única manera de asegurarse de que un modelo es adecuado para el forex es hacer una prueba de avance:
El modelo debe mostrar una buena capacidad de predicción en los datos marcados en rojo. Ahora en jPrediction tal prueba tiene que ser hecha manualmente reintroduciendo los datos para cada caso de prueba, no es bueno para un trabajo serio.
Y estoy de acuerdo en que es mejor mostrar una puntuación sólo para los datos de prueba que un total de entrenamiento+prueba.
Todas las calificaciones que jPrediction produce ahora son inadecuadas para el forex, y sólo son engañosas.
Por cierto, así es como se hace el roll forward en el paquete caret para R:
http://topepo.github.io/caret/splitting.html(sección División de datos para series temporales)
El modelo se entrenará con las primeras 1.000 muestras y luego se probará con las muestras 1001-1300. A continuación, pase a 300, entrene 301-1300, pruebe 1301-1600, etc. hasta que se le acaben los ejemplos de entrenamiento
Yur, haz una versión normal del prog (o mejorada) para la gente))))
1.Que lea los archivos estándar de este tipo - cabecera (con o sin comillas), datos, delimitadores que apresure zpt, tchk.zpt, tabulación. Ejemplo -
2.Puede que sólo se utilicen 10 entradas para el modelo, pero que se puedan cargar muchas, entonces
En una pestaña aparte, puedes poner marcadores (seleccionas las entradas) o cualquier otra cosa.
3. ¡Sin normalización! (o desactivada), porque si los datos están inicialmente centrados en 0, después de la conversión
x-x.min/....(o lo que tengas) - vuela))
4.Deseche la aleatoriedad (o conmutable), deje que solo divida los datos en dos partes, cuente en orden y emita el % de predicciones exitosas para 1 (para 0 no)
5. Hizo la importancia de los insumos - ¡bien!
6.Que además de la fórmula que se emite, se emita el ¡completo!, que ahora es
7. ¿Dónde está la versión 7?
Si a alguien no le gusta mucho algo en jPrediction, el proyecto está abierto con código abierto bajo licencia GNU GPL y hacer forks de él, cambiar y modificar algo allí, no sólo no está prohibido, sino que hasta cierto punto es bienvenido.
Si se trata de utilizar jPrediction para el mercado de divisas, esto es probablemente lo principal que hay que añadir. Hay muchos modelos que pueden dividir los datos aleatoriamente en dos partes, entrenar en la primera y mostrar buenos resultados también en la segunda. Pero la mayoría de estos modelos serán ineficaces con los nuevos datos. No hay dependencias constantes en Forex, los buenos resultados en una muestra de prueba aleatoria no garantizan buenos resultados en los nuevos datos. La única manera de asegurarse de que un modelo es adecuado para el forex es hacer una prueba de avance:
El modelo debe mostrar una buena capacidad de predicción en los datos marcados en rojo. Ahora en jPrediction tal prueba tiene que ser hecha manualmente reintroduciendo los datos para cada caso de prueba, no es bueno para un trabajo serio.
Y estoy de acuerdo en que es mejor mostrar una puntuación sólo para los datos de prueba que un total de entrenamiento+prueba.
Todas las calificaciones que jPrediction da ahora son inadecuadas para el forex, y sólo son engañosas.
Por cierto, así es como se hace el roll forward en el paquete caret para R:
http://topepo.github.io/caret/splitting.html(sección División de datos para series temporales)
El modelo se entrenará con las primeras 1.000 muestras y luego se probará con las muestras 1001-1300. A continuación, pase a 300, entrene a 301-1300, pruebe a 1301-1600, etc. hasta que se agoten los ejemplos de entrenamiento.
Todas las estimaciones que da ahora jPrediction son inadecuadas para el mercado de divisas, y sólo son engañosas.
Se trata de acusaciones sin fundamento, es decir, lo que comúnmente se conoce como patrañas. Para demostrar la eficacia de Walk Forward, proporcione resultados comparativos de los modelos derivados en jPrediction y de los modelos derivados después de Walk Forward, de tal manera que puedan ser cotejados para ver si son "malos". Si estos resultados confirman sus palabras, entonces tendría sentido sustituir el algoritmo de prueba actualmente implementado en jPrediction por Walk Forward.
Me he encontrado en repetidas ocasiones con que ideas aparentemente "obvias", tras ser aplicadas y probadas por la experiencia, resultan ser "vacías". Sólo una parte muy pequeña de las ideas es efectiva y a menudo sólo después de una edición adicional con un "archivo". Esto se debe a que faltan los detalles de las ideas. Y el diablo está en esos mismos detalles.
Linus Torvald (creador del núcleo Linux) no se cansa de repetir: "Tarde o temprano la teoría se encuentra con la práctica". Y la práctica es siempre el criterio de la verdad. Siempre".
Un problema adicional de Walk Forward es que tenemos muchos modelos en cada etapa. ¿Cuál de estos modelos debería mantenerse como modelo de trabajo y según qué criterios debería seleccionarse?
Se trata de afirmaciones sin fundamento, es decir, lo que comúnmente se conoce como patrañas. Para demostrar la eficacia del Walk Forward, facilite estudios comparativos de los modelos jPrediction y de los modelos post-Walk Forward, de modo que puedan ser cotejados en cuanto a su "maldad". Si estos resultados confirman sus palabras, entonces tendría sentido sustituir el algoritmo de prueba actualmente implementado en jPrediction por Walk Forward.
Me he encontrado repetidamente con que ideas aparentemente "obvias", una vez puestas en práctica y probadas por la experiencia, resultan ser "vacías". Sólo una proporción muy pequeña de ideas son efectivas, y a menudo sólo después de una revisión posterior del "expediente". Esto se debe a que faltan los detalles de las ideas. Y el diablo está en esos mismos detalles.
Linus Torvald (creador del núcleo Linux) no se cansa de repetir: "La teoría se encuentra con la práctica tarde o temprano". Y la práctica siempre resulta ser el criterio de la verdad. Siempre".
Un problema adicional de Walk Forward es que tenemos muchos modelos en cada etapa. ¿Cuál de estos modelos debe mantenerse como modelo de trabajo y con qué criterio debe seleccionarse?
No hay necesidad de discutir. Estamos trabajando en un tema de investigación muy complejo. Hay muchas suposiciones. Y estas suposiciones conducen a un sobreaprendizaje y a un sobremuestreo.
Dos reglas simples: engaña al mercado, no te engañes a ti mismo.
Walk Forward es, por supuesto, un buen método. Pero los principales parámetros son la profundidad del aprendizaje y la duración de la prueba. Al mismo tiempo (!!!) si estos parámetros se ajustan de tal manera que el resultado en la posición de avance sea mejor, ¡sobreentrenaremos la marcha hacia adelante! Es decir, en un trozo grande hacemos repetidamente la optimización Walk Forward. En otro trozo no solapado probamos los mejores parámetros de Walk Forward en "entrenamiento" y ejecutamos otro lobo completo hacia adelante, pero lo hacemos una vez. Si el resultado es bueno, entonces el modelo está captando las dependencias. Si el resultado es malo, entonces simplemente hemos reentrenado Walk Forward en un modelo no tan bueno.
Existe el mismo problema con las pruebas únicas en una muestra retrasada. Ahora estoy trabajando en ello: liberar mis resultados del sobreentrenamiento. Los resultados de la validación cruzada deben correlacionarse con la muestra diferida para la prueba final. Dicho esto, la selección del mejor modelo por validación cruzada dará los mejores resultados aproximados fuera de la muestra. De lo contrario, si no hay correlación o ésta es negativa, tenemos un modelo inadecuado para el mercado de divisas que hay que cambiar.
Se trata de acusaciones sin fundamento, es decir, lo que en el lenguaje común se denomina "bullshit". Para demostrar la eficacia de Walk Forward, presente los resultados de los estudios comparativos de los modelos jPrediction y de los modelos post-Walk Forward de forma que se puedan cotejar para comprobar su "piedad". Si estos resultados confirman sus palabras, entonces tendría sentido sustituir el algoritmo de prueba actualmente implementado en jPrediction por Walk Forward.
Me he encontrado repetidamente con que ideas aparentemente "obvias", una vez puestas en práctica y probadas por la experiencia, resultan ser "vacías". Sólo una proporción muy pequeña de ideas son efectivas, y a menudo sólo después de una nueva revisión "de archivo". Esto se debe a que faltan los detalles de las ideas. Y el diablo está en estos detalles.
Linus Torvald (creador del núcleo Linux) no se cansa de repetir: "La teoría se encuentra con la práctica tarde o temprano". Y la práctica siempre resulta ser el criterio de la verdad. Siempre".
Un problema adicional de Walk Forward es que tenemos muchos modelos en cada etapa. ¿Cuál de estos modelos debe mantenerse como modelo de trabajo y con qué criterio debe seleccionarse?
No vale la pena pelear por ello.
Estoy de acuerdo. Pero esto requiere minimizar el número de acusaciones sin fundamento en el hilo. La mejor opción es dar los resultados de los estudios comparativos con la posibilidad de una doble comprobación.
Estamos trabajando en una investigación muy compleja.
Algunos trabajan y otros se dedican a hacer el ridículo sin pruebas (no señalemos con el dedo).
No vale la pena luchar.
Estoy de acuerdo.
Hay muchas suposiciones aquí. Y estas suposiciones conducen a un exceso de educación y a una caída en picado fuera de la muestra.
No se pueden poner suposiciones en el pan y meterlas en el bolsillo. Así que todo debería comprobarse empíricamente, en lugar de hacer suposiciones no probadas, para no pisar el rastrillo del sobreentrenamiento y la caída en picado fuera de la muestra.
Walk Forward es, por supuesto, un buen método. Pero los principales parámetros son la profundidad del aprendizaje y la duración de la prueba. Al mismo tiempo (!!!) si abordamos estos parámetros de tal manera que el resultado en la vía de avance sea mejor, ¡sobreentrenaremos la vía de avance! Es decir, en un trozo grande hacemos repetidamente la optimización Walk Forward. En otro trozo no solapado, probamos los mejores parámetros de Walk Forward en "entrenamiento" y lo ejecutamos una vez más. Si el resultado es bueno, el modelo recoge las dependencias. Si el resultado es malo, entonces simplemente hemos reentrenado Walk Forward en un modelo no tan bueno.
Existe el mismo problema con las pruebas únicas en una muestra retrasada. Ahora estoy trabajando en ello: liberar mis resultados del sobreentrenamiento. Los resultados de la validación cruzada deben correlacionarse con la muestra diferida para la prueba final. Dicho esto, la selección del mejor modelo por validación cruzada dará los mejores resultados aproximados fuera de la muestra. De lo contrario, si no hay correlación o es negativa, tenemos un modelo inadecuado para el mercado de divisas que hay que cambiar.
La conclusión es que todos los métodos tienen ventajas y desventajas. Las suposiciones exageran los méritos y no tienen en cuenta los inconvenientes.
Un punto aún más importante es que ningún método permite seleccionar los modelos según el mejor criterio de calidad, y todos los métodos seleccionan según el principio de rechazo, filtrando sólo los que no son aptos a sabiendas. Ningún método en ML puede calcular la idoneidad potencial de lo que queda después del rechazo.
Especialmente en entornos no estacionarios. Es posible seleccionar los modelos aparentemente más adecuados en términos de generalizabilidad, pero mañana algún jefe del Banco Central en una reunión se tira un pedo y todos los modelos se irán al garete.
La cuestión es que todos los métodos tienen ventajas e inconvenientes. Las suposiciones exageran los méritos y desprecian los deméritos.
Un punto aún más importante es que ningún método selecciona los modelos según el criterio de mejor calidad, y todos los métodos seleccionan según el principio de rechazo, filtrando sólo lo que se sabe que es inadecuado. Ningún método en ML puede calcular el valor potencial de lo que queda después del rechazo.
Más aún en entornos no estacionarios. Parece posible seleccionar los modelos más adecuados en términos de generalizabilidad, pero mañana algún jefe del Banco Central se tirará un pedo y todos los modelos se irán al garete.