massimi e minimi

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

    ” non gira sotto versione 10.2 – non riconosce drawonlastbaronly” è semplicemente una serie di massimi e minimi da tracciare sul grafico” uso prorealtime e t3 webank – sulla prima è perfetto sulla seconda non funzione. Mi serve averla sulle due piatte e gira solo sulla prima” vi condivido il mio listato di due anni fà con la speranza che qualcuno sappia rattopparlo. Grazie “

     

    defparam drawonlastbaronly = true
    hk = highest[500](high)
    lk = lowest[500](low)
    hh = highest[250](high)
    lH = lowest[250](low)
    hs = highest[125](high)
    ls = lowest[125](low)
    hm = highest[22](high)
    lm = lowest[22](low)
    hw = highest[10](high)
    lw = lowest[10](low)

    DRAWHLINE(dhigh(0))coloured(0,255,0)
    DRAWHLINE(dhigh(1))coloured(0,255,0)
    DRAWHLINE(dhigh(2))coloured(0,255,0)
    DRAWHLINE(dhigh(3))coloured(0,255,0)
    DRAWHLINE(dhigh(4))coloured(0,255,0)
    DRAWHLINE(dhigh(5))coloured(0,255,0)

    DRAWHLINE(dlow(0))coloured(255,0,0)
    DRAWHLINE(dlow(1))coloured(255,0,0)
    DRAWHLINE(dlow(2))coloured(255,0,0)
    DRAWHLINE(dlow(3))coloured(255,0,0)
    DRAWHLINE(dlow(4))coloured(255,0,0)
    DRAWHLINE(dlow(5))coloured(255,0,0)

    DRAWHLINE(hk)coloured(0,0,0)
    DRAWHLINE(lk)coloured(0,0,0)
    DRAWHLINE(hh)coloured(0,0,0)
    DRAWHLINE(lH)coloured(0,0,0)
    DRAWHLINE(hs)coloured(0,0,0)
    DRAWHLINE(ls)coloured(0,0,0)
    DRAWHLINE(hm)coloured(0,0,0)
    DRAWHLINE(lm)coloured(0,0,0)
    DRAWHLINE(hw)coloured(0,0,0)
    DRAWHLINE(lw)coloured(0,0,0)
    Voffset = 5*pipsize
    DRAWTEXT(“MAX DUE ANNI”,barindex-60,hk+Voffset,SansSerif,Bold,16)coloured(153,153,0)
    DRAWTEXT(“MIN DUE ANNI”,barindex-60,Lk+Voffset,SansSerif,Bold,16)coloured(255,0,0)
    DRAWTEXT(“MAX ULTIMO ANNO”,barindex-40,hH+Voffset,SansSerif,Bold,16)coloured(153,153,0)
    DRAWTEXT(“MIN ULTIMO ANNO”,barindex-40,LH+Voffset,SansSerif,Bold,16)coloured(255,0,0)
    DRAWTEXT(“MAX SEMESTRE”,barindex-28,hS+Voffset,SansSerif,Bold,16)coloured(153,153,0)
    DRAWTEXT(“MIN SEMESTRE”,barindex-28,LS+Voffset,SansSerif,Bold,16)coloured(255,0,0)
    DRAWTEXT(“MAX MENSILE”,barindex-15,hM+Voffset,SansSerif,Bold,16)coloured(153,153,0)
    DRAWTEXT(“MIN MENSILE”,barindex-15,LM+Voffset,SansSerif,Bold,16)coloured(255,0,0)
    DRAWTEXT(“MAX SETTIMANALE”,barindex,hW+Voffset,SansSerif,Bold,16)coloured(153,153,0)
    DRAWTEXT(“MIN SETTIMANALE”,barindex,LW+Voffset,SansSerif,Bold,16)coloured(255,0,0)

    DRAWTEXT(“MAX oggi”,barindex-0,dhigh(0)+Voffset,SansSerif,Bold,10)coloured(153,153,0)
    DRAWTEXT(“MAX ieri”,barindex-1,dhigh(1)+Voffset,SansSerif,Bold,10)coloured(153,153,0)
    DRAWTEXT(“MAX ieri-2”,barindex-2,dhigh(2)+Voffset,SansSerif,Bold,10)coloured(153,153,0)
    DRAWTEXT(“MAX ieri-3”,barindex-3,dhigh(3)+Voffset,SansSerif,Bold,10)coloured(153,153,0)
    DRAWTEXT(“MAX ieri-4”,barindex-4,dhigh(4)+Voffset,SansSerif,Bold,10)coloured(153,153,0)
    DRAWTEXT(“MAX ieri-5”,barindex-5,dhigh(5)+Voffset,SansSerif,Bold,10)coloured(153,153,0)
    DRAWTEXT(“MIN oggi”,barindex-0,dlow(0)+Voffset,SansSerif,Bold,10)coloured(255,0,0)
    DRAWTEXT(“MIN ieri”,barindex-1,dlow(1)+Voffset,SansSerif,Bold,10)coloured(255,0,0)
    DRAWTEXT(“MIN ieri-2”,barindex-2,dlow(2)+Voffset,SansSerif,Bold,10)coloured(255,0,0)
    DRAWTEXT(“MIN ieri-3”,barindex-3,dlow(3)+Voffset,SansSerif,Bold,10)coloured(255,0,0)
    DRAWTEXT(“MIN ieri-4”,barindex-4,dlow(4)+Voffset,SansSerif,Bold,10)coloured(255,0,0)
    DRAWTEXT(“MIN ieri-5”,barindex-5,dlow(5)+Voffset,SansSerif,Bold,10)coloured(255,0,0)

    period = 500

    Yhh = highest[period](high)
    Yll = lowest[period](low)

    FOR i = 0 to period do
    if high[i] = Yhh then
    Xhh = barindex[i]
    endif
    if low[i] = Yll then
    Xll = barindex[i]
    endif
    NEXT

    DRAWVLINE(Xhh)coloured(0,200,0)
    DRAWVLINE(Xll)coloured(200,0,0)
    period = 250

    Yhh = highest[period](high)
    Yll = lowest[period](low)

    FOR i = 0 to period do
    if high[i] = Yhh then
    Xhh = barindex[i]
    endif
    if low[i] = Yll then
    Xll = barindex[i]
    endif
    NEXT

    period = 125

    Yhh = highest[period](high)
    Yll = lowest[period](low)

    FOR i = 0 to period do
    if high[i] = Yhh then
    Xhh = barindex[i]
    endif
    if low[i] = Yll then
    Xll = barindex[i]
    endif
    NEXT

    period = 22

    Yhh = highest[period](high)
    Yll = lowest[period](low)

    FOR i = 0 to period do
    if high[i] = Yhh then
    Xhh = barindex[i]
    endif
    if low[i] = Yll then
    Xll = barindex[i]
    endif
    NEXT

    period = 10

    Yhh = highest[period](high)
    Yll = lowest[period](low)

    FOR i = 0 to period do
    if high[i] = Yhh then
    Xhh = barindex[i]
    endif
    if low[i] = Yll then
    Xll = barindex[i]
    endif
    NEXT

    DRAWVLINE(Xhh)coloured(0,200,0)
    DRAWVLINE(Xll)coloured(200,0,0)
    DRAWVLINE(Xhh)coloured(0,200,0)
    DRAWVLINE(Xll)coloured(200,0,0)
    DRAWVLINE(Xhh)coloured(0,200,0)
    DRAWVLINE(Xll)coloured(200,0,0)
    DRAWVLINE(Xhh)coloured(0,200,0)
    DRAWVLINE(Xll)coloured(200,0,0)
    RETURN

    #179309 quote
    robertogozzi
    Moderator
    Master

    Due sono le possibilità:

    • togliere la prima riga (defparam drawonlastbaronly = true)
    • riscrivere l’indicatore limitandolo alle sole ultime righe, mediante una serie di IF (ma occorrerebbe verificare esattamente cosa deve fare l’indicatore).
    #179319 quote
    poldoposta
    Participant
    Junior

    dovrebbe semplicemente tracciare i max e min ——————–daily – weekly – montly

    poi il resto lo ho allungato io aggiungendo i/ x day/ x weeks /x months e alche semestri e anni (ma la logica e sempre quella)

    ————————————————————————————————————————

    bastano anche solo i max e min ——————–daily – weekly – montly

    se puoi giusto qualche riga di esempio, ho il cervello atrofizzato dopo due anni. GRAZIE MILLE

    #179603 quote
    robertogozzi
    Moderator
    Master

    Eccolo (Min+Max Giornalieri, Settimanali e Mensili):

    ONCE MaxDoggi = high
    ONCE MinDoggi = low
    ONCE MaxWoggi = high
    ONCE MinWOggi = low
    ONCE MaxMoggi = high
    ONCE MinMOggi = low
    ONCE MaxDieri = high
    ONCE MinDieri = low
    ONCE MaxWieri = high
    ONCE MinWieri = low
    ONCE MaxMieri = high
    ONCE MinMieri = low
    // aggiornamento mensile
    IF OpenMonth <> OpenMonth[1] THEN
       MaxMieri = MaxMoggi
       MinMieri = MinMoggi
       MaxMoggi = high
       MinMoggi = low
    ENDIF
    // aggiornamento settimanale
    IF OpenDayOfWeek < OpenDayOfWeek[1] THEN
       MaxWieri = MaxWoggi
       MinWieri = MinWoggi
       MaxWoggi = high
       MinWoggi = low
    ENDIF
    // aggiornamento giornaliero
    IF OpenDay <> OpenDay[1] THEN
       MaxDieri = MaxDoggi
       MinDieri = MinDoggi
       MaxDoggi = high
       MinDoggi = low
    ENDIF
    //
    MaxMoggi = max(high,MaxMoggi)
    Minmoggi = min(low, MinMoggi)
    //
    MaxWoggi = max(high,MaxWoggi)
    MinWoggi = min(low, MinWoggi)
    //
    MaxDoggi = max(high,MaxDoggi)
    MinDoggi = min(low, MinDoggi)
    //
    RETURN MaxMieri AS "Max M",MinMieri AS "Min M",MaxWieri AS "Max W",MinWieri AS "Min W",MaxDieri AS "Max D",MinDieri AS "Min D"
    poldoposta thanked this post
    Massimi-Minimi-Week-Day-Month.itf x-7.jpg x-7.jpg
    #179607 quote
    robertogozzi
    Moderator
    Master

    I colori non li ho messi, così puoi sceglierli a tuop piacimento dalle proprietà.

    poldoposta thanked this post
    #179669 quote
    poldoposta
    Participant
    Junior

    Grazie mille per l’impegno. Funziona sotto la mi PRT ma non va sotto la T3 (anche se questo forum è per PRT)

    Sei gentilissimo, ma la t3 mi chiede di dichiarare le tre variabili

    OpenMonth
    OpenDayOfWeek
    OpenDay
    le ho dichiarate nell’apposita sezione dando valore 1, ma non funziona.
    SEI GENTILISSIMO A PRESCINDERE DALLA SOLUZIONE, GRAZIE MILLE
    #179670 quote
    robertogozzi
    Moderator
    Master

    Togli Open:

    • Month
    • DayOfWeek
    • Day
    è probabile che sfalzi un po’ qualcosa, perché con Open restituisce il valore all’apertura della candela, senza, invece, quello alla chiusura.
    Quindi alla chiusura della candela Giornaliera, OpenDay restituirà il giorno di apertura (cioè ieri), mentre Day il giorno alla chiusura (cioè oggi).
    poldoposta thanked this post
    #179690 quote
    poldoposta
    Participant
    Junior

    questo restituisce con

    OpenMonth
    OpenDayOfWeek
    OpenDay
    ——————————————–
    se le cambio con
    • Month
    • DayOfWeek
    • Day                      mi dice addirittura “utilizza le variabili  Month dayofweek day”

    P.S. i valori che restituisce non sono ne mass ne min ne apert ne chius di nessun time frame.


    Questa banale linea di codice sarebbe perfetta se permettesse di variare il numero di candele da analizzare (ad esempio le ultime 5 il venerdì sera per avere i max min op cl di una settimana)

    n=0
    return DOpen(n) as “Apertura” , DHigh(n) as “Massimo” , DLow(n) as “Minimo” , DClose(n) as “Chiusura”

    2 screenshot relativo a questa ipotesi

    linee.jpg linee.jpg
    #179692 quote
    poldoposta
    Participant
    Junior

    //SEMPLICE A x PERIODI
    Periodi = 5
    Preced = 0
    Massimo = highest[Periodi](high[Preced])
    Minimo = lowest[Periodi](low[Preced])
    RETURN Massimo AS “Max”,Minimo AS “Min”

    Questo sarebbe perfetto se solo fosse realistico…………….restituisce forse bene i max e non i min (posso fare a meno delle open e close)….FUNZIONA SU TUTTI I TF SENZA VARIARE NULLA (solo i periodi a piacimento)

    Io ti rompo le scatole, ma liberissimo di non rispondermi più………….GRAZIE MILLE

    miglore-dei-miei-due.jpg miglore-dei-miei-due.jpg
    #179697 quote
    robertogozzi
    Moderator
    Master

    La versione che hai no ha le costanti di sistema Month, DayOfWeek e Day?

    Allora non ho soluzioni da suggerirti.

    poldoposta thanked this post
    #179755 quote
    poldoposta
    Participant
    Junior

    Ho corretto BENE il codice come mi hai suggerito sopra ed ora funziona, ma sfalza le linee……….non trovo una logica precisa: ti riallego un screen shot grafico DAILY – dove i massimi ed i minimi Month sono in nero, in giallo i Weekly, in bordeaux i Day. Grazie per la pazienza, ma ora è diventata una questione di principio…………funziona, perchè sfalza???? 

    Grazie ancora

    —————————————————————————–

    ONCE MaxDoggi = high
    ONCE MinDoggi = low
    ONCE MaxWoggi = high
    ONCE MinWOggi = low
    ONCE MaxMoggi = high
    ONCE MinMOggi = low
    ONCE MaxDieri = high
    ONCE MinDieri = low
    ONCE MaxWieri = high
    ONCE MinWieri = low
    ONCE MaxMieri = high
    ONCE MinMieri = low
    // aggiornamento mensile
    IF Month <> Month[1] THEN
    MaxMieri = MaxMoggi
    MinMieri = MinMoggi
    MaxMoggi = high
    MinMoggi = low
    ENDIF
    // aggiornamento settimanale
    IF DayOfWeek < DayOfWeek[1] THEN
    MaxWieri = MaxWoggi
    MinWieri = MinWoggi
    MaxWoggi = high
    MinWoggi = low
    ENDIF
    // aggiornamento giornaliero
    IF Day <>Day[1] THEN
    MaxDieri = MaxDoggi
    MinDieri = MinDoggi
    MaxDoggi = high
    MinDoggi = low
    ENDIF
    //
    MaxMoggi = max(high,MaxMoggi)
    Minmoggi = min(low, MinMoggi)
    //
    MaxWoggi = max(high,MaxWoggi)
    MinWoggi = min(low, MinWoggi)
    //
    MaxDoggi = max(high,MaxDoggi)
    MinDoggi = min(low, MinDoggi)
    //
    RETURN MaxMieri AS “Max M”,MinMieri AS “Min M”,MaxWieri AS “Max W”,MinWieri AS “Min W”,MaxDieri AS “Max D”,MinDieri AS “Min D”

    daily.jpg daily.jpg
    #179772 quote
    robertogozzi
    Moderator
    Master

    Cosa intendi per “sfalzare”?

    poldoposta thanked this post
    #179775 quote
    poldoposta
    Participant
    Junior

    Vedi lo screenshot ….. massimi e minimi segnati con i relativi colori. Se sbaglio ad interpretare corregimi. Grazie

    sett-ott-.jpg sett-ott-.jpg
    #179778 quote
    robertogozzi
    Moderator
    Master

    Si, ma sfalzati rispetto a cosa?

    poldoposta thanked this post
    #179785 quote
    robertogozzi
    Moderator
    Master

    Ho capito, io ti avevo calcolato i valori sulle candele chiuse, non sui dati correnti, qui sono indietro tutti di una candela (Mensile, Settimanale e Giornaliera).

    Cambia l’ultima riga con questa:

    RETURN MaxMOggi AS “Max M”,MinMOggi AS “Min M”,MaxWOggi AS “Max W”,MinWOggi AS “Min W”,MaxDOggi AS “Max D”,MinDOggi AS “Min D”
    poldoposta thanked this post
Viewing 15 posts - 1 through 15 (of 17 total)
  • You must be logged in to reply to this topic.

massimi e minimi


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Author
author-avatar
poldoposta @poldoposta Participant
Summary

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

Topic Details
Forum: ProBuilder: Indicatori & Strumenti Personalizzati
Language: Italian
Started: 10/10/2021
Status: Active
Attachments: 8 files
Logo Logo
Loading...