Announcement

Collapse
No announcement yet.

Formule Du Repulse créé par Anaphraîs

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Formule Du Repulse créé par Anaphraîs

    J'ai progammé l'indicateur repulse dont le code est ci dessous
    ( ici l'indicateur n'est pas complet car il faut encore faire des lissages)

    Le problème est le suivant:
    Les valeurs retournées sont correcte sauf les deux ou trois denières qui deviennent très grandes, par rapport aux autres valeurs retournées qui elles sont correctes.

    Il y a alors un problème d'échelle et le tracé de l'indicateur devient illisible. C'est dommage car l'indicateur repulse est un indicateur de sentiment extrêmement efficace pour analyser une
    tendance.

    Ai-je commis des erreur dans mon code??
    Merci pour votre aide


    function preMain(){
    setPriceStudy (false);
    setStudyTitle("Repulse");
    setComputeOnClose(true);

    }
    function main() {
    /*poussée haussière*/
    ph=100*((3*close(-1))-(2*low())-open())/close();
    /*poussée baissière*/
    pb=100*(open()+(2*high())-(3*close(-1)))/close();
    rep_h=ema(5,ph);
    rep_b=ema(5,pb);
    repulse=rep_h-rep_b;

    return repulse;
    menarys

  • #2
    menarys
    Ci-dessous vous pouvez trouver la formule pour l'indicateur Repulse avec sa moyenne mobile.
    Pour une explication (en Anglais) des fonctions efsInternal() que j'ai utilisé dans ma formule voyez ici
    Si vous voulez je peux expliquer les erreurs dans votre formule mais je devrai faire ceci en Anglais parce que mon Français n'est pas suffisantement bon particulièrement avec questions techniques
    Alex

    PHP Code:
    function preMain(){
        
    setPriceStudy(false);
        
    setStudyTitle("Repulse (Anaphrais)");
        
    setCursorLabelName("Repulse",0);
        
    setCursorLabelName("MARepulse",1);
        
    setDefaultBarFgColor(Color.blue0);
        
    setDefaultBarFgColor(Color.red1);
    }
     
    var 
    bInit0 false;
    var 
    Rep null;
    var 
    MARep null;
     
    function 
    main(RepLength,MALength){
        if(
    RepLength==nullRepLength=5;
        if(
    MALength==nullMALength=40;
     
        if(
    bInit0==false){
            
    Rep   efsInternal("calc0",RepLength);
            
    MARep ema(MALength,getSeries(Rep))
            
    bInit0=true;
        }
        return new Array(
    Rep.getValue(0),3*MARep.getValue(0));
    }
     
    var 
    bInit1 false;
    var 
    res null;
    var 
    maA null;
    var 
    maB null;
     
    function 
    calc0(replength){
        if(
    bInit1==false){
            
    res efsInternal("calc1");
            
    maA ema(replength,getSeries(res,0));
            
    maB ema(replength,getSeries(res,1));
            
    bInit1=true;
        }
        return 
    maA.getValue(0)-maB.getValue(0);
    }
     
    function 
    calc1(){
        var 
    = ((3*close(0)-(2*low(0))-open(0))/close(0))*100;
        var 
    = ((open(0)+(2*high(0))-(3*close(0)))/close(0))*100;
        return new Array (
    AB);



    Comment


    • #3
      Merci à Alexis


      Merci Alexis pour cette brillante démonstration de prog
      EFS devient désormais un peut plus clair pour moi
      menarys

      Comment

      Working...
      X