Pin Bar sur Prix Detection

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #72347 quote
    Alai-n
    Participant
    Veteran

    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

    //Pin Bar on Price | Indicator
    
    price1  = 15000
    price2  = 14500
    price3  = 14000
    price4  = 13500
    price5  = 13000
    price6  = 12500
    price7  = 12000
    price8  = 11500
    price9  = 11000
    price10 = 10500
    
    //Candle Pin bar on Price Detection
    
    shootingstar = 0
    
    hammer = 0
    
    IF(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) THEN
    
    IF (open - low) < 0.30*(high - low) OR (close - low) < 0.30*(high-low) THEN
    shootingstar = -1
    ENDIF
    IF (high - open) < 0.30*(high - low) OR (high - close) < 0.30*(high-low) THEN
    hammer = 1
    ENDIF
    ENDIF
    ENDIF
    RETURN shootingstar as "Shooting Star", hammer as "Hammer"
    
    #72348 quote
    robertogozzi
    Moderator
    Master

    Vous 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.

    //Pin Bar on Price | Indicator
    ONCE Deplacement = 50 * pipsize
    ONCE Diviser     = 100
    x                = round((high - Deplacement) / Diviser)
    y                = round((low  - Deplacement) / Diviser)
    //Candle Pin bar on Price Detection
    shootingstar  = 0
    hammer        = 0
    IF x - y then         //Si ce ne sont pas les mêmes, il y avait une intersection
       // Définition Pin Bar (Shootingstar or Hammer)
       IF (high - low) > 3* abs(close - open) THEN
          IF (open - low) < 0.30*(high - low) OR (close - low) < 0.30*(high-low) THEN
             shootingstar = -1
          ENDIF
          IF (high - open) < 0.30*(high - low) OR (high - close) < 0.30*(high-low) THEN
             hammer = 1
          ENDIF
       ENDIF
    ENDIF
    RETURN shootingstar as "Shooting Star", hammer as "Hammer"
    Nicolas thanked this post
    #72350 quote
    Nicolas
    Keymaster
    Master

    On 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 ?

    #72352 quote
    Alai-n
    Participant
    Veteran

    Bonjour 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 😉

    #72365 quote
    Nicolas
    Keymaster
    Master

    Donc ça n’est pas basé sur les chiffres ronds ? Comment modifier les niveaux “price” à la volée si tu nous donnes pas comment les trouver ?

    #72368 quote
    Alai-n
    Participant
    Veteran

    Salut 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!

    #72373 quote
    robertogozzi
    Moderator
    Master

    PRT 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.

    Alai-n thanked this post
    PinBar.jpg PinBar.jpg
    #72376 quote
    Nicolas
    Keymaster
    Master

    Je 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.

    Alai-n thanked this post
    #72378 quote
    Alai-n
    Participant
    Veteran

    Super Roberto Merci…

    Ça a l’air intéressant comme solution!

    Bonne soirée

    robertogozzi thanked this post
Viewing 9 posts - 1 through 9 (of 9 total)
  • You must be logged in to reply to this topic.

Pin Bar sur Prix Detection


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
Alai-n @alai-n Participant
Summary

This topic contains 8 replies,
has 3 voices, and was last updated by Alai-n
7 years, 9 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 06/05/2018
Status: Active
Attachments: 1 files
Logo Logo
Loading...