Tracciare linea in automatico

Viewing 15 posts - 1 through 15 (of 18 total)
  • Author
    Posts
  • #201575 quote
    Edisone
    Participant
    Average

    Buongiorno, è possibile tracciare una linea con queste condizioni :

    esempio in un TF 30 quando il prezzo supera il massimo o il minimo del giorno precedente traccia una linea che parte dall’open odierno al massimo o minimo in quel dato momento, se poi il prezzo rintraccia la linea termina come da file allegato.

    Grazie

    capture_001_28092022_162347.jpg capture_001_28092022_162347.jpg
    #201690 quote
    Nicolas
    Keymaster
    Master

    Penso di aver compreso correttamente la tua domanda, in modo che ogni volta che l'attuale massimo giornaliero o minimo giornaliero supera i valori del giorno precedente, le linee vengono tracciate e adattate all'attuale massimo/minimo giornaliero. Ecco il codice che ho creato:

    defparam drawonlastbaronly=true 
    
    if intradaybarindex=0 then 
    startbar=barindex
    endif 
    
    if islastbarupdate then 
    if dhigh(0)>dhigh(1) then 
    drawray(startbar,dhigh(0),barindex,dhigh(0)) coloured("blue")
    endif
    if dlow(0)<dlow(1) then
    drawray(startbar,dlow(0),barindex,dlow(0)) coloured("red")
    endif
    endif
    
    return 
    
    
    robertogozzi and Edisone thanked this post
    #201897 quote
    Edisone
    Participant
    Average

    Grazie ma non è quello che cerco.

    Avrei bisogno che l’indicatore tracci una linea obliqua come nel  grafico allegato con le seguenti condizioni:

    1) in un TF intraday la linea (obliqua) viene tracciata/generata solo se si viene superato il massimo/minimo del giorno precedente

    2) la linea ha origne (in caso di future) dall’open quindi dalle ore 0,00

    3) la linea termina sul attuale massimo/minimo intraday (vedi esempio nel grafico allegato, il prezzo raggiunge il minimo attuale intraday quindi quando il prezzo ritraccia la linea termina)

    Ti ringrazio

    Ciao

    #201900 quote
    robertogozzi
    Moderator
    Master

    Quindi tu vuoi considerare il giorno dalle 00:00 alle 24:00?

    #201905 quote
    Edisone
    Participant
    Average

    si

    #201958 quote
    robertogozzi
    Moderator
    Master

    Eccolo:

    DEFPARAM DrawOnLastBarOnly = True
    ONCE HH      = 0
    ONCE LL      = 0
    ONCE HHprec  = 0
    ONCE LLprec  = 0
    ONCE Rottura = 0
    ONCE Fine    = 0
    ONCE HHtemp  = 0
    ONCE LLtemp  = 0
    IF (OpenTime = 000000) OR (OpenTime < OpenTime[1]) THEN
       HHprec   = HH
       LLprec   = LL
       HH       = high
       LL       = low
       Barra    = BarIndex
       Rottura  = 0
       Fine     = 0
       HHtemp   = 0
       LLtemp   = 0
    ENDIF
    HH = max(HH,high)
    LL = min(LL,low)
    DrawSegment(Barra,HHprec,BarIndex,HHprec) coloured(0,128,0,155) style(Line,2)   //Verde
    DrawSegment(Barra,LLprec,BarIndex,LLprec) coloured(0,0,255,255) style(Line,2)   //Blù
    IF (HH CROSSES OVER HHprec) OR (HH CROSSES OVER HHtemp) THEN
       Rottura = 1
       Fine    = BarIndex
       HHtemp  = HH
    ENDIF
    IF (LL CROSSES UNDER LLprec) OR (LL CROSSES UNDER LLtemp) THEN
       Rottura = 1
       Fine    = BarIndex
       LLtemp  = LL
    ENDIF
    IF Rottura THEN
       DrawSegment(Barra,HHprec,Fine,LLprec) coloured(255,0,0,255) style(Line,2)    //Rosso
    ENDIF
    RETURN
    Edisone thanked this post
    Il-Mio-Indicatore4.itf x-2.jpg x-2.jpg
    #202044 quote
    Edisone
    Participant
    Average

    Scusami ma non è quello che cerco, ti allego una foto di come dovrebbe essere.

    Grazie

    capture_004_07102022_092443.jpg capture_004_07102022_092443.jpg
    #202069 quote
    robertogozzi
    Moderator
    Master

    Spiegami a parole.

    #202079 quote
    Edisone
    Participant
    Average

    in un TF 30 di un future USA dopo l’apertura ore 00,00 quando il prezzo nell’arco della giornata supera il massimo o il minimo del giorno precedente traccia una linea che parte dall’open della candela 00,00 odierno al massimo o minimo intraday in quel dato momento, se poi il prezzo rintraccia la linea termina.

    ricapitolando le condizioni sono:

    1) in un TF intraday la linea (obliqua) viene tracciata/generata solo se si viene superato il massimo/minimo del giorno precedente

    2) la linea ha origne (in caso di future) dall’open della prima candela quindi dalle ore 00.00

    3) la linea termina sul attuale massimo/minimo intraday (vedi esempio nel grafico allegato, il prezzo raggiunge il minimo attuale intraday quindi quando il prezzo ritraccia la linea termina)

    #202086 quote
    robertogozzi
    Moderator
    Master

    Eccolo modificato:

    DEFPARAM DrawOnLastBarOnly = True
    ONCE HH      = 0
    ONCE LL      = 0
    ONCE HHprec  = 0
    ONCE LLprec  = 0
    ONCE Rottura = 0
    //IF BarIndex <= 999999 THEN
    IF (OpenTime = 000000) OR (OpenTime < OpenTime[1]) THEN
    HHprec   = HH
    LLprec   = LL
    HH       = high
    LL       = low
    Barra    = BarIndex
    Rottura  = 0
    Apertura = open
    IF HH > HHprec THEN
    Rottura = 1
    Prezzo  = high
    Fine    = BarIndex
    ENDIF
    IF LL < LLprec THEN
    Rottura = 2
    Prezzo  = high
    Fine    = BarIndex
    ENDIF
    ENDIF
    HH = max(HH,high)
    LL = min(LL,low)
    IF (HH CROSSES OVER HHprec) AND (Rottura <> 1) THEN
    Rottura = 1
    Prezzo  = high
    Fine    = BarIndex
    ELSIF (LL CROSSES UNDER LLprec) AND (Rottura <> 2) THEN
    Rottura = 2
    Prezzo  = low
    Fine    = BarIndex
    ENDIF
    IF Rottura = 1 THEN
    IF high > Prezzo THEN
    Prezzo = high
    Fine   = BarIndex
    ENDIF
    ELSIF Rottura = 2 THEN
    IF low < Prezzo THEN
    Prezzo = low
    Fine   = BarIndex
    ENDIF
    ENDIF
    //ENDIF
    DrawSegment(Barra,HHprec,BarIndex,HHprec) coloured(0,128,0,155) style(Line,2)   //Verde
    DrawSegment(Barra,LLprec,BarIndex,LLprec) coloured(0,0,255,255) style(Line,2)   //Blù
    IF Rottura THEN
    DrawSegment(Barra,Apertura,Fine,Prezzo) coloured(255,0,0,255) style(Line,2)    //Rosso
    ENDIF
    RETURN

    Le linee 7 e 49 le ho commentate, ma le ho lasciate per il debugging, in modo da fermarsi ad una barra specifica e poi mandarlo avanti volta per volta.

    Quando capita che la prima candela della giornata faccia anche un nuovo Minimo o Massimo rispetto al giorno precedente, verrà stampata una barra sopra/sotto alla barra stessa.

    Edisone thanked this post
    Il-Mio-Indicatore.itf
    #202323 quote
    Edisone
    Participant
    Average

    Grazie mille, se possibile avrei necessità di aggiungere una nuova linea che si genera solo quando il prezzo supera il massimo/minimo intraday con origine dove è terminata la prima linea, ad esempio la prima linea si è generata quando il prezzo ha superato il minimo daily di ieri, succesivamente nell’arco della giornata il prezzo supera il massimo intraday quindi viene generata la seconda linea. Allego file con esempio.
    Grazie grazie.

    capture_002_11102022_182301.jpg capture_002_11102022_182301.jpg
    #202342 quote
    robertogozzi
    Moderator
    Master

    Quindi se non è stata attivata la prima linea,  la seconda NON deve essere stampata, anche se il Massimo/Minimom intraday viene superato?

    #202395 quote
    Edisone
    Participant
    Average

    Esatto, la seconda linea si attiva, se ci sonono le condizioni, solo dopo la prima

    #202429 quote
    robertogozzi
    Moderator
    Master

    Eccolo (la linea è celeste):

    DEFPARAM DrawOnLastBarOnly = True
    ONCE HH      = 0
    ONCE LL      = 0
    ONCE HHprec  = 0
    ONCE LLprec  = 0
    ONCE Rottura = 0
    ONCE Rottura2= 0
    IF BarIndex <= 585000 THEN
    IF (OpenTime = 000000) OR (OpenTime < OpenTime[1]) THEN
    HHprec   = HH
    LLprec   = LL
    HH       = high
    LL       = low
    Barra    = BarIndex
    Rottura  = 0
    Rottura2 = 0
    Apertura = open
    IF HH > HHprec THEN
    Rottura = 1
    Prezzo  = high
    Fine    = BarIndex
    ENDIF
    IF LL < LLprec THEN
    Rottura = 2
    Prezzo  = high
    Fine    = BarIndex
    ENDIF
    ENDIF
    //
    IF (Rottura > 0) AND (Rottura2 = 0) THEN
    IF close > HH THEN
    Rottura2 = 1
    ELSIF close < LL THEN
    Rottura2 = 2
    ENDIF
    ENDIF
    //
    HH = max(HH,high)
    LL = min(LL,low)
    IF (HH CROSSES OVER HHprec) AND (Rottura <> 1) THEN
    Rottura = 1
    Prezzo  = high
    Fine    = BarIndex
    ELSIF (LL CROSSES UNDER LLprec) AND (Rottura <> 2) THEN
    Rottura = 2
    Prezzo  = low
    Fine    = BarIndex
    ENDIF
    IF Rottura = 1 THEN
    IF high > Prezzo THEN
    Prezzo = high
    Fine   = BarIndex
    ENDIF
    ELSIF Rottura = 2 THEN
    IF low < Prezzo THEN
    Prezzo = low
    Fine   = BarIndex
    ENDIF
    ENDIF
    ENDIF
    DrawSegment(Barra,HHprec,BarIndex,HHprec) coloured(0,128,0,155) style(Line,2)      //Verde
    DrawSegment(Barra,LLprec,BarIndex,LLprec) coloured(0,0,255,255) style(Line,2)      //Blù
    IF Rottura > 0 THEN
    DrawSegment(Barra,Apertura,Fine,Prezzo) coloured(255,0,0,255) style(Line,2)     //Rosso
    IF Rottura2 = 1 THEN
    DrawSegment(Fine,Prezzo,BarIndex,HH) coloured(135,206,255,255) style(Line,2) //Celeste
    ELSIF Rottura2 = 2 THEN
    DrawSegment(Fine,Prezzo,BarIndex,LL) coloured(135,206,255,255) style(Line,2) //Celeste
    ENDIF
    ENDIF
    RETURN
    Edisone thanked this post
    #202626 quote
    Edisone
    Participant
    Average

    Grazie Roberto, è corretto alla linea 25  Prezzo  = high  ??

    Provando il codice mi sono accorto di un errore, allego immagine, la retta disegnata non è corretta prima doveva disegnare la retta 1 (in quanto ha preso prima il massimo) e poi la retta 2 perché ha preso anche il minimo ma successivamente.

    capture_001_16102022_184221.jpg capture_001_16102022_184221.jpg
Viewing 15 posts - 1 through 15 (of 18 total)
  • You must be logged in to reply to this topic.

Tracciare linea in automatico


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Author
author-avatar
Edisone @edisone Participant
Summary

This topic contains 17 replies,
has 3 voices, and was last updated by robertogozzi
3 years, 4 months ago.

Topic Details
Forum: ProBuilder: Indicatori & Strumenti Personalizzati
Language: Italian
Started: 09/28/2022
Status: Active
Attachments: 16 files
Logo Logo
Loading...