Disegnare Box e confronto con ATR
Forums › ProRealTime forum Italiano › Supporto ProBuilder › Disegnare Box e confronto con ATR
- This topic has 4 replies, 2 voices, and was last updated 2 months ago by Gianpy.
-
-
09/03/2024 at 5:33 PM #237059
Buonasera a tutti.
Premetto che non ho alcuna esperienza di coding, ma avrei bisogno di creare un indicatore (del quale mi manca solo un pezzo, in realtà) che sia applicato su un grafico 30 min.
Ho trovato sul forum questo codice che mi è stato molto utile per disegnare sul prezzo un box:
1234567891011121314151617181920212223242526272829303132starttime = 050000endtime = 090000if intradaybarindex=0 thenhh = 0ll = 0alreadydrawn = 0endifif time=starttime thenstartbar=barindexendifif time=endtime thenendbar=barindexendifif time>=starttime and time<=endtime thenif high>hh thenhh = highendifif low<ll or ll=0 thenll = lowendifendifif time>endtime and alreadydrawn=0 thendrawrectangle(startbar,hh,endbar,ll)alreadydrawn=1endifRETURNOra due domande:
1) In questo modo il box viene creato correttamente, ma mi piacerebbe che disegnasse solo nella giornata di oggi (e non anche nel passato). Ho inserito (come trovato in altri post), la prima riga DEFPARAM DrawOnLastBarOnly = True
Purtroppo, così facendo, non disegna affatto.2) Come posso confrontare il range del box con il valore di ATR Daily di ieri?
Grazie in anticipo
09/04/2024 at 2:56 PM #237081Ciao,
Per risolvere le tue domande:
1) Disegnare il box solo per la giornata attuale: Puoi assicurarti che il box venga disegnato solo per la sessione di oggi utilizzando la variabile date per verificare se la barra corrente è all’interno dell’intervallo di oggi. Ecco una versione aggiornata del codice che funziona per disegnare il box solo per la sessione odierna:123456789101112131415161718192021222324252627282930313233starttime = 050000endtime = 090000currentDay = date // Ottieni la data odiernaif intradaybarindex=0 thenhh = 0ll = 0alreadydrawn = 0endifif time=starttime thenstartbar=barindexendifif time=endtime thenendbar=barindexendif// Disegna solo se è oggiif time>=starttime and time<=endtime and date = currentDay thenif high>hh thenhh = highendifif low<ll or ll=0 thenll = lowendifendifif time>endtime and alreadydrawn=0 and today = currentDay thendrawrectangle(startbar,hh,endbar,ll)alreadydrawn=1endifRETURN2) Confrontare il range del box con l’ATR del giorno precedente: Per calcolare e confrontare il range del box con l’ATR del giorno precedente, puoi usare il codice seguente. L’ATR viene calcolato e memorizzato per essere confrontato con il range del box.
123456789101112atr = AverageTrueRange[14](close)atrYesterday = atr[1] // ATR giornaliero del giorno precedenterangeBox = hh - ll // Range del box// Confronta il range del box con l'ATR di ieriif rangeBox > atrYesterday then// Codice se il range del box è maggioreelse// Codice se l'ATR è maggioreendifRETURN09/04/2024 at 4:38 PM #237091Grazie mille Ivan!!
Il codice per l’ATR è perfetto!
Invece, per quanto riguarda la disegnazione solo per il giorno corrente, non so perché, ma pare non funzionare. Continua a disegnare anche nei giorni precedenti.
Per carita, non è un grosso problema, era solo per creare meno confusione.
Comunque grazie di cuore!
09/05/2024 at 9:58 AM #23712309/06/2024 at 1:55 PM #237221Ti chiedo scusa Ivan, devo aver combinato qualcosa mentre modificavo ulteriormente. Ho ripreso in mano il tuo codice pulito: funziona tutto alla perfezione.
Grazie e scusa ancora!
1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on