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)
- This topic has 5 replies, 3 voices, and was last updated 2 weeks ago by
Philouxp.
-
-
12/30/2024 at 6:22 PM #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”)
endifreturn
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
endifset 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?
12/30/2024 at 7:04 PM #241975Dans 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?
01/07/2025 at 11:34 AM #242253Bonjour! 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.
1234567891011121314151617181920212223242526272829timeframe(DEFAULT)//pt pivot woodieHt = Dhigh(1)Bs = DLow(1)IF intradaybarindex=0 thenC=close[1]endifPivot = (Ht+Bs+2*C)/4Sup2 = Pivot - (Ht - Bs)If intradaybarindex = 100 thenpivotTouchedSup2 = 0endif///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////S2/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////if pivotTouchedSup2 = 0 and high >= Sup2 and high[1]< Sup2 thensellshort 1 contracts AT MARKETelsif pivotTouchedSup2 = 0 and low <= Sup2 and low[1] > Sup2 thenpivotTouchedSup2 = 1BUY 1 CONTRACT AT MARKETendifset stop loss 3 //set target profit 2.5 //graphonprice sup2 coloured("red")01/24/2025 at 11:31 PM #243081Bonjour 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
01/25/2025 at 10:16 AM #24308401/25/2025 at 12:12 PM #243085Meri 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)
endifcela 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.
-
AuthorPosts
Find exclusive trading pro-tools on