Ferramentas não deslizantes - página 48

 
zilliq:
Nós também usamos radianos

Pode ser uma explicação: No código MT4 multiplicamos alfa com preço

Suponho que este seja o preço, i périods before, no ?

E assim precisamos acrescentar, por exemplo, com um len de 5

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

ou

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

E é estranho, porque com um comprimento de 1 o len é igual a 4 (4*1+0) e assim o nonlagma não pode ser igual a fechar porque adicionamos o preço alfa* dos últimos 4 períodos

Obrigado por seus próximos comentários

Zilliq

É usar seu código, mas para entender melhor uso o código mais simples do NonlagMav3

pi duplo = 3,1415926535;

duplo Coeff = 3*pi;

int Fase = Length-1;

duplo Len = Comprimento*Ciclo + Fase;

se ( Barras_contadas > 0 ) limite=Barras_contadas_bars;

se ( barras_contadas < 0 ) retorno(0);

se ( barras_contadas ==0 ) limite=barras-len-1;

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

{

Peso=0; Soma=0; t=0;

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

{

g = 1,0/(Coeff*t+1);

se (t <= 0,5 ) g = 1;

beta = MathCos(pi*t);

alfa = g * beta;

preço = iMA(NULL,0,1,0,MODE_SMA,Price,shift+i);

Soma += alfa*preço;

Peso += alfa;

se ( t < 1 ) t += 1,0/(Fasese-1);

caso contrário se ( t < Len-1 ) t += (2*Ciclo-1)/(Ciclo*Comprimento-1);

}

se (Peso > 0) MABuffer[shift] = Soma/Peso;

Você deve usar a forma alfa[4]*close[4]+alfa[3]*close[3]+alfa[2]*close[2]+alfa[1]*close[1] e alfa*close (alfa é diferente para cada elemento)

Por que você não faz uma versão simples que exibe valores de alfas e os compara com valores de alfas no metatrader 4?

 

Obrigado, Mladen,

Vou tentar isto

Na verdade, na MT4, tenho o preço cfd do meu corretor (Activtrade), e na Prorealtime este é outro fluxo em dinheiro, então há uma grande diferença

Muito obrigado e Veja U mais tarde

Zilliq

 

Bem, eu tento muitas coisas diferentes, mas não funciona e definitivamente não sei porquê.

Meu código parece estar bem:

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

peso=0

soma=0

para i=0 a Len

se i<=Fase-1 então

t = 1,0*i/(Phase-1)

senão

t = 1,0 + (i-Phase+1)*(2,0*Ciclo-1,0)/(Ciclo*Comprimento-1,0)

endif

beta = Cos(pi*t)

g = 1.0/(Coeff*t+1)

se t <= 0,5 então

g = 1

endif

alfa = g * beta

sum=sum+alfa*close

peso=peso+alfa

próximo

nonlagma=sum/peso

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

E semelhante ao seu, mas como você vê no meu gráfico, o nonlagma está muito longe do close.

Você tem uma idéia do porquê, e você tem o código NonlagMa em linguagem fácil (muitas vezes mais fácil de transcriptar) ????

Muito obrigado Mladen, estou cansado...

Veja U

Zilliq

Arquivos anexados:
 
zilliq:
Bem, eu tento muitas coisas diferentes, mas não funciona e definitivamente não sei por que

Meu código parece estar bem:

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

peso=0

soma=0

para i=0 a Len

se i<=Fase-1 então

t = 1,0*i/(Phase-1)

senão

t = 1,0 + (i-Phase+1)*(2,0*Ciclo-1,0)/(Ciclo*Comprimento-1,0)

endif

beta = Cos(pi*t)

g = 1.0/(Coeff*t+1)

se t <= 0,5 então

g = 1

endif

alfa = g * beta

sum=sum+alfa*close

peso=peso+alfa

próximo

nonlagma=sum/peso

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

E semelhante ao seu, mas como você vê no meu gráfico, o nonlagma está muito longe do close.

Você tem uma idéia do porquê, e você tem o código NonlagMa em linguagem fácil (muitas vezes mais fácil de transcriptar) ????

Muito obrigado Mladen, estou cansado...

Veja U

Zilliq

Aqui está uma versão que calcula apenas o alfabeto : _nonlag_ma_alphas.mq4

Faça algo assim em protrader. Uma vez que sejam iguais, depois disso deve ser fácil fazer com que os não-latras também sejam iguais. O exemplo é para o período 50

Arquivos anexados:
 

Muito obrigado, Mladen,

Vou testar com este primeiro passo

Ver U

Zilliq

 

Bem,

Primeiro: boas notícias tenho o mesmo EUR/USD que você, pois será mais fácil de comparar

Mas eu não tenho sucesso na verdade

Seu código t ocalculate alfa é:

ciclo duplo = 4,0;

duplo Coeff = 3,0*Pi;

int Fase = NlmPeriod-1;

int len = NlmPeriod*4 + Fase;

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

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

{

se (k<=Fase-1)

duplo t = 1,0 * k/(Phase-1);

senão t = 1,0 + (k-Phase+1)*(2,0*Ciclo-1,0)/(Ciclo*NlmPeriod-1,0);

duplo beta = MathCos(Pi*t);

duplo g = 1,0/(Coeff*t+1); se (t <= 0,5 ) g = 1;

alphas[k] = g * beta;

}

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

Então, se eu entendi bem:

1/ Primeira letra: Calcula todos os alfas de 0 a len-1

Isto é:

alphas[k] = g * beta;

2/ Segundo passo, adiciona todos os alfas de 0 a len-1

Isto é

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

O problema é que eu tenho sempre o mesmo alfa no meu gráfico ? Como você pode ter um alfa diferente em cada vela como k, t e assim por diante são sempre os mesmos em cada vela ?, e não depende do fechamento ?

O código que eu tenho no Prorealtime parece ser o mesmo:

Pi=3.14159265358979323846264338327950288

Ciclo = 4,0

Coeff = 3.0*Pi

Fase = NlmPeriod-1

len = NlmPeriod*4 + Fase

alph=0

para k=0 a len-1

t=0

se (k<=Fase-1) então

t = 1,0 * k/(Phase-1)

senão

t = 1,0 + (k-Phase+1)*(2,0*Ciclo-1,0)/(Ciclo*NlmPeriod-1,0)

endif

beta = Cos(Pi*t)

g = 1.0/(Coeff*t+1)

se (t <= 0,5 ) então

g = 1

endif

alphas= g * beta

alph=alph+alphas

próximo

 
zilliq:
Bem,

Primeiro: boas notícias tenho o mesmo EUR/USD que você, pois será mais fácil de comparar

Mas eu não tenho sucesso na verdade

Seu código t ocalculate alfa é:

ciclo duplo = 4,0;

duplo Coeff = 3,0*Pi;

int Fase = NlmPeriod-1;

int len = NlmPeriod*4 + Fase;

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

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

{

se (k<=Fase-1)

duplo t = 1,0 * k/(Phase-1);

senão t = 1,0 + (k-Phase+1)*(2,0*Ciclo-1,0)/(Ciclo*NlmPeriod-1,0);

duplo beta = MathCos(Pi*t);

duplo g = 1,0/(Coeff*t+1); se (t <= 0,5 ) g = 1;

alphas[k] = g * beta;

}

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

Então, se eu entendi bem:

1/ Primeira letra: Calcula todos os alfas de 0 a len-1

Isto é:

alphas[k] = g * beta;

2/ Segundo passo, adiciona todos os alfas de 0 a len-1

Isto é

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

O problema é que eu tenho sempre o mesmo alfa no meu gráfico ? Como você pode ter um alfa diferente em cada vela como k, t e assim por diante são sempre os mesmos em cada vela ?, e não depende do fechamento ?

O código que eu tenho no Prorealtime parece ser o mesmo:

Pi=3.14159265358979323846264338327950288

Ciclo = 4,0

Coeff = 3.0*Pi

Fase = NlmPeriod-1

len = NlmPeriod*4 + Fase

alph=0

para k=0 a len-1

t=0

se (k<=Fase-1) então

t = 1,0 * k/(Phase-1)

senão

t = 1,0 + (k-Phase+1)*(2,0*Ciclo-1,0)/(Ciclo*NlmPeriod-1,0)

endif

beta = Cos(Pi*t)

g = 1.0/(Coeff*t+1)

se (t <= 0,5 ) então

g = 1

endif

alphas= g * beta

alph=alph+alphas

próximo

Zilliq

Como eu disse: há uma série de aplhas

O que eu exibi ali é um conjunto de alfas - desconsiderar o componente tempo. Esses são os valores de cada valor alfa da matriz de alfas, Esses são os pesos que são aplicados a cada elemento de preço que você usa para o cálculo.

 

Eu provavelmente não entendo o que você chama de matriz de alfas (entendo diferentes alfas em cada vela), desculpe

Vou tentar mais uma vez...

 
zilliq:

Eu provavelmente não entendo o que você chama de matriz de alfas (entendo diferentes alfas em cada vela), desculpe

Vou tentar mais uma vez...

Zilliq

Coeficiente (alfa) para preço 0 == 1

Coeficiente (alfa) para preço 1 == 0,9nnnnn

e assim por diante (como é mostrado pelo indicador non lag ma alphas) e tudo o que é usado para os preços do len para obter o valor atual non lag ma

 

Ok, acho que entendi suas explicações (você é ótimo ) e fiz testes diferentes no MT4 com seu código

o alfa que como um valor diferente de 1 a len-1 pondera o preço e no final dividimos pela soma dos alfas

É por isso que o primeiro valor de alfas à direita é sempre 1 e é por isso que, mesmo que mudemos de valor, o aspecto dos alfas no gráfico é sempre o mesmo tipo de cobra)

Bem, saiba que preciso procurar como posso fazer isso na Prorealtime...