DrawOnLastBarOnly
Forums › ProRealTime forum Italiano › Supporto ProBuilder › DrawOnLastBarOnly
- This topic has 17 replies, 2 voices, and was last updated 3 years ago by robertogozzi.
Tagged: divergences, Divergenze, momentum
-
-
10/24/2020 at 12:00 PM #148317
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
10/24/2020 at 12:58 PM #148320L’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!?
10/24/2020 at 6:07 PM #148351Infatti 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à
Il mio codice123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354//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 SwingONCE MHbar = 0ONCE MH= 0ONCE MLbar = 0ONCE ML = 0ONCE HoldHbar = 0ONCE HoldH = 0ONCE HoldLbar = 0ONCE HoldL = 0ONCE MSwing= 1 // 1= up trend, -1= down trend// Settings parametriM = Momentum//Analisi Up trend//ContinuazioneIF MSwing = 1 AND M>0 AND M=>MH THENMHbar = BarindexMH= M//Inversione DownELSIF MSwing = 1 AND M<=0 THENMSwing = -1 //aggiorna stato swingMLbar = Barindex // aggiorna Low MomentumML = MDRAWSEGMENT (x1, y1, x2, y2) //disegna TL massimi Momentumx1= HoldHbary1= HoldHx2= MHbary2= MHHoldHbar = MHbar // aggiorna vecchio massimoHoldH = MH//Analisi Downtrend//Continuazione downELSIF MSwing = -1 AND M<=0 AND M<=ML THENMLbar = BarindexML= M//Inversione UPELSIF MSwing = -1 AND M>0 THENMSwing = 1 //aggiorna stato swingMHbar= Barindex // aggiorna High MomentumMH = MDRAWSEGMENT (x1, y1, x2, y2) //disegna TL minimi Momentumx1= HoldLbary1= HoldLx2= MLbary2= MLHoldLbar = MLbar // aggiorna vecchio minimoHoldL = MLENDIFRETURN10/24/2020 at 8:34 PM #14835810/25/2020 at 7:39 AM #14837510/28/2020 at 7:14 PM #14881810/29/2020 at 4:44 PM #148916Ti allego una foto di quello che mi appare, puoi spiegarmi meglio cosa vuoi fare con quelle linee?
10/29/2020 at 6:44 PM #148928Ciao Roberto,
nel mio intento l’indicatore va applicato “sul” momentum. Ovviamente si può utilizzare anche semplicemente
1Return MQuelle 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
10/30/2020 at 9:34 AM #148987Abbi un pò di pazienza, cerco di controllarlo quanto prima possibile, non so se entro questo fine settimana ce la farò.
10/30/2020 at 3:25 PM #14901711/01/2020 at 8:06 PM #149214Puoi farmi le linee (manuali) solo sui monimi, secondo le tue regole su un grafico con il momentum a 12 periodi?
11/02/2020 at 6:36 PM #149310Certo.
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
11/06/2020 at 4:29 PM #149697Scusami, ma non ce la faccio per il fine settimana, devi pazientare ancora un pò.
Grazie 🙂
1 user thanked author for this post.
11/08/2020 at 10:05 AM #14981811/09/2020 at 11:56 AM #149890Ho preferito riscrivere il codice, eccolo:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152//DEFPARAM CalculateOnLastBars = 1000Once CrossOver = 0Once CrossUnder = 0Once CurOver = 0Once PrevOver = 0Once CurUnder = 0Once PrevUnder = 0ONCE CurOverBar = 0ONCE PrevOverBar = 0ONCE CurUnderBar = 0ONCE PrevUnderBar = 0p = 14MyInd = Momentum[p](close)CrossOver = MyInd CROSSES OVER 0CrossUnder = MyInd CROSSES UNDER 0IF CrossOver = 1 AND CrossOver[1] = 0 THENPrevOver = CurOverPrevOverBar = CurOverBarCurOver = MyIndCurOverBar = BarIndexENDIFIF CrossUnder = 1 AND CrossUnder[1] = 0 THENPrevUnder = CurUnderPrevUnderBar = CurUnderBarCurUnder = MyIndCurUnderBar = BarIndexENDIFIf CrossOver = 0 AND CrossUnder = 0 THENCrossOver = CrossOver[1]CrossUnder = CrossUnder[1]ENDIFIF CrossOver = 1 THENCurOver = max(CurOver,MyInd)IF CurOver <> CurOver[1] THENCurOverBar = BarIndexENDIFEndifIF CrossUnder = 1 THENCurUnder = min(CurUnder,MyInd)IF CurUnder <> CurUnder[1] THENCurUnderBar = BarIndexENDIFEndifIF CrossUnder = 1 THENDrawSegment(PrevOverBar,PrevOver,CurOverBar,CurOver) coloured(0,0,255,255)ENDIFIF CrossOver = 1 THENDrawSegment(PrevUnderBar,PrevUnder,CurUnderBar,CurUnder) coloured(255,0,0,255)ENDIFIF PrevOverBar AND PrevOver AND PrevUnderBar AND PrevUnder THENENDIFRETURN 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.
1 user thanked author for this post.
-
AuthorPosts