Indicateur QMA

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #34761 quote
    laurenzolaurenzo
    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
    NicolasNicolas
    Keymaster
    Legend

    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
    laurenzolaurenzo
    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.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

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 laurenzolaurenzo
9 years, 4 months ago.

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