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

 
elibrarius:

Podría ser sensato...

Pero nos decían que todo se probaba y justificaba en la universidad, y también nos hacían experimentos en el laboratorio. Y no se nos dijo "Tómenlo como una verdad, que no requiere pruebas".

Estoy de acuerdo ) pero creo que ha cubierto toda la teoría en otros hilos, sólo hay que releer todo

El foro es un medio de comunicación muy incómodo, para mí... hay mucha información, el 90% de ella se olvida y el resto se pierde o se lee mal... de ahí que haya una pequeña ráfaga de malentendidos entre los participantes

 
Maxim Dmitrievsky:

Estoy de acuerdo con esto ) pero parece que ha descrito la teoría en otros hilos, sólo hay que releer todo

El foro es un medio de comunicación muy pobre, para mí... Demasiada información, el 90% se olvida, el resto se pierde o se lee mal... de ahí que haya un ligero rastro de incomprensión entre los participantes

No lo comprimo/descomprimo, pero necesito más tiempo). No tiene vuelta atrás.
Si tienes que poner cosas importantes en un blog o en un artículo (pero tienen que ser aceptadas), es más fácil hacer un blog. De lo contrario, te olvidas de todo lo que querías decir y de los demás, y olvidas tus propios pensamientos con el tiempo. Y luego lanzar el enlace al blog en el foro y discutirlo...
 
Aleksey Terentev:

Por el momento, existe un modelo estable. Todavía hay que trabajar en él, pero está ocupado con otras tareas.

Entrada = precio + 13, 26 yema;

Preprocesamiento, salida = sigmoide (máx., mín., cierre), delta (apertura-cierre), derivada (máx., mín., cierre), logaritmo de la derivada (máx., mín., cierre), detrend (cierre-eme13, cierre-eme26), yema(13, 26), derivada yema(13, 26); Convertir el conjunto de datos en series temporales (1 vela + 5 último). Total 16 x 6 = 96 parámetros.

Arquitectura:
BatchNormalization(96);
GRU(96, L2, Dropout=0.5, 'elu');
GRU(64, L2, Dropout=0.5, 'elu');
BatchNormalization(64, Dropout=0.3);
Dense(32, Dropout=0.3, 'elu');
Dense(16, 'elu');
Dense(8, 'elu');
Dense(3, 'softmax');
Optimizador=Nadam;
Pérdida=Entropía cruzada categórica;

BouncedMA señala la salida de una vela por delante (arriba en la rama);

Estimaciones: pérdida ~0,7-0,8; precisión ~0,55;
Pero estas estimaciones del modelo no hablan de la calidad de sus señales. Son más bajos, debido a que las señales son de formación = 1,0, 0,95, 0,0, -0,95, -1,0, Y la previsión de la clase de compra/venta fluctúa ~abs(0,45, 0,7).
Además, de un conjunto de datos de 5000 líneas, el entrenamiento se realiza en 0,8 partes, lo que significa que el modelo ni siquiera ve los últimos datos de cotización (~1000 líneas). La predicción se hace sobre las últimas 100 velas.

Como se puede ver, el entrenamiento se puede detener en ~45 épocas.


Código, Indicador.

Así es como deberían ser los mensajes en este hilo. Datos, códigos y resultados reproducibles. Esto puede ser discutido, complementado y comparado. Todo lo demás son tonterías sin valor.

Bien hecho. Mostraré el mismo modelo en R/MT un poco más tarde, compararemos tanto el volumen de código como la calidad. Yo también estoy bastante ocupado en este momento. Pero definitivamente volveré a tratar este tema.

Buena suerte

 
Alexander_K2:

Una vez más.

Para la previsión, es crucial, increíblemente importante, conocer las leyes de distribución de los valores previstos.

No los conoce por los precios, ni por los incrementos, ni por el tiempo entre cotizaciones. Además, ni siquiera se intenta encajarlas en una u otra forma. Entonces, ¿cómo se puede predecir? Estos infames archivos de garrapatas ya han surcado mil millones de comerciantes. Resultado = 0.

He trabajado poco con esto y estoy en negro todas las semanas. Ayer prácticamente agarré al Grial por las orejas (y resultó ser mi gato de Schrodinger...)

 

Le pido al Hombre con mayúsculas que no sea perezoso y presente el modelo de su NS de forma secuencial:

1. entrada - incrementos sin importar el tiempo entre ellos

2. Entrada - incrementos con tiempo exponencial entre citas.

3. para diferentes volúmenes de muestra

Formalizarlo como artículo (no por nada).

 
Maxim Dmitrievsky:

Sí, sí, estoy pensando en el artículo, pero todavía no tengo tiempo.

 
Alexander_K2:

1. entrada - incrementos sin importar el tiempo entre ellos

2. entrada - incrementos con tiempo exponencial entre citas.

for(int i=start;i<rates_total;i++) 
    {
     Buffer1[i]=close[i]/close[i-1];
     Buffer2[i]=close[i]/close[i-3];
     Buffer3[i]=close[i]/close[i-7];
     Buffer4[i]=close[i]/close[i-20];
     Buffer5[i]=close[i]/close[i-53];
     Buffer6[i]=close[i]/close[i-143];
     Buffer7[i]=close[i]/close[i-387];
     Buffer8[i]=close[i]/close[i-1046];
    }
¿se puede alimentar de esta forma? o ¿se necesita una diferencia?
 
Maxim Dmitrievsky:
¿se puede alimentar de esta forma?

Tengo un generador de números exponenciales que establece el tiempo para leer la cita

 
Alexander_K2:

Tengo un generador de números exponenciales que establece el tiempo para leer la cita

Aquí pasa lo mismo, pero los datos se toman de cualquier TF, no por ticks. ¿Quizá los ticks no tienen sentido?

 
Maxim Dmitrievsky:

Aquí pasa exactamente lo mismo, solo que los datos se toman de un TF arbitrario, no por ticks... quizás los ticks no tienen sentido... porque a cualquier escala debería salir la misma distribución

Tal vez no. Ya estoy acostumbrado a ellos simplemente.

Lo importante es que el artículo tenga una metodología para poder seguir el hilo de la experimentación a lo largo del tiempo. Y esto no se perderá: será algo de lo que se hablará y quedará como recuerdo.