pivot 30 minutes
Forums › ProRealTime forum Français › Support ProBuilder › pivot 30 minutes
- This topic has 16 replies, 2 voices, and was last updated 2 years ago by
christophe11560.
-
-
05/04/2022 at 9:35 PM #192703
Bonjour à toute la communauté,
sur la base du code PRT JOINT DU PIVOT HORAIRE INTRADAY, comment peut on l’adapter pour faire un pivot à 30 min?
Le code joint a été réalisé par robertogozzi et fonctionne correctement.En vous remerciant 😉
christophe05/04/2022 at 9:36 PM #192704pivot 1 heure1234567891011121314151617181920212223242526272829303132333435363738394041//DEFPARAM DrawOnLastBarOnly = truePivot = 1IF Openhour <> openhour [ 1 ] THEN//MyEnd = (Opendate * 1000000) + (OpenHour * 10000) + (5900) //YYYYMMDDHHMMSSMyPP = PPStartBar = BarIndex//myLastHigh = myHighmyLastLow = myLowmyLastClose = Close [ 1 ]myHigh = HighmyLow = Lowmyopen = openELSEmyHigh = Max(myHigh, High)myLow = Min(myLow, Low)ENDIF// Formule en fonction de la valeur du paramètre PivotIF Pivot = 2 THEN// Point pivot : PP= (Hveille + Bveille + Cveille + Ojour) / 4PP = (myLastHigh + myLastLow + myLastClose + myopen) / 4ELSIF Pivot = 3 THEN// Point pivot : PP= (Hveille + Bveille + Ojour) / 3PP = (myLastHigh + myLastLow + myopen) / 3ELSE// Point pivot : PP= (Hveille + Bveille + Cveille) / 3PP = (myLastHigh + myLastLow + myLastClose) / 3ENDIFRes1 = 2 * PP - myLastLowRes2 = PP + myLastHigh - myLastLowRes3 = myLastHigh + 2 * (PP - myLastLow)Sup1 = 2 * PP - myLastHighSup2 = PP - myLastHigh + myLastLowSup3 = myLastLow - 2 * (myLastHigh - PP)DrawSegment(StartBar,MyPP,DateToBarIndex(MyEnd),MyPP) coloured(0,255,0,255) style(Line, 1)Return //pp05/05/2022 at 7:33 AM #192707Bonjour, a priori, en modifiant les lignes 4 et 6 comme ceci (à tester):
1234567891011121314151617181920212223242526272829303132333435363738394041//DEFPARAM DrawOnLastBarOnly = truePivot = 1IF Openhour <> openhour [ 1 ] or openminute=30 THEN//MyEnd = (Opendate * 1000000) + (OpenHour * 10000) + 3000*(openminute=30) + (2900) //YYYYMMDDHHMMSSMyPP = PPStartBar = BarIndex//myLastHigh = myHighmyLastLow = myLowmyLastClose = Close [ 1 ]myHigh = HighmyLow = Lowmyopen = openELSEmyHigh = Max(myHigh, High)myLow = Min(myLow, Low)ENDIF// Formule en fonction de la valeur du paramètre PivotIF Pivot = 2 THEN// Point pivot : PP= (Hveille + Bveille + Cveille + Ojour) / 4PP = (myLastHigh + myLastLow + myLastClose + myopen) / 4ELSIF Pivot = 3 THEN// Point pivot : PP= (Hveille + Bveille + Ojour) / 3PP = (myLastHigh + myLastLow + myopen) / 3ELSE// Point pivot : PP= (Hveille + Bveille + Cveille) / 3PP = (myLastHigh + myLastLow + myLastClose) / 3ENDIFRes1 = 2 * PP - myLastLowRes2 = PP + myLastHigh - myLastLowRes3 = myLastHigh + 2 * (PP - myLastLow)Sup1 = 2 * PP - myLastHighSup2 = PP - myLastHigh + myLastLowSup3 = myLastLow - 2 * (myLastHigh - PP)DrawSegment(StartBar,MyPP,DateToBarIndex(MyEnd),MyPP) coloured(0,255,0,255) style(Line, 1)Return //pp1 user thanked author for this post.
05/06/2022 at 3:53 PM #192825Salut,
Je viens de l’essayer et çà marche nickel. Merci beaucoup 😉
Peut on faire le même système pour un pivot annuel, mensuel et hebdomadaire?Dans l’attente de te lire.
Christophe.
05/06/2022 at 4:18 PM #192827Re,
Je me posais une autre question,
Si je veux modifier 30 en 10 min, le code peut il être modifié lignes 4 et 6 comme suit:IF Openhour <> openhour [ 1 ] or openminute=10 THEN
MyEnd = (Opendate * 1000000) + (OpenHour * 10000) + 3000*(openminute=10) + (2900) //YYYYMMDDHHMMSSSi ce n’est pas le cas, comment corriger ces lignes et pour comprendre comment les as tu calculé ?
en te remerciant
05/07/2022 at 9:52 AM #192850Pour monter en TF, on a ces 2 versions dans la library qui peuvent servir telles quelles ou de base de départ:
1 user thanked author for this post.
05/07/2022 at 11:56 AM #192855Re,
Je me posais une autre question,
Si je veux modifier 30 en 10 min, le code peut il être modifié lignes 4 et 6 comme suit:
IF Openhour <> openhour [ 1 ] or openminute=10 THEN
MyEnd = (Opendate * 1000000) + (OpenHour * 10000) + 3000*(openminute=10) + (2900) //YYYYMMDDHHMMSS
Si ce n’est pas le cas, comment corriger ces lignes et pour comprendre comment les as tu calculé ?
en te remerciant
Pour le cas du 10mn, on pourrait faire ainsi par exemple pour ces 2 lignes:
1IF Openhour <> openhour[1] or openminute=10 or openminute=20 or openminute=30 or openminute=40 or openminute=50 THEN1MyEnd = (Opendate * 1000000) + (OpenHour * 10000) + 100*openminute + (900) //YYYYMMDDHHMMSS1 user thanked author for this post.
05/07/2022 at 5:14 PM #192864Bonjour et merci pour tes retours,
j’ai également trouvé ces 2 indicateurs.Je préfère le code de base de robertogozzi parce que les pivots qu’il a codé sont sous forme de segment et non de ligne. Et on peut également paramétrer le segment, ce qui est pratique.
Sauf que je ne n’ai pas réussi à paramétrer les lignes 4, 6 et 40 pour tracer ces pivots en unité hebdo, mensuel et annuel.
Aurais tu une idée à ce sujet?
😉
05/07/2022 at 5:24 PM #192865Re,
Voudrais tu bien m’expliquer comment sont calculés 3000*(openminute=10) + (2900) //YYYYMMDDHHMMSS dans MyEnd ?christophe
05/09/2022 at 8:56 AM #192921C’était avec =30 (tu as mis =10), ça permettait de multiplier 3000 par 0 ou 1, mais ce n’était pas nécessaire ici, j’étais au milieu d’un autre code où j’avais besoin de faire comme ça pour un autre problème, et parmi toutes les façons de faire ici ça m’a fait penser à celle-ci en premier, mais il suffit de faire plus simple pour le 30mn (à l’image de la version que j’ai mis pour le 10 minutes dans l’autre post):
1MyEnd = (Opendate * 1000000) + (OpenHour * 10000) + 100*openminute + (2900)Ok, si tu préfères le graphisme en segments plutôt qu’en lignes renvoyées par return, je comprends que tu préfères ce type de code, mais il faut surtout voir distinctement la façon de calculer d’une part, et le graphisme d’autre part, les codes library étaient surtout cités pour une façon de calculer plus adaptée aux plus grandes unités de temps mensuelles et hebdo que le code ici présent, dont myend sert surtout à un horaire intra et limite le nombre de segments erronés autour du changement de date. Pour plus grande UT, tu devrais donc essayer de mixer “façon de calculer d’autres codes” + “graphismes segments de ton code de départ”.
1 user thanked author for this post.
05/10/2022 at 8:42 AM #192966Bonjour et merci beaucoup pour touts tes retours.
Peut on écrire ce code comme cela?
Pour avis1IF Openhour <> openhour[1] or openminute=15 or openminute=25 or openminute=35 or openminute=45 THEN1MyEnd = (Opendate * 1000000) + (OpenHour * 10000) + 100*openminute + (2900)05/11/2022 at 6:58 AM #193025Au sens “erreur de syntaxe” je n’en vois pas, donc oui…
Par contre, la question posée ainsi, je ne sais pas ce que tu en attends, donc je ne peux pas te dire si ça va faire ce que tu veux. Tout au plus je peux inverser le processus en disant ce que va faire ce qui est écrit et tenter de deviner à quelles attentes ça correspond, et donc te dire qu’écrit comme ceci, tu prends des points de départ irréguliers espacés de soit 15mn soit 10mn partant de l’heure pile, de et quart, de 25mn 35mn 45mn puis heure pile à nouveau, pour des durées de 30mn. Comme ça semble plutôt bizarre ce mélange de départs non réguliers pour des intervalles qui se chevauchent, je vais supposer que ce n’est pas ce que tu voulais.
05/11/2022 at 10:17 AM #193043Oui oui tu as raison, j’aurai du l’écrire comme suit pour avoir un multiple de 15 min:
1IF Openhour <> openhour[1] or openminute=15 or openminute=30 or openminute=45 then1MyEnd = (Opendate * 1000000) + (OpenHour * 10000) + 100*openminute + (2900)Est ce plus cohérent dans le fonctionnement du code?
05/11/2022 at 4:49 PM #193067Re,
Je ne veux vraiment pas abuser de ton temps, mais je me rends compte que je ne sais pas lire et pas compris ces lignes de codes que tu m’as écrite ci-dessous.Voudrais tu bien me les lire comme tu as fait précédemment pour que je comprenne les enchainements de ce code?
1IF Openhour <> openhour[1] or openminute=10 or openminute=20 or openminute=30 or openminute=40 or openminute=50 THEN121MyEnd = (Opendate * 1000000) + (OpenHour * 10000) + 100*openminute + (2900)Bien à toi christophe
05/11/2022 at 4:57 PM #193068lire : 900 au lieu de 2900 autant pour moi
121MyEnd = (Opendate * 1000000) + (OpenHour * 10000) + 100*openminute + (900) -
AuthorPosts
Find exclusive trading pro-tools on