proscreener da un indicatore

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #221576 quote
    Ciccarelli Franco
    Participant
    Junior

    Roberto buona sera,

    altre volte ti ho chiesto di trasformare un indicatore in screener e tu gentilmente lo hai fatto, adesso é la volta di un indicatore che trovo molto interessante, ma i suoi segnali li vedo in ritardo. Ti ringrazio anticipatamente se mi converti anche questo (allego indicatore).

     

    //—Initialisation

    once idx0 = 0
    once idx1 = 0
    once idx2 = 0
    once pos = 0

    ATR = AverageTrueRange[prd](typicalprice)

    IF barindex >= 2*prd+1 then

    If high[prd] >= highest[2*prd+1](high) and pos<=0 then

    If idx1 <> 0 then
    idx2 = idx1
    Endif

    If idx0 <> 0 then
    idx1 = idx0
    Endif

    idx0 = barindex[prd]
    pos=1

    If idx2<>0 then

    If showPvts then
    If High[barindex-idx0]>=High[barindex-idx2] then
    DRAWTEXT(“HH”,idx0,High[barindex-idx0]+ATR/2,Dialog,Bold,20) coloured(200,0,0,255)
    else
    DRAWTEXT(“LH”,idx0,High[barindex-idx0]+ATR/2,Dialog,Bold,20) coloured(200,0,0,255)
    Endif
    Endif

    Endif
    Endif

    If Low[prd] <= Lowest[2*prd+1](low) and pos>=0 then

    If idx1 <> 0 then
    idx2 = idx1
    Endif

    If idx0 <> 0 then
    idx1 = idx0
    Endif

    idx0 = barindex[prd]
    pos=-1

    If idx2<>0 then

    If showPvts then
    If Low[barindex-idx0]>=Low[barindex-idx2] then
    DRAWTEXT(“HL”,idx0,Low[barindex-idx0]-ATR/2,Dialog,Bold,20) coloured(0,200,0,255)
    else
    DRAWTEXT(“LL”,idx0,Low[barindex-idx0]-ATR/2,Dialog,Bold,20) coloured(0,200,0,255)
    Endif
    Endif

    Endif
    Endif

    If idx2<>0 then
    If pos=1 and High[barindex-idx0]>Low[barindex-idx1] and High[barindex-idx0]<High[barindex-idx2] and (Close<Low[barindex-idx1] and open>Low[barindex-idx1]) then

    If showPattern then
    DRAWTEXT(“1”,idx2,High[idx2]+ATR[Barindex-Idx2]/2,Dialog,Bold,20) coloured(“BLUE”,255)
    DRAWTEXT(“2”,idx1,Low[barindex-idx1]-ATR[Barindex-Idx1]/2,Dialog,Bold,20) coloured(“BLUE”,255)
    DRAWTEXT(“3”,idx0,High[barindex-idx0]+ATR[Barindex-Idx0]/2,Dialog,Bold,20) coloured(“BLUE”,255)
    DRAWSEGMENT(idx2,High[barindex-idx2],idx1,Low[barindex-idx1]) STYLE(Line,3) coloured(“BLUE”,255)
    DRAWSEGMENT(idx1,Low[barindex-idx1],idx0,High[barindex-idx0]) STYLE(Line,3) coloured(“BLUE”,255)
    Endif

    If showBreak then
    DRAWSEGMENT(idx1,Low[barindex-idx1],barindex+1,Low[barindex-idx1]) STYLE(DOTTEDLINE2,2) coloured(“BLUE”,255)
    DRAWARROWDOWN(barindex,High+ATR/2) coloured(“RED”,255)
    Endif

    Endif

    If pos=-1 and Low[barindex-idx0]<High[barindex-idx1] and Low[barindex-idx0]>Low[barindex-idx2] and (Close>High[barindex-idx1] and open<High[barindex-idx1]) then

    If showPattern then
    DRAWTEXT(“1”,idx2,Low[barindex-idx2]-ATR[Barindex-Idx2]/2,Dialog,Bold,20) coloured(“BLUE”,255)
    DRAWTEXT(“2”,idx1,High[barindex-idx1]+ATR[Barindex-Idx1]/2,Dialog,Bold,20) coloured(“BLUE”,255)
    DRAWTEXT(“3”,idx0,Low[barindex-idx0]-ATR[Barindex-Idx0]/2,Dialog,Bold,20) coloured(“BLUE”,255)
    DRAWSEGMENT(idx2,Low[barindex-idx2],idx1,High[barindex-idx1]) STYLE(Line,3) coloured(“BLUE”,255)
    DRAWSEGMENT(idx1,High[barindex-idx1],idx0,Low[barindex-idx0]) STYLE(Line,3) coloured(“BLUE”,255)
    Endif

    If showBreak then
    DRAWSEGMENT(idx1,High[barindex-idx1],barindex+1,High[barindex-idx1]) STYLE(DOTTEDLINE2,2) coloured(“BLUE”,255)
    DRAWARROWUP(barindex,Low-ATR/2) coloured(“GREEN”,255)
    Endif

    Endif
    Endif
    Endif

    Return

    #221577 quote
    robertogozzi
    Moderator
    Master

    Ad un’occhiata veloce mi sembra si di tipo repainting, cioè va a piazzare il segnale su una candela precedente quando ne ha avuta la conferma, tipo lo ZIGZAG e il DPO. Verificherò meglio.

    Però ho bisogno di sapere qual’è il segnale che ti deve dare, quando vengono viualizzate le frecce Rosse o Verdi?

    #221579 quote
    Ciccarelli Franco
    Participant
    Junior

    Esattamente

    Grazie

    #221663 quote
    robertogozzi
    Moderator
    Master

    Eccolo (con le impostazioni puoi visualizzare il segnale come istogramma e selezionare i colori e lo spessore):

    //https://www.prorealcode.com/topic/proscreener-da-un-indicatore/
    
    once prd         = 14
    once showPvts    = 1
    once showPattern = 1
    once showBreak   = 1
    
    //—Initialisation
    
    once idx0 = 0
    once idx1 = 0
    once idx2 = 0
    once pos = 0
    
    ATR = AverageTrueRange[prd](typicalprice)
    
    Segnale = 0
    
    IF barindex >= 2*prd+1 then
    
    If high[prd] >= highest[2*prd+1](high) and pos<=0 then
    
    If idx1 <> 0 then
    idx2 = idx1
    Endif
    
    If idx0 <> 0 then
    idx1 = idx0
    Endif
    
    idx0 = barindex[prd]
    pos=1
    
    If idx2<>0 then
    
    If showPvts then
    If High[barindex-idx0]>=High[barindex-idx2] then
    //DRAWTEXT("HH",idx0,High[barindex-idx0]+ATR/2,Dialog,Bold,20) coloured(200,0,0,255)
    else
    //DRAWTEXT("LH",idx0,High[barindex-idx0]+ATR/2,Dialog,Bold,20) coloured(200,0,0,255)
    Endif
    Endif
    
    Endif
    Endif
    
    If Low[prd] <= Lowest[2*prd+1](low) and pos>=0 then
    
    If idx1 <> 0 then
    idx2 = idx1
    Endif
    
    If idx0 <> 0 then
    idx1 = idx0
    Endif
    
    idx0 = barindex[prd]
    pos=-1
    
    If idx2<>0 then
    
    If showPvts then
    If Low[barindex-idx0]>=Low[barindex-idx2] then
    //DRAWTEXT("HL",idx0,Low[barindex-idx0]-ATR/2,Dialog,Bold,20) coloured(0,200,0,255)
    else
    //DRAWTEXT("LL",idx0,Low[barindex-idx0]-ATR/2,Dialog,Bold,20) coloured(0,200,0,255)
    Endif
    Endif
    
    Endif
    Endif
    
    If idx2<>0 then
    If pos=1 and High[barindex-idx0]>Low[barindex-idx1] and High[barindex-idx0]<High[barindex-idx2] and (Close<Low[barindex-idx1] and open>Low[barindex-idx1]) then
    
    If showPattern then
    //DRAWTEXT("1",idx2,High[idx2]+ATR[Barindex-Idx2]/2,Dialog,Bold,20) coloured("BLUE",255)
    //DRAWTEXT("2",idx1,Low[barindex-idx1]-ATR[Barindex-Idx1]/2,Dialog,Bold,20) coloured("BLUE",255)
    //DRAWTEXT("3",idx0,High[barindex-idx0]+ATR[Barindex-Idx0]/2,Dialog,Bold,20) coloured("BLUE",255)
    //DRAWSEGMENT(idx2,High[barindex-idx2],idx1,Low[barindex-idx1]) STYLE(Line,3) coloured("BLUE",255)
    //DRAWSEGMENT(idx1,Low[barindex-idx1],idx0,High[barindex-idx0]) STYLE(Line,3) coloured("BLUE",255)
    Endif
    
    If showBreak then
    //DRAWSEGMENT(idx1,Low[barindex-idx1],barindex+1,Low[barindex-idx1]) STYLE(DOTTEDLINE2,2) coloured("BLUE",255)
    //DRAWARROWDOWN(barindex,High+ATR/2) coloured("RED",255)
    Segnale = -1
    Endif
    
    Endif
    
    If pos=-1 and Low[barindex-idx0]<High[barindex-idx1] and Low[barindex-idx0]>Low[barindex-idx2] and (Close>High[barindex-idx1] and open<High[barindex-idx1]) then
    
    If showPattern then
    //DRAWTEXT("1",idx2,Low[barindex-idx2]-ATR[Barindex-Idx2]/2,Dialog,Bold,20) coloured("BLUE",255)
    //DRAWTEXT("2",idx1,High[barindex-idx1]+ATR[Barindex-Idx1]/2,Dialog,Bold,20) coloured("BLUE",255)
    //DRAWTEXT("3",idx0,Low[barindex-idx0]-ATR[Barindex-Idx0]/2,Dialog,Bold,20) coloured("BLUE",255)
    //DRAWSEGMENT(idx2,Low[barindex-idx2],idx1,High[barindex-idx1]) STYLE(Line,3) coloured("BLUE",255)
    //DRAWSEGMENT(idx1,High[barindex-idx1],idx0,Low[barindex-idx0]) STYLE(Line,3) coloured("BLUE",255)
    Endif
    
    If showBreak then
    //DRAWSEGMENT(idx1,High[barindex-idx1],barindex+1,High[barindex-idx1]) STYLE(DOTTEDLINE2,2) coloured("BLUE",255)
    DRAWARROWUP(barindex,Low-ATR/2) coloured("GREEN",255)
    Segnale = 1
    Endif
    
    Endif
    Endif
    Endif
    
    Return Segnale AS "Segnale"
    Il-Mio-Indicatore7.itf
    #221723 quote
    Ciccarelli Franco
    Participant
    Junior

    GRAZIE sempre gentile, ma io veramente volevo un vaglio.

    #221728 quote
    robertogozzi
    Moderator
    Master

    Scusami, avevo modificato l’indicatore per vedere come appariva con le sole frecce e ho poi dimenticato di convertirlo.

    Eccolo:

    //https://www.prorealcode.com/topic/proscreener-da-un-indicatore/
    
    once prd         = 14
    once showPvts    = 1
    once showPattern = 1
    once showBreak   = 1
    
    //—Initialisation
    
    once idx0 = 0
    once idx1 = 0
    once idx2 = 0
    once pos = 0
    
    //ATR = AverageTrueRange[prd](typicalprice)
    
    Segnale = 0
    
    IF barindex >= 2*prd+1 then
    
    If high[prd] >= highest[2*prd+1](high) and pos<=0 then
    
    If idx1 <> 0 then
    idx2 = idx1
    Endif
    
    If idx0 <> 0 then
    idx1 = idx0
    Endif
    
    idx0 = barindex[prd]
    pos=1
    
    If idx2<>0 then
    
    If showPvts then
    If High[barindex-idx0]>=High[barindex-idx2] then
    //DRAWTEXT("HH",idx0,High[barindex-idx0]+ATR/2,Dialog,Bold,20) coloured(200,0,0,255)
    else
    //DRAWTEXT("LH",idx0,High[barindex-idx0]+ATR/2,Dialog,Bold,20) coloured(200,0,0,255)
    Endif
    Endif
    
    Endif
    Endif
    
    If Low[prd] <= Lowest[2*prd+1](low) and pos>=0 then
    
    If idx1 <> 0 then
    idx2 = idx1
    Endif
    
    If idx0 <> 0 then
    idx1 = idx0
    Endif
    
    idx0 = barindex[prd]
    pos=-1
    
    If idx2<>0 then
    
    If showPvts then
    If Low[barindex-idx0]>=Low[barindex-idx2] then
    //DRAWTEXT("HL",idx0,Low[barindex-idx0]-ATR/2,Dialog,Bold,20) coloured(0,200,0,255)
    else
    //DRAWTEXT("LL",idx0,Low[barindex-idx0]-ATR/2,Dialog,Bold,20) coloured(0,200,0,255)
    Endif
    Endif
    
    Endif
    Endif
    
    If idx2<>0 then
    If pos=1 and High[barindex-idx0]>Low[barindex-idx1] and High[barindex-idx0]<High[barindex-idx2] and (Close<Low[barindex-idx1] and open>Low[barindex-idx1]) then
    
    If showPattern then
    //DRAWTEXT("1",idx2,High[idx2]+ATR[Barindex-Idx2]/2,Dialog,Bold,20) coloured("BLUE",255)
    //DRAWTEXT("2",idx1,Low[barindex-idx1]-ATR[Barindex-Idx1]/2,Dialog,Bold,20) coloured("BLUE",255)
    //DRAWTEXT("3",idx0,High[barindex-idx0]+ATR[Barindex-Idx0]/2,Dialog,Bold,20) coloured("BLUE",255)
    //DRAWSEGMENT(idx2,High[barindex-idx2],idx1,Low[barindex-idx1]) STYLE(Line,3) coloured("BLUE",255)
    //DRAWSEGMENT(idx1,Low[barindex-idx1],idx0,High[barindex-idx0]) STYLE(Line,3) coloured("BLUE",255)
    Endif
    
    If showBreak then
    //DRAWSEGMENT(idx1,Low[barindex-idx1],barindex+1,Low[barindex-idx1]) STYLE(DOTTEDLINE2,2) coloured("BLUE",255)
    //DRAWARROWDOWN(barindex,High+ATR/2) coloured("RED",255)
    Segnale = 2
    Endif
    
    Endif
    
    If pos=-1 and Low[barindex-idx0]<High[barindex-idx1] and Low[barindex-idx0]>Low[barindex-idx2] and (Close>High[barindex-idx1] and open<High[barindex-idx1]) then
    
    If showPattern then
    //DRAWTEXT("1",idx2,Low[barindex-idx2]-ATR[Barindex-Idx2]/2,Dialog,Bold,20) coloured("BLUE",255)
    //DRAWTEXT("2",idx1,High[barindex-idx1]+ATR[Barindex-Idx1]/2,Dialog,Bold,20) coloured("BLUE",255)
    //DRAWTEXT("3",idx0,Low[barindex-idx0]-ATR[Barindex-Idx0]/2,Dialog,Bold,20) coloured("BLUE",255)
    //DRAWSEGMENT(idx2,Low[barindex-idx2],idx1,High[barindex-idx1]) STYLE(Line,3) coloured("BLUE",255)
    //DRAWSEGMENT(idx1,High[barindex-idx1],idx0,Low[barindex-idx0]) STYLE(Line,3) coloured("BLUE",255)
    Endif
    
    If showBreak then
    //DRAWSEGMENT(idx1,High[barindex-idx1],barindex+1,High[barindex-idx1]) STYLE(DOTTEDLINE2,2) coloured("BLUE",255)
    //DRAWARROWUP(barindex,Low-ATR/2) coloured("GREEN",255)
    Segnale = 1
    Endif
    
    Endif
    Endif
    Endif
    
    SCREENER[Segnale](Segnale AS "1=↑, 2=↓")
Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.

proscreener da un indicatore


ProScreener: Scansione Mercati & Screener

New Reply
Summary

This topic contains 5 replies,
has 2 voices, and was last updated by robertogozzi
2 years, 5 months ago.

Topic Details
Forum: ProScreener: Scansione Mercati & Screener
Language: Italian
Started: 09/25/2023
Status: Active
Attachments: 1 files
Logo Logo
Loading...