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

 
Vizard_:
"Gopher" no he podido encontrarlo, lo he fastidiado)) Y para qué sirven todos estos ejercicios... cualquiera que sea hippie lo entenderá.
Para ser honesto no lo entiendo.........
 
mytarmailS:

pero eso no es correcto, un buen predictor es el que explica la variable objetivo, no el que se explica a sí mismo, no sé cómo se puede saber la calidad de un predictor sin compararlo con la variable objetivo, no lo entiendo....

Depende del extremo del problema que se aborde. Inicialmente, no conocemos los predictores deseados, y no conocemos la variable objetivo. Y para operar con éxito, necesitamos conocer ambas cosas. Es imposible conocer ambas cosas al mismo tiempo, por eso debemos seleccionar los predictores en función de nuestra variable objetivo. O puede reunir buenos predictores y luego utilizar su experiencia para predecir lo que puede ocurrir con ellos.

Primera aproximación. Yo, por ejemplo, tengo una variable objetivo: subida/bajada del precio en la siguiente barra. Lo cogí no porque sea una buena variable objetivo sino porque tenía que empezar por algún sitio, así que cogí algo más fácil :) A continuación, tomé un montón de indicadores y ahora estoy tratando de enseñar el modelo en "un montón de indicadores" para reconocer "subida / bajada". Me alegro de que haya funcionado al menos un poco, porque no hay garantía de que la variable objetivo elegida al azar sea predecible y no hay garantía de que los predictores tengan suficiente información para hacer una predicción. En este caso, ForeCA sólo sirve para preprocesar los datos, para llevarlos a una forma en la que sea más fácil que la red neuronal aprenda. Por ejemplo, se pueden normalizar los datos en su lugar, o se pueden tomar los deltas de los valores adyacentes, o se pueden hacer componentes PCA a partir de ellos, etc. Todo esto facilita el trabajo de neuronka, es más fácil entrenar con esos datos preprocesados. Lo que ForeCA debe hacer en este caso es agrupar clases similares de alguna manera. Pero no es seguro que ForeCA ayude en esto - depende de su suerte y de los predictores disponibles y de la variable objetivo.
En resumen, en este caso la variable objetivo se empareja con un modelo y unos predictores que, todos juntos, tienen milagrosamente al menos cierto poder predictivo.

Otro enfoque. Tomamos un montón de predictores, los clasificamos según su "fiabilidad" y eliminamos los irrelevantes. Por ejemplo, si el indicador tiene un valor constante todo el tiempo, es obviamente inútil. Si el predictor se generó con la función random(), tampoco servirá. Es decir, es importante dejar los predictores que realmente poseen alguna información. No sé mucho al respecto, lo único que recuerdo - cómo encontrar la importancia del predictor para el componente PCA (parámetro pruneSig en caret), parece ser una estimación adecuada. En este caso, ForeCA debería separar las moscas de las chuletas y ayudar a encontrar predictores fiables. Cómo saben todos estos paquetes lo que es importante y lo que no lo es es un misterio, pero encuentran predictores ruidosos y aleatorios y los rechazan. Un predictor de calidad será aquel que no sea aleatorio ni ruidoso.
A continuación, al disponer de un conjunto de predictores de calidad, hay que probarlos para predecir algo. Por ejemplo, se puede construir un mapa de kohonen y encontrar la dependencia del comportamiento del mercado en la clase en el mapa de kohonen. Saque conclusiones sobre las clases con las que debe operar y las que no, y construya así una nueva variable objetivo para usted. La variable objetivo tendrá una alta predictibilidad con los predictores ya que está construida sobre ellos, todo suena bien, pero creo que habrá muchos problemas y trampas propias.

 
Dr.Trader:

Depende del extremo del problema que se aborde. Inicialmente, no conocemos los predictores deseados, y no conocemos la variable objetivo. Y para operar con éxito, necesitamos conocer ambas cosas. Es imposible conocer ambas cosas al mismo tiempo, por eso debemos seleccionar los predictores en función de nuestra variable objetivo. O bien seleccionar unos predictores de buena calidad y luego ver lo que se puede predecir con ellos.

Primera aproximación.....

Otro enfoque....

Los enfoques son varios, pero ¿vamos a comerciar?

¿Qué vamos a cambiar?

¿Una tendencia?

¿Desviación?

¿Nivel?

Tenga en cuenta que sólo tenemos dos órdenes: COMPRA/VENTA. ¿O hay una determinada variedad de ellos? Entrar en COMPRA / Salir en COMPRA / Entrar en VENTA / Salir en VENTA

Son variantes de la variable objetivo.

Siguiente.

¿Podemos formar una variable objetivo para lo que comerciamos?

¿O hay algún desfase entre el objetivo y la idea del sistema de comercio, que es un error?

Etc.

Pero tenemos que empezar con lo que estamos negociando.

 
Mihail Marchukajtes:
hay que multiplicar la variable v2 por su retraso y dividirla por v3 .
Muestra 10 líneas con las siguientes columnas (v2; Lag1_v2; v3; v11 (objetivo) y una columna con la fórmula v2*Lag1_v2/v3)

v2;Lag1_v2;v3;v11(цель);v2*Lag1_v2/v3

No es necesario descargar el archivo con el fichero.
 
Mihail Marchukajtes:
lag no ve la red.
recortas las líneas vacías y las pegas donde quieras...
 

SanSanych Fomenko:

Saber exactamente con qué comerciar. Hay muchas opciones, pero puedes volver a elegir algo imprevisible y dedicar mucho tiempo a aprender sobre la imprevisibilidad. Es necesario elegir algo que sea más fácil de predecir con los predictores disponibles. Hay que pensar mucho en cómo hacerlo.

