Comparaison des volumes à une heure donnée

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #187080 quote
    RV1974
    Participant
    Average

    Bonjour,

    Je recherche à savoir comment trouver les titres dont le volume sur les 15 premières minutes est supérieur à la moyenne des 15 premières minutes des 4 ou 5 dernières séances.

    Merci d’avance pour votre aide.

    #187109 quote
    JC_Bywan
    Moderator
    Master

    Bonjour,

    si posté dans probuilder, alors voici en version indicateur, sans passer par mot-clé “timeframe” afin de garder éventuellement la flexibilité de changer les horaires de fin et de début si besoin de regarder sur autre durée que 15 minutes. Toutefois le texte laisse penser que tu voudras peut-être en faire en screener, auquel cas tu pourras screener sur la variable “resultat”, et éventuellement trier par variable “vol0”:

    heuredebut=090000
    heurefin=091500
    
    resultat=0
    if opentime=heuredebut then
    vol5=vol4
    vol4=vol3
    vol3=vol2
    vol2=vol1
    vol1=vol0
    vol0=volume
    endif
    
    if opentime>heuredebut and opentime<heurefin then
    vol0=vol0[1]+volume
    endif
    
    if vol5<>0 then
    moyennevol=(vol1+vol2+vol3+vol4+vol5)/5
    if vol0>moyennevol then
    resultat=1
    endif
    endif
    
    return resultat
    #187181 quote
    RV1974
    Participant
    Average

    Merci pour votre aide, ça correspond à ce que je cherchais.

    Par contre quand je créé un screener (création simplifiée), avec des conditions sur plusieurs et différentes unités de temps, j’ai des titres qui ne sortent pas et d’autres qui ne devraient pas sortir.

    Comme dans l’exemple ci-dessous l’indicateur “volume 15 minutes” est à 0 alors que j’ai demandé que les titres dont l’indicateur est à 1.

    Pouvez vous éclairer mes lanternes sur la bonne démarche à suivre.

    Merci d’avance

    #187197 quote
    JC_Bywan
    Moderator
    Master

    Je n’ai pas le temps réel du flux actions US pour répliquer le problème, mais je peux jeter un oeil au code du screener

    #187224 quote
    RV1974
    Participant
    Average
    // Le code qui suit fait référence à l'unité de temps:15 minutes
    TIMEFRAME(15 minutes)
    indicator1 = CALL "volume 15 minutes"
    c1 = (indicator1 = 1)
    
    // Le code qui suit fait référence à l'unité de temps:15 minutes
    TIMEFRAME(15 minutes)
    indicator2 = CALL "Cours vs borne haut range"
    c2 = (indicator2 <= 0.5)
    
    // Le code qui suit fait référence à l'unité de temps:daily
    TIMEFRAME(daily)
    indicator3 = Average[20](close)
    c3 = (close > indicator3)
    
    // Le code qui suit fait référence à l'unité de temps:daily
    TIMEFRAME(daily)
    indicator4 = Average[50](close)
    c4 = (close > indicator4)
    
    // Le code qui suit fait référence à l'unité de temps:daily
    TIMEFRAME(daily)
    indicator5 = Average[20](close)
    indicator6 = indicator5
    c5 = (indicator5 > indicator6[5])
    
    // Le code qui suit fait référence à l'unité de temps:daily
    TIMEFRAME(daily)
    indicator7 = Average[50](close)
    indicator8 = indicator7
    c6 = (indicator7 > indicator8[5])
    
    // Le code qui suit fait référence à l'unité de temps:1 hour
    TIMEFRAME(1 hour)
    indicator9 = RSI[21](close)
    c7 = (indicator9 > 45)
    
    // Le code qui suit fait référence à l'unité de temps:daily
    TIMEFRAME(daily)
    indicator10 = Average[50](Volume)
    c8 = (indicator10 > 500000)
    
    // Le code qui suit fait référence à l'unité de temps:daily
    TIMEFRAME(daily)
    criteria = CALL "ratio volume"
    
    SCREENER[c1 AND c2 AND c3 AND c4 AND c5 AND c6 AND c7 AND c8] (criteria AS "ratio volume")
    

    Ci-joint mon screener

    #187286 quote
    JC_Bywan
    Moderator
    Master

    Du coup, si ici c’est le même ratiovol que dans https://www.prorealcode.com/topic/indicateur-open-range-15-min/#post-186713

    on va d’abord voir ce qu’il se passe dans l’autre

    #233329 quote
    alex62948
    Participant
    New

    Bonjour à tous,

    Je cherche à réaliser un indicateur qui se calcule tout au long de la journée, toutes les 5 minutes, et compare le volume intraday actuel cumulé du jour à sa moyenne des 20 jours précédents jusqu’au même moment de la journée.

    TIMEFRAME(5 minutes)
    // horaires actions américaines
    heuredebut=153000
    heurefin=220000

    Il me semble que le code précédemment exposé dans ce message compare :
    le volume intraday actuel du jour cumulé à un instant t
    à
    la moyenne des volumes cumulés (sur x périodes) mais jusqu’à l’heure de fin, donc jusqu’à 22 h dans mon cas.

    Je cherche à calculer toutes les 5 minutes la moyenne des volumes intraday cumulés des 20 derniers jours mais cette moyenne doit se calculer sur les volumes intraday des jours précédents à la même heure que l’heure actuelle.

    L’algorithme théorique serait :

    EVERY 5 MINUTES DO
    ‘ Récupération du volume intraday actuel
    volume_actuel = VOLUME_INTRADAY()

    ‘ Récupération de l’heure actuelle
    heure_actuelle = HOUR(TIME())

    ‘ Calcul de la moyenne des volumes intraday des 20 jours précédents à la même heure
    volume_moyen_20j = 0
    heure_moyenne = heure_actuelle
    FOR i = 1 TO 20
    volume_moyen_20j = volume_moyen_20j + VOLUME_INTRADAY_HISTORIQUE(i, heure_moyenne)
    NEXT i
    volume_moyen_20j = volume_moyen_20j / 20
    LOOP

    Auriez-vous une solution pour traduire cet algorithme dans le langage de programmation du Probuilder ?

    #233612 quote
    JC_Bywan
    Moderator
    Master

    Bonjour,

    à tester, en UT5 uniquement, pour voir a minima si ça reste cohérent pour un actif sans bougie “vide” (car si peu liquide avec des bougies ut5 vides, on risque des décalages dans les tableaux et une moyenne20 faussée). Choisir une ligne return ou l’autre en mettant // devant celle qu’on ne veut pas, selon qu’on souhaite visualiser l’évolution du volume id cumulé vs sa moyenne à la même heure sur 20j, ou bien juste l’histogramme 0/1 si plus grand que la moyenne:

    heuredebut=153000
    heurefin=220000
    
    once maxrang=235500
    
    resultat=0
    
    rang=opentime
    
    // reset du tableau 2D 20xN bougies de 5mn, N dépendant des horaires d'ouverture/fermeture
    // en l'absence de tableau multi-dimensionnels en v11, tableau 2D émulé par 20 tableaux 1D de N éléments
    
    if rang=heuredebut then
    for j=0 to maxrang/500
    i=500*j
    $vol20[i]=$vol19[i]
    $vol19[i]=$vol18[i]
    $vol18[i]=$vol17[i]
    $vol17[i]=$vol16[i]
    $vol16[i]=$vol15[i]
    $vol15[i]=$vol14[i]
    $vol14[i]=$vol13[i]
    $vol13[i]=$vol12[i]
    $vol12[i]=$vol11[i]
    $vol11[i]=$vol10[i]
    $vol10[i]=$vol9[i]
    $vol9[i]=$vol8[i]
    $vol8[i]=$vol7[i]
    $vol7[i]=$vol6[i]
    $vol6[i]=$vol5[i]
    $vol5[i]=$vol4[i]
    $vol4[i]=$vol3[i]
    $vol3[i]=$vol2[i]
    $vol2[i]=$vol1[i]
    $vol1[i]=$vol0[i]
    $vol0[i]=volume
    inivolu0=volume
    next
    elsif rang>heuredebut and rang<heurefin then
    inivolu0=inivolu0[1]+volume
    if rang mod 500 = 0 then
    $vol0[rang]=inivolu0
    endif
    elsif rang<heuredebut or rang>heurefin then
    $vol0[rang]=0
    //
    $vol20[rang]=0
    $vol19[rang]=0
    $vol18[rang]=0
    $vol17[rang]=0
    $vol16[rang]=0
    $vol15[rang]=0
    $vol14[rang]=0
    $vol13[rang]=0
    $vol12[rang]=0
    $vol11[rang]=0
    $vol10[rang]=0
    $vol9[rang]=0
    $vol8[rang]=0
    $vol7[rang]=0
    $vol6[rang]=0
    $vol5[rang]=0
    $vol4[rang]=0
    $vol3[rang]=0
    $vol2[rang]=0
    $vol1[rang]=0
    endif
    
    if $vol20[rang]<>0 then
    moyennevol=($vol1[rang]+$vol2[rang]+$vol3[rang]+$vol4[rang]+$vol5[rang]+$vol6[rang]+$vol7[rang]+$vol8[rang]+$vol9[rang]+$vol10[rang]+$vol11[rang]+$vol12[rang]+$vol13[rang]+$vol14[rang]+$vol15[rang]+$vol16[rang]+$vol17[rang]+$vol18[rang]+$vol19[rang]+$vol20[rang])/20
    if $vol0[rang]>moyennevol then
    resultat=1
    endif
    endif
    
    //return resultat
    return $vol0[rang], moyennevol
    Nicolas thanked this post
Viewing 8 posts - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.

Comparaison des volumes à une heure donnée


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
RV1974 @rv1974 Participant
Summary

This topic contains 7 replies,
has 3 voices, and was last updated by JC_Bywan
1 year, 8 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 01/30/2022
Status: Active
Attachments: 1 files
Logo Logo
Loading...