所有John Ehlers指标... - 页 54

 
sabbir50:
有谁能发布MTF Fisher或Solar Wind No repaint的警报指标....?

你可以使用这个帖子中的一个:https://www.mql5.com/en/forum/173574/page360

这是一个多时间框架的版本,里面已经有警报了。

 

FDI指标

最近我在MATLAB中玩HE,因为我想更深入地研究外汇数据结构,不幸的是,我收到了John关于FDI指标的坏消息。

在这篇文章中,我得出结论,使用HE进行交易是没有用的,因为它是不稳定的 - HE是由MATLAB的wfbmesti函数使用3种不同的方法计算的

https://www.mql5.com/en/forum/178285/page6

然后我把这个输出与约翰的输出进行了比较,约翰的输出看起来更加稳定和平滑,我开始怀疑 - 约翰在计算前后两次平滑价格。也许在计算之后做是可以的,但在计算之前,我怀疑它可能会破坏分布结构。

所以我做了一个实验。我用已知的HE值生成分数布朗运动,并以此为参考计算HE。

然后我对生成的序列进行平滑处理并计算HE,看看平滑处理对HE是否有影响。

% Set parameter H to 0.6 and sample length

H = 0.6; lg = 10000;

% Generate 100 wavelet-based fBm realizations for H = 0.6

% and compute the three estimates for each of them

n = 100; Hest = zeros(n,3);

for i = 1:n

fBm06 = wfbm(H,lg);

Hest(i,:) = wfbmesti(fBm06);

end

mean (Hest)

ans =

0.5927 0.5927 0.5648[/CODE]

Values of HE of generated series are around 0.6 as expected. John uses this formula for smoothing

Smooth = (Price + 2 * Price[1] + 2 * Price[2] + Price[3] ) / 6 ;

so

[CODE]n = 100; Hest2 = zeros(n,3);H = 0.6; lg = 10000;

for i = 1:n

fBm06 = wfbm(H,lg);

for ii = 4:lg

fBm06(ii) = (fBm06(1,ii) + 2 * fBm06(1,ii-1) + 2 * fBm06(1,ii-2) + fBm06(1,ii-3) ) / 6 ;

end

Hest2(i,:) = wfbmesti(fBm06(:,4:end));

end

mean (Hest2)

ans =

0.7013 0.5977 0.8760

所以不再是0.6左右了,因为它应该是!!!!。分布和结构受到了影响!!。看起来只有方法2

幸免于难(二阶离散导数,基于小波)。

除此之外,当我从FDI代码中移除平滑并绘制2-FDI(所以HE)时,这个值与MATLAB生成的HE值完全不同。

因此,综上所述,我不会相信这个指标和任何其他克隆他的代码的指标!!。

蒋志强

 
mladen:
克日什托夫

他们是否在谈论这个MA:https://www.mql5.com/en/forum/182120

如果是的话,我不认为他们走在正确的道路上(坦率地说,它使用起来太复杂了,而且结果不是一个好的平均数/过滤器所期望的)。

不是说某个东西是否优于Ehlers的ma(Ehlers在ma领域并不擅长--他的一些尝试,如他命名的 "零滞后ma",坦率地说是什么都不认真),而是立即想到与一些更好的过滤器进行比较,然后那个ma就不会那么耀眼了

亲爱的mladen。

请检查一下吧...

谢谢你

附加的文件:
 
Tsar:
亲爱的mladen。

请看一下...

谢谢你

沙皇

尽管它们不一样(代码不同,显然是由不同的人写的),但当参数 相同时,计算值是完全一样的(对于最终结果和 "主要 "结果)。所以这两个是同一个指标的两个版本。

 
mladen:
Tsar 尽管它们不一样(代码不同,而且很明显是由不同的人写的),但当参数相同时,计算值是完全一样的(对最终结果和 "主要 "结果)。所以这两个是同一个指标的两个版本。

非常感谢你的澄清

 

就像一个好奇心 - 这是John Ehlers所说的 "零滞后EMA"(tradestation代码)。

inputs:

Length( 20 ),

GainLimit( 50 ),

Thresh( 1 ), { see article for threshold explanation }

UseThreshold( true ), { if true, then the threshold is used for the

ShowMe dots and crossing alert - see notes below }

DrawMALines( true ), { if true, the Moving Average lines are plotted }

DrawShowMeDots( false ), { if true, ShowMe dots are plotted when a cross

of EC and EMA are detected }

DotOffsetTicks( 10 ), { offset for the ShowMe dots }

DrawPaintBars( false ) ; { draw PaintBars, color depending on EC > EMA }

variables:

ATick( 0 ),

alpha( 0 ),

Gain( 0 ),

BestGain( 0 ),

EC( 0 ),

Error( 0 ),

LeastError( 0 ),

EMA( 0 ),

CrossOver( false ),

CrossUnder( false ) ;

if CurrentBar = 1 then

ATick = MinMove / PriceScale ; { calculate value of a tick }

alpha = 2 / ( Length + 1 ) ;

EMA = alpha * Close + ( 1 - alpha ) * EMA[1] ;

LeastError = 1000000 ;

for Value1 = -GainLimit to GainLimit

begin

Gain = Value1 / 10 ;

EC = alpha *( EMA + Gain * ( Close - EC[1] ) ) + ( 1 - alpha ) * EC[1] ;

Error = Close - EC ;

If AbsValue( Error ) < LeastError then

begin

LeastError = AbsValue( Error ) ;

BestGain = Gain ;

end ;

end ;

EC = alpha * ( EMA + BestGain * ( Close - EC[1] ) ) + ( 1 - alpha ) * EC[1] ;

if DrawMALines then

begin

Plot1( EC, "EC" ) ;

Plot2( EMA, "EMA" ) ;

end ;

它不应该被认真对待,因为它是John Ehlers先是跳楼,然后才想到要做什么的情况之一(这就是为什么它也没有被转换为metatrader的原因)。

 

不过,它可以转换为metatrader吗?

 
nbtrading:
不过,它可以转换为metatrader吗?

相信我,最好不要这样做。这是一种将一个价值(EMA)与另一个价值(价格)相适应的人为方式。我相信,如果可以的话,John Ehlers现在就会撤销这个代码,因为它不是一个严肃的代码和平均值。

 
mladen:
相信我,最好不要。这是一种人为的方式,将一个价值(EMA)与另一个价值(价格)相匹配。我相信,如果可以的话,约翰-埃勒斯现在就会撤销这个代码,因为它不是一个严肃的代码,而平均

有那么糟糕吗?

 
nbtrading:
有那么糟糕吗?

这不是任何人应该感到自豪的事情,更不用说约翰-埃勒斯了。在发表这样的东西并称其为 "零滞后EMA "之前,他应该考虑得更多。

原因: