Ticks restants ?

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #224975 quote
    ground77600
    Participant
    New

    Bonjour,

     

    Je cherche à faire un indicateur tout simple mais à partir du moment où on passe en ticks, la programmation devient un peu plus délicate.

    L’idée est la suivante : je veux juste récupérer le nombre de ticks restant avant l’ouverture de la prochaine bougie en ticks et faire en sorte qu’une valeur passe à 1 si un certain nombre est dépassé, sinon, la valeur resterait à 0. Si on veut le faire en temps, je vois bien qu’il faut utiliser la formule suivante :

     

    //Alerttime=25 //Alert me x seconds before closing
    duration = timestamp-opentimestamp
    Timeframetimeinsec=GetTimeframe
    remainingtimeinsec=Timeframetimeinsec-duration
    
    If remainingtimeinsec=Alerttime then
    AlertActivated=1
    Else
    AlertActivated=0
    Endif
    
    return remainingtimeinsec as "remainingtimeinsec", AlertActivated as "AlertActivated"

     

    Mais comment fait-on pour faire la même chose avec une bougie en ticks ? Pourriez-vous, s’il vous plaît, éclairer ma lanterne ?

    Bien cordialement.

    #225912 quote
    ground77600
    Participant
    New

    Bonjour,

    Je suis toujours en recherche d’information sur ce sujet. J’ai un peu avancé mais pas des masses :

    once $lastclose[0]=close
    
    if not isset($ticks[barindex]) then
    $ticks[barindex] = 0
    $positivetick[barindex]=0
    $negativetick[barindex]=0
    endif
    
    if islastbarupdate then
    if close>$lastclose[0] then
    $ticks[barindex]=$ticks[barindex]+1
    $positivetick[barindex]=$positivetick[barindex]+1
    else
    $ticks[barindex]=$ticks[barindex]-1
    $negativetick[barindex]=$negativetick[barindex]+1
    endif
    sumpos=$positivetick[barindex]
    sumneg=-$negativetick[barindex]
    posvsneg=sumpos+sumneg
    $lastclose[0]=close
    endif
    
    ticksum=$positivetick[barindex]+$negativetick[barindex]
    
    return $positivetick[barindex] as "Positive Ticks", -$negativetick[barindex] as "Negative Ticks", sumpos as "sumpos", sumneg as "sumneg", ticksum as "Tick Sum"

    On s’approche du but mais malheureusement, “ticksum” ne prend pas en compte quand il y a un tick qui ne fait aucune variation de prix. Le compteur n’est donc pas tout à fait juste. Auriez-vous des idées ?

    Une belle et heureuse année à tous.

    Bien à vous.

    #225914 quote
    Alai-n
    Participant
    Veteran

    Bonjour, la définition d’un “Tick” est une variation de prix, en lisant vos deux précédents messages, j’ai l’impression que vous amalgamez “Ticks” et “Volumes”! Sans pour autant comprendre ce que vous cherchez à faire, si c’est quantifier le nombre de transactions qui vous intéresses, peut-être devriez vous vous tourner vers le “volume”…

    #225916 quote
    ground77600
    Participant
    New

    Bonjour Alain,

     

    Merci pour votre réponse. Je suis tout à fait d’accord avec vous, un “tick” devrait correspondre à une variation de prix mais quand on affiche un graphique en ticks sur PRT, apparemment c’est pas ce qu’on a ! D’ailleurs, quand on regarde un graphique en 1 tick, il y a parfois des variations horizontales donc pas de changement de prix mais ça compte quand même pour un intervalle 1 tick.

    J’ai essayé une autre version du code :

     

    //AlarmLevel=1800
    once $lastclose[0]=close
    once AlarmActivated=0
    
    if not isset($ticks[barindex]) then
    $ticks[barindex] = 0
    endif
     
    if islastbarupdate then
    if close>$lastclose[0] then
    $ticks[barindex]=$ticks[barindex]+1
    else
    $ticks[barindex]=$ticks[barindex]+1
    endif
    $lastclose[0]=close
    endif
    
    If $ticks[barindex]>AlarmLevel then
    AlarmActivated=1
    Else
    AlarmActivated=0
    Endif
     
    return $ticks[barindex] as "Tick Count", AlarmActivated as "Alarm Activated"
    

    Si on se met en affichage 2000 ticks par bougie, $ticks[barindex] trace graphique avec des valeurs comprises entre 1600 et 1850 alors que normalement tout devrait être à 2000 ticks. On a donc une déperdition de 150-400 ticks, c’est bizarre…

     

    Plus précisément, ce que je cherche c’est de récupérer la valeur du nombre de ticks restants dans la bougie en ticks en cours (ou bien le nombre de ticks déjà effectués dans la bougie en cours) pour pouvoir, au final, déclencher une condition quand ça franchit un certain seuil. Par exemple, je voudrais qu’une valeur passe à 1 quand par exemple il reste seulement 200 ticks avant la clôture de la bougie en cours.

    #248130 quote
    Matt
    Participant
    Junior

    Hi,

    Did you ever figure out how to do this?
    I’m trying to find a way to get a tick-based Range Bar countdown on the vertical axis so we know when the bar is about to end.

    Thanks

    Bonjour,

    Avez-vous déjà trouvé comment faire ?
    J’essaie de trouver un moyen d’afficher un compte à rebours de la barre de plage sur l’axe vertical, basé sur les ticks, afin de savoir quand la barre est sur le point de se terminer.

    Merci

    #248140 quote
    robertogozzi
    Moderator
    Master

    @matty

    Publiez uniquement dans la langue du forum dans laquelle vous publiez. Par exemple, l’anglais uniquement dans les forums anglophones et le français uniquement dans les forums francophones.

    Merci 🙂

    Matt thanked this post
    #248261 quote
    Denis Quéva
    Participant
    New

    Sur les graphiques en nombre de ticks (exemple 100), si on regarde les volumes, on voit que les histogrammes sont toujours >= 100, sauf pour la dernière bougies de la séance.

    J’en déduis que PRT additionne tous les ordres de bourse jusqu’à atteindre 100. Mais si le dernier ordre a été exécuté avec une quantité importante, PRT les cumule dans la bougie en cours. Il ne fait pas de split.

    Exemple : cumul des volumes = 90. Si nouvel ordre = 7, alors cumul = 97, si nouvel ordre = 10 alors 107. PRT crée ensuite une nouvelle bougie.

    etc…

    #248417 quote
    RicLg
    Participant
    Senior

    Bonsoir

    Peut-être que ce code répond à ta requête.
    Malheurement ce la ne fontionne que sur les Cryptos/Devises. Je flanche totalement pour trouver la solution complète.
    Je fais un appel à l’aide aux Codeurs_Pros pour coder une version qui fonctionne sur des instruments intégrant le volume.
    Merci par avance
    Bien à vous

    defparam DRAWONLASTBARONLY=True
    defparam calculateonlastbars=1024
    
    MyStoch =Stochastic[14,3](close)
    Rem ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
    Rem Decomptage : Crypto et Devises  ( car no volume)
    Rem ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
    TimeframeSelect=GetTimeframe
    if TimeframeSelect=-1 or TimeframeSelect[1]=-1 and Volume[1]=Volume[2] then rem condition UT Tick
    rem ▄ TF : TICK SANS volume
    comptage = volume
    comptageMax = highest[2]( comptage)
    decompte = comptageMax - comptage
    DRAWTEXT("                                            ONLY  Crypto / Forex", barindex, 100, dialog,standard,14) COLOURED(106,106,106,255)
    DRAWTEXT("                                                       #comptageMax#Tick.", barindex , 15, dialog,standard,16) COLOURED(106,106,106,255)
    DRAWTEXT("                   #decompte#", barindex, 55, dialog,standard,40) COLOURED(106,106,106,255)
    DRAWTEXT("                                                       #comptageMax#Tick.", barindex , 15, dialog,standard,16) COLOURED(106,106,106,255)
    else
    rem ▄ TF : Secondes
    rem Alerttime=25 //Alert me x seconds before closing
    TimeframeSelect=GetTimeframe
    duration = timestamp-opentimestamp
    durationMax=duration[1]
    remainingtimeinsec=( TimeframeSelect-duration)
    //if not(duration[1]=0 and duration[2]=0) and not TimeframeSelect=-1  then
    if  TimeframeSelect >-1  then
    //if TimeframeSelect=-1 then
    DRAWTEXT("                                            ONLY  Crypto / Forex", barindex, 100, dialog,standard,14) COLOURED(106,106,106,255)
    DRAWTEXT("                   #remainingtimeinsec#", barindex, 55, dialog,standard,40) COLOURED(106,106,106,255)
    DRAWTEXT("                                      #durationMax#Sec", barindex, 15, dialog,standard,20) COLOURED(106,106,106,255)
    endif
    endif
    return MyStoch as "MyStoch", 100 as "100", 0 as "0"
    
Viewing 8 posts - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.

Ticks restants ?


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
Summary

This topic contains 7 replies,
has 6 voices, and was last updated by RicLg
7 months, 2 weeks ago.

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