Outils de non-lagage - page 47

 

Vous ne dormez jamais ? ???

Il est 1 heure du matin en France...

Juste pour être sûr aussi. A la fin, la première somme que nous avons nlmprices[r-k]

C'est la somme de tous les prix ou de tous les prix avec m comme momentum (qui peut être 1, 2 ou plus comme avec un RMI ?

Je dis cela parce que c'est étrange avec mon code quand je mets length>6 la NonLagMa n'est plus sur les bougies mais en dessous comme ce n'est pas habituel avec les autres MA (Tillson, SSmoother etc.)

Merci

Zilliq

 

Par exemple un nonlagma avec une longueur de 4 : c'est ok.

Mais avec une longueur de 9 en bleu c'est très en dessous de la différence par exemple d'un Tillson MA en rouge qui reste sur les bougies avec une longueur de 6 et qui est plus fluide.

C'est logique mais la NonlagMa semble être plus réactive mais moins lisse n'est-ce pas ?

Dossiers :
 
zilliq:
Par exemple, un non-lagma d'une longueur de 4 : c'est bon.

Mais avec une longueur de 9 en bleu est très en dessous à la différence par exemple d'un Tillson MA en rouge qui reste sur les bougies avec une longueur de 6 et qui est plus lisse.

C'est logique mais le NonlagMa semble être plus réactif mais moins lisse, n'est-ce pas ?

zilliq

Oui. En règle générale, plus un filtre est réactif (sauf s'il s'agit d'un filtre d'ajustement / de recalcul), moins il sera lisse.

 

Je pense avoir un problème avec mon code, car avec la longueur de 1, le NonlagMa n'est pas sur le prix à la différence de votre code

Je vais chercher où est le problème il semble être sur l'alfa

Voir U

Zilliq

 
zilliq:
Je pense que j'ai un problème avec mon code, car avec la longueur de 1, le NonlagMa n'est pas sur le prix à la différence de votre code

Je vais chercher où est le problème il semble être sur l'alfa

Voir U

Zilliq

Zillq

La longueur 1 devrait être égale au prix lui-même (chaque moyenne doit retourner le prix lui-même pour la longueur 1)

 

Salut Mladen,

J'espère que tu vas bien,

Je pense avoir réussi à coder le Nonlagma.

Et je vois quelque chose de très curieux : Il semble très similaire à un T3 Tillson comme vous le voyez sur mon graphique (en violet le nonlagma et en bleu un T3). Avez-vous déjà vu cela et avez-vous une explication ? La T3 est plus lisse et a le même décalage "Nonlag". Je pensais que le Nonlagma serait meilleur.

Peut-être une question stupide mais quel est pour vous le "meilleur" MA (T3, Oma, NonlagMa, Hull etc...), qui signifie le meilleur ratio lisse/nonlag ?

Bonne nuit et merci pour votre aide

Zilliq

Dossiers :
 
zilliq:
Bonjour Mladen,

J'espère que tu vas bien,

Je pense avoir réussi à coder le Nonlagma.

Et je vois quelque chose de très curieux : Il semble très similaire à un T3 Tillson comme vous le voyez sur mon graphique (en violet le nonlagma et en bleu un T3). Avez-vous déjà vu cela et avez-vous une explication ? La T3 est plus lisse et a le même décalage "Nonlag". Je pensais que le Nonlagma serait meilleur.

Peut-être une question stupide mais quel est pour vous le "meilleur" MA (T3, Oma, NonlagMa, Hull etc...), qui signifie le meilleur ratio lisse/nonlag ?

Bonne nuit et merci pour votre aide

Zilliq

zilliq

Chaque moyenne, si vous comparez des périodes courtes, ressemble aussi à une autre moyenne (c'est pourquoi, par exemple, les moyennes adaptatives ressemblent à n'importe quelle autre moyenne lorsque la période est courte - elles n'ont simplement pas la "place" pour montrer ce qu'elles sont réellement).

Ce n'est que lorsque les périodes de calcul sont suffisamment longues que vous pouvez voir la différence. Voici une comparaison d'une T3 et d'une ma non lag sur 25 périodes - la différence ne cesse de croître au fur et à mesure que la période s'allonge - l'orange est la ma non lag, le vert est la T3.

Dossiers :
comparison.gif  65 kb
 

Merci Mladen,

Je comprends, et c'est très clair sur votre graphique.

C'est étrange parce que quand j'utilise le code nonlagma I sur mon graphique il n'est pas aussi proche du prix que sur votre graphique (bleu est T3 violet est Nonlagma) ici avec une période de 20

