T3 - page 30

 

Oui, juste pour ajouter 2 x ATR

 
sohocool:
Salut Mladen,

Pensez-vous qu'il est possible de faire une moyenne mobile adaptative de coque V2 ? ???

La période décimale semble fonctionner.

Salutations

La coque est basée sur la LWMA et puisque la LWMA est strictement basée sur les barres, elle ne serait pas aussi fluide dans les changements que celles basées sur l'EMA, par exemple (les sous-périodes des 3 LWMA calculées pour obtenir la coque doivent être des valeurs entières). Si nous remplaçons les LWMA dans la coque par des EMA, cela pourrait valoir la peine d'essayer (et si nous évitons d'arrondir les sous-périodescalculées). Il est vrai qu'il ne s'agirait plus d'une HULL, mais peut-être qu'il s'agirait d'une bonne HULL, et qu'elle serait parfaite pour être adaptée.

 
mladen:
La coque est basée sur la LWMA et comme la LWMA est strictement basée sur les barres, les changements ne seraient pas aussi fluides que ceux basés sur l'EMA, par exemple (les sous-périodes des 3 LWMA calculées pour obtenir la coque doivent être des valeurs entières). Si nous remplaçons les LWMA dans la coque par des EMA, cela pourrait valoir la peine d'essayer (et si nous évitons d'arrondir les sous-périodes calculées). Il est vrai qu'il ne s'agirait plus d'une HULL, mais peut-être qu'il s'agirait d'une bonne HULL et qu'elle serait parfaite pour être adaptée.

Merci, je vais essayer de le faire avec l'Ema.

 
sohocool:
Merci, je vais essayer de faire avec Ema.

N'utilisez pas la fonction intégrée iMA() pour cela, car elle arrondit les périodes aux valeurs entières.

Utilisez cette fonction (ou quelque chose de similaire) :

//------------------------------------------------------------------

//

//------------------------------------------------------------------

//

//

//

//

//

double workEma[][3];

double iEma(double price, double period, int r, int instanceNo=0)

{

if (ArrayRange(workEma,0)!= Bars) ArrayResize(workEma,Bars); r = Bars-r-1;

//

//

//

//

//

double alpha = 2.0 / (1.0+period);

workEma[r] = workEma[r-1]+alpha*(price-workEma[r-1]);

return(workEma[r]);

}

dans 3 instances de calcul différentes. Les paramètres sont simples : prix, période, indice et numéro d'instance.

 
mladen:
N'utilisez pas la fonction intégrée iMA() pour cela, car elle arrondit les périodes aux valeurs entières.

Utilisez cette fonction (ou quelque chose de similaire) :

//------------------------------------------------------------------

//

//------------------------------------------------------------------

//

//

//

//

//

double workEma[][3];

double iEma(double price, double period, int r, int instanceNo=0)

{

if (ArrayRange(workEma,0)!= Bars) ArrayResize(workEma,Bars); r = Bars-r-1;

//

//

//

//

//

double alpha = 2.0 / (1.0+period);

workEma[r] = workEma[r-1]+alpha*(price-workEma[r-1]);

return(workEma[r]);

}

dans 3 instances de calcul différentes. Les paramètres sont simples : prix, période, indice et numéro d'instance.

Je dois supprimer et coller ici ? ??

double iT3(double price, double period, double hot, bool clean, int i, int instanceNo=0)

{

if (ArrayRange(workT3,0) !=Bars) ArrayResize(workT3,Bars) ;

si (ArrayRange(workT3Coeffs,0) < (instanceNo+1)) ArrayResize(workT3Coeffs,instanceNo+1) ;

if (workT3Coeffs[_period] != period)

{

workT3Coeffs[_period] = period ;

double a = hot ;

workT3Coeffs[_c1] = -a*a*a ;

workT3Coeffs[_c2] = 3*a*a+3*a*a*a ;

workT3Coeffs[_c3] = -6*a*a-3*a-3*a*a*a ;

workT3Coeffs[_c4] = 1+3*a+a*a*a+3*a*a ;

si (propre)

workT3Coeffs[_alpha] = 2.0/(2.0 + (period-1.0)/2.0) ;

sinon workT3Coeffs[_alpha] = (MathCos(2*Pi/période)+MathSin(2*Pi/période)-1)/MathCos(2*Pi/période) ;

}

 
sohocool:
Je dois supprimer et coller ici ? ??

double iT3(double price, double period, double hot, bool clean, int i, int instanceNo=0)

{

si (ArrayRange(workT3,0) !=Bars) ArrayResize(workT3,Bars) ;

si (ArrayRange(workT3Coeffs,0) < (instanceNo+1)) ArrayResize(workT3Coeffs,instanceNo+1) ;

if (workT3Coeffs[_period] != period)

{

workT3Coeffs[_period] = period ;

double a = hot ;

workT3Coeffs[_c1] = -a*a*a ;

workT3Coeffs[_c2] = 3*a*a+3*a*a*a ;

workT3Coeffs[_c3] = -6*a*a-3*a-3*a*a*a ;

workT3Coeffs[_c4] = 1+3*a+a*a*a+3*a*a ;

si (propre)

workT3Coeffs[_alpha] = 2.0/(2.0 + (period-1.0)/2.0) ;

sinon workT3Coeffs[_alpha] = (MathCos(2*Pi/période)+MathSin(2*Pi/période)-1)/MathCos(2*Pi/période) ;

}

sohocool

J'ai posté une version de cette méthode (qui n'est pas encore une version adaptative) ici : https://www.mql5.com/en/forum/174961/page10

Maintenant, vous devez le rendre adaptatif (après tout, c'était votre idée).

 
sohocool:
Bonjour Mladen,

La fonction adaptative est très intéressante.

J'ai fait le T3 adaptatif avec l'Alpha "Swiss Army".

On peut choisir 2 alphas : clean ou Swiss army.

Salutations.

PS : Si vous voulez une période alpha normale, vous pouvez utiliser un alpha propre : 2 x période.

Bonjour à tous,

Je viens d'ajouter le canal ATR.

 
mladen:
Indicateur T3 utilisant l'écart type pour l'adaptation (T3 est très bon pour l'adaptation, puisque sa longueur de calcul n'a pas besoin d'être un entier - par exemple vous pouvez calculer un T3 nnn.5 - et cela donne une valeur T3 parfaitement lisse même quand l'adaptation est appliquée à elle qui n'est pas un cas avec certains autres types de moyennes adaptatives)

PS : je joins aussi l'ex4 pour ceux qui auraient des problèmes à compiler la source. Bien que l'indicateur soit écrit de la première à la dernière lettre par moi, mon build refusait de le compiler depuis un certain temps. Maintenant, sans crier gare, il le compile sans problème, donc je ne suis pas sûr que quelqu'un d'autre n'aura pas le même problème que moi. Dans ce cas, téléchargez l'ex4 (il est construit avec la build 500).

PS : lorsque vous comparez avec des indicateurs T3 "normaux", mettez T3Original à false (puisque la plupart des indicateurs T3 utilisent le calcul Fulks/Matulich et non le calcul original de Tim Tillson).

Cher Mladen

Serait-il possible pour vous de convertir l'indicateur joint avec 'Adaptive T3 calculations' !

Merci pour toute aide

secretcode

Dossiers :
ma_i-ca.mq4  2 kb
 
secretcode:
Cher Mladen

Serait-il possible pour vous de convertir l'indicateur ci-joint avec 'Adaptive T3 calculations' !

Merci pour toute aide

secretcode

code secret

Voici Utilisez les mêmes paramètres par défaut que l'indicateur original (afin de pouvoir les comparer facilement - comme prévu, celui-ci est beaucoup plus rapide).

Dossiers :
 

Salut Mladen,

N'avez-vous jamais pensé à faire un fichier bibliothèque rassemblant vos belles méthodes de codage pour lisser le prix, ou s'adapter aux cycles du marché, etc. ? Je pense qu'un tel fichier serait très utile à bien des égards, au moins pour rendre la structure de codage de beaucoup de vos indicateurs plus propre et plus claire (ils sont déjà très propres et clairs, je connais mais je souhaite toujours faire mieux et rechercher l'excellence).

Personnellement, j'aimerais avoir un tel fichier lib de vous, comme votre célèbre DynamicZone.dll . Ils rendent tous le monde du codage de plus en plus intéressant et pratique, pour moi en tout cas.

Raison: