T3 - 页 15

 
SVGuss:
嗨,伙计们。

我完全不会编程,但我设法把我喜欢的这两个指标结合起来(一个是fxbs做的,另一个我不知道),所以基本上你有一个T3MA,它不是在其角度变化时改变颜色(像All_Averages_V2.2),而是在它被价格穿透时改变颜色。

RoundPrice indie是Ma_RoundPrice发挥作用的必要条件。

请享用。

亲爱的SVGuss

我试图在MT4编辑器上编译它,但我有一个错误信息--"breakBars "变量未定义。

有什么办法可以解决吗?

谢谢

 
dansmol:
亲爱的SVGuss

我试图在MT4编辑器上编译它,但我有一个错误信息--"breakBars "变量未定义。

有什么办法可以解决吗?

请注意

Dan

你好,dansmol。

你还需要在指标文件夹中设置`RoundPriceNE_big_mod[5dig]`。( 对不起,我没有mq4文件)

祝你有一个好的WE

Tomcat

 
mladen:
博斯特

我知道帖子中的指标发生了什么(当我有一天对tro的美丽工作 "过度高兴 "时,它被我删除了),但现在我在我的电脑上找不到那个版本(那是很久很久以前的事了......)。

无论如何,在这段时间里,metatrader设法修复了他们在iStdDevOnArray()函数上的错误,所以现在可以使用原来的指标,因为不再需要单独的自定义iStdDevOnArray()函数。

问候

姆拉登

你好。

那一个?

指标文件夹中的KAMA

PriceSeries在include文件夹中。

希望有帮助。

祝你有一个好的WE。

Tomcat

附加的文件:
kama.mq4  7 kb
 

Tomcat

这不是一个(我有一个自定义的偏差计算,取代了内置的 "on array "功能),但还是要感谢。

正如我所说的,自从metatrader的那个错误在一次更新中被纠正后,对自定义偏差计算的需求就不存在了,所以对那个版本的考夫曼自适应移动平均线指标的需求也不存在了。

问候

姆拉登

Tomcat98:
你好。

那一个?

KAMA在指标文件夹中

PriceSeries在include文件夹中。

希望有帮助。

祝你有一个好的WE。

汤姆猫
 
Tomcat98:
嗨,dansmol。

这里是固定的;你还需要在指标文件夹里有`RoundPriceNE_big_mod[5dig]`。( 对不起,我没有mq4文件)

祝你有一个好的WE

汤姆猫

非常感谢 tomcat98

注意事项

 

从EA中计算t3_clean,而不是从指标中计算

大家好!我希望能够从EA而不是指标中计算不同的t3_clean值,这样我就可以操纵用于计算指标的最后价格。我正在使用:来自mladen的t3_clean,网址是https://www.mql5.com/en/forum/173058/page4。

任何帮助都将是巨大的。

 

所以在t3_clean代码中我们有这样的代码块。

double CalculateT3(int limit,int period,int priceType)

{

Print("This is the data in the T3"+"\t "+limit+"\t "+period+"\t "+priceType);

Print("Info Indicator from the Indicator "+IndicatorCounted() );

if (t3.period != period)

{

t3.period = period;

b2 = b*b;

b3 = b2*b;

c1 = -b3;

c2 = (3*(b2+b3));

c3 = -3*(2*b2+b+b3);

c4 = (1+3*b+b3+3*b2);

w1 = 2 / (2 + 0.5*(MathMax(1,period)-1));

w2 = 1 - w1;

}

//

//

//

//

//

for(int i=limit; i>=0; i--)

{

if(i == index_posi)

{

//v_manipul=

double price = v_manipul;

e1 = w1*price + w2*ae1;

e2 = w1*e1 + w2*ae2;

e3 = w1*e2 + w2*ae3;

e4 = w1*e3 + w2*ae4;

e5 = w1*e4 + w2*ae5;

e6 = w1*e5 + w2*ae6;

t3Array=c1*e6 + c2*e5 + c3*e4 + c4*e3;

ae1 = e1;

ae2 = e2;

ae3 = e3;

ae4 = e4;

ae5 = e5;

ae6 = e6;

}else{

price = iMA(NULL,0,1,0,MODE_SMA,priceType,i);

e1 = w1*price + w2*ae1;

e2 = w1*e1 + w2*ae2;

e3 = w1*e2 + w2*ae3;

e4 = w1*e3 + w2*ae4;

e5 = w1*e4 + w2*ae5;

e6 = w1*e5 + w2*ae6;

t3Array=c1*e6 + c2*e5 + c3*e4 + c4*e3;

ae1 = e1;

ae2 = e2;

ae3 = e3;

ae4 = e4;

ae5 = e5;

ae6 = e6;

}

}

}[/CODE]