Je sais que ce n'est pas le même langage de code que MT4 mais pouvez-vous confirmer le calcul de l'alfa que nous appliquons sur chaque prix :

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

pi = 3.14159265358979323846264338327950288

Cyclee=4

Coeff = 3*pi

Phase = Longueur-1

Len = Longueur*Cyclee + Phase

poids=0

somme=0

pour i=0 à Len

si i<=Phase-1 alors

t = 1.0*i/(Phase-1)

sinon

t = 1,0 + (i-Phase+1)*(2,0*Cyclee-1,0)/(Cyclee*Longueur-1,0)

endif

beta = Cos(pi*t)

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

si t <= 0,5 alors

g = 1

endif

alfa = g * beta

sum=close*alfa

poids=alfa

suivant

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

Parce qu'il semble qu'il y ait une grande différence et je ne comprends pas pourquoi.

Après cela, nous ajoutons tous les alfa*prix sur une période de "Longueur".

Même chose pour alfa, nous ajoutons tous les alfa sur la période de "Length".

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

sum1=summation[Longueur](sum)

poids1=summation[Longueur](poids)

nonlagma=somme1/poids1

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

Mais je n'ai pas le même Nonlagma ? ??

Ai-je oublié quelque chose dans le code MT4 ?

Merci beaucoup pour votre aide

Zilliq

Dossiers :
 
zilliq:
Merci Mladen,

Je comprends, et c'est très clair sur votre graphique.

C'est étrange parce que quand j'utilise le code nonlagma I sur mon graphique il n'est pas aussi proche du prix que sur votre graphique (bleu est T3 violet est Nonlagma) ici avec une période de 20

Je sais que ce n'est pas le même langage de code que MT4 mais pouvez-vous confirmer le calcul de l'alfa que nous appliquons sur chaque prix :

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

pi = 3.14159265358979323846264338327950288

Cyclee=4

Coeff = 3*pi

Phase = Longueur-1

Len = Longueur*Cyclee + Phase

poids=0

somme=0

pour i=0 à Len

si i<=Phase-1 alors

t = 1.0*i/(Phase-1)

sinon

t = 1,0 + (i-Phase+1)*(2,0*Cyclee-1,0)/(Cyclee*Longueur-1,0)

endif

beta = Cos(pi*t)

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

si t <= 0,5 alors

g = 1

endif

alfa = g * beta

sum=close*alfa

poids=alfa

suivant

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

Parce qu'il semble qu'il y ait une grande différence et je ne comprends pas pourquoi.

Après cela, nous ajoutons tous les alfa*prix sur une période de "Longueur".

Même chose pour alfa, nous ajoutons tous les alfa sur la période de "Length".

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

sum1=summation[Longueur](sum)

poids1=summation[Longueur](poids)

nonlagma=somme1/poids1

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

Mais je n'ai pas le même Nonlagma ? ??

Ai-je oublié quelque chose dans le code MT4 ?

Merci beaucoup pour votre aide

Zilliq

Comment fonctionne la fonction cosinus dans votre plateforme : utilise-t-elle des radians ou des degrés comme argument ?

Le cosinus de Metatrader utilise des radians.

 

Nous utilisons aussi le radian

Il y a peut-être une explication : Dans le code MT4, on multiplie alfa par prix.

Je suppose que c'est le prix, je périods avant, non ?

Et donc on doit ajouter, par exemple avec une len de 5

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

ou

alfa[4]*fermeture[4]+alfa[3]*fermeture[3]+alfa[2]*fermeture[2]+alfa[1]*fermeture[1] et alfa*fermeture ?

Et c'est étrange, car avec une longueur de 1 la len est égale à 4 (4*1+0) et donc le nonlagma ne peut pas être égal à close car on ajoute l'alfa*prix des 4 dernières périodes.

Merci pour vos prochains commentaires

Zilliq

J'utilise votre code, mais pour mieux comprendre j'utilise le code le plus simple du NonlagMav3

double pi = 3.1415926535 ;

double Coeff = 3*pi ;

int Phase = Length-1 ;

double Len = Length*Cycle + Phase ;

si ( counted_bars > 0 ) limit=Bars-counted_bars ;

si ( barres comptées < 0 ) retour(0) ;

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

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

{

Poids=0 ; Somme=0 ; t=0 ;

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

{

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

si (t <= 0.5 ) g = 1 ;

beta = MathCos(pi*t) ;

alfa = g * beta ;

prix = iMA(NULL,0,1,0,MODE_SMA,Prix,shift+i) ;

Somme += alfa*prix ;

Poids += alfa ;

si ( 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 ;