Stockage valeur Creux (prix)
Forums › ProRealTime forum Français › Support ProBuilder › Stockage valeur Creux (prix)
- This topic has 20 replies, 4 voices, and was last updated 2 years ago by christophe11560.
-
-
02/05/2021 at 11:32 AM #160434
Bonjour,
J’aimerai savoir sur un intervalle de temps prédéfini comment on peux stocker la valeur des 2 derniers creux (si creux il y a). J’ai commencé à coder quelque chose mais je bloque.
Sachant qu’il peut y avoir plus de 2 creux mais seul les 2 derniers m’intéresse.Stockage valeur creux123456789101112// Période en joursPer = 7a = close// Définition du creuxcreux = a>a[1] and a[1]<a[2]For a to per doif creux then// On stock sa valeur afin de pouvoir l'utiliser ensuite(??)end ifNEXTMerci de votre aide.
Manu02/05/2021 at 12:48 PM #160439Bonjour, basé sur ta définition d’un creux sur les clôtures, ceci te retournera la valeurs des 2 creux les plus récents, ou 0 s’ils sont en dehors de la période per:
123456789101112131415161718192021222324// Période en joursPer = 7a = close// Définition du creuxcreux1 = a>a[1] and a[1]<a[2]if creux1 thenbarindex2=barindex1barindex1=barindex[1]close2=close1close1=close[1]endifif barindex-per>=barindex1 thenclose1=0barindex1=0endifif barindex-per>=barindex2 thenclose2=0barindex2=0endifreturn close1 as "creux le plus récent", close2 as "2ème creux le plus récent"1 user thanked author for this post.
02/05/2021 at 12:50 PM #160440Je te conseil dans ce cas d’utiliser des variables en tableaux, puis de stocker à la volée les valeurs des deux dernière colonnes du tableau dans des variables standard. On pourrait faire sans les tableaux, mais ce sera plus simple par la suite si tu veux utiliser plus de valeurs stockés que simplement 2.
123456789101112131415161718// Période en joursa = close// Définition du creuxcreux = a>a[1] and a[1]<a[2]if creux then //creux détecté$creux[index]=a[1] //valeur du creux stocké dans le tableau dans la colonne 'index'index=index+1 //j'incrémente la colonne du tableau pour le prochain creux à stockerendif//les 2 derniers $creux se trouvent donc dans les 2 derniers indexif index>=2 then //y-at'il au moins 2 creux?var1=$creux[index-1] //var1 sera mon premier creuxvar2=$creux[index-2] //var2 sera le deuxièmeendifreturn var1,var21 user thanked author for this post.
02/05/2021 at 1:15 PM #16044802/07/2021 at 1:50 PM #160577Effectivement, peut être que j’utiliserai plusieurs valeurs stockées. Par contre, Nicolas dans ton code, tu n’as pas indiquer l’intervalle de temps prédéfini.
Par exemple, une variable “per = 7” pour stoker sur les 7 derniers jours la valeur des 2 derniers creux si creux il y a.
Merci par avance
02/08/2021 at 2:29 PM #16069002/08/2021 at 3:36 PM #160696Je ne comprends pas ce que tu veux dire par “intervalle de temps”. La détection de creux c’est la tienne, je n’ai fait que la reprendre, je pense que tu veux parler de creux type fractal (qui contienne une condition en période dans la détection de points hauts / bas).
L’erreur de syntaxe est normal puisque ProScreener ne supporte pas les variables en tableaux. Ton sujet étant posté dans le forum ProBuilder, je n’ai pas créé de codes compatibles avec ProScreener.
Si je connaissais l’intégralité de ton projet, ce serai bien plus simple et rapide de te guider dans la bonne direction, merci.
02/08/2021 at 3:56 PM #160698Autant pour moi. Je pensais pouvoir me débrouiller seul ensuite mais non visiblement 😉 😉
Dans un screnner et à partir de ma définition du creux, je voudrais savoir lors des 10 derniers jours (par exemple) :
- si il y avait eu un creux
- si il y avait eu un 2ieme creux
- Et si la valeur du creux 1 était supérieur à la valeurs du creux 2
Le screnner retournant les 3 conditions ci dessus réunis.
02/08/2021 at 4:33 PM #160705Bien compris, je pense que le code ci-dessous répond correctement à ces conditions, à tester :
1234567891011121314a = close// Définition du creuxcreux = a>a[1] and a[1]<a[2]plushaut = 0if creux thenplushaut = a[1]>creuxP and creuxP>0creuxP = a[1]endiftest = summation[10](plushaut)>0screener[test]1 user thanked author for this post.
02/09/2021 at 10:34 AM #16077606/29/2022 at 8:13 PM #196401Bonjour à tous,
Dans le screener, je souhaiterais intégrer une notion de volume.
si l’on considère que le creux 1 est plus récent que le creux 2, Je voudrais voir un volume plus élevé sur le creux 1 qui est plus haut que le creux 2.Comment pourrait on adapter ce code?
bien à vous
06/30/2022 at 7:45 AM #196431A tester avec cette version qui teste un volume plus élevé sur le creux actuel que sur le creux qui le précède:
123456789101112131415a = close// Définition du creuxcreux = a>a[1] and a[1]<a[2]plushaut = 0if creux thenplushaut = a[1]>creuxP and creuxP>0 and volume[1]>creuxPVcreuxP = a[1]creuxPV = volume[1]endiftest = summation[10](plushaut)>0screener[test]07/01/2022 at 5:04 PM #196550Bonjour Nicolas,
j’ai essayé le test. Pour les volumes cela fonctionne. Génial
Par contre, j’ai un soucis avec la fonction sommation.
J’ai fait un test en hebdo et remplacé les chandeliers par une ligne pour vérifier plus clairement la position des creux. J’ai également raccourci la sommation à 6 au lieu de 10, soit 6 semaines de recul.Je te joints une image du screen réalisé avec un exemple type:
– Point 1: creux à 2 semaines OK
– Point 2: creux à 10 semaines > 6 semaines.Comment peut modifier le code pour que la sélection des creux se limite bien à la durée choisie?
Dans l’attente de te lire
christophe 😉test réalisé avec une sommation de 6 au de 10123456789101112131415a = close// Définition du creuxcreux = a>a[1] and a[1]<a[2]plushaut = 0if creux thenplushaut = a[1]>creuxP and creuxP>0 and volume[1]>creuxPVcreuxP = a[1]creuxPV = volume[1]endiftest = summation[6](plushaut)>0screener[test]07/04/2022 at 10:52 AM #196720Désolé la question n’est pas clair.
Mais, pour mémoire, ton code teste les valeurs de creux à la suite, si il y a x creux entre 2 valeurs, on ne peut pas tester si le creux N est plus haut que le creux N-6
Il faudrait pour cela un code bien plus complexe.
07/04/2022 at 5:34 PM #196747Bonjour Nicolas,
Je me suis mal exprimé.1test = summation[6](plushaut)>0On utilise la fonction “summation ” et dans ce cas de periode 6, soit 6 semaines dans mon cas.
Sur la photo que je t’ai jointe, le 2ième creux est distant de 10 semaines de la date d’aujourd’hui et de 8 semaines du 1ier creux.
Je ne comprends pas pourquoi le screener me propose cette action qui ne respecte pas la sommation de 6 (max).
bien à toi
-
AuthorPosts
Find exclusive trading pro-tools on