Indicateur pour faible volume

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #191379 quote
    EctorPolux
    Participant
    New

    Bonjour la communauté et Nicolas,

    je souhaiterais savoir s’il était possible de coder un indicateur, dans la fenêtre des volumes, qui mettrait en évidence les 3 derniers volumes de moindre valeur, par des lignes/colonnes, verticales, de couleurs différentes, sur une période donnée (ouverture-fermeture) et/ou un nombre de bougies définies (les 20 dernières par exemple) ?

    Et un 2eme indicateur qui serait un dérivé, mais en indiquant cette fois ci une lettre ou symbole sur les bougies de prix ?

    Merci de votre attention 😊

     

    Low-Volumes.jpg Low-Volumes.jpg
    #191402 quote
    JC_Bywan
    Moderator
    Master

    Bonjour,

    defparam drawonlastbaronly=true
    
    retoursur=20//nombre de bougies voulues
    
    volmin=lowest[retoursur](volume)
    if islastbarupdate then
     for i=0 to retoursur-1
      countj=0
      for j=0 to retoursur-1
       if Volume[j]>Volume[i] then
        countj=countj+1
       endif
      next
      if countj>=retoursur-3 then
      if Volume[i]=volmin then
       r=255
       b=0
      else
       r=0
       b=255
      endif
    
      //Choisir son graphisme, //A// pour mettre sur volumes, //B// pour mettre sur prix
    
      //A//
      DRAWVLINE(barindex[i]) coloured(r,0,b)//A// ligne verticale sur volume
    
      //B//
      //drawsegment(barindex[i],high[i]+range[i],barindex[i],high[i]+3*range[i]) coloured(r,0,b)//B// segment sur prix
      //DRAWTEXT("#", barindex[i],high[i]+4*range[i])coloured(r,0,b)//B// # sur prix
    
      endif
     next
    endif
    
    return
    #191421 quote
    EctorPolux
    Participant
    New

    Merci JC_Bywan, je vais test!

    #191456 quote
    EctorPolux
    Participant
    New

    Yes! Cela fonctionne très bien!

    Encore merci!

    Serait-il possible de pouvoir les modifier dans les paramètres de l’indicateur ?
    3 cases à cocher ou non.

    1- Le nombre de barre prise en compte.
    2- Une plage horaire ” de x heure à x heure ” ou bien “à partir de x heure” (et pourquoi pas une date ou non, pour le backtest)
    3- Décider combien de barre doivent apparaître dans l’indicateur.

    Pouvoir avoir le choix entre, soit le nombre de barre (1) ou de l’horaire(2).

    J’insère un exemple visuel.

    image_2022-04-08_183506045.png image_2022-04-08_183506045.png
    #191487 quote
    JC_Bywan
    Moderator
    Master

    Image attachée pour créer les paramètres, plus voir commentaires dans le code.

    Parmi ces paramètres, cocher la case “horaire” pour que la plage horaire (soit plage en cours, soit la précédente si la barre en cours est hors plage horaire) puisse être prise en compte à la place des dernières bougies de la demande initiale.

    defparam drawonlastbaronly=true
    
    //===Paramètres===//
    //
    // Ajouter les 5 paramètres ci-dessous en cliquant sur la clé ou sur "ajouter" dans la section "variables" en haut à gauche de l'éditeur de code
    //
    //Nbarres=20// nombre de bougies voulues pour la recherche
    //Nvol=3// nombre de bougies à trouver pour volume mini
    //Horaire=0//=0 ou =1 // Définir comme booléen pour avoir une case à cocher: Pas cochée=0= en bougies, cochée=1= en horaires
    //HeureDebut=153000
    //HeureFin=220000
    //
    //===Fin des paramètres===//
    
    If Horaire then
    if opentime=HeureDebut then
    barredebut=barindex
    
    endif
    durant=(opentime>=HeureDebut and opentime<HeureFin)
    if durant then
    retoursur=barindex-barredebut+1
    volmin=lowest[retoursur](volume)
    endif
    if opentime=HeureFin then
    barrefin=barindex
    volmin=lowest[retoursur](volume)[1]
    
    endif
    
    else
    retoursur=Nbarres
    volmin=lowest[retoursur](volume)
    endif
    
    
    if islastbarupdate then
    if Horaire and not durant then
    deltabar=barindex-barrefin+1
    else
    deltabar=0
    endif
    for i=0 to retoursur-1
    countj=0
    for j=0 to retoursur-1
    if Volume[j+deltabar]>Volume[i+deltabar] then
    countj=countj+1
    endif
    next
    if countj>=retoursur-Nvol then
    if Volume[i+deltabar]=volmin then
    r=255
    b=0
    else
    r=0
    b=255
    endif
    
    //Choisir son graphisme, //A// pour mettre sur volumes, //B// pour mettre sur prix
    
    //A//
    DRAWVLINE(barindex[i+deltabar]) coloured(r,0,b)//A// ligne verticale sur volume
    
    //B//
    //drawsegment(barindex[i+deltabar],high[i+deltabar]+range[i+deltabar],barindex[i+deltabar],high[i+deltabar]+3*range[i+deltabar]) coloured(r,0,b)//B// segment sur prix
    //DRAWTEXT("#", barindex[i+deltabar],high[i+deltabar]+4*range[i+deltabar])coloured(r,0,b)//B// # sur prix
    
    endif
    next
    endif
    
    return
    Nicolas thanked this post
    MiseEnParametres2022-04-09.png MiseEnParametres2022-04-09.png
    #191495 quote
    EctorPolux
    Participant
    New

    Miam miam!

    Merci pour ta réactivité et ton travail, je pensais devoir patienter la semaine prochaine 😊

    Je vais test.

    Passe un bon week-end !

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

Indicateur pour faible volume


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
EctorPolux @pololopopo Participant
Summary

This topic contains 5 replies,
has 2 voices, and was last updated by EctorPolux
3 years, 11 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 04/07/2022
Status: Active
Attachments: 3 files
Logo Logo
Loading...