Page 1 of 1

Fonction "IsFirstBar()"

Posted: 12 Apr 2017 11:00
by Lurubu
Bonjour,
J'ai une difficulté avec la fonction "IsFirstBar()".

J'ai écrit le programme d'une moyenne lissée avec cette fonction.
Lorsque la moyenne se fait sur "Close", tout fonctionne.
Si je remplace "Close" par un Momentum ("Mom") tout s'efface, et réapparait si je supprime la fonction "IsFirstBar().
Comment faire pour employer cette moyenne de momentum sans alourdir les calculs ?

Merci d'avance.

Ci-dessous , le programme en question.

Express RG_Test_MM

Vars

Input $n(1,100,10);
Series Mom,MM,MMlissee;

Calculation

Mom = Close - Close[10];
If IsFirstBar() then
begin
MovingAverage(Close,MM,$n); // ne fonctionne plus si Close est remplacé par Mom.[/color][/color]
MovingAverage(MM,MMlissee,$n);
end

Interpretation
begin
end

Plot(MM,Black,1);
Plot(MMLissee,LightBlue,1);

Re: Fonction "IsFirstBar()"

Posted: 19 Apr 2017 18:46
by WHS Support
Bonsoir,

Vous ne pouvez pas calculer Mom. avant "IsFirsBar" mais plutot dans "IsFirstBar" (avec l´aide d´une Loop).

Merci d´essayer ce code:

Code: Select all

Express RG_Test_MM

Vars

Input $n(1,100,10);
Numeric i;
Series  Mom,MM,MMlissee;

Calculation

If IsFirstBar() then
begin
  for i = 0 to FinalBarIndex() 
  begin
    Mom[-i] = Close[-i] - Close[-i+10];
  end
  MovingAverage(mom,MM,$n);   
  MovingAverage(MM,MMlissee,$n);
end

Interpretation
begin
end

Plot(MM,Black,1);
Plot(MMLissee,LightBlue,1);
Meilleures salutations,

L´équipe WH SelfInvest

Re: Fonction "IsFirstBar()"

Posted: 20 Apr 2017 16:02
by Lurubu
Cela fonctionne parfaitement.

Merci

R.Giraud