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

 
Aleksey Nikolayev:


Lo único - para luchar contra los gaps y las salidas de las cotizaciones, es mejor tomar close[i]-open[i], en lugar declose[i]-close[i-1], como incrementos.


Entiendo, pero ¿cómo ayuda con las lagunas de las cotizaciones? ¿No es mejor considerarlas para el H1?

"es mejor tomar close[i]-open[i] como un incremento" - ¿quizás sea mejor un cambio porcentual?
 
Aleksey Nikolayev:

No es difícil, seguro que puedes hacerlo si quieres. Lo único es que para evitar huecos y salidas de cotizaciones es mejor tomar close[i]-open[i], en lugar declose[i]-close[i-1] como incrementos.

close[i-1] y open[i] difieren en 1 tick. ¿Qué sentido tiene luchar con la primera garrapata?

 
Evgeniy Chumakov:


Ya veo lo de los huecos, pero ¿cómo ayuda con la caída de las cotizaciones? ¿No es mejor calcular para H1?

Cuando una barra = un incremento, no es un problema si se pierden algunas barras. Si el incremento se cuenta por dos barras, habrá muchos picos.

Evgeniy Chumakov:


"Si queremos utilizar close[i]-open[i] como incrementos" - ¿tal vez sería mejor utilizar el cambio porcentual?

Sí, así está mejor. También puede tomar incrementos de logaritmos.

 
elibrarius:

close[i-1] y open[i] difieren en 1 tick. ¿Qué sentido tiene luchar con 1 garrapata?

Prácticamente garantiza la eliminación de lagunas y saltos en la historia.

 
Aleksey Nikolayev:

Casi garantiza la eliminación de las lagunas y los vacíos de la historia.

Puede producirse un vacío en cualquier otro momento dentro de un minuto. Las barras que faltan deben rellenarse a partir del último precio conocido de la última barra conocida.
 
elibrarius:
Puede producirse una brecha en cualquier otro tick dentro de un minuto. Las barras que faltan deben rellenarse a partir del último precio conocido de la última barra conocida.

Los huecos distribuidos uniformemente entre las barras no dan mucho miedo. Los desagradables son los que se agolpan en un momento determinado, que suelen ser huecos entre barras.

Los compases "perdidos" es un concepto ambiguo, puede tratarse de un día festivo, una sesión corta, etc. o simplemente de compases perdidos por razones completamente confusas. He decidido que es más fácil calcular los incrementos de una barra que mostrar a Sherlock Holmes lidiando con varias barras de un minuto del período de diez años.

 
elibrarius:

Hago lo siguiente:

1) Creo un array de índices de cadenas con una longitud igual al número de cadenas, lo relleno con valores de 0 a N cadenas

2) Barajo esta matriz

Donde RandomInteger() es cualquier variante del

3) luego tomo todos los valores de estos índices en un bucle y por él desde el array principal la cadena requerida, resulta ser pseudo-aleatoria después de mezclar los índices

Probé este algoritmo con la función aleatoria, que se dio antes. Resulta que hay un desplazamiento a la primera mitad de la matriz numérica, si se toman los primeros n valores de la matriz resultante y luego se filtra la matriz en orden. Y se observan los grupos en fila, lo que tampoco es bueno, pero mejor que nada.

 
Aleksey Vyazmikin:

Probé este algoritmo con la función aleatoria que se dio antes. Resulta que hay un desplazamiento de la primera mitad de la serie de números, si se toman los primeros n valores de la matriz resultante y luego se filtra la matriz en orden. Y se observan los grupos en fila, que tampoco es gran cosa, pero mejor que nada.

Extraño. Me pregunto cómo se puede explicar.
Tengo otra versión comentada, pero no me ha gustado por razones lógicas:

        for (int r = 0; r<rows; r++) {//перебор train участка
                //j = r + RandomInteger(rows - r);//номер строки с которой поменять  
                j = RandomInteger(rows);//номер строки с которой поменять - так равномернее. Формулой выше меняются последние с последними. А тут с любыми.
                c = idx[r]; idx[r] = idx[j]; idx[j] = c;
        }

¿Qué RandomInteger() usas? Yo uso XOR.

 
elibrarius:

close[i-1] y open[i] difieren en 1 tick. ¿Qué sentido tiene luchar con 1 garrapata?

Te equivocas) no difieren en 1 tick, estos valores serán iguales. Sólo en el caso de una brecha habrá una diferencia. Sí, close[i-1] no funcionará)) para una nueva barra
 
Alexander Alekseyevich:
Te equivocas) no difieren en 1 tick, estos valores serán iguales.

https://www.mql5.com/ru/docs/runtime/testing

Una nueva barra de minutos se abre no cuando comienza un nuevo minuto (el número de segundos pasa a ser 0), sino cuando llega un tick - un cambio de precio de al menos un punto.

Документация по MQL5: Программы MQL5 / Тестирование торговых стратегий
Документация по MQL5: Программы MQL5 / Тестирование торговых стратегий
  • www.mql5.com
Идея автоматической торговли привлекательна тем, что торговый робот может без устали работать 24 часа в сутки и семь дней в неделю. Робот не знает усталости, сомнений и страха, ему не ведомы психологические проблемы. Достаточно четко формализовать торговые правила и реализовать их в виде алгоритмов, и робот готов неустанно трудиться. Но прежде...
Razón de la queja: