T3 - página 30

 

Sim, apenas para adicionar 2 x ATR

 
sohocool:
Olá, Mladen,

Você acha que é possível fazer a Média Móvel de Casco Adaptativo V2 ???

O período decimal parece funcionar .

Cumprimentos

O casco é baseado no LWMA e como o LWMA é estritamente baseado em barras, não seria tão suave em mudanças como as baseadas no EMA, por exemplo (sub-períodos dos 3 LWMAs calculados para obter o HULL devem ser valores inteiros) . Se substituirmos o LWMA no casco por EMA pode valer a pena tentar (e se evitarmos o arredondamento dos sub-períodoscalculados). É verdade que não seria mais um HULL, mas talvez fosse um bom HULL, e então seria perfeito para adaptação

 
mladen:
O casco é baseado no LWMA e como o LWMA é estritamente baseado em barras, não seria tão suave em mudanças como as baseadas no EMA, por exemplo (sub-períodos dos 3 LWMAs calculados para obter o HULL devem ser valores inteiros) . Se substituirmos o LWMA no casco por EMA pode valer a pena tentar (e se evitarmos o arredondamento dos sub-períodos calculados). É verdade que não seria mais um HULL, mas talvez fosse um bom HULL, e então seria perfeito para a adaptação

Obrigado, vou tentar fazer com a Ema .

 
sohocool:
Obrigado, vou tentar fazer com a Ema .

Apenas não utilize o iMA() embutido para isso, pois ele arredonda os períodos para valores inteiros

Use esta função (ou 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]);

}

em 3 instâncias diferentes de cálculo. Os parâmetros são simples: preço, período, índice e número de instância

 
mladen:
Apenas não utilize o iMA() embutido para isso, pois ele arredonda os períodos para valores inteiros

Use esta função (ou 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]);

}

em 3 instâncias diferentes de cálculo. Os parâmetros são simples: preço, período, índice e número de instância

Eu devo apagar e colar aqui ???

duplo iT3(preço duplo, período duplo, duplo quente, bool clean, int i, int instanceNo=0)

{

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

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

se (workT3Coeffs[_periodo] != período)

{

workT3Coeffs[_período] = período;

duplo a = quente;

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

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

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

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

se (limpo)

workT3Coeffs[_alfa] = 2,0/(2,0 + (período-1,0)/2,0);

outros trabalhosT3Coeffs[_alfa] = (MathCos(2*Pi/período)+MathSin(2*Pi/período)-1)/MathCos(2*Pi/período);

}

 
sohocool:
Eu devo apagar e colar aqui ???

duplo iT3(preço duplo, período duplo, duplo quente, bool clean, int i, int instanceNo=0)

{

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

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

se (workT3Coeffs[_periodo] != período)

{

workT3Coeffs[_período] = período;

duplo a = quente;

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

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

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

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

se (limpo)

workT3Coeffs[_alfa] = 2,0/(2,0 + (período-1,0)/2,0);

outros trabalhosT3Coeffs[_alfa] = (MathCos(2*Pi/período)+MathSin(2*Pi/período)-1)/MathCos(2*Pi/período);

}

sohocool

Postada uma versão de como pode ser feito (que ainda não é uma versão adaptativa) aqui : https://www.mql5.com/en/forum/174961/page10

Agora você tem que torná-lo adaptável (afinal, a idéia foi sua)

 
sohocool:
Olá Mladen,

A função adaptativa é muito interessante.

Eu fiz o adaptativo T3 com o "Exército Suíço" Alpha .

Podemos escolher 2 alphas: limpo ou exército suíço.

Cumprimentos.

PS: Se você quiser o período alfa normal, você pode usar alfa limpo: 2 x período.

Olá a todos,

acabo de acrescentar o canal ATR .

 
mladen:
Indicador T3 usando desvio padrão para adaptação (T3 é muito bom para adaptação, pois seu comprimento de cálculo não precisa ser um número inteiro - por exemplo, você pode calcular um nnn.5 T3 - e isso dá um valor T3 perfeitamente suave mesmo quando a adaptação é aplicada a ele, o que não é um caso com alguns outros tipos de médias de adaptação)

PS: anexando o ex4 também para aqueles que possam ter problemas na compilação da fonte. Mesmo que o indicador seja escrito por mim desde a primeira carta até a última, minha construção se recusou a compilá-lo por algum tempo. Agora, do nada, ele o compila sem problemas, portanto não tenho certeza de que outra pessoa não terá o mesmo problema que eu tive. Para esse caso, faça o download do ex4 (ele é construído com o build 500)

PS: quando comparado aos indicadores T3 "regulares", o T3Original é falso (já que a maioria dos indicadores T3 usa o cálculo Fulks/Matulich e não o cálculo orginal Tim Tillson)

Prezado Mladen

Seria possível converter o indicador anexo com "Cálculos T3 Adaptativos"!

Obrigado por qualquer ajuda

secretcode

Arquivos anexados:
ma_i-ca.mq4  2 kb
 
secretcode:
Prezado Mladen

Seria possível converter o indicador anexo com "Cálculos T3 Adaptativos"!

Obrigado por qualquer ajuda

secretcode

secretcode

Aqui você vai Use os mesmos parâmetros padrão do indicador original (para que eles possam ser facilmente comparados - como esperado, este é muito mais rápido)

Arquivos anexados:
 

Olá, Mladen,

Você já pensou em fazer um arquivo de biblioteca coletando seus belos métodos de codificação para suavizar o preço, ou adaptar-se aos ciclos do mercado, etc. ? Penso que tal arquivo seria muito útil de muitas maneiras, pelo menos torne a estrutura de codificação em muitos de seus indicadores mais limpa e clara (eles já estão muito limpos e claros, eu sei mas sempre desejo melhor e busco mais excelente).

Pessoalmente, adoro ter um arquivo de tal tipo da sua autoria, o mesmo que seu famoso DynamicZone.dll . Todos eles tornam o mundo da codificação cada vez mais interessante e conveniente, pelo menos para mim.

Razão: