Discusión sobre el artículo "Los bosques aleatorios predicen las tendencias"

 

Artículo publicado Los bosques aleatorios predicen las tendencias:

En un principio, el objetivo de la construcción del sistema era predecir el comportamiento de un cierto instrumento de mercado, por ejemplo, una pareja de divisas. Los objetivos de la predicción pueden ser diversos, no nos limitamos a predecir tendencias, sino más concretamente a predecir el crecimiento («longs») o las caídas («shorts») de los valores de las cotizaciones de una pareja de divisas.

Normalmente, para resolver los problemas de la predicción, el trader toma el gráfico de una pareja de divisas, dibuja una cierta cantidad de indicadores e intenta encontrar una cierta combinación, un patrón que tendrá capacidades predictivas.

En este artículo vamos a estudiar la elección automática de patrones y su valoración preliminar con la ayuda del paquete Rattle del sistema de análisis estadístico R.

En calidad de instrumento de predicción del comportamiento de las parejas de divisas, elegiremos el sistema R, que encaja de manera ideal en las tareas de predicción en los mercados financieros y, en particular, para las predicciones del comportamiento de las parejas de divisas. Además, R se mantiene, ante todo, como un lenguaje de programación para los estadistas cualificados, quedando fuera del alcance muchos traders. La complejidad del mismo R se agrava por el hecho de que los instrumentos para la predicción son muy numerosos y están dispersos por los muchos paquetes que, propiamente, constituyen la funcionalidad básica de R.

Rattle (the R Analytical Tool To Learn Easily) une la multitud de paquetes R, que son importantes para la construcción de sistemas comerciales, pero cada uno por separado no son fáciles de usar para los principiantes. No es necesario comprender R para comenzar con Rattle. Pero el resultado del trabajo con Rattle será un código en R, que puede ser utilizado al construir un sistema comercial real. Pero en esta etapa no será necesario tener conocimientos de R.

En cualquier caso, Rattle es un instrumento insustituible en la etapa en la que se proyecta el sistema comercial, y también permite incluso a los principiantes ver rápidamente los resultados de esta u otra idea y obtener una valoración.

Rattle (Williams, 2009) es un sistema operativo gratuito con un código fuente abierto, creado en el marco del paquete estadístico del sistema operativo R (Grupo de trabajo de Desarrollo R, 2011). Como sistema operativo gratuito, el código fuente de Rattle y R están disponible sin limitaciones. El código fuente de Rattle está escrito en el lenguaje С y está permitido a todos (y se fomenta) mirar el código fuente con motivos educativos, para comprenderlo, comprobarlo y ampliarlo.

Para construir la variable objetivo, se usa ZigZag con un parámetro «distancia entre virajes» igual a 0.0035 dólares. En la fig. 1 se muestra el resultado.

Fig. 1. Indicador ZigZag

Autor: Alexander Fomenko

 

Lo primero que pensé al leer el artículo fue "qué traducción más chapucera".

Busqué de dónde era el autor - resultó que no era una traducción después de todo)))

В качестве инструмента для предсказания поведения валютных пар выберем систему R, которая идеально подходит для задач предсказания на финансовых рынках и, в частности, предсказания поведения валютных пар.

No quería decir nada malo, sólo pensamientos al oído. El artículo puede ser bueno, puede ser muy bueno......

 

Interesado en la idea en sí (no conocía el bosque aleatorio ). Herramienta impuesta artificialmente. Quiero repetir sin ella - no se indica claramente qué es exactamente lo que se hizo, qué vectores de datos se utilizan. Se omiten los parámetros de zigzag. ¿Es el público objetivo los usuarios del paquete Rattle? ¿O los que escriben en R? Sin su estudio, muchos puntos del artículo son incomprensibles. Las conclusiones son farragosas: no queda claro en el artículo si esta dirección es prometedora o no. Sería posible dar ejemplos de comercio. Impresión general - como si hubiera sido escrito para un círculo estrecho.

PS. Al intentar abrir TC.Rdata del artículo, aparece lo siguiente:

Ошибка в sqrt(ncol(crs$dataset)) : 
  нечисловой аргумент для математической функции
Вдобавок: Предупреждение
In rm(crs) : объект 'crs' не найден
 
