ProScreener

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #262423 quote
    997speed
    Participant
    New

    Bonjour,

    Je constate un comportement inattendu de CurrentTime utilisé dans un ProScreener (unité de temps journalière, code par programmation, flux temps réel activé).

    Objectif : calculer une fraction de séance US écoulée pour ajuster un ratio de volume intraday (volume du jour ÷ volume moyen 20 jours × fraction de séance écoulée).

    Code simplifié :


    HeureActuelle = CurrentTime
    HeureH = Round(HeureActuelle / 10000 - 0.5)
    ResteMinSec = HeureActuelle - HeureH * 10000
    MinuteM = Round(ResteMinSec / 100 - 0.5)
    SecondeS = ResteMinSec - MinuteM * 100
    SecondesEcoulees = HeureH * 3600 + MinuteM * 60 + SecondeS
    

    Problème : testé à 11h29 heure de Paris (marché US pas encore ouvert), le résultat du calcul indique une valeur cohérente avec environ 16h00 heure de Paris (soit ~30 minutes après l’ouverture théorique du NYSE), et ce résultat reste identique entre deux exécutions à des heures réelles différentes (11h20 puis 11h29).

    Question : dans le contexte spécifique du ProScreener (par opposition à un Indicateur classique sur graphique), CurrentTime reflète-t-il bien l’heure système en temps réel, ou est-il figé/rafraîchi seulement à certains moments (fin de scan complet, dernière clôture connue, etc.) ? Existe-t-il une constante plus fiable pour obtenih l’heure réelle “maintenant” dans un ProScreener ?

    Merci d’avance !

    #262425 quote
    robertogozzi
    Moderator
    Master

    Les horaires d’un marché encore fermé sont figés à l’heure de fermeture ; sinon, ils changent constamment, même sur le graphique journalier.

    Essayez cet indicateur (j’ai légèrement modifié les calculs pour le détail des horaires) :

    DEFPARAM DrawOnLastBarOnly = true
    HeureActuelle = CurrentTime
    HeureH = floor(HeureActuelle / 10000,0)  //Round(HeureActuelle / 10000 - 0.5)
    ResteMinSec = HeureActuelle - HeureH * 10000
    MinuteM = floor(ResteMinSec / 100,0)
    SecondeS = floor(ResteMinSec - MinuteM * 100,9)
    SecondesEcoulees = floor(HeureH * 3600 + MinuteM * 60 + SecondeS,0)
    DrawText("#HeureH#:#MinuteM#:#SecondeS# (#SecondesEcoulees#)",BarIndex + 5,close)
    RETURN
    
    Iván González thanked this post
Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.

ProScreener


ProScreener : Scanners de Marché & Détection

New Reply
Author
author-avatar
997speed @997speed Participant
Summary

This topic contains 1 reply,
has 2 voices, and was last updated by robertogozzi
2 weeks, 3 days ago.

Topic Details
Forum: ProScreener : Scanners de Marché & Détection
Language: French
Started: 07/09/2026
Status: Active
Attachments: No files
Logo Logo
Loading...