UPGRADE 28/08/2020:
Avec un nouvel alpha plus rapide et un amortisseur (Damping)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2019
Bonsoir FUNGRAPHIC ,J'ai codé le code Mt4 vu sur Forexfactory ,
Après vérification ,le code original Mt4 ne repeint pas , J'ai fait un copier /coller sur PRt .
PRT calcule le code comme je l'ai posté ,effectivement c'est pas les même
valeurs que Mt4 , de mon point de vue, PRT rectifie automatiquement les erreur du
code MT4 (le calcul des exponentielles est faux).
Vous pouvez le tester .
En fait il n'y a pas de moyenne de Hull plutôt des moyennes exponentielles avec un alpha différent .
Bien à vous.
PS = Avec Niveaux haut et bas (Level).
2019-RSI TRIPLE HULL With Levels .ITF
ok merci et est ce possible d'avoir le signal en flèche svp.
RépondreSupprimerPour info j'utilise en M15 sur le dax avec la valeur 11 en M1 et M5 valeur 18
Example en image pour la flèche:
https://imgur.com/a/wczUEhD
Excusez moi encore de vous déranger mais j'ai cherché comment rajouter le niveau 30 et 70 mais je ne trouve pas.
RépondreSupprimerMerci
Ce commentaire a été supprimé par l'auteur.
RépondreSupprimerBonsoir après avoir testé votre indicateur je n'ai pas les même résultats que sur MT4 du coup j'ai fais une comparaison et ils ne se ressemblent pas. Vous êtes sur de votre code?
RépondreSupprimerVoir la comparaison ici: https://imgur.com/a/NPbE8lt
Bonsoir ;
RépondreSupprimerEffectivement le code est différent ,on ne peut pas faire mieux .
Voir article .
Ok et merci pour l'update avec les level 30 et 70 ;)
RépondreSupprimerPS: petite question, quand je lis l'article vous dite avoir fais copié collé du code mt4 dans PRT.
il y a une fonction de prt qui permet de rebuild du MT4 en PRT?
Bonsoir
SupprimerNon ,je copie le code MT4 je le colle dans PRT ,je supprime toute les lignes inutiles pour Prt
Puis je l'adapte à PRT ,suppression des points virgules etc...
Merci beaucoup pour l'indicateur de cycle, et le sto rsi cci
RépondreSupprimerCombiné les 2.. On obtient 2 indicateurs très précis.
Le top sohocool... Indicateurs et codages mis a disposition gratuitement.. 1 grand merci Monsieur
RépondreSupprimerMe suis nettement amélioré voir même rentable.. Grâce à vous
Bonjour,
RépondreSupprimerMerci pour votre blog ainsi que tous les indicateurs que vous créez.
Je suis intéressé par cet indicateur RSI Triple Hull.
Perso j'utilise cet indicateur avec succès de la façon suivante :
Indicateur RSI Triple Hull Fast sous format histogramme avec les levels 25 et 65
J'aimerais pouvoir voir s'il est encore possible d'optimiser l'indicateur.
Serait il possible d'avoir le code prt svp ?
voici mon adresse mail : couscoustrading4@gmail.com
Merci d'avance
Philippe
Bonjour ,
SupprimerC'est un code MT4 trouvé sur forex factory .Ci joint le code exploitable MT4 facile à
traduire en Prorealtime .
Via mon blog j'essaye d'encourager les gens à coder .
Bien à vous.
Philippe
VelocityRaw = 100.0*(Close[shift]-Close[shift+1]); // velocity f8 - f10;
// a Hull MA.
vel_1A = MixingC * vel_1A + Mixing * VelocityRaw;
vel_1B = Mixing * vel_1A + MixingC * vel_1B;
vel_HMA1 = vel_1A * 1.5 - vel_1B * 0.5;
//Print("vel_1a= ",vel_1A, "vel_1b= ",vel_1B);
// another Hull MA
vel_2A = MixingC * vel_2A + Mixing * vel_HMA1;
vel_2B = Mixing * vel_2A + MixingC * vel_2B;
vel_HMA2 = vel_2A * 1.5 - vel_2B * 0.5;
// Yet another Hull MA;
vel_3A = MixingC * vel_3A + Mixing * vel_HMA2;
vel_3B = Mixing * vel_3A + MixingC * vel_3B;
vel_HMA3 = vel_3A * 1.5 - vel_3B * 0.5;
// Onto volatility.
vol_1A = MixingC * vol_1A + Mixing * MathAbs(VelocityRaw);
vol_1B = Mixing * vol_1A + MixingC * vol_1B;
vol_HMA1 = vol_1A * 1.5 - vol_1B * 0.5;
// Hull MA
vol_2A = MixingC * vol_2A + Mixing * vol_HMA1;
vol_2B = Mixing * vol_2A + MixingC * vol_2B;
vol_HMA2 = vol_2A * 1.5 - vol_2B * 0.5;
if (vol_HMA2 == 0) vol_HMA2 =0.1;
// Hull MA
vol_3A = MixingC * vol_3A + Mixing * vol_HMA2;
vol_3B = Mixing * vol_3A + MixingC * vol_3B;
vol_HMA3 = vol_3A * 1.5 - vol_3B * 0.5;
if (vol_HMA3 == 0) vol_HMA3 =0.1;
Comment("Mixing ", Mixing,"\nMixingC ",MixingC,"\nvel_HMA2 ",vel_HMA2,"\nvol_HMA2 ",vol_HMA2,
"\nvel_HMA3 ",vel_HMA3,"\nvol_HMA3 ",vol_HMA3,"\nrth ",(vel_HMA3 / vol_HMA3 + 1.0),
"\nrthfast ",(vel_HMA2 / vol_HMA2+1.0));
rsi_triple_hull[shift] = (vel_HMA3 / vol_HMA3 + 1.0) * 50.0;
rsi_triple_hullfast[shift] = (vel_HMA2 / vol_HMA2+1.0)*50.0;
Le problème c'est que je ne connais pas trop le langage MT4. J'ai essayé en rajoutant le code manquant, mais ca ne marche toujours pas. Faut il utiliser une boucle For ?
SupprimerPhilippe
// Len=14
Mixing = 3.0 / (Len + 2.0)
MixingC = 1.0 - Mixing
VelocityRaw = 100.0*(Close-Close[1]) // velocity f8 - f10;
// a Hull MA.
vel1A = MixingC * vel1A + Mixing * VelocityRaw
vel1B = Mixing * vel1A + MixingC * vel1B
velHMA1 = vel1A * 1.5 - vel1B * 0.5
//Print("vel_1a= ",vel_1A, "vel_1b= ",vel_1B);
// another Hull MA
vel2A = MixingC * vel2A + Mixing * velHMA1
vel2B = Mixing * vel2A + MixingC * vel2B
velHMA2 = vel2A * 1.5 - vel2B * 0.5
// Yet another Hull MA;
vel3A = MixingC * vel3A + Mixing * velHMA2
vel3B = Mixing * vel3A + MixingC * vel3B
velHMA3 = vel3A * 1.5 - vel3B * 0.5
// Onto volatility.
vol1A = MixingC * vol1A + Mixing * Abs(VelocityRaw)
vol1B = Mixing * vol1A + MixingC * vol1B
volHMA1 = vol1A * 1.5 - vol1B * 0.5
// Hull MA
vol2A = MixingC * vol2A + Mixing * volHMA1
vol2B = Mixing * vol2A + MixingC * vol2B
volHMA2 = vol2A * 1.5 - vol2B * 0.5
if volHMA2 = 0 then
volHMA2 =0.1
Endif
// Hull MA
vol3A = MixingC * vol3A + Mixing * volHMA2
vol3B = Mixing * vol3A + MixingC * vol3B
volHMA3 = vol3A * 1.5 - vol3B * 0.5
if volHMA3 = 0 then
volHMA3 =0.1
Endif
rsitriplehull = (velHMA3 / volHMA3 + 1.0) * 50.0
rsitriplehullfast = (velHMA2 / volHMA2+1.0)*50.0
return rsitriplehull, rsitriplehullfast
non pas de boucle ,tout est bien il faut juste ajouter une condition : il faut au moins barindex =2
Supprimer( VelocityRaw = 100.0*(Close-Close[1]) ) soit barindex >1 .2 lignes à ajouter autrement tout est ok .
Merci, cette fois ci ça fonctionne.
RépondreSupprimerJ'ai pratiquement la même courbe que votre indicateur mais il y a encore quelques différences mineures avec le code suivant :
// Len=14
Mixing = 3.0 / (Len + 2.0)
MixingC = 1.0 - Mixing
If barindex>1 then
VelocityRaw = 100.0*(Close-Close[1]) // velocity f8 - f10;
// a Hull MA.
vel1A = MixingC * vel1A + Mixing * VelocityRaw
vel1B = Mixing * vel1A + MixingC * vel1B
velHMA1 = vel1A * 1.5 - vel1B * 0.5
//Print("vel_1a= ",vel_1A, "vel_1b= ",vel_1B);
// another Hull MA
vel2A = MixingC * vel2A + Mixing * velHMA1
vel2B = Mixing * vel2A + MixingC * vel2B
velHMA2 = vel2A * 1.5 - vel2B * 0.5
// Yet another Hull MA;
vel3A = MixingC * vel3A + Mixing * velHMA2
vel3B = Mixing * vel3A + MixingC * vel3B
velHMA3 = vel3A * 1.5 - vel3B * 0.5
// Onto volatility.
vol1A = MixingC * vol1A + Mixing * Abs(VelocityRaw)
vol1B = Mixing * vol1A + MixingC * vol1B
volHMA1 = vol1A * 1.5 - vol1B * 0.5
// Hull MA
vol2A = MixingC * vol2A + Mixing * volHMA1
vol2B = Mixing * vol2A + MixingC * vol2B
volHMA2 = vol2A * 1.5 - vol2B * 0.5
if volHMA2 = 0 then
volHMA2 =0.1
Endif
// Hull MA
vol3A = MixingC * vol3A + Mixing * volHMA2
vol3B = Mixing * vol3A + MixingC * vol3B
volHMA3 = vol3A * 1.5 - vol3B * 0.5
if volHMA3 = 0 then
volHMA3 =0.1
Endif
rsitriplehull = (velHMA3 / volHMA3 + 1.0) * 50.0
rsitriplehullfast = (velHMA2 / volHMA2+1.0)*50.0
endif
return rsitriplehull as "RSI Triple Hull", rsitriplehullfast as "RSI Triple Hull Fast"
Félicitation . ci dessous un nouveau code plus rapide !!! :
RépondreSupprimerif barindex >1 then
Len=14
Mixing = 3.0 / (Len + 2.0)
MixingC = 1.0 - Mixing
VelocityRaw = 100.0*(Close-Close[1]) // velocity f8 - f10;
// a Hull MA.
vel1A = MixingC * vel1A + Mixing * VelocityRaw
vel1B = Mixing * vel1A + MixingC * vel1B
velHMA1 = vel1A *2- vel1B * 1
//Print("vel_1a= ",vel_1A, "vel_1b= ",vel_1B);
// another Hull MA
vel2A = MixingC * vel2A + Mixing * velHMA1
vel2B = Mixing * vel2A + MixingC * vel2B
velHMA2 = vel2A * 2 - vel2B * 1
// Yet another Hull MA;
vel3A = MixingC * vel3A + Mixing * velHMA2
vel3B = Mixing * vel3A + MixingC * vel3B
velHMA3 = vel3A * 2 - vel3B * 1
// Onto volatility.
vol1A = MixingC * vol1A + Mixing * Abs(VelocityRaw)
vol1B = Mixing * vol1A + MixingC * vol1B
volHMA1 = vol1A * 2 - vol1B * 1
// Hull MA
vol2A = MixingC * vol2A + Mixing * volHMA1
vol2B = Mixing * vol2A + MixingC * vol2B
volHMA2 = vol2A * 2 - vol2B * 1
if volHMA2 = 0 then
volHMA2 =0.1
Endif
// Hull MA
vol3A = MixingC * vol3A + Mixing * volHMA2
vol3B = Mixing * vol3A + MixingC * vol3B
volHMA3 = vol3A * 2 - vol3B * 1
if volHMA3 = 0 then
volHMA3 =0.1
Endif
rsitriplehull = (velHMA3 / volHMA3 + 1.0) * 50.0
rsitriplehullfast = (velHMA2 / volHMA2+1.0)*50.0
endif
return rsitriplehull, rsitriplehullfast
Bonjour,
RépondreSupprimerJ'ai vu que vous avez mis à jour l'indicateur en changeant la valeur alpha et en modifiant le damping. Cela correspond il au dernier code ci dessus ? Quelle est la valeur alpha et le damping dans le code ci dessus ?
Merci
Philippe