ciao a tutti, è possibile far disegnare automaticamente delle linee come in figura sulle ombre inferiori delle candele orso e superiori delle toro (quando non ci sono le ombre invece sarà il max o min) in base alla candela se è uguale o superiore a un valore di volume da me indicato? es: indico un valore di volume di 4000 su tf 5 min mi segna con delle linee (supporti se sono orso/resistenza se sono toro)
Si può fare, dimmi esttamente quando vuoi che queste linee siano tracciate, in base a quali criteri. Per fare dei test concreti dimmi su quale strumento e TF vorresti usarlo.
nasdaq 5min >7000, vorrei poter inserire io il valore di volume (magari mettendo 0 di default così non disegna nulla) in modo da cambiarlo poi in base al tf e allo strumento.
Provalo, credo di avere interpretato la tua richiesta (ho messo che accetti valori tra 0 e 99.999.999, con zero non stampa niente):
DEFPARAM CalculateOnLastBars = 1000
DEFPARAM DrawOnLastBarOnly = true
// MioVolume = 0 non stampa niente
ONCE Prezzo = 0
ONCE MiaBarra = 0
ONCE MioVolume = max(0,min(MioVolume,99999999)) //intervallo accettato 0 - 99999999
IF Volume >= MioVolume AND MioVolume > 0 THEN
MiaBarra = BarIndex
IF close > open THEN
Prezzo = high
ELSE
Prezzo = low
ENDIF
ENDIF
DRAWSEGMENT(MiaBarra,Prezzo,BarIndex,Prezzo) COLOURED(138,43,226,255)
RETURN
Allego anche il file da importare, con la variabile dichiarata MioVolume dichiarata in modo da modificarla dalle proprietà dell’indicatore.
Ho provato a inserirlo ma non mi segna tutte le candele, si potrebbe mettere una linea orizzontale invece di un segmento? ho provato con drawhline al posto di drawsegment ma non va.
Bata che commenti la linea 2, oppure la togli xcel tutto, per vedere tutte le linee, ma rischi di avere lo schermo pieno di righe fittissime da rendere invisibile il resto.
Prova con DRAWLINE .
Ho provato a togliere la linea 2 con le // ma non me le segna comunque, mentre il DRAWLINE mi mette oltre le orizzontali anche le verticali.
L’ho modificato per le linee
DEFPARAM CalculateOnLastBars = 1000
DEFPARAM DrawOnLastBarOnly = true
// MioVolume = 0 non stampa niente
ONCE Prezzo = 0
//ONCE MiaBarra = 0
ONCE MioVolume = max(0,min(MioVolume,99999999)) //intervallo accettato 0 - 999999999
IF Volume >= MioVolume AND MioVolume > 0 THEN
//MiaBarra = BarIndex
IF close > open THEN
Prezzo = high
ELSE
Prezzo = low
ENDIF
ENDIF
//DRAWSEGMENT(MiaBarra,Prezzo,BarIndex,Prezzo) COLOURED(138,43,226,255)
//DRAWLINE(MiaBarra,Prezzo,BarIndex,Prezzo) COLOURED(138,43,226,255)
DRAWHLINE(Prezzo) COLOURED(138,43,226,255)
RETURN
Se preferisci usare DRAWLINE o DRWASEGMENT togli il commento alle righe 6, 10 e 17 (o 18) e metti il c ommento alla linea 19.
restano le linee verticali
DEFPARAM CalculateOnLastBars = 1000
//DEFPARAM DrawOnLastBarOnly = true
//MioVolume = 0 non stampa niente
ONCE Prezzo = 0
ONCE MiaBarra = 0
ONCE MioVolume = max(0,min(MioVolume,99999999)) //intervallo accettato 0 - 999999999
IF Volume >= MioVolume AND MioVolume > 0 THEN
MiaBarra = BarIndex
IF close > open THEN
Prezzo = high
ELSE
Prezzo = low
ENDIF
ENDIF
//DRAWSEGMENT(MiaBarra,Prezzo,BarIndex,Prezzo) COLOURED(138,43,226,255)
DRAWLINE(MiaBarra,Prezzo,BarIndex,Prezzo) COLOURED(138,43,226,255)
DRAWHLINE(Prezzo) COLOURED(138,43,226,255)
RETURN
Se usi la riga 19 devi commentare, o togliere, la riga 18 e devi commentare anche le righe 6 e 10 perché MiaBarra non serve più.
Se, invece, vuoi usare la riga 18 basta che commenti, o togli, solo la riga 19.
Io non avevo righe verticali, secondo me ti sembrano linee verticali, mentre probabilmente sono centinaia di linee orizzontali che si sovrappaongono perché hai commentato la riga 2.
Se non è questo il prolema, non saprei davvero cosa possa essere!
ho risolto, grazie mille roberto .
ciao roberto, volevo chiedere se era possibile aggiungere un secondo parametro oltre al primo e la possibilità di togliere le linee disegnate con una spunta, volevo anche chiedere se si può aggiungere tramite la funzione DRAWRECTANGLE dei rettangoli sui low di quelle rosse e sui max di quelle verdi (sempre se rispettano i parametri del miovolume o miovolume2) con una modifica della lunghezza. (allego immagine). ciao
//DEFPARAM CalculateOnLastBars = false
//DEFPARAM DrawOnLastBarOnly = true
//MioVolume = 0 non stampa niente
ONCE Prezzo = 0
//ONCE MiaBarra = 0
ONCE MioVolume = max(0,min(MioVolume,999999))
ONCE MioVolume2 = max(0,min(MioVolume,999999)) //intervallo accettato 0 - 999999
IF Volume >= MioVolume AND MioVolume > 0 THEN
//MiaBarra = BarIndex
IF close > open THEN
Prezzo = high
ELSE
Prezzo = low
ENDIF
ENDIF
IF Volume >= MioVolume2 AND MioVolume2 > 0 THEN
//MiaBarra = BarIndex
IF close > open THEN
Prezzo = high
ELSE
Prezzo = low
ENDIF
ENDIF
//DRAWSEGMENT(MiaBarra,Prezzo,BarIndex,Prezzo) COLOURED(138,43,226,255)
//DRAWLINE(MiaBarra,Prezzo,BarIndex,Prezzo) COLOURED(138,43,226,255)
RETURN DRAWHLINE MioVolume (Prezzo) COLOURED(0,0,0), MioVolume 2 //(138,43,226,255)
DRAWHLINE(Prezzo) COLOURED(138,43,226,255)
Il tuo codice, così com’è scritto segnala errore:
- DRAWHLINE dopo il return non si può mettere (niente deve esserci dopo RETURN, solo commenti eventuali)
- DRAWHLINE nel return non si può mettere
- MioVolume (Prezzo), che significa?
Cosa vuoi che ti restituisca l’indicatore?