I am trying to adapt it inside an Expert so it can be call to calculate any t3_clean value on demand, by changing the last bar value. e.g, the t3 for the bar 83.8167 is 85.9751; what if the bar was 81 and not 83 ? ect..., so so far, this is my code :

[CODE]

double CalculateT3(int limit,int period,int priceType,int index_posi, double v_manipul, int index_i)

{

double t3Array[];

double ae1[];

double ae2[];

double ae3[];

double ae4[];

double ae5[];

double ae6[];

ArrayResize( t3Array, limit);

ArrayResize( ae1, limit);

ArrayResize( ae2, limit);

ArrayResize( ae3, limit);

ArrayResize( ae4, limit);

ArrayResize( ae5, limit);

ArrayResize( ae6, limit);

Print("This is the data in the T3 FROM THE EA >>>>>> "+"\t "+limit+"\t "+period+"\t "+priceType);

Print("Info Indicator from the Indicator FROM THE EA <<<<<<<< "+IndicatorCounted() );

if (t3.period != period)

{

t3.period = period;

b2 = b*b;

b3 = b2*b;

c1 = -b3;

c2 = (3*(b2+b3));

c3 = -3*(2*b2+b+b3);

c4 = (1+3*b+b3+3*b2);

w1 = 2 / (2 + 0.5*(MathMax(1,period)-1));

w2 = 1 - w1;

}

Print("Voici w in the EA A VOIT XXXXXXXXX>>>XXXX<<>>"+w2+" "+w1);

//

//

//

//

//

for(int i=limit; i>=0; i--)

{

if(i == index_posi)

{

//v_manipul=

double price = v_manipul;

e1 = w1*price + w2*ae1;

e2 = w1*e1 + w2*ae2;

e3 = w1*e2 + w2*ae3;

e4 = w1*e3 + w2*ae4;

e5 = w1*e4 + w2*ae5;

e6 = w1*e5 + w2*ae6;

t3Array=c1*e6 + c2*e5 + c3*e4 + c4*e3;

ae1 = e1;

ae2 = e2;

ae3 = e3;

ae4 = e4;

ae5 = e5;

ae6 = e6;

Print("PREMIERE ETAPE DATA DANS LARRAY ]]]]]]]]]]]]]]}}}}} "+t3Array);

}else{

price = iMA(NULL,0,1,0,MODE_SMA,priceType,i);

e1 = w1*price + w2*ae1;

e2 = w1*e1 + w2*ae2;

e3 = w1*e2 + w2*ae3;

e4 = w1*e3 + w2*ae4;

e5 = w1*e4 + w2*ae5;

e6 = w1*e5 + w2*ae6;

t3Array=c1*e6 + c2*e5 + c3*e4 + c4*e3;

ae1 = e1;

ae2 = e2;

ae3 = e3;

ae4 = e4;

ae5 = e5;

ae6 = e6;

double op = c1*e6 + c2*e5 + c3*e4 + c4*e3;

Print("DEUXIEME ETAPE DATA DANS LARRAY ]]]]]]]]]]]]]]}}}}} "+op);

Print("SHOW ME PRICE "+ ae1[0]);

}

}

return (t3Array);

}

但它完全不起作用......有人能帮忙吗?

 

T3振荡器...

首先,我想用T3制作一个令人敬畏的 振荡器版本,但当我试过之后,发现用令人敬畏的振荡器计算长度(5,14)时,速度太快了。所以我决定将长度作为参数打开,并使用其他默认的计算长度。

这就是现在使用默认参数时的样子。

附加的文件:
 
mladen:
首先,我想用T3做一个超强震荡器的版本,但当我试过之后,发现用超强震荡器计算长度(5,14)的速度太快了。所以决定将长度作为参数打开,并使用其他默认的计算长度。

这就是现在默认参数下的样子。

用快/慢设置:6/12在仁科图表上,它是美丽的,可能是一个 "简单 "的策略。

谢谢mladen !

 

还有一个T3版本:T3 GMMA

对于短线(较短周期--较快)部分,将ShowLongGmma参数设置 为假。对于长(较长时期--较慢)的部分,将其设置为true,通过结合这两个参数,你可以得到这样的结果。

附加的文件:
t3_gmma.gif  29 kb
t3_gmma.mq4  5 kb