proscreener da un indicatore

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

    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
    robertogozzirobertogozzi
    Moderator
    Legend

    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 FrancoCiccarelli Franco
    Participant
    Senior

    Esattamente

    Grazie

    #221663 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    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 FrancoCiccarelli Franco
    Participant
    Senior

    GRAZIE sempre gentile, ma io veramente volevo un vaglio.

    #221728 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    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.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

proscreener da un indicatore


ProScreener: Scansione Mercati & Screener

New Reply
Summary

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

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