Indicateur QMA

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #34761 quote
    laurenzo
    Participant
    Average

    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 🙁

    #34801 quote
    Nicolas
    Keymaster
    Master

    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
    laurenzo thanked this post
    QMA-prorealtime.png QMA-prorealtime.png
    #34826 quote
    laurenzo
    Participant
    Average

    Merci pour le code ! Super !

    Effectivement pour les tableaux, il faut que je vois quels codes je peux encore adapter 🙂

Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.

Indicateur QMA


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
laurenzo @laurenzo Participant
Summary

This topic contains 2 replies,
has 2 voices, and was last updated by laurenzo
8 years, 10 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 05/07/2017
Status: Active
Attachments: 1 files
Logo Logo
Loading...