Problème de valeur de points pivots

Viewing 15 posts - 1 through 15 (of 20 total)
  • Author
    Posts
  • #140099 quote
    imencity
    Participant
    Senior

    Bonjour,

    Je sais que les points pivots ont été abordés à de nombreuses reprises, j’ai lu notamment:
    https://www.prorealcode.com/topic/point-pivot/page/3/
    https://www.prorealcode.com/topic/point-pivot/
    https://www.prorealcode.com/prorealtime-indicators/daily-weekly-monthly-pivot-points/

    J’ai donc repris un code que j’ai simplifié et fait une stratégie test très simple:

    // DAX 1 DAY
    
    // PARAMETRES
    DEFPARAM CUMULATEORDERS = FALSE
    
    timeframe(1 day, updateonclose)
    
    // POINTS PIVOTS
    IF dayofweek <> 1 THEN
    Ht = DHigh(1)
    Bs = DLow(1)
    C = DClose(1)
    ENDIF
    if dayofweek=5 then
    Htfriday=Dhigh(0)
    BsFriday=Dlow(0)
    CFriday=Dclose(0)
    endif
    if dayofweek=1 then
    Ht = Htfriday
    Bs = BsFriday
    C = CFriday
    endif
    Pivot = (Ht + Bs + C) / 3
    
    // VARIABLES
    ONCE nblot = 1
    
    
    PivotDuJour = Pivot[1]
    PivotVeille = Pivot
    PivotJmoins2= Pivot[2]
    
    timeframe(1 hour, updateonclose)
    timeAchat = TIME >= 000000 AND TIME <= 010000
    CA1 = dayofweek <> 0
    CA2 = PivotVeille < PivotDuJour
    CA3 = PivotJmoins2 > PivotVeille
    IF timeAchat AND CA1 AND CA2 AND CA3 THEN
    BUY nblot SHARES AT MARKET
    SET TARGET pPROFIT 100
    SET STOP pLOSS 50
    ENDIF
    
    timeframe(1 day, updateonclose)
    GRAPH Pivot[0] coloured(0,0,255)
    GRAPH Pivot[1] coloured(255,0,0)
    GRAPH Pivot[2] coloured(100,100,50)
    GRAPH Pivot[3] coloured(200,50,100)
    

    Alors c’est moi où Pivot[0] ne donne JAMAIS le pivot de jour ???

    Et pourquoi les PIVOT[2] et PIVOT[3] donne des résultats qui se baladent ?
    Il n’y a aucune cohérence dans les résultats… Je ne vois pas d’où peut venir le problème…

    Et pour terminer, les points Pivots de PRT sont sous le format “Par défaut pour le marché Indices – DAX”.
    Mais ça n’indique pas pourquoi le PIVOT[0] donne parfois le résultat du jour, et parfois celui de la veille…

    Une idée ?

    PPivotsCoherence.jpg PPivotsCoherence.jpg
    #140101 quote
    imencity
    Participant
    Senior

    Mon objectif: Avoir une variable par ex Pivot[0] pour le PP du jour à partir de minuit, Pivot[1] pour celui de la veille, etc…

    #140154 quote
    imencity
    Participant
    Senior

    J’ai tenté une modif, je crois que m’approche, mais j’ai toujours le point pivot de la veille en lieu et place de celui du jour…

    // POINTS PIVOTS
    IF dayofweek <> 1 THEN
    PivotDuJour  = (DHigh(1) + DLow(1) + DClose(1)) / 3
    PivotJmoins1 = (DHigh(2) + DLow(2) + DClose(2)) / 3
    PivotJmoins2 = (DHigh(3) + DLow(3) + DClose(3)) / 3
    ENDIF
    if dayofweek=5 then
    PPD5   = (DHigh(0) + DLow(0) + DClose(0)) / 3
    PPD5M1 = (DHigh(1) + DLow(1) + DClose(1)) / 3
    PPD5M2 = (DHigh(2) + DLow(2) + DClose(2)) / 3
    endif
    if dayofweek=1 then
    PivotDuJour  = PPD5
    PivotJmoins1 = PPD5M1
    PivotJmoins2 = PPD5M2
    endif
    
    GRAPH PivotDuJour coloured(0,0,255)
    GRAPH PivotJmoins1 coloured(255,0,0)
    GRAPH PivotJmoins2 coloured(100,100,50)
    #140166 quote
    Nicolas
    Keymaster
    Master

    Essaie avec “OpenDayOfWeek” à la place.

    #140242 quote
    imencity
    Participant
    Senior

    Bonjour Nicolas,

    J’ai tenté mais le calcul de PRT me donne toujours un résultat différent du graph…

    Pourtant:

    PivotDuJour  = (DHigh(1) + DLow(1) + DClose(1)) / 3

    Devrait bien me donner la même valeur que le point pivot de PRT ?

    Suis-je le seul à avoir (remarqué) ce problème ?

    PPVDifferent.jpg PPVDifferent.jpg
    #140267 quote
    Nicolas
    Keymaster
    Master

    As-tu des horaires de trading personnalisés pour cet instrument ? La plateforme utilise les vrais données du marché et pas celles affichées à l’écran pour calculer ce type d’indicateur.

    #140314 quote
    imencity
    Participant
    Senior

    Non aucun horaire personnalisés cf capture jointe.
    J’ai décidé de grapher Dhigh(1), Dlow(1) et Dclose(1) en pièce jointe.

    J’ai regardé à de nombreux endroits. J’ai trouvé des fois où les résultats étaient correct (valeur graph / valeur de la veille).
    Mais à de nombreuses reprises, par ex ou le Dclose est farfelue, ou le Dlow en ex ci-joint. La date est sur la capture d’écran.

    Je me suis intérogé sur le moment du Dclose en 1H par ex, mais comme le Dlow déraille aussi…

    Est-ce que ce problème peut être reproduit ? Et quelle solution ?

    PPerreur.jpg PPerreur.jpg
    #140363 quote
    Nicolas
    Keymaster
    Master

    Pour connaître les horaires personnalisés du DAX, clic droit sur le graphique et choisir “horaires de trading personnalisés”. Dans ta copie d’écran tu montres les Commodities du Chicago Board, pas celles du DAX 😉

    Outre les horaires, vérifier aussi le timezone pour que ce soit bien celui du marché et pas celui adapté à l’horloge de ton ordinateur.

    #140369 quote
    imencity
    Participant
    Senior

    Merci de ta réponse Nicolas.
    Il est vrai que je ne maîtrise pas encore tout, loin de là 😉

    Nouvelle capture d’écran. J’avais les paramètres du haut, et j’ai changé pour avoir les paramètres du bas. Par contre, les problèmes s’arrangent un peu…

    J’ai bien les bons chiffres de la veille mais impossible d’avoir le point pivot du jour…!

    // DAX 1 DAY
    
    // PARAMETRES
    DEFPARAM CUMULATEORDERS = FALSE
    
    timeframe(1 day, updateonclose)
    
    // POINTS PIVOTS
    IF dayofweek <> 1 THEN
    PivotDuJour  = (DHigh(1) + DLow(1) + DClose(1)) / 3
    PivotJmoins1 = (DHigh(2) + DLow(2) + DClose(2)) / 3
    PivotJmoins2 = (DHigh(3) + DLow(3) + DClose(3)) / 3
    ENDIF
    if dayofweek=5 then
    PPD5   = (DHigh(0) + DLow(0) + DClose(0)) / 3
    PPD5M1 = (DHigh(1) + DLow(1) + DClose(1)) / 3
    PPD5M2 = (DHigh(2) + DLow(2) + DClose(2)) / 3
    endif
    if dayofweek=1 then
    PivotDuJour  = PPD5
    PivotJmoins1 = PPD5M1
    PivotJmoins2 = PPD5M2
    endif
    
    ONCE nblot = 1
    
    timeframe(1 hour, updateonclose)
    timeAchat = TIME >= 000000 AND TIME <= 010000
    CA1 = dayofweek <> 0
    CA2 = PivotJmoins1 < PivotDuJour
    CA3 = PivotJmoins2 > PivotJmoins1
    IF timeAchat AND CA1 AND CA2 AND CA3 THEN
    BUY nblot SHARES AT MARKET
    SET TARGET pPROFIT Aprofit // 46
    SET STOP pLOSS Astoploss   // 110
    ENDIF
    
    timeframe(1 day, updateonclose)
    GRAPH PivotDuJour coloured(0,0,255)
    GRAPH PivotJmoins1 coloured(255,0,0)
    GRAPH PivotJmoins2 coloured(100,100,50)
    
    //GRAPH DHigh(1) coloured(0,0,255)
    //GRAPH DLow(1) coloured(255,0,0)
    //GRAPH DClose(1) coloured(100,100,50)
    
    
    // Modifier quantite en fonction des gains
    if strategyprofit <> strategyprofit[1] then
    if positionperf(1) >= 0 then //si dernière position perdante
    //nblot = nblot + 0.7  //alors on incrémente la quantité de perte
    nblot = nblot + 0.5
    else //si elle est positive
    //nblot = 2.9 //alors le compte est remis à zéro
    nblot = 1
    endif
    endif
    

    Une nouvelle idée svp ?

    Je voudrais pouvoir travailler sur le point pivot du jour, dans l’exemple du 9 juillet 2020 à 5h00 je voudrais pouvoir récupérer le Pivot Journalier qui est de 12582.0333

    Et ça: PivotDuJour = (DHigh(1) + DLow(1) + DClose(1)) / 3
    Me donne le point pivot qui est calculé la veille par PRT soit 12627.70000

    horaireDax.jpg horaireDax.jpg DAXPPV.jpg DAXPPV.jpg
    #140389 quote
    Nicolas
    Keymaster
    Master

    Il n’est pas utile de déclarer le TIMEFRAME daily pour obtenir des informations des constantes DOPEN, DCLOSE, etc.. Ces valeurs journalières sont accessibles dans n’importe quelle unité de temps.

    Je pense que ton problème de décalage vient du fait que tu utilise “updateonclose”, mais comme je l’ai dit, inutile de déclarer un timeframe pour ces instructions.

    #140391 quote
    imencity
    Participant
    Senior

    Le TIMEFRAME c’était pour autre chose. J’ai résolu le problème:

    GRAPH (DHigh(1) + DLow(1) + DClose(1)) / 3

    Ca, contrairement à tous les codes que j’ai pu lire et tester, donne le résultat du pivot de la veille c’est à dire, vis à vis des infos de l’avant veille. Et enfin la solution (je resteste demain à tête reposée):

    GRAPH (DHigh(0) + DLow(0) + DClose(0)) / 3 coloured(0,0,255)

    Ca donne les bons résultats à savoir le plus haut (non pas de l’avant veille à cause du (1) …) du plus bas etc… du jour d’avant.

    Et là tous mes résultats semble correct.

    Nicolas, je te laisse me confirmer svp ?
    Ca voudrais dire que même  https://www.prorealcode.com/prorealtime-indicators/daily-weekly-monthly-pivot-points/ pose problème.
    D’ailleurs je pense que https://www.prorealcode.com/topic/dhigh-dlow-dclose-dont-work-as-expected/ a rencontré un problème sans le comprendre.

    #140396 quote
    Nicolas
    Keymaster
    Master

    Faux, pour moi tout est correct, voir mes copies d’écrans.

    J’ai fait un indicateur, un GRAPH (DHigh(1) + DLow(1) + DClose(1)) / 3 , et appliqué l’indicateur de points pivots de la plateforme et tout est identique.

    Vérifie à nouveau les horaires personnalisés (voir ci-joint aussi).

    Code de l’indic:

    return (DHigh(1) + DLow(1) + DClose(1)) / 3

    Code de la stratégie :

    a=0
    if a=1 then 
    buy at market 
    endif 
    
    GRAPH (DHigh(1) + DLow(1) + DClose(1)) / 3

    J’arrête là pour ce soir, il est tard, à demain.

    pivot-daily.png pivot-daily.png horaires-personnalises-prorealtime-dax.png horaires-personnalises-prorealtime-dax.png
    #140418 quote
    imencity
    Participant
    Senior

    Moi aussi ça fonctionne pour le 29 juillet, cf capture d’écran.
    MAIS ça ne fonctionne pas pour le mardi 28 juillet… cd aussi capture d’écran.

    Je n’ai aucune valeur personnalisé, j’ai exactement comme toi (cf capture d’écran de mon précédent post).

    Je comprends pas…

    PIVOTDAX.jpg PIVOTDAX.jpg
    #140538 quote
    imencity
    Participant
    Senior

    Up ?

    #140727 quote
    imencity
    Participant
    Senior

    Bonjour Nicolas,

    J’ai à nouveau retesté et j’obtiens toujours le même problème. J’ai cette fois utilisé ton indicateur:

    return (DHigh(1) + DLow(1) + DClose(1)) / 3

    Cet indicateur se nomme “A suppr” (pour que je pense à le virer 😉

    NOTE:
    Si on pouvait avoir des répertoires pour y mettre les indicateurs et les stratégies se serait top ! Ainsi les classements seraient plus facile 😉

    DONC: Les PP sont corrects pour les 28 et 29 juillet, mais pas pour le 27 juillet de cette année… Alors que dans le test de mon précédent message, le 28 était correct !!!

    Alors certes il n’y a “que” 70 d’écart dans mon dernier exemple et environ 60 dans le précédent… mais il ne devrait pas y avoir de décalage.
    Et 70 points dans une stratégie c’est énorme 😉

    As-tu une explication ? Car je bloque et je ne peux pas du tout avancer dans ma stratégie.
    Je rappel que les horaires de trading ne sont pas différente des tiennes d’ailleurs, je n’aurais aucun point pivot de correct je pense.

    testPivots-copie.jpg testPivots-copie.jpg
Viewing 15 posts - 1 through 15 (of 20 total)
  • You must be logged in to reply to this topic.

Problème de valeur de points pivots


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
imencity @imencity Participant
Summary

This topic contains 19 replies,
has 3 voices, and was last updated by LaMaille
2 years, 4 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 07/25/2020
Status: Active
Attachments: 9 files
Logo Logo
Loading...