Il mio primo Loop

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #228217 quote
    andrea trevisan
    Participant
    Average

    Buon giorno o costruito un indicatore su rsi, sembra che funzioni però vorrei avere la conferma.

    Come prima condizione RSI deve incrociare al ribasso una media mobile[8](RSI)  in situazione di ipercomprato(sia per RSI che per la  media mobile)

    Dal momento che si è verificata questa condizione il segnale lo cerco nelle (X) candele successive, nel momento che la media mobile ha un valore minore rispetto alla media mobile sulla candela precedente, questo è il codice:

    Ho un dubbio sull’utilità del BRAKE.

    //////////variabili//////////
    Miorsi = RSI[14](close)
    Miamedia = average[8](Miorsi)
    Ipercomprato = Miorsi and Miamedia > 70
    Ipervenduto = Miorsi and Miamedia < 30
    Segnale = Miamedia < Miamedia[1]
    Segnale2 = Miamedia > Miamedia[1]
    //////////Filtro 1 Segnale Short//////////
    Filtro1 = 0
    For I = 0 to 10 do
    If Ipercomprato and Miorsi crosses under Miamedia and Segnale THEN
    Filtro1 = 1
    break
    endif
    next
    if Filtro1 THEN
    DRAWARROWDOWN(barindex,(Miamedia+5)) coloured(250,0,0)
    endif
    //////////Filtro 2 segnale Long//////////
    Filtro2 = 0
    for i = 0 to 10 DO
    if ipervenduto and Miorsi crosses over Miamedia and Segnale2 then
    DRAWARROWUP(barindex, (Miamedia-5))Coloured(0,255,0)
    endif
    break
    next
    return Miorsi coloured(0,0,250),70 coloured(250,0,0),30coloured(0,250,0),Miamedia, 50

    #228242 quote
    Iván González
    Moderator
    Master

    Salve
    Se si desidera mostrare gli incroci RSI con lo smoothing, è possibile utilizzare questo codice. Non è necessario eseguire il loop.
    Se si volesse memorizzare, ad esempio, la barra in cui si verifica, allora avrebbe senso.
    D’altra parte, il vostro codice presenta un errore nella definizione di ipercomprato e ipervenduto.
    Ecco il codice

    //////////variabili//////////
    Miorsi = RSI[10](close)
    Miamedia = average[8](Miorsi)
    Ipercomprato = Miorsi > 70 and Miamedia > 70
    Ipervenduto = Miorsi < 30 and Miamedia < 30
    Segnale = Miamedia < Miamedia[1]
    Segnale2 = Miamedia > Miamedia[1]
    //////////Filtro 1 Segnale Short//////////
    if Ipercomprato and Miorsi crosses under Miamedia and Segnale THEN
    DRAWARROWDOWN(barindex,(Miamedia+5)) coloured(250,0,0)
    endif
    //////////Filtro 2 segnale Long//////////
    if ipervenduto and Miorsi crosses over Miamedia and Segnale2 then
    DRAWARROWUP(barindex, (Miamedia-5))Coloured(0,255,0)
    endif
    
    return Miorsi coloured(0,0,250),70 coloured(250,0,0),30coloured(0,250,0),Miamedia, 50
    
    #228249 quote
    andrea trevisan
    Participant
    Average

    Scusa ma non mi sono spiegato bene, quello che stò cercando di fare non è trovare tutti i filtri nello stesso tempo, ma in due tempi diversi, cioè: prima deve verificarsi l’incrocio al ribasso dell’ RSI sulla sua mediamobile, da li il segnale mi dovrebbe apparire solo quando la media mobile e inferiore al valore della candela precedente, ovvero se avviene l’incrocio al ribasso, ma per due candele la media mobile continua a salire, non devo evere il segnale, se alla terza candela si verifica il ribasso a quel punto vorrei il segnale, ecco perchè  o pensato ad un loop.

    Un pò complicato lo ammetto, ma è per non stare a controllare sempre a vista, su due piedi mi è venuto in mente questo codice che potrebbe avere un senso.

    //////////variabili//////////
    Miorsi = RSI[14](close)
    Miamedia = average[8](Miorsi)
    Ipercomprato = Miorsi and Miamedia > 70
    Ipervenduto = Miorsi and Miamedia < 30
    Segnale = Miamedia < Miamedia[1]

    //////////Filtro 1 Segnale Short//////////
    Filtro1 = 0
    For I = 0 to 10 do
    If Ipercomprato and Miorsi crosses under Miamedia  THEN
    Filtro1 = Filtro1 + 1
    endif

    If filtro1 <= 10 and Segnale  then

    DRAWARROWDOWN(barindex,(Miamedia+5)) coloured(250,0,0)
    endif

    break

    next

    return

    #228288 quote
    Iván González
    Moderator
    Master

    Ciao
    Non ho capito.
    Ecco una proposta senza loop.

    //////////variabili//////////
    periods = 10
    Miorsi = RSI[periods](close)
    Miamedia = average[8](Miorsi)
    Ipercomprato = Miorsi > 70 and Miamedia > 70
    Ipervenduto = Miorsi < 30 and Miamedia < 30
    Segnale = Miamedia < Miamedia[1]
    Segnale2 = Miamedia > Miamedia[1]
    //////////Filtro 1 Segnale Short//////////
    ///start checking
    if Ipercomprato and Miorsi crosses under Miamedia then
    checkshort = 1
    else
    checkshort = checkshort
    endif
    ///count x bars 
    if Miorsi < Miamedia then
    x = 1 + x
    else
    x = 0
    endif
    ///setup short
    if checkshort and x>0 and x<10 and segnale then
    checkshort = 0
    drawarrowdown(barindex,Miamedia+5)coloured("red")
    endif
    //////////Filtro 2 Segnale Long//////////
    if Ipervenduto and Miorsi crosses over Miamedia then
    checklong = 1
    else
    checklong = checklong
    endif
    ///count y bars
    if Miorsi > Miamedia then
    y = 1 + y
    else
    y = 0
    endif
    ///setup long
    if checklong and y>0 and y<10 and segnale2 then
    checklong = 0
    DRAWARROWUP(barindex, Miamedia-5)Coloured("green")
    endif
    
    return Miorsi as "RSI" coloured(0,0,250),Miamedia as "Media",70 coloured(250,0,0),30coloured(0,250,0), 50
    #228386 quote
    andrea trevisan
    Participant
    Average

    Gracias

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

Il mio primo Loop


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Author
Summary

This topic contains 4 replies,
has 2 voices, and was last updated by andrea trevisan
2 years ago.

Topic Details
Forum: ProBuilder: Indicatori & Strumenti Personalizzati
Language: Italian
Started: 02/15/2024
Status: Active
Attachments: No files
Logo Logo
Loading...