una estrategia de negociación basada en la teoría de las ondas de Elliott - página 259

 
cooper123 19.03.07 15:15

Quizás estoy pensando demasiado, pero no entiendo qué es el cruce de canales.
La imagen es una situación típica, pero no hay cruce de canales como tal.
Hay canales con diferentes escalas. No entiendo cómo se forma una zona de pivote cruzando canales.
Tal vez alguien pueda explicar esta imagen.


Esta es una de las zonas típicas de inversión



Quería mostrar una apariencia de gradiente de probabilidad en esta zona utilizando diferentes colores.

ZZY Primero lo hice en Paint, luego me dio vergüenza y lo rehice en Photoshop
 
<br/ translate="no"> Por lo tanto, si me dan a elegir, elijo MQL. :-))
Aquí o directamente en mi buzón de correo, como desee.
Gracias de antemano.


¡Bien!


El código en sí:

//+------------------------------------------------------------------+
//|                                     Moving Average Batteruot.mq4 |
//|                                                  Code by Neutron |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_color1 Blue
#property indicator_width1 3

#define Pi 3.14159
extern int FLFPeriod=300, K=1;
int Start,i,m;
double Gamma,alfa,b,ci,g,MA[5000],Y[5000]; 

int start()
{
Start=5000;
Gamma= MathPow(0.484,1/(2*K))/MathTan(Pi/(FLFPeriod+1));	 
	 MA[Start+1]=Open[Start+1];
	 MA[Start+2]=Open[Start+2];
	 for (i=0;i<=Start;i++) {Y[i]=Open[i];}

for (m=1;m<=K;m++) 	 {
	 alfa=2*MathSin(Pi/4*(2*m-1)/K);
	 g=1/(Gamma*Gamma+Gamma*alfa+1);
	 b=2*g*(Gamma*Gamma-1);
	 ci=g*(Gamma*Gamma-Gamma*alfa+1); 
	 for (i=Start-2;i>=0;i--) {MA[i]=g*(Y[i]+2*Y[i+1]+Y[i+2])+b*MA[i+1]-ci*MA[i+2];}	 
    for (i=Start-2;i>=0;i--) {Y[i]=MA[i];}
                       }
}

int init()
{
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,Y);
   return(0);
}



Entonces, se pone el indicador en el gráfico y se trabaja. Esto es óptimo (en el sentido de retardo de fase (PD)) filtro de paso bajo (LPF). Puse dos precursores en la configuración:
FLFPeriod - número natural en el rango de 2 a la deseada. Es responsable del ancho de banda del LPF.
K es un número natural en el rango de 1 a la deseada. Esta variable especifica el orden del LPF, que determina la pendiente del mismo. Todos los detalles sobre el funcionamiento y el diseño del LPF figuran en el enlace anterior. Hay que recordar, que en K>2 los armónicos de alta frecuencia se suprimen MUY fuertemente y un mayor aumento de orden no tiene sentido - sólo conduce a un gran aumento de FS y la aparición de pitidos parásitos débilmente amortiguados (fenómeno Gibson) en el punto de partida (en mí es 5000 bares). El promedio se realiza utilizando los precios de apertura.
Por experiencia, he comprobado que, a efectos prácticos, es óptimo seleccionar el K=1, y se alcanza la máxima calidad de suavizado/relación FZ.

 
Muchas gracias Jhonny
Ahora está todo más o menos claro, e incluso parece que también se puede imaginar dónde poner la energía potencial.


Buena suerte.
 
a Neutrón.
Por supuesto que me he perdido muchas cosas en este hilo, pero mirando el código del indicador, y aún antes mirando lo que dibuja este indicador, no entiendo, ¿qué sentido tiene?
En primer lugar, este mouwing tiene el mismo retraso y no tiene ninguna ventaja sobre sus homólogos (está en la tabla).
En segundo lugar, por el código del indicador, no he visto ningún resalte. Ahora voy a revisar las últimas 5 páginas del hilo, tal vez encuentre la respuesta.

PS. El código del indicador está lejos de ser perfecto.
 
a Rosh

Todo depende del objetivo que se persiga con este o aquel LPF. Para mi TS es importante tener el menor SPF posible con la máxima estabilidad en el ancho de banda del filtro. Estas son las cualidades que cumplen los filtros Butterloot (detalles en el enlace anterior). Por ejemplo, aquí hay una captura de pantalla del terminal ejecutando dos muwenges - Butterluot (azul) y la suma deslizante simple (rojo).



Se puede observar que con una mayor PZ, el filtro estándar muestra una menor calidad de suavizado, que se manifiesta en la transmisión de componentes de alta frecuencia (rupturas en el gráfico) y la supresión de los componentes de baja frecuencia del espectro (falta de caídas y colinas promedio). Concretamente en mi TS, esto lleva a más de la mitad de la rentabilidad. Además, cambiando el parámetro K podemos, a nuestro criterio, cambiar la forma del ancho de banda del filtro, acercándolo al ideal o, por el contrario, yendo en la dirección de una simple media móvil. Estoy de acuerdo, ¡es un pomo extra para una mente inquisitiva!