Hice un código de prueba para la predicción con ForeCA. Necesito una tabla trainData, con la variable objetivo en la última columna. Se dividirá por filas en 2 partes para la formación/validación (se dividirá estrictamente en el centro). El modelo predictivo es lm, por alguna razón siempre se usa con PCA en los ejemplos, creo que aquí también funcionará. Puede sustituir la función lm(...) en el código por otro modelo.
ForeCA requiere datos en matriz con rango completo después de cov(). He adjuntado un código que comprueba esto de antemano, y elimina las columnas con bajo valor propio. Todo está en un bucle, y tarda mucho en ejecutarse, y probablemente podría haberse simplificado. Tengo parte de los predictores eliminados de esta manera, no sé si es bueno o no.
Hasta ahora no he conseguido ningún resultado, el paquete se comió 5 gigas de desesperación y durante mucho tiempo me pregunté, pruébalo, tal vez le dé buena predicción a alguien.

Archivos adjuntos:
 
Vizard_:
Muestra 10 filas con estas columnas (v2;Lag1_v2;v3;v11(objetivo) y una columna con la fórmula v2*Lag1_v2/v3)

v2;Lag1_v2;v3;v11(цель);v2*Lag1_v2/v3

No es necesario descargar el archivo con el fichero.
Para ser honesto, no veo el punto de este juego.... Construir la variable de salida basada en la transformación no astuta de los datos de entrada, no tiene sentido. Si el CT funciona bien, no es necesario utilizar la red. Otra cosa que me hace pensar, es si el optimizador analizará un archivo de entrenamiento no línea por línea, sino como un todo. Buscando la correlación no sólo entre las columnas, sino también en los valores pasados de cualquier columna. El resultado puede ser bastante interesante. Además de la normalización de los datos, también habrá un preprocesamiento de los mismos, produciendo no sólo una fórmula de normalización, sino también una fórmula de preprocesamiento, como por ejemplo Antes de la normalización, v2 debe multiplicarse por lag1 v5, etc. Entonces creo que la búsqueda será mucho más interesante. O más bien el preprocesamiento nos da fórmulas de conversión, una especie de preoptimizador. A continuación, aplicamos estas fórmulas a los datos, obteniendo otro conjunto de datos y lo introducimos en el optimizador para construir el modelo.... Qué tal esto para ti.....???? Algún tipo de búsqueda multidimensional de dependencias, no sólo entre columnas, sino también entre relaciones con valores pasados. ¿Puede alguien decirme cómo organizar esto en MKUL???? Yo lo probaría :-)
 
Por ejemplo, antes de construir un modelo, optimizo cada entrada para la salida utilizando el optimizador MKUL. Es decir, si uso una varita, antes de construir un modelo, selecciono los parámetros de la varita en el intervalo de entrenamiento, para que dé el mayor número posible de señales rentables, y así con cada entrada, luego lo pongo todo en el optimizador....iiiand.... el modelo se vuelve más estable. El modelo es estable, pero alrededor del 50% de la generalización o un poco más, porque cada uno de los predicados durante la optimización en MKUL da en un caso raro el número de operaciones rentables superior al 50%. Pero lo hago con cada entrada individualmente y principalmente se selecciona el parámetro de promediación y el lag en una sección determinada, y no hay relación con otras entradas. Supongamos que buscamos esta correlación con el optimizador, como escribí anteriormente. A continuación, obtenga los parámetros de relación entre los datos. Para aplicarlos a los datos y luego meterlos todos en el optimizador. Creo que entonces tendrá sentido y el modelo adquirirá el nivel de generalización adecuado. Pero no estoy seguro de cómo organizarlo... Estoy pensando... Estoy abierto a todas las ideas... ...... Creo que una simple red neuronal en MKUL puede ayudar, que puede construir tal curva, que describiría al máximo todas las señales en el conjunto de prueba correctamente, por lo tanto, ayudar a construir un buen modelo en Reshetov optimizador básico (es una cuestión de quién se sienta en qué). Hay algunas mallas simples en MKUL????
 
Dr.Trader:

Realizado un código de prueba para la previsión con ForeCA.....

Yo también... Decidí hacer uno rápido, tomé iris, añadí 10 predictores con ruido

y sólo entrené Forest, luego tomé la misma fecha y usando foreca la reduje a 4 predictores y entrené Forest de nuevo

resultado:

solo forrest en los nuevos datos

Prediction   setosa versicolor virginica

  setosa         16          0         0
  versicolor      0         15         1
  virginica       0          0        18

Overall Statistics

Accuracy : 0.98    

forrest ni siquiera notó el ruido en los datos ...

y foreca es peor

Prediction   setosa versicolor virginica
  setosa          6          6         4
  versicolor      5         10         1
  virginica       8          5         5

Overall Statistics
                                          
               Accuracy : 0.42 
Archivos adjuntos:
code.txt  1 kb
 
mytarmailS:

Yo también... Decidí hacer un arreglo rápido, añadí 10 predictores con ruido

y sólo entrenó a Forest, luego tomó la misma fecha con ruido y usando foreCA redujo la dimensión a 4 predictores y entrenó a Forest de nuevo en ellos

resultado:

solo forrest en los nuevos datos

forrest ni siquiera notó el ruido en los datos ...

y con foreca las cosas son peores.

La verdad es buena, pero la felicidad es mejor.

Verdad = 42%, oh-tan-positivo para la depo.

Aunque es posible vivir felizmente, pero con cero depo