Anomalie avec les plages de temps ?

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #128229 quote
    Raz-X
    Participant
    New

    Bonjour à tous,

    dans le cadre du développement d’une stratégie, j’utilise des indicateurs différents en fonction de la plage horaire en cours. Lors de mes backtests, je me suis rendu compte de l’incohérence de certaines valeurs, et ai isolé cette anomalie dans un petit indicateur pour vous en faire part:

    plage = time >= 080000 and time < 103000
    
    HRout = highest[14](high)
    
    IF plage then
    HRin = highest[14](high)
    endif
    
    return HRin[5] as "HRin[5]", HRin[10] as "HRin[10]", HRout[5] as "HRout[5]", HRout[10] as "HRout[10]"

    Pour faire simple, je stocke le plus haut de 14 périodes à l’extérieur du IF filtrant la plage de temps (dans HRout), et je fais la même chose cette fois ci dans le IF (dans HRin), puis je retourne les résultats décalés de 5 et 10 bougies.

    L’erreur survient juste après l’ouverture de la période, par exemple sur un graph 1 min, HRin[5] n’est mis à jour qu’à 8:04, et HRin[10] à 08:09. HRout est à jour tout le temps (voir image jointe)

    Je suis conscient que ma valeur HRin ne sera mise à jour que dans la plage définie, mais je ne m’attends pas à ce décalage en entrée de plage: c’est comme si la plage influait AUSSI sur les valeurs du calcul du highest, et qu’il ne pouvait pas être calculé avant que l’on soit suffisamment avancé dans la plage pour assumer le décalage. A 8:00, je m’attends plutôt à ce que HRin[5] soit calculé avec la bougie de 7:55, mais il n’en est rien, comme si la plage rendait cette bougie non disponible… Comportement étrange !

    Peut-on m’expliquer?

    PS: je vous joint le fichier .itf pour tester au besoin

    Merci d’avance de vos réponses

    anomalie.png anomalie.png Test-Time.itf
    #128244 quote
    Raz-X
    Participant
    New

    Encore plus troublant…

    J’ai étendu mes tests comme ceci:

    plage = time >= 080000 and time < 103000
    
    before = highest[14](high)
    period = 1
    
    IF plage then
    inside = highest[14](high)
    period = 14
    endif
    
    after = highest[14](high)
    
    periodSetInside = highest[period](high)
    
    return before[5] as "Before[5]", inside[5] as "Inside[5]", after[5] as "After[5]", periodSetInside[5] as "Period[5]"

    Les résultats sont encore plus incohérents… (voir image, et .itf fourni pour retester)

    C’est comme si tout ce qui était initialisé à l’intérieur du IF gardait une certaine forme de “contexte” même après le ENDIF. Je n’ai jamais rencontré aucun langage de programmation faisant ce genre de chose. Cela induit à des erreurs assez terribles, en fonction d’où à été initialisée une variable :S

    Hâte de lire vos avis à ce sujet

    Test-Time-1.itf anomalie2.png anomalie2.png anomalie3.png anomalie3.png
Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.

Anomalie avec les plages de temps ?


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Raz-X @damien_herve Participant
Summary

This topic contains 1 reply,
has 1 voice, and was last updated by Raz-X
5 years, 10 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 04/26/2020
Status: Active
Attachments: 5 files
Logo Logo
Loading...