P.D. El código, estoy de acuerdo, no es óptimo, ya que lo he rayado yo mismo :-)
 
Beber coñac y reflexionar sobre la armonía del Caos. :)
 
2 Neutrón
Hola Sergei. Gracias por el código, he comparado las imágenes. Quería publicar el resultado, pero mql4.com tuvo problemas con el editor, y luego cogí un virus y tuve que limpiar y restaurar los datos. Ahora lo estoy publicando.


No sé cómo se corresponde el parámetro FLFPeriod con el periodo normal МА, por eso he tomado el periodo=100 para los tres gráficos. Además, K=1. La línea azul es la MA de Butterloot, la línea roja es la mía, CadetBlue es la MA simple estándar.
Quizás esta foto no te impresione, porque mi curva no es lo suficientemente suave con un FP más pequeño.
Sin embargo, yo no perseguía ese objetivo, sólo "informar de los resultados". :-))
 
No sé cómo se relaciona su parámetro FLFPeriod con un período normal de MA, así que tomé un período de 100 para los tres gráficos. Además, K=1. La línea azul es la MA de Butterloot, la línea roja es la mía, CadetBlue es la MA simple estándar.
Probablemente esta foto no te impresionará, porque con mi FP inferior la curva aún no es lo suficientemente suave.


¡Yura, hola!
Sinceramente, no me propuse vincular el parámetro FLFPeriod con el ancho de banda de FLF, pero no es difícil de hacer.
Sería interesante ver sus resultados, si el parámetro de todos los filtros se iguala para que los FLFs coincidan.

¡¡¡¡A continuación te doy el código del LPF de Butterloot con CERO FZ!!!! :-)))
//+------------------------------------------------------------------+
//|              Moving Average Batteruot Simmetric (ЭТО ШУТКА!).mq4 |
//|                                                  Code by Neutron |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_color1 Red
#property indicator_width1 3

#define Pi 3.14159
extern int FLFPeriod=20, K=4;
int Start,i,m;
double Gamma,alfa,b,ci,g,MA[5000],Y[5000]; 

int start()
{
Start=5000;
Gamma= MathPow(0.484,1/(2*K))/MathTan(Pi/(FLFPeriod+1));	 
	 MA[Start+1]=(Open[Start+1]+Close[Start+1]+High[Start+1]+Low[Start+1])/4;
	 MA[Start+2]=(Open[Start+2]+Close[Start+2]+High[Start+2]+Low[Start+2])/4;
	 for (i=0;i<=Start;i++) {Y[i]=(Open[i]+Close[i]+High[i]+Low[i])/4;}

for (m=1;m<=K;m++) 	 {
	 alfa=2*MathSin(Pi/4*(2*m-1)/K);
	 g=1/(Gamma*Gamma+Gamma*alfa+1);
	 b=2*g*(Gamma*Gamma-1);
	 ci=g*(Gamma*Gamma-Gamma*alfa+1); 
	 for (i=Start-2;i>=0;i--) {MA[i]=g*(Y[i]+2*Y[i+1]+Y[i+2])+b*MA[i+1]-ci*MA[i+2];}
	 Y[0]=MA[0];
	 Y[1]=MA[1]; 	 
          for (i=2;i<=Start-2;i++) {Y[i]=g*(MA[i]+2*MA[i-1]+MA[i-2])+b*Y[i-1]-ci*Y[i-2];}
                       }
}

int init()
{
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,Y);
   return(0);
}



¡¡¡NO INTENTES USAR ESTE CÓDIGO PARA CONSTRUIR UNA ESTRATEGIA DE TRADING!!!




 
2 Neutron
¡Agradezco la broma! :-))
¡Pero qué bien se ve!
He ajustado mi parámetro MA para que coincida con el máximo principal de la imagen.
Así, FLFPeriod=100, K=1, mi MA tiene period=136 y el periodo de MAsimple=136.
En la imagen se puede ver que la coincidencia de un máximo no significa necesariamente la coincidencia de los demás.


Por cierto, tengo que corregir el código del indicador. En lugar de
MA[Start+1]=Open[Start+1]; MA[Start+2]=Open[Start+2];


escribir

MA[Start]=Open[Start]; MA[Start-1]=Open[Start-1];



 
<br/ translate="no"> ¡Bien!

Código propio:
...............................................................


Gracias por el indicador - interesante.

Una cosa más: hay un error en el código - excede los límites del array.
Establecer el tamaño de la doble MA[5003];
Y[] puede no estar colocada, pero dejar la doble Y[]; será correcta.


Buena suerte.