Regresión Bayesiana - ¿Alguien ha hecho un EA utilizando este algoritmo? - página 45
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
http://www.quantalgos.ru/?p=1898 quizás el autor de este tema se beneficie...
Generador de números pseudoaleatorios. (PRNG)
Utilizando el método de coordenadas polares sugerido anteriormente, transformé МТ4 PRNG en PRNG con un valor aleatorio normalmente distribuido.
Para comprobar visualmente la corrección del código, he proyectado los resultados en el gráfico de precios.
Esto es lo que muestra el PRNG básico después de 1000 llamadas. Las áreas de los rectángulos del histograma son proporcionales al número de números aleatorios generados que encajan en ese rango de la escala vertical.
Ahora, convertir esos miles de aciertos utilizando las fórmulas del método da como resultado
una campana perfectamente adecuada.
Utilizando el método de coordenadas polares propuesto anteriormente, convertimos el PRNG de MT4 en un PRNG con una variable aleatoria normalmente distribuida.
A un intento de aplicar la fórmula bayesiana. Otra vez.
Tarea. Utilizando el teorema de Bayes, determine qué valor de una garrapata que aún no ha llegado es más probable.
Dada. Series temporales x,y.
y=ax+b Una línea desde el último tick hasta el futuro.
P(a,b|x,y)=P(x,y|a,b)*P(a)*P(b)/P(x,y); (1) Fórmula de Bayes.
P(a,b|x,y)es la probabilidad de que los coeficientes a y b correspondan a las coordenadas x e y de un futuro tic.
Necesitamos encontrar tales a y b que esta probabilidad (más correctamente dichamedida de probabilidad) sea máxima.
P(x,y|a,b) - tomemos el histograma real de la distribución de ticks por niveles de precios como función de probabilidad. La función está definida por una matriz de dos dimensiones: rango de precios - probabilidad, relación porcentual de ticks que caen dentro de este rango con respecto al número total de ticks.
P(b) - la distribución normal de los incrementos se toma como una probabilidad a priori b. Se utiliza el PRNG con el valor distribuido normalmente.
El coeficiente P(a) determina la pendiente de la recta y el signo del incremento previsto. De momento estoy pensando en utilizar el código de regresión lineal que he publicado antes. Es decir, tomar la probabilidad del coeficiente a encontrado allí como la unidad. Y en (1) sustituir la probabilidad P(a) calculada teniendo en cuenta la diferencia de esta a y la calculada para la y dada.
¿Quizás tengas alguna idea sobre cómo se comporta el signo de los incrementos de cada tick?
Definitivamente, no es necesario poner garrapatas en la fórmula. Cualquiera puede generar esas garrapatas en FORTS, lo que se hace todos los días.
El problema no está en los métodos matemáticos, más bien. Pero en la adecuación de la elección de los datos a aplicar.
¿Por qué tomar tics artificiales? Se puede aprender a predecirlos sin necesidad de matemáticas superiores. Pregúntale a MQ cómo.
Así, la función de probabilidad P(x,y|a,b) en (1) es la distribución real de los ticks reales (volúmenes de ticks). Es extremadamente raro que sea normal. Y P(a) y P(b) son probabilidades correctoras, por leyes tomadas como probabilidades a priori.
¿Qué pedir a MQ? ¿El principio de la modelización de los ticks en el probador de estrategias? Sí, debe haber algún principio. Tal vez conociéndolo, podamos crear "griales" de probadores. Pero hasta ahora no puedo desarrollarlo en modo de prueba, ya que no tengo ni historial de ticks, ni práctica para trabajar con él. Todo será en tiempo real.
Me interesan sus palabras:
"En mis experimentos no hago regresión y valores de precios (o sus transformaciones) en absoluto, predigo el signo, pero se podría decir que esto también forma parte de la información de precios.
Mis errores son así:
0 1
0 0,58 0,42
1 0,43 0,57
O más o menos como originalmente:
1 - correcto, 0 - error: 1, 1, 1, 0, 0, 1 , 1, 1, 0, 1
Y la distribución de probabilidad resultante debe ser lo más diferente posible de 0,5 / 0,5. Si obtenemos la inseparabilidad mutua de tales resultados, llegaremos a la distribución binomial, y hay muchas, muchas fórmulas para ella y pruebas estadísticas" Fin de la cita.
¿Qué es lo que realmente rige la distribución binomial en el caso de la predicción de un signo? ¿Cuál es la independencia mutua de los resultados? Gracias.
Así, la función de probabilidad P(x,y|a,b) en (1) es la distribución real de los ticks reales (volúmenes de ticks). Es muy raro que sea normal. Y P(a) y P(b) son probabilidades correctoras, por leyes tomadas como probabilidades a priori.
¿Qué pedir a MQ? ¿El principio de la modelización de los ticks en el probador de estrategias? Sí, debe haber algún principio. Tal vez conociéndolo, podamos crear "griales" de probadores. Pero no puedo desarrollarlo en modo de prueba, ya que no tengo ni historial de ticks, ni práctica para trabajar con él. Todo será en tiempo real.
Me interesan sus palabras:
"En mis experimentos no hago regresión y valores de precios (o sus transformaciones) en absoluto, predigo el signo, pero se podría decir que esto también forma parte de la información de precios.
Mis errores son así:
0 1
0 0,58 0,42
1 0,43 0,57
O más o menos como originalmente:
1 - correcto, 0 - error: 1, 1, 1, 0, 0, 0, 1 , 1, 1, 0, 1
Y la distribución de probabilidad resultante debe ser lo más diferente posible de 0,5 / 0,5. Si obtenemos la independencia mutua de tales resultados, llegamos a la distribución binomial, y para ella hay muchas, muchas fórmulas y pruebas estadísticas" Fin de la cita.
¿Realmente rige la distribución binomial en el caso de la predicción de un signo? ¿Cuál es la independencia mutua de los resultados? Gracias.
Usar los ticks para la predicción es peligroso en mi opinión, y el modelo debería ser configurado para cada broker por separado.
Si tomamos los ticks del probador de estrategias habrá una seria diferencia con los reales, porque los ticks en el probador son generados por una plantilla a partir de valores ohlc de barras de minutos(https://www.mql5.com/en/articles/75). Por eso nadie prueba a los revendedores, sino que los pone inmediatamente en una cuenta real y los optimiza por el camino.
En cuanto a los ticks reales, pueden variar mucho de un corredor a otro. Por ejemplo en este hilo https://www.mql5.com/en/forum/64228/page2#comment_1960403 (https://c.mql5.com/3/78/tbd.png ) se adjunta una captura de pantalla, esta es la distribución de los incrementos de ticks en el mismo marco de tiempo en dos corredores diferentes. No recuerdo la duración del intervalo, algo de un día a una semana. Generalmente coinciden, pero uno de ellos tiene dos veces más ticks sin cambio de precio. Si se comparan más de diez brokers creo que puede haber grandes diferencias, sobre todo en el caso de los "candelabros sorpresa".
Como alternativa, se pueden eliminar todas las garrapatas sin modificar el precio. Entonces hay un matiz que es que el evento OnTick() puede ser omitido en el EA y un nuevo precio con el anterior será enviado a la terminal. Es decir, no 1,23456 -> 1,23490 -> 1,23410, sino simplemente 1,23456 -> 1,23410. Y en lugar de dos cambios, tu modelo tendrá uno.
Resultará que el intervalo de tiempo entre dos ticks vecinos no está definido y habrá vacíos de datos, creo que eso es malo.
Todavía vale la pena probar, es necesario utilizar MT4 y el programa Tickstory Lite (hay una versión gratuita) para insertar ticks reales en el probador (se toman del corredor Dukascopy). Sólo se debe utilizar el terminal MT4 con una build inferior a 950, de lo contrario la versión gratuita de tickstory hará datos de prueba con spread cero.
Intenté algo con ticks, como encontrar un promedio y comprar y vender si el precio actual se desvía fuertemente del promedio. Si había algún beneficio, entonces el spread se lo estaba comiendo todo y me he ido a plazos más grandes.