DrawOnLastBarOnly

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

    Buongiorno,

    ho un altro problema.

    Ho scritto un codice che traccia le trendline del Momentum.

    Il ragionamento di fondo è che la TL deve essere tracciata sui valori positivi del Momentum quando lo stesso va sotto lo zero, sui valori negativi quando va sopra lo zero

    Lo script sembra funzionare bene ma ho notato che (come da esempio allegato) anche se nella giornata di ieri  il Momentum è passato da positivo a negativo (quindi è andato sotto lo zero e lo script a definito un nuovo picco sopra lo zero) l’ultima TL tracciata riguarda il precedente movimento sotto lo zero (quindi riguarda i valori negativi).

    La domada è: quando vengono effettuati i calcoli sulle chiusure di barra (parliamo di barre giornaliere ovviamente) nella prima giornata di apertura successiva?

     

    Se così non fosse da cosa può dipendere questo comportamento?

     

    Ovvero cosa sbaglio??

    Grazie

     

    Grazie

    ultimo.jpg ultimo.jpg
    #148320 quote
    robertogozzi
    Moderator
    Master

    L’istruzione DEFPARAM corretta è DRAWONLASTBARONLY.

    Dipende dal codice, evidentemente c’è una parte di logica errata rispetto al risultato che vuoi ottenere.

    Non capisco cosa ha a che fare DRAWONLASTBARONLY dal momento che non l’hai usata!?

    #148351 quote
    tom81ad
    Participant
    Average

    Infatti per il titolo del post non sapevo cosa scrivere, semplicemente mi sono accorto del problema quando ho usato il comando (quello corretto of course) e mi ha disegnato la penultima TL e non l’ultima.

     

    Posto il codice magari riesci ad aiutarmi

    Ho eliminato la parte del colore delle TL tanto è indifferente

    il DEFPARAM CALCULATEONLASTBARS = 200  è stato disabilitato con le “//” perchè se impostato lo script non mi restituisce risultati (se riesci a spiegarmi anche questa, te ne sono grato)

     

    Spero sia chiaro, se servono delucidazioni ovviamente a disposizione

    Grazie per la disponibilità

    //DEFPARAM CALCULATEONLASTBARS = 200 // Calcola le TL sulle ultime 200 candele (sul giornaliero = ultimo anno)
    DEFPARAM DRAWONLASTBARONLY = true //Disegna solo l'ultima TL dei massimi o dei minimi
    
    //Posizioni di partenza H,L e Swing
    ONCE MHbar = 0
    ONCE MH= 0
    ONCE MLbar = 0
    ONCE ML = 0
    ONCE HoldHbar = 0
    ONCE HoldH = 0
    ONCE HoldLbar = 0
    ONCE HoldL = 0
    ONCE MSwing= 1 //  1= up trend, -1= down trend
    
    // Settings parametri
    M =  Momentum
    
    //Analisi Up trend
    //Continuazione
    IF MSwing = 1 AND M>0  AND M=>MH THEN
    MHbar = Barindex
    MH= M
    //Inversione Down
    ELSIF MSwing = 1 AND M<=0 THEN
    MSwing = -1 //aggiorna stato swing
    MLbar = Barindex  // aggiorna Low Momentum
    ML = M
    DRAWSEGMENT (x1, y1, x2, y2) //disegna TL massimi Momentum
    x1= HoldHbar
    y1= HoldH
    x2= MHbar
    y2= MH
    HoldHbar = MHbar // aggiorna vecchio massimo
    HoldH = MH
    //Analisi Downtrend
    //Continuazione down
    ELSIF MSwing = -1 AND M<=0  AND M<=ML THEN
    MLbar = Barindex
    ML= M
    //Inversione UP
    ELSIF MSwing = -1 AND M>0 THEN
    MSwing = 1 //aggiorna stato swing
    MHbar= Barindex  // aggiorna High Momentum
    MH = M
    DRAWSEGMENT (x1, y1, x2, y2) //disegna TL minimi Momentum
    x1= HoldLbar
    y1= HoldL
    x2= MLbar
    y2= ML
    HoldLbar = MLbar // aggiorna vecchio minimo
    HoldL = ML
    ENDIF
    
    RETURN
    
    #148358 quote
    robertogozzi
    Moderator
    Master

    Devo provarlo sul PC, quindi lunedì ormai.

    tom81ad thanked this post
    #148375 quote
    tom81ad
    Participant
    Average

    Tranquillo, non ho fretta. L’importante è capire cosa sbaglio.

    Grazie

    #148818 quote
    tom81ad
    Participant
    Average

    Ciao Roberto,

    hai avuto modo di verificare lo script?

    #148916 quote
    robertogozzi
    Moderator
    Master

    Ti allego una foto di quello che mi appare, puoi spiegarmi meglio cosa vuoi fare con quelle linee?

    x-9.jpg x-9.jpg
    #148928 quote
    tom81ad
    Participant
    Average

    Ciao Roberto,

    nel mio intento l’indicatore va applicato “sul” momentum. Ovviamente si può utilizzare anche semplicemente

     

    Return M

     

    Quelle linee rappresentano le TL degli swing del Momentum. Quindi uniscono due massimi o due minimi consecutivi.

    I massimi ed i minimi vengono individuati considerando il passaggio rialzista o ribassista della linea di equilibrio (ovvero dello zero)

    Quindi c’e’ un incrocio rialzista del Momentum rispetto alla linea dello zero si tocca un massimo poi c’e’ un incrocio ribassista si tocca un minimo, poi ancora un incrocio rialzista e si tocca un nuovo massimo (a questo punto viene tracciata una trendline tra i due massimi), poi c’e’ nuovamente un incrcocio ribassista del moment (e a questo punto viene tracciata una trendline tra i due minimi) e cosi via….

    Tutto al fine di individuare automaticamente” eventuali divergenze.

    Questo è un primo passaggio di un indicatore che dovrebbe restituirmi un testo quando si verifica uan divergenza in modo da avere un riscontro  evidente ed immediato e “senza sforzi”.

    Sto procedendo per passi per verificare che quello che “teorizzo” poi all’atto pratico viene eseguito dallo script.

    Il problema riscontrato è che viene tracciata la penultima TL e non l’ultima come vorrei.

     

    Grazie

    #148987 quote
    robertogozzi
    Moderator
    Master

    Abbi un pò di pazienza, cerco di controllarlo quanto prima possibile, non so se entro questo fine settimana ce la farò.

    #149017 quote
    tom81ad
    Participant
    Average

    Certo, tranquillo.

     

    Grazie ancora

    #149214 quote
    robertogozzi
    Moderator
    Master

    Puoi farmi le linee (manuali) solo sui monimi, secondo le tue regole su un grafico con il momentum a 12 periodi?

    #149310 quote
    tom81ad
    Participant
    Average

    Certo.

    Lo screen non è di Proreal ma il concetto è quello i colori in questo caso servono solo a distinguere i singoli segmenti  (che peraltro non sono precisissimi – ma la logica è che devono partire dal minimo che il momentum tocca ad ogni attraversamento dello xero) non a stabilirne la direzione

    mom-min.jpg mom-min.jpg
    #149697 quote
    robertogozzi
    Moderator
    Master

    Scusami, ma non ce la faccio per il fine settimana, devi pazientare ancora un pò.

    Grazie 🙂

    tom81ad thanked this post
    #149818 quote
    tom81ad
    Participant
    Average

    Tranquillo,

    tanto ora ho il manuale delal v11 da leggere =)

    #149890 quote
    robertogozzi
    Moderator
    Master

    Ho preferito riscrivere il codice, eccolo:

    //DEFPARAM CalculateOnLastBars = 1000
    Once CrossOver    = 0
    Once CrossUnder   = 0
    Once CurOver      = 0
    Once PrevOver     = 0
    Once CurUnder     = 0
    Once PrevUnder    = 0
    ONCE CurOverBar   = 0
    ONCE PrevOverBar  = 0
    ONCE CurUnderBar  = 0
    ONCE PrevUnderBar = 0
    p                 = 14
    MyInd             = Momentum[p](close)
    CrossOver         = MyInd CROSSES OVER  0
    CrossUnder        = MyInd CROSSES UNDER 0
    IF CrossOver = 1 AND CrossOver[1] = 0 THEN
    PrevOver       = CurOver
    PrevOverBar    = CurOverBar
    CurOver        = MyInd
    CurOverBar     = BarIndex
    ENDIF
    IF CrossUnder = 1 AND CrossUnder[1] = 0 THEN
    PrevUnder      = CurUnder
    PrevUnderBar   = CurUnderBar
    CurUnder       = MyInd
    CurUnderBar    = BarIndex
    ENDIF
    If CrossOver = 0 AND CrossUnder = 0 THEN
    CrossOver      = CrossOver[1]
    CrossUnder     = CrossUnder[1]
    ENDIF
    IF CrossOver = 1 THEN
    CurOver    = max(CurOver,MyInd)
    IF CurOver <> CurOver[1] THEN
    CurOverBar = BarIndex
    ENDIF
    Endif
    IF CrossUnder = 1 THEN
    CurUnder       = min(CurUnder,MyInd)
    IF CurUnder <> CurUnder[1] THEN
    CurUnderBar = BarIndex
    ENDIF
    Endif
    IF CrossUnder = 1 THEN
    DrawSegment(PrevOverBar,PrevOver,CurOverBar,CurOver) coloured(0,0,255,255)
    ENDIF
    IF CrossOver = 1 THEN
    DrawSegment(PrevUnderBar,PrevUnder,CurUnderBar,CurUnder) coloured(255,0,0,255)
    ENDIF
    IF PrevOverBar AND PrevOver AND PrevUnderBar AND PrevUnder THEN
    ENDIF
    RETURN MyInd AS "Momentun",0 AS "Zero"

    Ci sono alcuni punti, evidenziati in arancio nella foto, che sono più difficili da eliminare. Non credo, però, che influiscano sull’individuazione di divergenze.

    Sostituendo, alla riga 13, Momentum con RSI puoi usarlo con RSI (però devi anche modificare 0 in 50 alle due righe successive), come con altri.

    tom81ad thanked this post
    Momentum-Divergences.itf x-2.jpg x-2.jpg
Viewing 15 posts - 1 through 15 (of 18 total)
  • You must be logged in to reply to this topic.

DrawOnLastBarOnly


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Author
author-avatar
tom81ad @tom81ad Participant
Summary

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

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