Stratégie qui ne réplique pas l’indicateur (point pivot)

Forums ProRealTime forum Français Support ProOrder Stratégie qui ne réplique pas l’indicateur (point pivot)

Viewing 6 posts - 1 through 6 (of 6 total)
  • #241969

    Hello,

    Bonnes fêtes à tous.

     

    En ce temps de vacances, je me suis penché sur une stratégie simple basée sur point pivot. Je rencontre cependant un problème.

    J’ai codé un indicateur qui me donne des signaux buy & sell lorsque l’on touche le point pivot S1.

    Lorsque je transforme le code de cet indicateur en stratégie, les points buy & sell ne sont pas les mêmes. Je ne comprends pas pourquoi. Le code de la stratégie est issue du code de l’indicateur et pourtant je constate une différence. La stratégie ne rentre pas sur le point pivot woodie S2.

    Ci-dessous le code de l’indicateur qui envoie un signal d’achat ou de vente lorsque le point pivot Woodie S1 est touché pour la 1ère fois de la journée uniquement.

    Timeframe (daily)

    Ht = Dhigh(1)
    Bs = DLow(1)
    C = DClose(1)

    Pivot = (Ht+Bs+2*C)/4
    Sup2 = Pivot – (Ht – Bs)

    timeframe(DEFAULT)

    If intradaybarindex = 100 then
    pivotTouchedSup2 = 0
    endif

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //S2
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    if pivotTouchedSup2 = 0 and high >= Sup2 and high[1]< Sup2 then
    pivotTouchedSup2 = 1
    drawtext(“▼”,barindex,high+2*averagetruerange[14](close))coloured(“red”)
    elsif pivotTouchedSup2 = 0 and low <= Sup2 and low[1] > Sup2 then
    pivotTouchedSup2 = 1
    drawtext(“▲”,barindex,low-2*averagetruerange[14](close))coloured(“green”)
    endif

    return

     

    Ci-dessous le code de la stratégie basé sur le même code que l’indicateur.

     

    Timeframe (daily)
    //pt pivot woodie
    Ht = Dhigh(1)
    Bs = DLow(1)
    C = DClose(1)

    Pivot = (Ht+Bs+2*C)/4
    Sup2 = Pivot – (Ht – Bs)

    timeframe(DEFAULT)

    If intradaybarindex = 100 then
    pivotTouchedSup2 = 0
    endif

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //S2
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    if pivotTouchedSup2 = 0 and high >= Sup2 and high[1]< Sup2 then
    sellshort 1 contracts AT MARKET
    elsif pivotTouchedSup2 = 0 and low <= Sup2 and low[1] > Sup2 then
    pivotTouchedSup2 = 1
    BUY 1 CONTRACT AT MARKET
    endif

    set stop loss 3 //
    set target profit 2.5 //

     

    Ci-joint une image d’exemple de la différence sur le mini SP500 du 20/12/2024 à 11h14 où on remarque que le signal de l’indicateur numéro 1 (qui suit bien le point pivot S2) n’est pas identique au signal d’achat numéro 2 (qui ne suis pas le point pivot S2). C’est comme si en mode stratégie la partie ci-dessous ne donne pas les bonnes valeurs telles qu’elles le sont dans l’indicateur pivot woodie:

    Ht = Dhigh(1)
    Bs = DLow(1)
    C = DClose(1)

    Quelqu’un peut il m’aider please à y comprendre quelque chose?

     

     

    #241975

    Dans mon exemple du 20/12/2024 après test je comprends que le DClose en mode stratégie(faux) n’est pas identique à celui de l’indicateur (juste). La close du 19/12 est 5934 (22h Paris Time) alors que la strat semble prendre DClose = 5941.25 (environ) ce qui correspond à la dernière quotation du 19/12.

    Pourquoi le DClose est différent que l’on soit en mode indicateur et Stratégie Trading automatique?? Comment récupérer la close de 22h du coup please?

     

    #242253

    Bonjour! Le problème est qu'avec les contrats à terme, le Dclose(1) ne coïncidera pas avec la clôture de la dernière bougie d'une échelle de temps plus courte que le jour. Pour cette raison, lorsque vous travaillez avec des contrats à terme et des échelles de temps inférieures, vous devez calculer le cours de clôture lorsque intradaybarindex=0.

    #243081

    Bonjour Yvan,

    Merci pour ton retour malheureusement cela ne résout pas mon problème qui avait été soulevé par larouedegann à l’époque et qui n’a pas été résolu à priori.

    Pour être clair, le problème ne vient pas des horaires, du timeframe etc, le problème est propre à PRT qui ne donne pas la bonne close de la veille via l’instruction DCLOSE comme l’indique Nicolas dans sa réponse sur le post ci-dessous après investigation

    https://www.prorealcode.com/topic/points-pivots-probleme-de-cloture/

    Le diagnostic avait été trouvé mais pas le reméde au problème.

    Je cherche donc un moyen pour contourner le problème sans succès.

    As tu une idée s’il te plaît sur comment récupérer la close de la veille du CAC  de 17h30? ou celle du mini dow de 22h? ou tou simplement récupérer la close d’une bougie de la veille d’une heure spécifique.

    Cdt,

     

    Philippe

    #243084

    apres vous pouvez jouer avec l’heure comme si dessous

     

    #243085

    Meri fifi743, le problème que je viens de comprendre c’est qu’en réalité la close officiel ne correspond pas forcément à la close de 17h30 du cac.

    J’ai répliqué l’indicateur PRT Point Pivot Woodie. J’affiche sur l’indicateur la Close pour connaitre sa valeur. Je me rends compte qu’il ne s’agit pas forcément de la close de 17h30 donc raisonner en heure n’est pas la bonne approche.

    Dans l’indicateur Point Pivot, la close officiel est récupérée via CloseOfficiel = DClose(1)

    Malheureusement, tout le problème qui se pose est que je réplique sans problème le point pivot woodie mais lorsque je souhaite l’utiliser en stratégie automatique le code DClose(1) ne renvoie pas le même niveau de Close. C’est très énervant et cela fausse complétement les résultats de n’importe quelle stratégie qui se sert des points pivots.

     

    Pour donner un exemple,  en mode indicateur DClose(1) donne 44749 sur le mini dow le 24/01/2025, il s’agit là de la close Officiel du 23/01/2025. On est bon.

    Si je transforme strictement l’indicateur point pivot en mode stratégie (sans ajouter de tranche horaire, ni timeframe ou autre paramétrage de temps) alors DClose(1) donne 44732 comme on peut le voir sur la capture en PJ (où C = 44 732 en rouge).

    Le code est le même entre l’indicateur et la stratégie, la ligne rouge sur le graph est appelée via graphonprice C

    Si j’essaie de coder ainsi en mode stratégie

    IF intradaybarindex=0 then
    C=Dclose(1)
    endif

    cela ne change rien, la close n’est toujours pas la close officielle.

    A la limite, pour une stratégie de trading automatique je peux toujours venir inscrire la close du jour dans le code en dur et le faire quotidiennement (même si c’est assez contraignant), sauf que je ne peux pas backtester la stratégie sur une longue période en faisant ainsi, ce que je souhaite faire.

    Peut être créer un tableau aray dans lequel il y aurait toutes les closes officielles de l’indice où une boucle chercherait le jour en cours dans le tableau pour y trouver la close. Mais bon, pas évident à faire et surtout hyper frustrant de devoir se prendre la tête tout ça parceque PRT ne donne pas la close officiel lorsque nous sommes en mode stratégie automatique.

    Sur le forum il y a forcement des personnes qui ont des Bots de stratégie automatique qui se servent du point pivot, comment avez vous contourné le pb de  la close fausse svp? Où alors vous n’avez pas remarqué une différence entre l’indicateur point pivot et l’utilisation du point pivot en mode  stratégie, car moi même je ne l’avais pas remarqué en 1er lieu.

     

     

     

     

     

     

Viewing 6 posts - 1 through 6 (of 6 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login