wmlab:
Interesado en la idea en sí (no conocía el bosque aleatorio). Herramienta impuesta artificialmente. Quiero repetir sin ella - no se indica claramente qué es exactamente lo que se hizo, qué vectores de datos se utilizan. Se omiten los parámetros de zigzag. ¿Es el público objetivo los usuarios del paquete Rattle? ¿O los que escriben en R? Sin su estudio muchos puntos del artículo son incomprensibles. Las conclusiones son farragosas - no queda claro en el artículo si esta dirección es prometedora o no. Sería posible dar ejemplos de comercio. La impresión general es como si se hubiera escrito para un círculo estrecho.

Algo que tiene muchos quisquillosos. Yo, por ejemplo, sin ser matemático, entendí bastante bien la esencia, salvo algunos puntos que deberían haberse explicado con más detalle.Por ejemplo, no entendí muy bien el término "desdoblamiento del árbol", aparece varias veces y no queda muy claro qué se quiere decir exactamente con él. Y en cuanto a las conclusiones, ¿qué conclusiones necesitas? "¡Vete! a las barricadas"? Yo, por ejemplo, después de leerlo, me di cuenta de que estaba inventando una bicicleta, intentando inventar yo mismo algoritmos similares en lugar de utilizar una solución ya hecha.Según entendí, la idea principal era popularizar el paquete R entre los aficionados interesados en la estadística (pero no para "dummies"). Y salió bastante bien, en mi opinión.

 
wmlab:

Interesado en la idea en sí (no conocía el bosque aleatorio). Herramienta impuesta artificialmente. Quiero repetir sin ella - no se indica claramente qué es exactamente lo que se hizo, qué vectores de datos se utilizan. Se omiten los parámetros de zigzag. ¿Es el público objetivo los usuarios del paquete Rattle? ¿O los que escriben en R? Sin su estudio muchos puntos del artículo son incomprensibles. Las conclusiones son farragosas - no queda claro en el artículo si esta dirección es prometedora o no. Sería posible dar ejemplos de comercio. Impresión general - como si hubiera sido escrito para un círculo estrecho.

PS. Y al tratar de abrir TC.Rdata del artículo se da lo siguiente:

¿Público objetivo - usuarios del paquete Rattle? ¿O los que escriben en lenguaje R? Sin estudiarlos, muchos puntos del artículo son incomprensibles.

Al utilizar Rattle, identifico dos públicos objetivo:

Usuarios sin formación en R que pueden componer su propio archivo .csv de entrada y crear y evaluar los resultados de 6 modelos, no sólo bosques aleatorios. El principal problema no es el modelo, sino los datos de entrada del modelo. Si consigues encontrar los datos de partida, entonces puedes encargar la programación. Lo principal es la idea, y también se pueden aplicar técnicas de programación

PS. Y al intentar abrir TC.Rdata del artículo da lo siguiente:

