T3 - página 30

 

Sí, sólo para añadir 2 x ATR

 
sohocool:
Hola Mladen,

¿Cree que es posible hacer la media móvil adaptativa del casco V2?

El periodo decimal parece funcionar .

Saludos

Hull está basado en LWMA y como LWMA está estrictamente basado en barras no sería tan suave en los cambios como los basados en EMA, por ejemplo (los sub-períodos de los 3 LWMAs calculados para obtener HULL deben ser valores enteros) . Si sustituimos el LWMA en el casco por el EMA podría valer la pena intentarlo (y si evitamos el redondeo de los subperíodoscalculados). Es cierto que entonces ya no sería un HULL, pero quizás sería uno bueno, y entonces sería perfecto para adaptarlo

 
mladen:
Hull está basado en LWMA y como LWMA está estrictamente basado en barras no sería tan suave en los cambios como los basados en EMA, por ejemplo (los subperíodos de los 3 LWMAs calculados para obtener HULL deben ser valores enteros) . Si sustituimos el LWMA en el casco por el EMA podría valer la pena intentarlo (y si evitamos el redondeo de los subperíodos calculados). Es cierto que entonces ya no sería un HULL, pero tal vez sería uno bueno, y entonces sería perfecto para adaptar

Gracias ,intentaré hacerlo con Ema .

 
sohocool:
Gracias, intentaré hacerlo con Ema.

No utilice la función incorporada iMA() para ello, ya que redondea los períodos a valores enteros

Utilice esta función (o algo similar) :

//------------------------------------------------------------------

//

//------------------------------------------------------------------

//

//

//

//

//

double workEma[][3];

double iEma(double price, double period, int r, int instanceNo=0)

{

if (ArrayRange(workEma,0)!= Bars) ArrayResize(workEma,Bars); r = Bars-r-1;

//

//

//

//

//

double alpha = 2.0 / (1.0+period);

workEma[r] = workEma[r-1]+alpha*(price-workEma[r-1]);

return(workEma[r]);

}

en 3 instancias diferentes de cálculo. Los parámetros son simples: precio, periodo, índice y número de instancia

 
mladen:
Simplemente no utilices la función incorporada iMA() para ello, ya que redondea los periodos a valores enteros

Utilice esta función (o algo similar) :

//------------------------------------------------------------------

//

//------------------------------------------------------------------

//

//

//

//

//

double workEma[][3];

double iEma(double price, double period, int r, int instanceNo=0)

{

if (ArrayRange(workEma,0)!= Bars) ArrayResize(workEma,Bars); r = Bars-r-1;

//

//

//

//

//

double alpha = 2.0 / (1.0+period);

workEma[r] = workEma[r-1]+alpha*(price-workEma[r-1]);

return(workEma[r]);

}

en 3 instancias diferentes de cálculo. Los parámetros son simples: precio, periodo, índice y número de instancia

Debo borrar y pegar aquí ???

double iT3(double price, double period, double hot, bool clean, int, int instanceNo=0)

