Conversion du code Midas Volume d'Amibroker

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #90772 quote
    carlvan
    Participant
    Average

    Cher Nicolas,
    Je ne sais pas s’il est possible de convertir ce code d’un indicateur très intéressant que j’utilise sur Amibroker. Cet indicateur, qui retourne une ligne sur le graphe, est basé sur le volume et le prix, et commence ses calculs à partir d’un point désigné par l’utilisateur en cliquant sur le graphe. Habituellement, ce point initial est un Top ou Bottom important. La formule fut communiquée dans le journal « Stocks & Commodities » il y a de nombreuses années, et fut appelée « MIDAS Volume ».
    En espérant que ce soit convertible pour Prorealcode, et en vous remerciant déjà de considérer ma requête. Bien cordialement,
    Carl

    MIDAS Channel
    dn = DateTime(); // une coordonnée X sur le graphe
    sd = SelectedValue( dn ); // quand l’utilisateur pointe et clique la souris sur le graphe à la coordonnée de son choix sur l’axe des X, cela retourne la valeur du prix pour cette barre
    start = dn == sd;
    mp = (H+L)/2;
    PV = mp * V;
    CV = Cum( V );
    VSS = CV – ValueWhen( start, CV );
    denom = IIf( VSS == 0, 1, VSS );
    num = Cum( PV ) – ValueWhen( start, Cum( PV ) );
    M = IIf( BarsSince( start ), num/denom, mp );
    Q1 = Param(“Percentage Upper”, 0, 0, 10, 0.01 );
    Q2 = Param(“Percentage Lower”, 0, 0, 10, 0.01 );

    Plot( M, « Midas line », colorblack, styleLine );
    //Plot( M * ( 1 + Q1 * 0.01 ), “Upper”, colorWhite,styleDashed );
    //Plot( M * ( 1 – Q2 * 0.01 ), “Lower”, colorWhite,styleDashed );

    Le chart attaché montre le résultat lorsqu’on clique sur le top atteint par AAPL, en 5 minute chart, le 13 décembre 2018. La ligne est un point de résistance évident (mais ça ne marche pas toujours aussi bien!)

    aapl.png aapl.png
    #90821 quote
    Nicolas
    Keymaster
    Master

    C’est un calcul de VWAP mais avec le median price au lieu du Close. Je vais le recoder, un instant.

    #90826 quote
    carlvan
    Participant
    Average

    C’est exact, je n’avais pas noté que c’était similaire au VWAP! La différence toutefois, c’est que, si je ne me trompe, le VWAP commence à être calculé en début de session, alors qu’ici le but est de la faire démarrer à un point choisi sur le chart, par exemple un pivot. Je n’ai pas trouvé de formule qui permette de faire un click-souris sur le chart pour forcer le calcul à partir de ce point. Pour AFL Amibroker, c’est “SelectedValue()” mais je ne sais pas si PRT a un code équivalent.

    #90832 quote
    Nicolas
    Keymaster
    Master

    On peut faire commencer le calcul à n’importe quel moment.

    Avant d’aller plus loin, tu peux regarder cet indicateur qui commence le calcul à partir d’une date précise : VWAP Date anchored

    Si tu veux aussi ajouter une condition horaire pour le début, en sus de la date, alors on pourrait l’adapter.

    #90836 quote
    carlvan
    Participant
    Average

    Merci pour le link, en fait comme je ne souhaite utiliser le VWAP qu’en intraday, et basé surt des highs/lows spécifiques, il faudrait en effet ajouter la condition horaire e, plus de “StartDate”. C’est spécifiquement cela que je cherche. Un grand merci d’avance.

    Carl V.

    (Note: je suppose que remplacer la condition Stardate et Horaire par un clic souris sur le graphe est impossible actuellement?)

    #90855 quote
    Nicolas
    Keymaster
    Master

    En effet le code ne peut pas détecter les interventions manuelles sur le graphique.

    Voilà j’ai modifié le code en question du anchored VWAP avec un condition horaire (exemple ci-joint).

    //PRC_VWAP Time anchored | indicator
    //08.02.2019
    //Nicolas @ www.prorealcode.com
    //Sharing ProRealTime knowledge
    
    // --- settings
    startTime = 064200
    viewSD = 1 //1 = true / 0 = false
    // --- end of settings
    
    VWAP=undefined
    SDup1 = undefined
    SDlw1 = undefined
    SDup2 = undefined
    SDlw2 = undefined
    SDup3 = undefined
    SDlw3 = undefined
    
    if time=startTime and date=today then
    startbar=barindex
    endif
    if time>=startTime and startbar>0 then
    barcount=barindex-startbar
    
    d = max(1, barcount)
    
    VWAP = SUMMATION[d](volume*typicalprice)/SUMMATION[d](volume)
    if(barcount=0) then
    sd = 0
    else
    sd = SUMMATION[d](max(abs(high-vwap),abs(vwap-low)))/d
    endif
    
    if viewSD then
    SDup1 = vwap+sd
    SDlw1 = vwap-sd
    SDup2 = vwap+sd*2
    SDlw2 = vwap-sd*2
    SDup3 = vwap+sd*3
    SDlw3 = vwap-sd*3
    endif
    
    if vwap>vwap[1] then
    color = 1
    else
    color = -1
    endif
    endif
    
    RETURN VWAP coloured by color as "VWAP", SDup1 coloured(102,102,102) as "upper 1 STD", SDlw1 coloured(102,102,102) as "lower 1 STD", SDup2 coloured(102,102,102) as "upper 2 STD", SDlw2 coloured(102,102,102) as "lower 2 STD", SDup3 coloured(102,102,102) as "upper 3 STD", SDlw3 coloured(102,102,102) as "lower 3 STD"
    
    
    
    
    vwap-time-anchored-intraday.png vwap-time-anchored-intraday.png
    #90862 quote
    carlvan
    Participant
    Average

    Nicolas, c’est parfait et fonctionne à la perfection – c’est exactement ce que je cherchais. Merci beaucoup pour ton aide précieuse!

    Carl

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

Conversion du code Midas Volume d'Amibroker


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
carlvan @carlvan Participant
Summary

This topic contains 6 replies,
has 2 voices, and was last updated by carlvan
7 years ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 02/07/2019
Status: Active
Attachments: 2 files
Logo Logo
Loading...