Bug dans constantes journalières de prix ?

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #97350 quote
    fred64100
    Participant
    Junior

    Bonjour,

    J’ai récupéré le code, sur un forum, de l’indicateur “Point Pivot” :

    PP = (DHigh(1) + DLow(1) + DClose(1)) / 3
    Res1 = 2 * PP - DLow(1)
    Res2 = PP + DHigh(1) - DLow(1)
    Res3 = DHigh(1) + 2 * (PP - DLow(1))
    Sup1 = 2 * PP - DHigh(1)
    Sup2 = PP - DHigh(1) + DLow(1)
    Sup3 = DLow(1) - 2 * (DHigh(1) - PP)
    
    RETURN PP Coloured (0,0,0) AS "PP", Res1 Coloured (255, 0, 0) AS "R1", Res2 Coloured (255,0,0) AS "R2", Res3 Coloured (255,0,0) AS "R3", Sup1 Coloured (0, 255, 0) AS "S1", Sup2 Coloured (0, 255, 0) AS "S2", Sup3 Coloured (0, 255, 0) AS "S3"

    Lorsque j’ajoute mon indicateur et l’indicateur “Points pivots” fourni par ProRealTime à un graphique (ici le DAX), je retrouve les mêmes valeurs.

    En gros, cela valide le code de l’indicateur que j’ai récupéré…donc c’est parfait.

    Le problème est que lorsque j’appelle mon indicateur (on va l’appeler “MonPivot”) dans ProOrder (comme ci dessous)

    PPJ, R1J, R2J, R3J, S1J, S2J, S3J = CALL "MonPivot"
    
    GRAPH PPJ
    GRAPH R1J
    GRAPH R2J
    GRAPH R3J
    GRAPH S1J
    GRAPH S2J
    GRAPH S3J

    , il me retourne les bonnes valeurs…sauf le lundi 🙁

    J’ai l’impression qu’il récupère, le lundi, les données du dimanche pour calculer le Point Pivot alors que dans “Options plateforme”, “Fuseaux et plages horaires”, j’ai bien décoché “Afficher les données du weekend”.

    Je ne comprends pas comment un indicateur perso peut fonctionner sur un graphique et ne pas retourner les mêmes valeurs lors d’un appel dans le code…

    Y-a-t-il un bug ou ai-je raté quelque chose ?

    Par avance, merci.

    Frédéric.

    ScreenShot.jpg ScreenShot.jpg
    #98043 quote
    Nicolas
    Keymaster
    Master

    ProBacktest/ProOrder utilise les données du marché et non ce qui est paramétré visuellement sur ta plateforme personnelle.

    #98100 quote
    fred64100
    Participant
    Junior

    Bonjour Nicolas,

    Il y a un truc que je ne comprends toujours pas…

    J’ai remis tous les paramètres de la plateforme d’origine dans l’onglet “Fuseaux et plages horaires” (Utiliser la plage horaire du marché + Afficher les données du weekend).

    Pourtant, ma fonction “MonPivot” retourne les mêmes valeurs que l’indicateur “Points pivots” fourni par ProRealTime du mardi au vendredi mais pas le lundi !!!

    Au passage, dans le cas présent du DAX, aucune cotation le weekend apparaît sur le graphique malgré que j’ai coché “Afficher les données du weekend”.

    PP = (DHigh(1) + DLow(1) + DClose(1)) / 3
    
    RETURN PP Coloured (0,0,0) AS "PP"

    Donc ma question me paraît simple : où ProBacktest/ProOrder vont-t-ils chercher les valeurs DHigh(1), DLow(1) et DClose(1) le lundi ?

    Par avance, merci.

    Frédéric.

    #98120 quote
    Nicolas
    Keymaster
    Master

    En “graphant” ces constantes, tu devrais trouver une piste :

    graph dclose(1)

    Je n’ai pas essayé, je te laisse continuer à debugger de ton côté, tient moi au courant.

    #98195 quote
    fred64100
    Participant
    Junior

    Bonjour Nicolas,

    Merci pour votre réponse rapide.

    J’ai trouvé ça sur un autre forum :

    L’Allemagne 30, le indice anglais et le Wall Street sont désormais disponibles en horaires prolongés le dimanche. Les positions prises la semaine* ne seront affectées par les opérations réalisées le dimanche – les cours resteront inchangés. Les Stops et Limites sur ces positions ne seront pas déclenchés le dimanche.

    Si je mets mon graphique en journalier, en 4 heures, en 2 heures, etc, je vois bien la cotation du dimanche s’affichait.

    Par contre, si je mets mon graphique en 1 heure ou toute unité inférieure, je ne vois pas la cotation du dimanche s’affichait.

    Je ne comprends pas très bien pourquoi elle n’apparaît pas dans les unités de temps inférieures à 1 heure…mais bon, soit 😉

    Mon problème reste le même… est-ce que faire un cas particulier peut résoudre le problème ?

    Ind = 1 // Jour de cotation précédent
    IF DayOfWeek = 1 THEN // Si Lundi
    Ind = 2
    ENDIF
    
    PP = (DHigh(Ind) + DLow(Ind) + DClose(Ind)) / 3
    Res1 = 2 * PP - DLow(Ind)
    Res2 = PP + DHigh(Ind) - DLow(Ind)
    Res3 = DHigh(Ind) + 2 * (PP - DLow(Ind))
    Sup1 = 2 * PP - DHigh(Ind)
    Sup2 = PP - DHigh(Ind) + DLow(Ind)
    Sup3 = DLow(Ind) - 2 * (DHigh(Ind) - PP)
    
    RETURN PP Coloured (0,0,0) AS "PP", Res1 Coloured (255, 0, 0) AS "R1", Res2 Coloured (255,0,0) AS "R2", Res3 Coloured (255,0,0) AS "R3", Sup1 Coloured (0, 255, 0) AS "S1", Sup2 Coloured (0, 255, 0) AS "S2", Sup3 Coloured (0, 255, 0) AS "S3"

    Cela fonctionne dans la plupart des cas sauf s’il n’y a pas de jour de cotation le dimanche (ex : le 1er mai est un dimanche).

    Voyez-vous une autre solution ?

    Par avance, merci.

    Frédéric.

    #98202 quote
    Nicolas
    Keymaster
    Master

    Essayez ça à la ligne 2 :

    IF DayOfWeek = 1 and dayofweek[1]=0 THEN // Si Lundi et dimanche hier
    #107499 quote
    Etienne
    Participant
    Average

    Bonjour,

    Il semble effectivement que les fonctions DHigh, DLow, DClose et DOpen donnent des resultats différents de ce que PRT utilise en interne pour calculer les Points pivots.

    En comparant un indicateur simple du genre “return DLow(1)” avec l’indicateur ligne de Prix de PRT en cochant (Low), on constate la différence visuellement en M15 en particulier sur la première heure de la journée.

    Je travaille sur un workaround, je le partagerai la semaine prochaine…

    #107693 quote
    Etienne
    Participant
    Average

    Bonjour,

     

    il ya effectivemnt des écarts sur le fonctions DClose, DHigh, DLow et DOpen avec ce que l’on constate sur le graph. L’indicateur “ligne de prix” permet de constater cet écart.

    Voici le code que j’utilise pour retrouver les valeurs de PP de PRT…

     

    //Pivot calculation method
    
    If IntradayBarIndex=0 then
    DDClose = Close[1] // Close de la periode precedente
    DDOpen = Open // Open de la periode en cours
    PDayHigh = DayHigh
    DayHigh = High
    
    PDayLow = DayLow
    DayLow = Low
    else
    DDClose = DDClose[1]
    DDOpen = DDOpen[1]
    PDayHigh =PDayHigh[1]
    if High>DayHigh then
    DayHigh = High
    endif
    
    PDayLow =PDayLow[1]
    if Low<DayLow then
    DayLow = Low
    endif
    Endif
    
    If mode = 0 then
    dailyPivot = (PDayHigh + PDayLow + DDClose) / 3
    Elsif mode = 1 then
    dailyPivot = (DDOpen + PDayHigh + PDayLow + DDClose) / 4
    Elsif mode = 2 then
    dailyPivot = (PDayHigh + PDayLow + DDClose*2) / 4
    Else
    dailyPivot = (PDayHigh + PDayLow + DDOpen*2) / 4
    Endif
    
    dailyR1 = 2*dailyPivot - PDayLow
    dailyMidR1 = (dailyPivot + dailyR1)/2
    dailyS1 = 2*dailyPivot - PDayHigh
    dailyMidS1 = (dailyPivot + dailyS1)/2
    
    dailyR2 = dailyPivot + (PDayHigh - PDayLow)
    dailyMidR2 = (dailyR2 + dailyR1)/2
    dailyS2 = dailyPivot - (PDayHigh - PDayLow)
    dailyMidS2 = (dailyS2 + dailyS1)/2
    
    dailyR3 = dailyR1 + (PDayHigh - PDayLow)
    dailyMidR3 = (dailyR3 + dailyR2)/2
    dailyS3 = dailyS1 - (PDayHigh - PDayLow)
    dailyMidS3 = (dailyS3 + dailyS2)/2
    
    
    return dailyR3 coloured (255,0,0) as "R3 - Daily", dailyMidR3 coloured (255,0,0) as "MidR3 - Daily", dailyR2 coloured (255,0,0) as "R2 - Daily", dailyMidR2 coloured (255,0,0) as "MidR2 - Daily", dailyR1 coloured (255,0,0) as "R1 - Daily", dailyMidR1 coloured (255,0,0) as "MidR1 - Daily", dailyPivot as "Pivot - Daily", dailyMidS1 coloured (0,128,0) as "MidS1 - Daily", dailyS1 coloured (0,128,0) as "S1 - Daily", dailyMidS2 coloured (0,128,0) as "MidS2 - Daily", dailyS2 coloured (0,128,0) as "S2 - Daily",dailyMidS3 coloured (0,128,0) as "MidS3 - Daily", dailyS3 as "S3 - Daily"
    
    Nicolas thanked this post
Viewing 8 posts - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.

Bug dans constantes journalières de prix ?


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
fred64100 @fred64100 Participant
Summary

This topic contains 7 replies,
has 3 voices, and was last updated by Etienne
6 years, 6 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 04/29/2019
Status: Active
Attachments: 1 files
Logo Logo
Loading...