T3 - 页 30

 

是的,只是要增加2个ATR

 
sohocool:
嗨,Mladen。

你认为有可能做自适应船体移动平均线V2吗?

十进制的周期似乎可以。

尊敬的先生

Hull是基于LWMA的,由于LWMA是严格基于条形的,它的变化不会像基于EMA的那样平滑,例如(计算得到HULL的3个LWMA的子周期必须是整数值)。如果我们用EMA代替HULL中的LWMA,也许值得一试(如果我们避免对计算的 子周期进行四舍五入)。诚然,它将不再是一个HULL,但也许它将是一个好的HULL,然后它将是完美的适应。

 
mladen:
Hull是基于LWMA的,由于LWMA是严格基于条形的,它的变化不会像基于EMA的那样平滑,例如(为得到HULL而计算的3个LWMA的子周期必须是整数值)。如果我们用EMA代替HULL中的LWMA,也许值得一试(如果我们避免对计算的子周期进行四舍五入)。诚然,它将不再是一个HULL,但也许它将是一个好的HULL,然后它将完美地适用于

谢谢,我将尝试用Ema来做。

 
sohocool:
谢谢,我将尝试用Ema来做。

只是不要使用内置的iMA(),因为它将周期四舍五入为整数值。

使用这个函数(或类似的东西)。

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

//

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

//

//

//

//

//

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]);

}

在3个不同的计算实例中。参数很简单:价格、周期、指数和实例编号。

 
mladen:
只要不使用内置的iMA()就可以了,因为它将周期四舍五入为整数值

使用这个功能(或类似的功能)。

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

//

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

//

//

//

//

//

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]);

}

在3个不同的计算实例中。参数很简单:价格、周期、指数和实例编号

我必须删除并粘贴在这里?

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

{

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

如果(ArrayRange(workT3Coeffs,0) < (instanceNo+1))ArrayResize(workT3Coeffs,instanceNo+1)。

如果(workT3Coeffs[_period] != period)

{

workT3Coeffs[_period] = period;

double a = hot;

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

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

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

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

如果(清洁)

workT3Coeffs[_alpha] = 2.0/(2.0 + (period-1.0)/2.0)。

否则workT3Coeffs[_alpha] = (MathCos(2*Pi/period)+MathSin(2*Pi/period)-1) /MathCos(2*Pi/period)。

}

 
sohocool:
我必须删除并粘贴在这里。

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

{

如果(ArrayRange(workT3,0) !=Bars) ArrayResize(workT3,Bars);

如果(ArrayRange(workT3Coeffs,0) < (instanceNo+1))ArrayResize(workT3Coeffs,instanceNo+1)。

如果(workT3Coeffs[_period] != period)

{

workT3Coeffs[_period] = period;

double a = hot;

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

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

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

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

如果(清洁)

workT3Coeffs[_alpha] = 2.0/(2.0 + (period-1.0)/2.0)。

否则workT3Coeffs[_alpha] = (MathCos(2*Pi/period)+MathSin(2*Pi/period)-1) /MathCos(2*Pi/period)。

}

そうちゃん

在这里发布了一个版本的操作方法(仍然不是自适应的版本):https://www.mql5.com/en/forum/174961/page10

现在你必须把它变成自适应的(毕竟这是你的想法)。

 
sohocool:
嗨,Mladen。

自适应功能是非常有趣的。

我已经用 "瑞士军团 "阿尔法做了自适应T3。

我们可以选择两个字母:干净或瑞士军队。

谢谢。

PS: 如果你想要正常的阿尔法周期,你可以使用干净的阿尔法:2 x周期。

大家好。

我刚刚添加了ATR通道。

 
mladen:
T3指标使用标准差进行适应性计算(T3对适应性计算非常好,因为它的计算长度不需要是整数--例如你可以计算一个nn.5的T3--即使对它进行适应性计算,也能得到一个完全平滑的T3值,而其他一些平均数类型的适应性计算则不是这样的)。

PS:也附上ex4,供那些可能在编译源代码时遇到问题的人使用。尽管这个指标从第一个字母到最后一个字母都是我写的,但我的编译器在一段时间内拒绝编译它。现在,突然间,它编译起来没有问题了,所以我不确定其他人会不会遇到我遇到的同样问题。在这种情况下,请下载ex4(它是用build 500构建的)。

PS:当与 "常规 "T3指标比较时,将T3Original设置为false(因为大多数T3指标使用Fulks/Matulich计算,而不是原始的Tim Tillson计算)。

亲爱的Mladen

您是否可以将附件中的指标转换为 "自适应T3计算"!

谢谢您的帮助

秘密代码

附加的文件:
ma_i-ca.mq4  2 kb
 
secretcode:
亲爱的Mladen

你是否有可能用 "自适应T3计算 "转换所附指标!?

谢谢您的帮助

秘密代码

秘密代码

给你 使用与原指标相同的默认参数(这样可以很容易地进行比较--正如预期的那样,这个指标要快得多)。

附加的文件:
 

嗨,Mladen。

你有没有想过做一个库文件,收集你的平滑价格的漂亮编码方法,或适应市场周期等。?我认为这样的文件在很多方面都很有用,至少可以使您的很多指标的编码结构更简洁明了(它们已经很简洁明了了,我知道 ,但总是希望更好,并寻找更多优秀的东西)。

我个人很希望能有这样一个lib文件,就像你著名的DynamicZone.dll一样。至少对我来说,他们都使编码世界变得越来越有趣,越来越方便。