Comprobado de nuevo, todo es normal. la secuencia de acción es la siguiente:

  • iniciar R
  • tab {Archivo/cargar espacio de trabajo
  • a continuación, busque el archivo TC.RData desde el archivo descomprimido.
  • Lanzar Rattle
  • pestaña Data\R Dataset
  • en el menú desplegable busque el nombre TC en la ventana Data Name.
  • Haga clic en "Ejecutar".

Obtenemos la lista de vectores que le interesa.

Otra audiencia son los usuarios entrenados. Rattle es una herramienta bastante conveniente para la selección de los datos iniciales para el modelo. El tiempo principal cuando se construyen sistemas de comercio se gasta en la selección de los datos iniciales - la parte más incierta del trabajo. Aquí es donde Rattle es muy útil. Usted puede obtener una estimación final muy rápidamente, sin tener que entrar en construcciones de modelos matemáticos muy complejos.

Buena suerte, listo para continuar las explicaciones

 
meat:

No eres más que puntilloso. Yo, por ejemplo, sin ser matemático, entendí bastante bien la esencia, salvo algunos puntos que deberían haberse explicado con más detalle.Por ejemplo, no entendí muy bien el término "desdoblamiento del árbol", aparece varias veces y no queda muy claro qué se quiere decir exactamente con él. Y en cuanto a las conclusiones, ¿qué conclusiones necesitas? "¡Vete! a las barricadas"? Yo, por ejemplo, después de leerlo, me di cuenta de que estaba inventando una bicicleta, intentando inventar yo mismo algoritmos similares en lugar de utilizar una solución ya hecha.Según entendí, la idea principal era popularizar el paquete R entre los aficionados interesados en la estadística (pero no para "dummies"). Y salió bastante bien, en mi opinión.

Por ejemplo, yo no entendía muy bien el término "división de árboles"

Tomamos la raíz del árbol, que está en la parte superior.

Dividimos la raíz y trazamos dos líneas desde la raíz - división de la raíz, luego la misma acción en cada nivel.

En cada nodo del árbol se comprueba alguna condición formulada por el algoritmo. Por ejemplo, si eurusd > 1,35, entonces se va por la rama izquierda, si no, se va por la derecha.

El algoritmo ha generado excesivamente 500 árboles de este tipo. Debería haber 10000 condiciones.

Siguiente. A la llegada de los valores de todos los predictores - un valor de cada predictor - tengo 88 piezas en total, se comparan con los árboles y se toma una decisión que este conjunto particular de 88 valores implica largo o corto. Es decir, algo análogo a un patrón, sólo que muy largo.

 
faa1947:

Lo he vuelto a comprobar, está bien. La secuencia es la siguiente:

  • Ejecutar R
  • archivo/cargar pestaña espacio de trabajo
  • a continuación, busque el archivo TC.RData desde el archivo descomprimido.
  • Lanzamiento Rattle
  • pestaña Data\R Dataset
  • en el menú desplegable busque el nombre TC en la ventana Data Name.
  • Haga clic en "Ejecutar".

Obtenemos la lista de vectores que le interesan.

Gracias. Ahora está claro.

¿Podría explicarnos la esencia de estos vectores: ZZ.75, ZZ.35?
¿Qué son los vectores *.dif1, *.dif2, *.dif3? ¿Incrementos? ¿De qué respecto a qué?
¿Vectores eur, gbp, etc.? - ¿qué son?

Y una pregunta global: ¿por qué se añaden los datos de los indicadores? ¿No es lo mismo que [x, f1(x), f2(x)]? Me refiero a la redundancia. ¿No has probado a suministrar sólo los incrementos de los cierres?

Gracias de antemano por tus respuestas.

 
wmlab:

Gracias. Ahora está claro.

¿Podría explicar la esencia de estos vectores: ZZ.75, ZZ.35?
¿Qué son los vectores *.dif1, *.dif2, *.dif3? ¿Incrementos? ¿De qué respecto a qué?
¿Vectores eur, gbp, etc.? - ¿qué son?

Y una pregunta global - ¿por qué datos añadidos de indicadores? ¿No es lo mismo que [x, f1(x), f2(x)]? Me refiero a la redundancia. ¿No has probado a suministrar sólo los incrementos de los cierres?

Gracias de antemano por sus respuestas.

¿Podría explicarme la esencia de estos vectores: ZZ.75, ZZ.35?

Se trata de ZZ con una distancia mínima de inversión de 75 pips y 35. La variable objetivo TREND se obtiene de ZZ.35. Estas variables no se pueden utilizar en el modelo - mirando hacia el Futuro.

¿Qué son los vectores *.dif1, *.dif2, *.dif3? ¿Incrementos? ¿De qué respecto a qué?

El incremento respecto a la barra anterior, la barra anterior (-2) y (-3). La idea es tener en cuenta las tendencias.

Vectores eur, gbp, etc. - ¿qué son?

Los cocientes eurusd, gbpusd son los primeros símbolos.

Me refiero a la redundancia. ¿Has probado a introducir sólo los incrementos de los cierres?

He probado muchas cosas. El artículo es una demostración de posibilidades y al mismo tiempo redundancia, para que cada uno pueda seleccionar por sus propias ideas y probar. La selección se hace muy simple - la variable se marca como Ignorar.

 

¡Enhorabuena por el artículo SanSanych!

Por supuesto en R sería más compacto, pero probablemente deberíamos empezar por ahí primero.

Estoy terminando el artículo sobre el aprendizaje "profundo". Con tus datos intentaremos comparar el resultado.

Suerte

 

He examinado detenidamente el conjunto de datos y no sirve. Hay que descartar las comillas. Es decir, se eliminan las primeras 48 variables. Nos queda un conjunto de datos con 42 variables de entrada y una variable objetivo.

Bueno, allá cada cual, cada cual elige según su gusto, experiencia, etc. Pero hay una observación sobre el modelo. "RandomForest es maravilloso porque no necesita preprocesamiento, ninguno en absoluto. Acepta maravillosamente los datos brutos.

Por lo demás, por supuesto, el artículo es muy útil.

 
vlad1949:

¡Enhorabuena por el artículo SanSanych!

Por supuesto en R sería más compacto, pero probablemente deberíamos empezar por ahí primero.

Estoy terminando el artículo sobre el aprendizaje "profundo". Con tus datos intentaremos comparar el resultado.

Suerte

Sería muy bueno repetir ese hilo tuyo aquí.

Fue un material muy útil.