Screener – GAP non comblé

Viewing 15 posts - 1 through 15 (of 17 total)
  • Author
    Posts
  • #185025 quote
    ssopiak
    Participant
    Junior

    Bonjour,

    je recherche un screener permettant de retourner les titres qui ont un GAP daily non comblé avec les caractéristiques suivantes :

    • GAP ouvert depuis X jours
    • Distance entre le bas et le haut de GAP > à Y%

    J’ai cherché et essayé en vain de la coder pour le moment.

    Si quelqu’un a une idée je suis preneur, merci

    #185116 quote
    JC_Bywan
    Moderator
    Master

    Bonjour,

    à faire tourner en UT jour, modifier X et Y en début de code selon besoin

    X=20// nombre de jours, pour code tournant sur UT jour
    Y=1 // pour Y/100 pourcentage mini du gap
    
    gapH= low>high[1]
    GapB= high<low[1]
    gapY= (gapH and (low-high[1])/high[1]>Y/100) or (gapB and (low[1]-high)/low[1]>Y/100)
    
    if gapY then
     barregapY=barindex
    endif
    
    gapXY= barindex-barregapY < X
    
    SCREENER [ gapXY ]
    #185131 quote
    ssopiak
    Participant
    Junior

    Bonjour,

    merci pour cette réponse rapide. En regardant de plus près, je pense que ce screener retourne tous les GAP sur la période définie même si ils ont été comblé.

    J’ai par exemple ASML qui est retourné pour son gap entre le 05/01 et 06/01 et pourtant il a été comblé dès 07/01.

    J’ai bien essayé de faire une boucle ensuite pour vérifier si ils sont ou pas comblé mais je n’ai pas réussi.

    Qu’en pensez-vous ?

    #185133 quote
    JC_Bywan
    Moderator
    Master

    J’en pense que vous avez totalement raison, ma faute, j’ai beau être dans une journée “codage” sans trading qui aurait accaparé mon attention, je suis en fait trop porté sur la mise à jour de mon volume profile ce jour, et j’ai lu votre message beaucoup trop vite je n’ai pas fait attention au “non comblé”, mea culpa.

    Dans la même veine d’avoir lu trop vite, en relisant, je me demande si je n’ai pas fait aussi une erreur d’interprétation du “depuis X jours”, je l’ai pris comme un maximum en arrière, mais peut-être était-ce l’inverse: ne chercher que les gaps ayant un minimum d’ancienneté? (ça changerait juste le <X en >X en ligne 25).

    A tester pour voir si les comblements sont correctement détectés:

    X=20// nombre de jours, pour code tournant sur UT jour
    Y=1 // pour Y/100 pourcentage mini du gap
    
    gapH= low>high[1]
    GapB= high<low[1]
    gapY= (gapH and (low-high[1])/high[1]>Y/100) or (gapB and (low[1]-high)/low[1]>Y/100)
    
    if gapY then
     barregapY=barindex
     if gapH then
      Hnoncomb=1
      Hcombler=high[1]
     elsif gapB then
      Bnoncomb=1
      Bcombler=low[1]
     endif
    endif
    if Hnoncomb and lowest[barindex-barregapY+1](low)<=Hcombler then
     Hnoncomb=0
    endif
    if Bnoncomb and highest[barindex-barregapY+1](high)>=Bcombler then
     Bnoncomb=0
    endif
    
    gapXY= (barindex-barregapY < X) and (Hnoncomb or Bnoncomb)
    
    SCREENER [ gapXY ]
    #185134 quote
    ssopiak
    Participant
    Junior

    Merci encore pour cette réactivité 🙂

    Concernant le “depuis X jours”, votre interprétation est la bonne.

    J’ai fait un test rapide à priori, il me retourne encore des titres avec des GAP comblés (ASML), je vais essayer de comprendre pourquoi.

    #185140 quote
    JC_Bywan
    Moderator
    Master

    Ok je vois pourquoi, c’est le gap h du 21/07 non comblé sur ASML, mélangé au gap b comblé mais récent du 06/07, et en ligne 25 le tout mélangé renvoie un positif qui ne devrait pas l’être, je vais éliminer ça en disant au code d’oublier les “non comblés” plus vieux que X pour ne pas être parasité par un trop vieux Hnoncomb ou Bnoncomb qui n’est pas passé à zéro par comblement.

    #185146 quote
    JC_Bywan
    Moderator
    Master

    En séparant mieux les H et les B pour éviter l’erreur qui retournait ASML, et en espérant qu’on va pas tomber sur une nouvelle erreur (débugguer, ça s’apparente toujours au panneau des passages à niveau, “un bug peut en cacher un autre”):

    X=20// nombre de jours, pour code tournant sur UT jour
    Y=1 // pour Y/100 pourcentage mini du gap
    
    gapH= low>high[1] and (low-high[1])/high[1]>Y/100
    gapB= high<low[1] and (low[1]-high)/low[1]>Y/100
    
    if gapH then
     barregapH=barindex
     Hnoncomb=1
     Hcombler=high[1]
    elsif gapB then
     barregapB=barindex
     Bnoncomb=1
     Bcombler=low[1]
    endif
    
    if (Hnoncomb and lowest[barindex-barregapH+1](low)<=Hcombler) then
     Hnoncomb=0
    endif
    if Bnoncomb and highest[barindex-barregapB+1](high)>=Bcombler then
     Bnoncomb=0
    endif
    
    gapXY= (Hnoncomb and barindex-barregapH < X) or (Bnoncomb and barindex-barregapB < X)
    
    SCREENER [ gapXY ]
    #185155 quote
    ssopiak
    Participant
    Junior

    Bravo !

    Mes premiers tests sont concluants, je regarderai de plus près dans la semaine si il y’a d’éventuels cas particuliers non traités.

    Merci.

    #186089 quote
    Darkcandle8
    Participant
    New

    Bonjour,

    J’aimerai adapter ce screener a un indicateur graphique, par example mettre un “G” en rouge sur le graphique lorsqu’il existe un Gap baissier non comblé et un “G” en vert lorsqu’il existe un Gap haussier non comblé

    J’ai essayé mais je ne suis pas encore assez aguéri pour faire ce genre de code..

    Merci pour votre aide

    #186289 quote
    JC_Bywan
    Moderator
    Master

    Bonjour,

    Voici, même principe de régler X et Y en début de code (ou de l’externaliser comme paramètre d’entrée de l’indic ajustable dans sa fenêtre de propriétés), la position souhaitée du G n’étant pas précisée, je l’ai mis horizontalement sur la barre du gap, et verticalement sur le niveau à combler.

    X=20//100// nombre de jours, pour code tournant sur UT jour
    Y=1//0.1 // pour Y/100 pourcentage mini du gap
    
    gapH= low>high[1] and (low-high[1])/high[1]>Y/100
    gapB= high<low[1] and (low[1]-high)/low[1]>Y/100
    
    if gapH then
     barregapH=barindex
     Hnoncomb=1
     Hcombler=high[1]
    elsif gapB then
     barregapB=barindex
     Bnoncomb=1
     Bcombler=low[1]
    endif
    
    if (Hnoncomb and lowest[barindex-barregapH+1](low)<=Hcombler) then
     Hnoncomb=0
    endif
    if Bnoncomb and highest[barindex-barregapB+1](high)>=Bcombler then
     Bnoncomb=0
    endif
    
    if (Hnoncomb and barindex-barregapH < X) then
     DRAWTEXT("G", barregapH, Hcombler) coloured(0,255,0)
    endif
    if (Bnoncomb and barindex-barregapB < X) then
     DRAWTEXT("G", barregapB, Bcombler) coloured(255,0,0)
    endif
    
    return
    #207792 quote
    Dany12
    Participant
    Junior

    Bonjour,

    merci pour ce screener qui doit être très utile mais malheureusement, j’ai un message d’erreur ligne 25 et 26 :

    DRAWTEXT(“G”, barregapH, Hcombler) coloured(0,255,0)
    endif

    Pouvez avoir la gentillesse de m’aider svp ?

     

    Merci et bonne soirée

    #207799 quote
    Dany12
    Participant
    Junior

    Bonjour,

    merci pour ce screener qui doit être très utile mais malheureusement, j’ai un message d’erreur ligne 25 et 26 :

    DRAWTEXT(“G”, barregapH, Hcombler) coloured(0,255,0)
    endif

    Pouvez avoir la gentillesse de m’aider svp ?

     

    Merci et bonne soirée

    Capture-decran-2023-01-21-080535.jpg Capture-decran-2023-01-21-080535.jpg
    #207803 quote
    ssopiak
    Participant
    Junior

    Bonjour,
    dans le fil de discussion il y’a un screener et un indicateur.
    Dans votre cas, vous essayez d’utiliser le code de l’indicateur comme un screener.
    Instruction :
    SCREENER ” -> c’est un screener
    “DRAWTEXT” -> c’est un indicateur

    Bonne journée.

    JC_Bywan thanked this post
    #207804 quote
    Dany12
    Participant
    Junior

    Bonjour et merci pour ce retour rapide.

    cela ne fonctionne pas en remplaçant le texte… je ne dois pas comprendre, désolé.

    Belle journée

    Capture-decran-2023-01-21-093450.jpg Capture-decran-2023-01-21-093450.jpg
    #207806 quote
    ssopiak
    Participant
    Junior

    Pour le screener, c’est le code ci-dessous qu’il faut utiliser :

    X=20// nombre de jours, pour code tournant sur UT jour
    Y=1 // pour Y/100 pourcentage mini du gap
     
    gapH= low>high[1] and (low-high[1])/high[1]>Y/100
    gapB= high<low[1] and (low[1]-high)/low[1]>Y/100
     
    if gapH then
     barregapH=barindex
     Hnoncomb=1
     Hcombler=high[1]
    elsif gapB then
     barregapB=barindex
     Bnoncomb=1
     Bcombler=low[1]
    endif
     
    if (Hnoncomb and lowest[barindex-barregapH+1](low)<=Hcombler) then
     Hnoncomb=0
    endif
    if Bnoncomb and highest[barindex-barregapB+1](high)>=Bcombler then
     Bnoncomb=0
    endif
     
    gapXY= (Hnoncomb and barindex-barregapH < X) or (Bnoncomb and barindex-barregapB < X)
     
    SCREENER [ gapXY ]
    JC_Bywan thanked this post
Viewing 15 posts - 1 through 15 (of 17 total)
  • You must be logged in to reply to this topic.

Screener – GAP non comblé


ProScreener : Scanners de Marché & Détection

New Reply
Author
author-avatar
ssopiak @hperment Participant
Summary

This topic contains 16 replies,
has 4 voices, and was last updated by Dany12
3 years, 1 month ago.

Topic Details
Forum: ProScreener : Scanners de Marché & Détection
Language: French
Started: 01/10/2022
Status: Active
Attachments: 4 files
Logo Logo
Loading...