Comparación de dos gráficos de cotización con distorsiones no lineales en el eje X - página 11
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
El sistema se basa en la suposición de que hay patrones que se repiten en las citas. En la página 9 de este hilo describí el método para encontrar estos patrones (codificación desatada). Hay otros métodos. También puede comparar los precios utilizando el método del vecino más cercano. Lea mis posts anteriores. No quiero repetirme.
Para evitar abrir un hilo aparte, he decidido describir aquí los resultados de mi investigación sobre los patrones. Quizá le ahorre tiempo a alguien y le dé nuevas ideas.
En 2006, cuando me interesé por primera vez en Forex, mi primera idea fue comparar las últimas N barras (patrón actual) con todos los patrones anteriores de la misma cotización, utilizando el coeficiente de correlación como medida de similitud. Se trata del mismo método del vecino más cercano (SN). La ventaja del coeficiente de correlación sobre la longitud euclidiana es que tiene en cuenta la distorsión del eje de precios. He construido un Asesor Experto utilizando este método que ha mostrado una extraordinaria rentabilidad durante 2-3 meses de pruebas a futuro (10к en 10М o algo similar), pero luego fue perdiendo 2-3 meses. Y así la secuencia: una gran ganancia, luego una pérdida total. Volví varias veces a este método BS, hice comités de vecinos, etc., pero el resultado fue el mismo. Al final me decepcioné y puse el código del método BS en la base del 5.
En 2007-2008 me interesé por la PNN, en particular por la GRNN. La esencia es la misma que la de BS, pero en lugar de seleccionar algunos (o pocos, como en el comité) vecinos similares, se seleccionan automáticamente todos los patrones anteriores y su influencia en la predicción se pondera mediante una función exponencial como exp(-medida_diferencia). Así, las partes más similares de la historia tienen un peso exponencialmente mayor. Puede tomar los precios de los patrones (menos la media) y calcular la distancia euclidiana como medida de la diferencia, o tomar la diferencia en las lecturas de los vectores de algunos índices. La precisión de la predicción fue ligeramente superior a la del método BS, un 52% en lugar de un 50,5% (no recuerdo exactamente).
Mi última idea fue utilizar los métodos que utiliza nuestro cerebro para transformar la información. He descrito estos métodos en detalle en el punto 5. La esencia de uno de ellos es encontrar patrones (o funciones base) en los que se puedan descomponer los precios actuales. Como
Precio[i] = suma (a[k]*función[i][k], k=1...L) i=1...N
Por supuesto, podemos tomar las funciones trigonométricas en lugar de buscar las bases y utilizar la transformada de Fourier. Pero es más perspectivo encontrar las funciones base en la historia utilizando el método de codificación enrarecida. La esencia de este método consiste en el ajuste del mencionado modelo lineal en los precios en varios intervalos de historia de longitud N por parte de la CNA de tal manera que el error especificado se logre en el menor número de coeficientes no nulos a[k], k=1...L. Lo ideal es que cada vector de precios históricos contenga sólo una función base (o patrón). En cada paso se optimizan los coeficientes y las propias funciones. Hay muchos parámetros que no se conocen de antemano. Por ejemplo, la longitud del patrón N, el número de funciones base en el diccionario L, el número de coeficientes no nulos en nuestra descomposición (selecciono 3, ya que cada segmento de precio está formado por la cola del patrón antiguo, el patrón actual y el comienzo del nuevo patrón). Es importante que N*L sea mucho menos que la longitud total de la historia, de lo contrario el algoritmo encontrará patrones iguales a los propios precios pasados y entonces tendremos algo parecido al método de los vecinos más cercanos. Por ejemplo, el diccionario de 64 patrones de 64 barras cada uno para el EURUSD H1 entrenado utilizando el método de codificación enrarecida aplicado a la historia de 1999-2010 (74 barras) tendrá el siguiente aspecto
He observado la siguiente regularidad: cuanto más largo es el patrón y mayor es el número de ellos en el diccionario, mayor es la ganancia en el bactest, lo que puede explicarse por el sobreentrenamiento. Pero en cualquier caso, con diferentes N y L, la prueba de avance se ve charlando alrededor de la ganancia cero. Empieza a frustrarse con los patrones. Aparentemente no son constantes en forex, o en otras palabras, forex no tiene memoria para los patrones - se crean nuevos cada vez.
¿Tiene alguna experiencia con la Red Estatal Eco ? http://www.scholarpedia.org/article/Echo_state_network
¿Tiene alguna experiencia con la Red Estatal Eco? https://www.mql5.com/go? link=http://www.scholarpedia.org/article/Echo_state_network
Pregunta a TheXpert . Tiene experiencia.
Busqué en Google la correlación de señales binarias, parecía más fácil XOR y contar el número 1 en el resultado
has cogido 6 rodillas ZZ, ese es el problema: no sé cuántas barras (uso barras con fractales, de 8 a 16) usar para el análisis
La suposición de que el mercado contiene patrones o regularidades es correcta, pero estas regularidades aparecen o no con una periodicidad aparente. Es decir, el análisis técnico funciona, pero nadie puede decir en qué momento en el tiempo. Al parecer, la búsqueda y el análisis de los patrones es similar a la tarea de optimización de los expertos de los indicadores, si es así, resulta que perdemos nuestro tiempo - es más fácil escribir un experto de auto-optimización que elegiría la selección de indicadores (estrategias) de acuerdo con la historia actual
He querido investigar un poco sobre el euro, pero hasta ahora no he encontrado nada, ¿será que los cruces tienen más regularidades?
Claro que lo he leído, eso es lo que digo.
Entonces no entiendo su pregunta: "No he podido encontrar ninguna justificación para que su sistema funcione". Justificación de qué:
1. ¿justificación de la suposición de que hay patrones que se repiten? O
2. ¿la razón de ser del método de codificación disociada para encontrar estos patrones?
3. ¿O una justificación para otra cosa?
Busqué en Google la correlación de señales binarias, parecía más fácil XOR y contar el número 1 en el resultado
tomaste 6 rodillas de ZZ, ese es el problema: no sabes cuántas barras (yo uso barras con fractales, de 8 a 16) usar para el análisis
La suposición de que el mercado contiene patrones o regularidades es correcta, pero estas regularidades aparecen o no con una periodicidad aparente. Es decir, el análisis técnico en sí mismo funciona, pero nadie puede decir en qué momento del tiempo. Aparentemente, la búsqueda y el análisis de los patrones es similar a la tarea de optimización de los expertos de los indicadores, si es así, resulta que perdemos nuestro tiempo - es más fácil escribir un experto de auto-optimización que elegiría la selección de indicadores (estrategias) de acuerdo con la historia actual
Tengo la idea de buscar el euro, pero nunca lo he encontrado, ¿puede ser que las cruces tengan más regularidades?
6 rodillas arriba y 6 rodillas abajo fueron suficientes en el plazo H1. Juzgue usted mismo. Supongamos que la última rodilla zz es la rodilla arriba. Numeremos las rodillas 1v-6v, 1n-6n. Entonces tenemos esta secuencia de bits:
Bit 1: -1 = 1v < 2v, 1 = 1v > 2v
bit 2: -1 = 1v < 3v, 1 = 1v > 3v
...
Bit 5: -1 = 1v < 6v, 1 = 1v > 6v
bit 6: -1 = 2v < 3v, 1 = 1v > 3v
y así sucesivamente, para todas las rodillas hacia arriba y hacia abajo. Un total de 30 bits. El número de patrones que se pueden describir con 30 bits = 2^30. Pero no todos los bits son importantes. Por ejemplo, comparar la rodilla 1v más reciente con las rodillas 4v, 5v y 6v no es importante en la mayoría de los casos. Pero no se puede determinar de antemano qué partes son importantes y cuáles no. Hay que optimizar por historia para que cada patrón se describa con el menor número posible de bits no nulos ("importantes"). Esto es lo que lleva mucho tiempo. Añadir más rodillas a la descripción de un patrón conduce a un diccionario de patrones excesivamente educado y a una falta de generalización.
Comparar patrones de forma "no rígida" y permitir que algunos bits no coincidan significa que esos bits no son importantes para ese patrón y se anulan en mi sistema. Los bits cero no coinciden en absoluto. De nuevo, este sistema de descripción de patrones basado en zz utilizando bits binarios no tiene nada en común con el sistema de búsqueda de patrones basado en la codificación sin carga, del que informé en la página anterior. En ese sistema, las muestras-patrón consistían en los propios precios y se ajustaban al patrón actual del ISC. La similitud del patrón actual con el patrón ejemplar se juzgaba por el error ISC (aunque en realidad era más complicado que eso).
Un total de 30 bits. El número de patrones que se pueden describir con 30 bits = 2^30. Pero no todos los bits son importantes. Por ejemplo, comparar la rodilla 1v más reciente con las rodillas 4v, 5v y 6v no es importante en la mayoría de los casos.
me he vuelto a ocupar de la investigación estadística de patrones, buscando coincidencias en la historia con "patrones de 8 bits", básicamente no importa cómo...
Me he dado cuenta de una característica interesante: hay secuencias repetidas (por mi algoritmo) de barras en el historial, menos del 30% del historial caen bajo la codificación, lo que provoca inmediatamente la conclusión previamente anunciada de que el trading por patrones es difícil de implementar debido a su rara ocurrencia ....
aproximadamente:
Pero si no hay muchos patrones en la historia según mi algoritmo de codificación, entonces más del 60% de la historia no contiene las partes repetibles de la historia en absoluto, y podemos asumir que este 60% de información no aparecerá en el futuro
Es un poco caótico hasta ahora, lo pensaré un poco más
Al principio pensé que sería más lógico utilizar los patrones obtenidos por analogía con las acciones del mercado en el historial, pero decidí mostrar los patrones simplemente con números:
La altura de la barra indicadora es el número del patrón, los vacíos son la ausencia de combinaciones similares en la historia, hasta ahora he llegado a lo siguiente - parece que los patrones son los llamados atractores, de Wiki se ajustan a la descripción: ".... e impar (irregular - a menudo fractal y / o en alguna sección dispuesta como un conjunto de cantor; la dinámica en ellos es generalmente caótica)". De hecho, en la etapa inicial de diseño de un algoritmo de búsqueda de patrones, utilicé los conjuntos de Cantor
SZZ: De momento es un caos, lo pensaré un poco más :)
¿Alguien ha notado que a menudo dos gráficos intradía del EURUSD o del GBPUSD son similares? No siempre, por supuesto, pero a menudo el patrón de ayer se repite sorprendentemente hoy, sobre el que se puede intentar sacar provecho. Pero...
Los picos y valles, aunque repiten el patrón, no coinciden en el tiempo. Por ejemplo, la bajada de ayer a mediodía comenzó a las 14:15 y la de hoy a las 13:00. Hay muchos criterios de similitud: Spearman, Pearson, mínimos cuadrados, pero no conozco ninguno que compare gráficos sujetos a pequeñas distorsiones en el eje X. ¿Alguien conoce algún método de este tipo?
No estás solo en este mundo.
Al principio pensé que sería más lógico utilizar los patrones obtenidos por analogía con las acciones del mercado en la historia, pero decidí simplemente dibujar los patrones por números y resultó así:
La altura de la barra indicadora es el número del patrón, los vacíos son la ausencia de combinaciones similares en la historia, hasta ahora he llegado a lo siguiente - parece que los patrones son los llamados atractores, de Wiki se ajustan a la descripción: ".... e impar (irregular - a menudo fractal y / o en alguna sección dispuesta como un conjunto de cantor; la dinámica en ellos es generalmente caótica)". De hecho, en la fase inicial de diseño de un algoritmo de búsqueda de patrones, utilicé los conjuntos de Cantor
ZS: de momento es un poco caótico, lo pensaré un poco más :)
¿Patrones basados en DTW?