비지연 도구 - 페이지 48

 
zilliq:
우리도 라디안을 사용합니다

설명이 될 수 있습니다. MT4 코드에서 알파에 가격을 곱합니다.

나는 이것이 가격이라고 생각합니다. 나는 전에 기간 동안, 아니 ?

따라서 예를 들어 len이 5인 경우를 추가해야 합니다.

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

또는

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

길이가 1일 때 len은 4(4*1+0)와 같기 때문에 이상합니다. 따라서 마지막 4개 기간의 alfa*price를 더하기 때문에 nonlagma는 close와 같을 수 없습니다.

다음 댓글 감사합니다

질리크

귀하의 코드를 사용하지만 더 잘 이해하기 위해 NonlagMav3의 가장 간단한 코드를 사용합니다.

이중 파이 = 3.1415926535;

이중 계수 = 3*pi;

int 위상 = 길이-1;

이중 Len = 길이*주기 + 위상;

if ( 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--)

{

무게=0; 합계=0; t=0;

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

{

g = 1.0/(계수*t+1);

if (t <= 0.5 ) g = 1;

베타 = MathCos(pi*t);

알파 = g * 베타;

가격 = iMA(NULL,0,1,0,MODE_SMA,가격,시프트+i);

합계 += 알파*가격;

무게 += 알파;

if ( t < 1 ) t += 1.0/(1상);

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

}

if (Weight > 0) MABuffer[shift] = 합/가중치;

alfa[4]*close[4]+alfa[3]*close[3]+alfa[2]*close[2]+alfa[1]*close[1] 및 alfa*close 형식(alpha 요소마다 다름)

알파 값을 표시하고 메타 트레이더 4의 알파 값과 비교하는 간단한 버전을 만들지 않겠습니까?

 

Mladen님, 감사합니다.

나는 이것을 시도 할 것이다

사실 MT4에는 내 브로커(Activtrade)의 cfd 가격이 있고 Prorealtime에서는 이것이 또 다른 현금 흐름이므로 약간의 큰 차이가 있습니다.

감사합니다 나중에 봐요

질리크

 

글쎄, 나는 많은 다른 것들을 시도하지만 작동하지 않으며 확실히 이유를 모르겠습니다

내 코드는 괜찮은 것 같습니다.

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

무게=0

합계=0

i=0에서 Len까지

i<=Phase-1이면

t = 1.0*i/(1상)

또 다른

t = 1.0 + (i-상+1)*(2.0*Cyclee-1.0)/(Cyclee*길이-1.0)

엔디프

베타 = Cos(pi*t)

g = 1.0/(계수*t+1)

t <= 0.5이면

g = 1

엔디프

알파 = g * 베타

합계=합+알파*닫기

무게=무게+알파

다음

비라그마=합/중량

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

그리고 당신의 것과 비슷하지만 내 그래프에서 볼 수 있듯이 nonlagma는 닫힘에서 멀리 떨어져 있습니다.

이유를 알고 있습니까? 쉬운 언어로 된 NonlagMa 코드가 있습니까?

고마워 Mladen, 피곤해...

유를 참조하십시오

질리크

파일:
 
zilliq:
글쎄, 나는 많은 다른 것들을 시도하지만 작동하지 않으며 확실히 이유를 모르겠습니다

내 코드는 괜찮은 것 같습니다.

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

무게=0

합계=0

i=0에서 Len까지

i<=Phase-1이면

t = 1.0*i/(1상)

또 다른

t = 1.0 + (i-상+1)*(2.0*Cyclee-1.0)/(Cyclee*길이-1.0)

엔디프

베타 = Cos(pi*t)

g = 1.0/(계수*t+1)

t <= 0.5이면

g = 1

엔디프

알파 = g * 베타

합계=합+알파*닫기

무게=무게+알파

다음

비라그마=합/중량

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

그리고 당신과 비슷하지만 내 그래프에서 볼 수 있듯이 nonlagma는 종가에서 멀리 떨어져 있습니다.

이유를 알고 있습니까? 쉬운 언어로 된 NonlagMa 코드가 있습니까(종종 전사하기 더 쉬움) ???

고마워 Mladen, 피곤해...

유를 참조하십시오

질리크

다음은 알파만 계산하는 버전입니다. _nonlag_ma_alphas.mq4

protrader에서 그런 것을 만드십시오. 일단 그것들이 같으면, 그 후에는 non-lag ma도 동일하게 만드는 것이 쉬워야 합니다. 예는 기간 50에 대한 것입니다.

파일:
 

Mladen님, 감사합니다.

나는이 첫 번째 단계로 테스트 할 것입니다

유를 참조하십시오

질리크

 

잘,

첫째: 좋은 소식 비교하기 더 쉽기 때문에 나는 당신과 동일한 EUR/USD를 가지고 있습니다.

그러나 나는 실제로 성공하지 못한다.

알파를 계산하는 코드는 다음과 같습니다.

이중 사이클 = 4.0;

이중 계수 = 3.0*Pi;

int 단계 = NlmPeriod-1;

int len = NlmPeriod*4 + 위상;

if (ArraySize(알파) != len) ArrayResize(알파,렌);

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

{

if (k<=상-1)

이중 t = 1.0 * k/(1상);

그렇지 않으면 t = 1.0 + (k-위상+1)*(2.0*주기-1.0)/(주기*NlmPeriod-1.0);

이중 베타 = MathCos(Pi*t);

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

알파[k] = g * 베타;

}

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

그래서, 내가 잘 이해한다면 :

1/ 첫 번째 단계: 0에서 len-1까지의 모든 알파를 계산합니다.

이것은:

알파[k] = g * 베타;

2/ 두 번째 단계, 0에서 len-1까지 모든 알파를 추가합니다.

이것은

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

문제는 내 그래프에 항상 동일한 알파가 있다는 것입니다. k, t 등과 같이 각 양초에 대해 어떻게 다른 알파를 가질 수 있습니까? 각 양초에 대해 항상 동일하고 종가에 의존하지 않습니까?

Prorealtime에 있는 코드는 동일한 것 같습니다.

파이=3.14159265358979323846264338327950288

주기 = 4.0

계수 = 3.0*파이

위상 = NlmPeriod-1

len = NlmPeriod*4 + 위상

알파=0

k=0에서 len-1까지

t=0

(k<=Phase-1)이면

t = 1.0 * k/(1상)

또 다른

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

엔디프

베타 = Cos(Pi*t)

g = 1.0/(계수*t+1)

if (t <= 0.5 ) 그렇다면

g = 1

엔디프

알파 = g * 베타

alph=알프+알파

다음

 
zilliq:
잘,

첫째: 좋은 소식 비교하기 더 쉽기 때문에 나는 당신과 동일한 EUR/USD를 가지고 있습니다.

그러나 나는 실제로 성공하지 못한다.

알파를 계산하는 코드는 다음과 같습니다.

이중 사이클 = 4.0;

이중 계수 = 3.0*Pi;

int 단계 = NlmPeriod-1;

int len = NlmPeriod*4 + 위상;

if (ArraySize(알파) != len) ArrayResize(알파,렌);

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

{

if (k<=상-1)

이중 t = 1.0 * k/(1상);

그렇지 않으면 t = 1.0 + (k-위상+1)*(2.0*주기-1.0)/(주기*NlmPeriod-1.0);

이중 베타 = MathCos(Pi*t);

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

알파[k] = g * 베타;

}

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

그래서, 내가 잘 이해한다면 :

1/ 첫 번째 단계: 0에서 len-1까지의 모든 알파를 계산합니다.

이것은:

알파[k] = g * 베타;

2/ 두 번째 단계, 0에서 len-1까지 모든 알파를 추가합니다.

이것은

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

문제는 내 그래프에 항상 동일한 알파가 있다는 것입니다. k, t 등과 같이 각 양초에 대해 어떻게 다른 알파를 가질 수 있습니까? 각 양초에 대해 항상 동일하고 종가에 의존하지 않습니까?

Prorealtime에 있는 코드는 동일한 것 같습니다.

파이=3.14159265358979323846264338327950288

주기 = 4.0

계수 = 3.0*파이

위상 = NlmPeriod-1

len = NlmPeriod*4 + 위상

알파 = 0

k=0에서 len-1까지

t=0

(k<=Phase-1)이면

t = 1.0 * k/(1상)

또 다른

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

엔디프

베타 = Cos(Pi*t)

g = 1.0/(계수*t+1)

if (t <= 0.5 ) 그렇다면

g = 1

엔디프

알파 = g * 베타

alph=알프+알파

다음

질리크

내가 말했듯이 : aplhas의 배열이 있습니다

내가 거기에 표시한 것은 알파 배열입니다 - 시간 구성 요소는 무시하십시오. 그것들은 알파 배열의 모든 알파 값 각각의 값이며, 계산에 사용하는 각 가격 요소에 적용되는 가중치입니다.

 

나는 아마도 당신이 알파 배열이라고 부르는 것을 이해하지 못할 것입니다 (각 촛불에 다른 알파를 이해합니다), 죄송합니다

한 번 더 해볼게...

 
zilliq:

나는 아마도 당신이 알파 배열이라고 부르는 것을 이해하지 못할 것입니다 (각 촛불에 다른 알파를 이해합니다), 죄송합니다

한 번 더 해볼게...

질리크

가격 0 == 1에 대한 계수(알파)

가격 1 == 0.9nnnnn에 대한 계수(알파)

등(비 지연 ma 알파 표시기에 의해 표시됨) 및 현재 비 지연 ma 값을 얻기 위해 len 가격에 사용된 모든 것

 

좋아, 나는 당신의 설명을 이해한다고 생각합니다 (당신은 훌륭합니다 ) 귀하의 코드로 MT4에서 다른 테스트를 수행했습니다.

알파는 1에서 len-1까지 다른 값으로 가격을 숙고하고 마지막에 알파의 합계로 나눕니다.

그래서 오른쪽에 있는 알파의 첫 번째 값이 항상 1이고 우리가 ne nlm 값을 변경하더라도 그래프에서 알파의 측면이 항상 같은 종류의 뱀인 이유입니다.

글쎄, 내가 Prorealtime에서 이것을 할 수있는 방법을 찾아야한다는 것을 알고 있습니다 ...