ノン・ラギング・ツール - ページ 48

 
zilliq:
ラジアンも使っています

説明できるかもしれません。MT4のコードでは、我々は価格をアルファベットを掛ける

私は、これは価格であると仮定し、私は前にpériods、ノー?

そして、我々は、例えば、5のLENで、追加する必要があります。

alfa*close[4]+alfa*close[3]+alfa*close[2]+alfa*close[1] and alfa*close

または

alfa[4]*close[4]+alfa[3]*close[3]+alfa[2]*close[2]+alfa[1]*close[1] and alfa*close ?

長さが1の場合、lenは4(4*1+0)となり、最後の4期間のalfa*priceを加えるので、nonlagmaがcloseと等しくなることはありえないので、不思議です。

次のコメントをありがとうございました。

Zilliq

あなたのコードを使用していますが、よりよく理解するために、私はNonlagMav3の最も単純なコードを使用しています。

ダブルpi = 3.1415926535。

double Coeff = 3*pi;

int Phase = Length-1;

double Len = Length*Cycle + Phase;

if ( counted_bars > 0 ) limit=bars-counted_bars.もし、counted_bars < 0 ならば、limit=bars-counted_bars;

if ( counted_bars < 0 ) return(0);

if ( counted_bars ==0 ) limit=Bars-Len-1;

for(shift=limit;shift>=0;shift--)

{

Weight=0; Sum=0; t=0;

for (i=0;i<=Len-1;i++)

{

g = 1.0/(Coeff*t+1);

if (t <= 0.5 ) g = 1;

beta = MathCos(pi*t);

alfa = g * beta;

価格 = iMA(NULL,0,1,0,MODE_SMA,Price,shift+i);

Sum += alfa*price;

ウェイト += alfa;

if ( t < 1 ) t += 1.0/(Phase-1);

else if ( t < Len-1 ) t += (2*Cycle-1)/(Cycle*Length-1);

}

if (Weight > 0) MABuffer[shift] = Sum/Weight;

alfa[4]*close[4]+alfa[3]*close[3]+alfa[2]*close[2]+alfa[1]*close[1] と alfa*close 形式(αは要素ごとに異なる)で使用するとよいでしょう。

アルファの値を表示する簡易版を作って、メタトレーダー4のアルファの値と比較してみたらどうでしょう?

 

Mladenさん、ありがとうございます。

これを試してみます。

実際、MT4では、私のブローカー(Activtrade)のCFD価格を持っており、Prorealtimeでは、これは現金で別のフラックスですので、いくつかの大きな違いがあります。

ありがとうございました、そしてまた会いましょう

Zilliq

 

さて、私は多くの多くの異なるものを試していますが、それは動作しませんし、私は明らかに理由がわからない

私のコードは大丈夫のようです。

****************************

重み=0

合計=0

i=0からLenまで

もしi<=Phase-1なら

t = 1.0*i/(Phase-1)

さもなくば

t = 1.0 + (i-Phase+1)*(2.0*Cyclee-1.0)/(Cyclee*Length-1.0)

エンドイフ

ベータ = Cos(pi*t)

g = 1.0/(Coeff*t+1)

if t <= 0.5 then

g = 1

エンディフ

alfa = g * beta

sum=sum+alfa*closeとする。

weight=weight+alfa

非ラグマ=sum/weight

***************************

そして、あなたのものと似ていますが、私のグラフで見るように、nonlagmaはcloseから遠く離れています。

あなたはなぜ、アイデアを持っている、とあなたは簡単な言語でNonlagMaのコードを持っていますか(しばしば転写する方が簡単です)?

ありがとうございます、Mladen、私は疲れています...

Uを参照してください。

Zilliq

ファイル:
 
zilliq:
さて、私は多くの多くの異なるものを試していますが、それは動作しませんし、私は明らかに理由を知らない

私のコードは大丈夫そうです。

****************************

重み=0

sum=0

for i=0 to Len

もしi<=Phase-1なら

t = 1.0*i/(Phase-1)

さもなくば

t = 1.0 + (i-Phase+1)*(2.0*Cyclee-1.0)/(Cyclee*Length-1.0)

エンドイフ

ベータ = Cos(pi*t)

g = 1.0/(Coeff*t+1)

if t <= 0.5 then

g = 1

エンディフ

alfa = g * beta

sum=sum+alfa*closeとする。

weight=weight+alfa

非ラグマ=sum/weight

***************************

そして、あなたのものと似ていますが、私のグラフで見るように、nonlagmaはcloseから遠く離れています。

あなたはなぜ、アイデアを持っている、とあなたは簡単な言語でNonlagMaのコードを持っていますか(しばしば転写する方が簡単です)?

ありがとうございます、Mladen、私は疲れています...

Uを参照してください。

Zilliq

ここにアルファだけを計算するバージョンがあります。_nonlag_ma_alphas.mq4です。

protraderでそれっぽいのを作ってみてください。一度同じにすれば、後は非ラグマも同じにするのは簡単なはずです。例では期間50の場合

ファイル:
 

Mladenさん、どうもありがとうございます。

この最初のステップでテストしてみます。

Uを見る

Zilliq

 

さて。

まず:良いニュースは、それが比較することが容易になるように、私はあなたと同じEUR / USDを持っています。

しかし、私は実際に成功しない

あなたのコードt ocalculateアルファです。

ダブルサイクル= 4.0。

ダブルCoeff = 3.0*Pi;

int Phase = NlmPeriod-1;

int len = NlmPeriod*4 + Phase;

if (ArraySize(alphas) != len) ArrayResize(alphas,len);

for (int k=0; k<len; k++)

{

if (k<=Phase-1)

double t = 1.0 * k/(Phase-1);

else t = 1.0 + (k-Phase+1)*(2.0*Cycle-1.0)/(Cycle*NlmPeriod-1.0);

double beta = MathCos(Pi*t);

double g = 1.0/(Coeff*t+1); if (t <= 0.5 ) g = 1;

alphas[k] = g * beta;

}

for(int i=len-1; i>=0; i--) nlm = alphas;

ということで、よく理解できれば

1/ 最初の段階:それは0からlen-1までのすべてのアルファを計算します。

これは

alphas[k] = g * beta;

2/ 第二段階:0からlen-1までのすべてのアルファを足す。

これは

for(int i=len-1; i>=0; i--) nlm = alphas;

問題は、グラフ上にいつも同じアルファがあることです。あなたはどのようにk、tなどが常に各ローソク足で同じであるとして、各ローソク足で異なるアルファを持っていることができますか? と、終値に依存しませんか?

Prorealtimeにあるコードは同じようです。

Pi=3.14159265358979323846264338327950288

Cyclee = 4.0

係数 = 3.0*Pi

位相 = NlmPeriod-1

len = NlmPeriod*4 + Phase (位相)

alph=0

k=0からlen-1まで

t=0

if (k<=Phase-1) then

t = 1.0 * k/(Phase-1)

さもなくば

t = 1.0 + (k-Phase+1)*(2.0*Cyclee-1.0)/(Cyclee*NlmPeriod-1.0)

エンドイフ

β = Cos(Pi*t)

g = 1.0/(Coeff*t+1)

if (t <= 0.5 ) then

g = 1

endif

alphas= g * beta

alph=alph+alphas

 
zilliq:
さて。

最初:良いニュースは、それが比較することが容易になるように、私はあなたと同じEUR / USDを持っています。

しかし、私は実際に成功しない

あなたのコードt ocalculateアルファです。

ダブルサイクル= 4.0。

ダブルCoeff = 3.0*Pi;

int Phase = NlmPeriod-1;

int len = NlmPeriod*4 + Phase;

if (ArraySize(alphas) != len) ArrayResize(alphas,len);

for (int k=0; k<len; k++)

{

if (k<=Phase-1)

double t = 1.0 * k/(Phase-1);

else t = 1.0 + (k-Phase+1)*(2.0*Cycle-1.0)/(Cycle*NlmPeriod-1.0);

double beta = MathCos(Pi*t);

double g = 1.0/(Coeff*t+1); if (t <= 0.5 ) g = 1;

alphas[k] = g * beta;

}

for(int i=len-1; i>=0; i--) nlm = alphas;

ということで、よく理解できれば

1/ 最初の段階:それは0からlen-1までのすべてのアルファを計算します。

これは

alphas[k] = g * beta;

2/ 第二段階:0からlen-1までのすべてのアルファを足す。

これは

for(int i=len-1; i>=0; i--) nlm = alphas;

問題は、グラフ上にいつも同じアルファがあることです。あなたはどのようにk、tなどが常に各ローソク足で同じであるとして、各ローソク足で異なるアルファを持っていることができますか? と、終値に依存しませんか?

Prorealtimeにあるコードは同じようです。

Pi=3.14159265358979323846264338327950288

Cyclee = 4.0

係数 = 3.0*Pi

位相 = NlmPeriod-1

len = NlmPeriod*4 + Phase (位相)

alph=0

k=0からlen-1まで

t=0

if (k<=Phase-1) then

t = 1.0 * k/(Phase-1)

さもなくば

t = 1.0 + (k-Phase+1)*(2.0*Cyclee-1.0)/(Cyclee*NlmPeriod-1.0)

エンドイフ

β = Cos(Pi*t)

g = 1.0/(Coeff*t+1)

if (t <= 0.5 ) then

g = 1

endif

alphas= g * beta

alph=alph+alphas

Zilliq

私が言ったように、aplasの配列があります。

私が表示したものは、アルファの配列です - 時間成分は無視してください。これらは、アルファの配列の各アルファの値です。 これらは、あなたが計算に使用する各価格要素に適用される重みです。

 

アルファの配列というのがよくわからないのですが(ローソクごとに違うアルファはわかります)、すみません。

もう一回やってみます...

 
zilliq:

私はおそらくあなたがアルファの配列と呼ぶものを理解していない(私は各キャンドルに異なるアルファを理解している)、申し訳ありませんが

もう一回やってみるか...。

Zilliq

価格0のための係数(アルファ)= 1

価格1の係数(アルファ) == 0.9nnnnn

など(それは非遅延MAのアルファインジケータによって表示されるように)、現在の非遅延MAの値を取得するためにレン価格に使用されるすべてのこと

 

OK、あなたの説明は理解できたと思います(あなたは素晴らしいです )そして、あなたのコードでMT4上で様々なテストを行いました。

1からlen-1までの異なる値としてのアルファは、価格を熟考し、最後にアルファの合計で割ります。

右側のアルファの最初の値は常に1であり、我々はne nlmの値を変更しても、グラフ上のアルファの側面は常に蛇の同じ種類である理由です)。

さて、私はProrealtimeでこれを行うことができる方法を模索する必要があることを知っている....