Bonjour,
J’ai une moyenne mobile que j’ai sous MultiCharts que j’aimerai convertir sous PRT. Il s’avère qu’elle utilise un tableau…
Est-ce qu’il y’a des astuces pour la convertir ?
Je vous colle le code ici de la fonction sous MC.
// Fractional-Bar Quick Moving Average by John D. McCormick
Inputs:
Series ( numericseries ),
Len ( numericsimple );
Vars:
j( 0 ),
Peak( 0 ),
Num ( 0 ),
Denom ( 0 );
Array:
DataArray[](0);
Array_SetMaxIndex(DataArray, Len + 1);
Peak = Len / 3;
Num = 0;
Denom = 0;
for j = 1 to floor(Len + 1)
begin
if j <= Peak then
DataArray[j] = j / Peak
else
DataArray[j] = (Len + 1 - j) / (Len + 1 - Peak);
Num = Num + Series[j - 1] * DataArray[j];
Denom = Denom + DataArray[j];
end;
if Denom <> 0 then
QMA = Num / Denom
else
QMA = Series;
PS: C’est une sacrée limitation l’absence de tableau sous PRT 🙁
En fait ce sont les tableaux dynamiques pour la création de variables à la volée qui sont absents (puisque la fonction RETURN doit connaître à l’avance les variables retournées), ainsi que les tableaux multi dimensionnels. Dans le cas de ton code ci-dessus, il n’y pas d’utilité d’utiliser des tableaux spécifiquement pour la recréer. Voici le code pour probuilder de la QMA :
Series = customclose
Len = 20
Peak = Len / 3
Num = 0
Denom = 0
for j = 1 to (Len + 1) do
if j <= Peak then
DataArray = j / Peak
else
DataArray = (Len + 1 - j) / (Len + 1 - Peak)
Num = Num + Series[j - 1] * DataArray
Denom = Denom + DataArray
endif
next
if Denom <> 0 then
QMA = Num / Denom
else
QMA = Series
endif
return qma
Merci pour le code ! Super !
Effectivement pour les tableaux, il faut que je vois quels codes je peux encore adapter 🙂