{

if (ArrayRange(workT3,0) !=Bars) ArrayResize(workT3,Bars);

if (ArrayRange(workT3Coeffs,0) < (instanceNo+1)) ArrayResize(workT3Coeffs,instanceNo+1);

si (workT3Coeffs[_period] != period)

{

workT3Coeffs[_period] = period;

double a = hot;

workT3Coeffs[_c1] = -a*a*a;

workT3Coeffs[_c2] = 3*a*a+3*a*a*a;

workT3Coeffs[_c3] = -6*a*a-3*a-3*a*a*a;

workT3Coeffs[_c4] = 1+3*a+a*a*a+3*a*a;

si (limpio)

workT3Coeffs[_alpha] = 2,0/(2,0 + (periodo-1,0)/2,0);

si no, workT3Coeffs[_alpha] = (MathCos(2*Pi/periodo)+MathSin(2*Pi/periodo)-1)/MathCos(2*Pi/periodo);

}

 
sohocool:
Debo borrar y pegar aquí ???

double iT3(double price, double period, double hot, bool clean, int, int instanceNo=0)

{

if (ArrayRange(workT3,0) !=Bars) ArrayResize(workT3,Bars);

if (ArrayRange(workT3Coeffs,0) < (instanceNo+1)) ArrayResize(workT3Coeffs,instanceNo+1);

si (workT3Coeffs[_period] != period)

{

workT3Coeffs[_period] = period;

double a = hot;

workT3Coeffs[_c1] = -a*a*a;

workT3Coeffs[_c2] = 3*a*a+3*a*a*a;

workT3Coeffs[_c3] = -6*a*a-3*a-3*a*a*a;

workT3Coeffs[_c4] = 1+3*a+a*a*a+3*a*a;

si (limpio)

workT3Coeffs[_alpha] = 2,0/(2,0 + (periodo-1,0)/2,0);

else workT3Coeffs[_alpha] = (MathCos(2*Pi/periodo)+MathSin(2*Pi/periodo)-1)/MathCos(2*Pi/periodo);

}

sohocool

He publicado una versión de cómo se puede hacer (que todavía no es una versión adaptativa) aquí : https://www.mql5.com/en/forum/174961/page10

Ahora tienes que hacerlo adaptativo (después de todo fue tu idea)

 
sohocool:
Hola Mladen,

La función adaptativa es muy interesante.

He hecho el T3 adaptativo con el Alfa "Ejército Suizo".

Podemos elegir 2 alfas : limpio o ejército suizo.

Saludos.

PD: Si quieres un periodo alfa normal, puedes usar el alfa limpio: 2 x periodo

Hola a todos,

Acabo de añadir el canal ATR.

 
mladen:
T3 indicador utilizando la desviación estándar para la adaptación (T3 es muy bueno para la adaptación, ya que su longitud de cálculo no necesita ser un número entero - por ejemplo, puede calcular un nnn.5 T3 - y que da un valor T3 perfectamente suave, incluso cuando la adaptación se aplica a ella que no es un caso con algunos otros tipos de promedios de adaptación)

PD: adjunto el ex4 también para aquellos que puedan tener problemas para compilar el código fuente. Aunque el indicador está escrito desde la primera letra hasta la última por mí, mi build se negaba a compilarlo durante algún tiempo. Ahora, de la nada, lo compila sin problemas, por lo que no estoy seguro de que alguien más no tenga el mismo problema que tuve yo. Para ese caso descargue el ex4 (está construido con la build 500)

P.D.: cuando se compara con indicadores T3 "normales" se establece el T3Original en falso (ya que la mayoría de los indicadores T3 utilizan el cálculo de Fulks/Matulich y no el cálculo original de Tim Tillson)

Estimado Mladen

¿Sería posible que convierta el indicador adjunto con "cálculos adaptativos T3"?

Gracias por cualquier ayuda

secretcode

Archivos adjuntos:
ma_i-ca.mq4  2 kb
 
secretcode:
Estimado Mladen

¿Sería posible convertir el indicador adjunto con "cálculos adaptativos de T3"?

Gracias por cualquier ayuda

secretcode

secretcode

Aquí tienes Utilizar d mismos parámetros por defecto como el indicador original (para que puedan ser fácilmente comparados - como se esperaba este es mucho más rápido)

Archivos adjuntos:
 

Hola Mladen,

¿Has pensado en hacer un archivo de biblioteca que recoja tus bonitos métodos de codificación para suavizar el precio, o adaptarse a los ciclos del mercado, etc. ? Creo que tal archivo sería muy útil en muchos sentidos, por lo menos hacer la estructura de codificación en muchos de sus indicadores más limpio y más claro (que son muy limpias y claras ya, sé pero siempre deseo de mejor y la búsqueda de más excelente).

Personalmente me encanta tener un archivo lib de usted, al igual que su famoso DynamicZone.dll . Todos ellos hacen que el mundo de la codificación sea cada vez más interesante y conveniente, para mí al menos.

Razón de la queja: