Bug dans constantes journalières de prix ?
Forums › ProRealTime forum Français › Support ProOrder › Bug dans constantes journalières de prix ?
- This topic has 7 replies, 3 voices, and was last updated 5 years ago by Etienne.
-
-
04/29/2019 at 4:08 PM #97350
Bonjour,
J’ai récupéré le code, sur un forum, de l’indicateur “Point Pivot” :
123456789PP = (DHigh(1) + DLow(1) + DClose(1)) / 3Res1 = 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)
123456789PPJ, R1J, R2J, R3J, S1J, S2J, S3J = CALL "MonPivot"GRAPH PPJGRAPH R1JGRAPH R2JGRAPH R3JGRAPH S1JGRAPH S2JGRAPH 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.
05/09/2019 at 10:00 AM #9804305/09/2019 at 4:54 PM #98100Bonjour 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”.
123PP = (DHigh(1) + DLow(1) + DClose(1)) / 3RETURN 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.
05/10/2019 at 7:22 AM #9812005/10/2019 at 6:47 PM #98195Bonjour 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 ?
1234567891011121314Ind = 1 // Jour de cotation précédentIF DayOfWeek = 1 THEN // Si LundiInd = 2ENDIFPP = (DHigh(Ind) + DLow(Ind) + DClose(Ind)) / 3Res1 = 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.
05/10/2019 at 7:11 PM #9820209/13/2019 at 5:11 PM #107499Bonjour,
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…
09/16/2019 at 10:55 AM #107693Bonjour,
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…
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051//Pivot calculation methodIf IntradayBarIndex=0 thenDDClose = Close[1] // Close de la periode precedenteDDOpen = Open // Open de la periode en coursPDayHigh = DayHighDayHigh = HighPDayLow = DayLowDayLow = LowelseDDClose = DDClose[1]DDOpen = DDOpen[1]PDayHigh =PDayHigh[1]if High>DayHigh thenDayHigh = HighendifPDayLow =PDayLow[1]if Low<DayLow thenDayLow = LowendifEndifIf mode = 0 thendailyPivot = (PDayHigh + PDayLow + DDClose) / 3Elsif mode = 1 thendailyPivot = (DDOpen + PDayHigh + PDayLow + DDClose) / 4Elsif mode = 2 thendailyPivot = (PDayHigh + PDayLow + DDClose*2) / 4ElsedailyPivot = (PDayHigh + PDayLow + DDOpen*2) / 4EndifdailyR1 = 2*dailyPivot - PDayLowdailyMidR1 = (dailyPivot + dailyR1)/2dailyS1 = 2*dailyPivot - PDayHighdailyMidS1 = (dailyPivot + dailyS1)/2dailyR2 = dailyPivot + (PDayHigh - PDayLow)dailyMidR2 = (dailyR2 + dailyR1)/2dailyS2 = dailyPivot - (PDayHigh - PDayLow)dailyMidS2 = (dailyS2 + dailyS1)/2dailyR3 = dailyR1 + (PDayHigh - PDayLow)dailyMidR3 = (dailyR3 + dailyR2)/2dailyS3 = dailyS1 - (PDayHigh - PDayLow)dailyMidS3 = (dailyS3 + dailyS2)/2return 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"1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on