Pin Bar sur Prix Detection
Forums › ProRealTime forum Français › Support ProBuilder › Pin Bar sur Prix Detection
- This topic has 8 replies, 3 voices, and was last updated 6 years ago by Alai-n.
-
-
06/05/2018 at 11:36 AM #72347
Bonjour,
@Nicolas…Ce code détecte les Pin Bar sur des niveaux de prix pré-enregistrés.Aurais-tu une formulation afin de rendre la modification de ce code plus intuitive, si je souhaitais passer de 5 à 50 niveaux de prix(par exemple) sans être à chaque fois obligé de modifier la ligne 20?
Merci
123456789101112131415161718192021222324252627282930313233//Pin Bar on Price | Indicatorprice1 = 15000price2 = 14500price3 = 14000price4 = 13500price5 = 13000price6 = 12500price7 = 12000price8 = 11500price9 = 11000price10 = 10500//Candle Pin bar on Price Detectionshootingstar = 0hammer = 0IF(high>price1 and low<price1 or high>price2 and low<price2 or high>price3 and low<price3 or high>price4 and low<price4 or high>price5 and low<price5 or high>price6 and low<price6 or high>price7 and low<price7 or high>price8 and low<price8 or high>price9 and low<price9 or high>price10 and low<price10) THEN// Définition Pin Bar (Shootingstar or Hammer)IF (high - low) > 3* abs(close - open) THENIF (open - low) < 0.30*(high - low) OR (close - low) < 0.30*(high-low) THENshootingstar = -1ENDIFIF (high - open) < 0.30*(high - low) OR (high - close) < 0.30*(high-low) THENhammer = 1ENDIFENDIFENDIFRETURN shootingstar as "Shooting Star", hammer as "Hammer"06/05/2018 at 12:46 PM #72348Vous pouvez résoudre le problème en utilisant les divisions et la fonction ROUND qui arrondit l’entier le plus proche.
Si vous voulez, comme dans mon exemple de code, signaler chaque passage de prix tous les 100 points, indiquer un diviseur de 100 et un déplacement de 50 points pour arrondir au plus proche; donc 12730 pour LOW et 12773 pour HIGH serait arrondi à 127 et 128, indiquant une intersection qui, en réalité, n’existait pas. Ainsi 12730 devient 12680 puis 127, et 12773 devient 12723 puis 127, ainsi le passage n’a pas eu lieu.
Si vous voulez que l’intersection soit signalée tous les 500 points indique un diviseur de 500 et mettre 250 de déplacement.
J’ai utilisé le traducteur Google, j’espère avoir été clair.1234567891011121314151617181920//Pin Bar on Price | IndicatorONCE Deplacement = 50 * pipsizeONCE Diviser = 100x = round((high - Deplacement) / Diviser)y = round((low - Deplacement) / Diviser)//Candle Pin bar on Price Detectionshootingstar = 0hammer = 0IF x - y then //<span id="result_box" class="short_text" lang="fr" tabindex="-1"><span class="">Si ce ne sont pas les mêmes, il y avait une intersection</span></span>// Définition Pin Bar (Shootingstar or Hammer)IF (high - low) > 3* abs(close - open) THENIF (open - low) < 0.30*(high - low) OR (close - low) < 0.30*(high-low) THENshootingstar = -1ENDIFIF (high - open) < 0.30*(high - low) OR (high - close) < 0.30*(high-low) THENhammer = 1ENDIFENDIFENDIFRETURN shootingstar as "Shooting Star", hammer as "Hammer"1 user thanked author for this post.
06/05/2018 at 1:21 PM #72350On pourrait s’inspirer de ce screener qui détecte les percements du Close des chiffres ronds: Round number – Sweet spot Screener
A la place du test des Close, utiliser tes patterns de Pinbar, qu’en penses-tu ?
06/05/2018 at 1:33 PM #72352Bonjour Roberto,
Merci pour l’astuce et tes explications qui me serviront peut être ultérieurement!
Mais dans le cas présent ce n’est pas du tout ça que je cherche à faire! Les “Price 1 à 10” sont là à titre d’exemple. Au quotidien, je peux être amené à modifier les niveaux “Price” plusieurs fois!
Ce que je souhaiterai, c’est une écriture simplifié du code afin de modifier rapidement l’algorithme sans retoucher systématiquement les lignes 3 à 12 et 20!
Merci quand même 😉
06/05/2018 at 3:01 PM #7236506/05/2018 at 3:28 PM #72368Salut Nicolas…
Probuilder ne prenant pas en compte le multitimeframe! La façon dont je fixe “Price” n’a pas grande importance dans ma demande.
Ce que je souhaiterai optimiser c’est le temps que je passe à rentrer de nouvelles données dans le code. Car je suis obligé de les rentrer manuellement!!!
Actuellement je dois créer une nouvelle ligne à chaque fois.(Ex: “Price 11” en ligne 13 et rajouter “Price 11” ligne 20 etc…)
Si je suis amené à intervenir sur le code plusieurs fois dans une même séance, j’aimerai qquechose de plus intuitif.
J’imagine une seule ligne “Price” du genre : Price = 12100,12125,1235 etc…Que je pourrai modifier à souhait et qui enverrait l’information ligne 20 sans avoir besoin de modifier celle-ci aussi!
Je recherche juste une simplification d’utilisation du code existant!
06/05/2018 at 4:20 PM #72373PRT ne supporte pas les vecteurs, il n’est donc pas possible de créer des valeurs dynamiques.
Vous pouvez entrer des valeurs facilement modifiables uniquement à l’aide des propriétés de l’indicateur.
Vous devez ajouter le nombre de variables que vous pensez pouvoir utiliser (je ne sais pas si ProBuilder a une limite maximale), par exemple 20, et modifier le IF en indiquant tous les 20.
Puis à partir des propriétés de l’indicateur vous pouvez faire varier les prix quand vous le souhaitez, en mettant ZERO ceux qui ne vous intéressent pas.1 user thanked author for this post.
06/05/2018 at 4:37 PM #72376Je me doutais de ta réponse Alain et Roberto a raison, cela nécessite d’utiliser un tableau de données (pour faire des variables dynamiquement), hors ProBuilder exige de savoir la quantité de variables et leurs noms dés l’exécution du code. Donc hormis utiliser la solution de Roberto du post précédent ^^ ou alors utiliser des “pas” entre chaque prix et faire une boucle, je ne vois pas d’autres solutions.
1 user thanked author for this post.
06/05/2018 at 4:44 PM #72378Super Roberto Merci…
Ça a l’air intéressant comme solution!
Bonne soirée
1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on