vendredi 28 août 2020

2020 RSI "TRIPLE HULL" For PROREALTIME update 28 /08/2020

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  

16 commentaires:

  1. ok merci et est ce possible d'avoir le signal en flèche svp.
    Pour 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

    RépondreSupprimer
  2. Excusez moi encore de vous déranger mais j'ai cherché comment rajouter le niveau 30 et 70 mais je ne trouve pas.
    Merci

    RépondreSupprimer
  3. Ce commentaire a été supprimé par l'auteur.

    RépondreSupprimer
  4. Bonsoir 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?

    Voir la comparaison ici: https://imgur.com/a/NPbE8lt

    RépondreSupprimer
  5. Bonsoir ;
    Effectivement le code est différent ,on ne peut pas faire mieux .
    Voir article .

    RépondreSupprimer
  6. Ok et merci pour l'update avec les level 30 et 70 ;)

    PS: 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?

    RépondreSupprimer
    Réponses
    1. Bonsoir
      Non ,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...

      Supprimer
  7. Merci beaucoup pour l'indicateur de cycle, et le sto rsi cci
    Combiné les 2.. On obtient 2 indicateurs très précis.

    RépondreSupprimer
  8. Le top sohocool... Indicateurs et codages mis a disposition gratuitement.. 1 grand merci Monsieur
    Me suis nettement amélioré voir même rentable.. Grâce à vous

    RépondreSupprimer
  9. Bonjour,
    Merci 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

    RépondreSupprimer
    Réponses
    1. Bonjour ,

      C'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;

      Supprimer
    2. 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 ?

      Philippe

      // 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

      Supprimer
    3. non pas de boucle ,tout est bien il faut juste ajouter une condition : il faut au moins barindex =2

      ( VelocityRaw = 100.0*(Close-Close[1]) ) soit barindex >1 .2 lignes à ajouter autrement tout est ok .

      Supprimer
  10. Merci, cette fois ci ça fonctionne.
    J'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"

    RépondreSupprimer
  11. Félicitation . ci dessous un nouveau code plus rapide !!! :

    if 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

    RépondreSupprimer
  12. Bonjour,
    J'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

    RépondreSupprimer