Questo è il codice (allego anche un’immagine ed il file .ITF per l’importazione).
Le formule con i calcoli delle percentuali 0.25 e 0.50 le ho variate in modo che avessero prezzi “normali” cioè visibili sul grafico, perché come le hai indicate tu (vedi i commenti all’inizio) davano prezzi talmente fuori dalla norma da risultare invisibili sul grafico a meno di non restringere la scala dell’indicatore fino ad avere una linea piatta. Se non ti vanno bene, puoi sempre variarle come vuoi spostando o togliendo le parentesi.
La variabile D non l’ho usata perché, essendo 1 non aveva senso. Puoi anch’essa aggiungerla dove vuoi.
Ho fatto il cambio dei dati con la prima barra del nuovo giorno (INTRADAYBARINDEX=0), ma se vuoi farlo prima, ad esempio alle 22, basta che sostituisci INTRADAYBARINDEX=0 con OPENTIME=220000.
Ho usato OPENTIME che restituisce l’ora di apertura di una candela, se preferisci l’ora di chiusura basta che lo sostituisci con TIME.
Alla fine ho lasciato, come commento, il tuo codice.
//Allora mi serve che venga ad essere indicato quanto segue con delle linee come da immagine in allegato (come è ora impostato ):
//
//- prezzo massimo del giorno precedente in verde
//
//- prezzo min giorno precedente in rosso
//
//- prezzo chiusura 17:30 giorno precedente in blu
//
//- prezzo chiusura 22 giorno prec in blu tratteggiato
//
//- apertura ore 8:00 tratteggiato in viola
//
//- obbiettivo 1 al rialzo (max-min giorno prec)+apertura ore 8:00*0.25 in viola
//
//- obbiettivo 2 al rialzo (max-min giorno prec)+apertura ore 8:00*0.50 in viola
//
//- obbiettivo 1 al ribasso (min-max giorno prec)+apertura ore 8:00*0.25 in viola
//
//- obbiettivo 1 al rialzo (min-max giorno prec)+apertura ore 8:00*0.25 in viola
defparam calculateonlastbars=3000
ONCE Prec1730 = close
ONCE Prec2200 = close
IF opentime = 080000 THEN
Apertura = open
ENDIF
IF opentime = 173000 THEN
Oggi1730 = close
ENDIF
IF opentime = 220000 THEN
Oggi2200 = close
ENDIF
IF IntraDayBarIndex = 0 THEN
Prec1730 = Oggi1730
Prec2200 = Oggi2200
ENDIF
NumeroBarra = 2
IF OpenDayOfWeek > 1 THEN
NumeroBarra = 1
ENDIF
MaxGiornoPrec = Dhigh(NumeroBarra)
MinGiornoPrec = Dlow(NumeroBarra)
Ob1 = (MaxGiornoPrec - MinGiornoPrec) * 0.25 + Apertura
Ob2 = (MaxGiornoPrec - MinGiornoPrec) * 0.50 + Apertura
Ob3 = (MinGiornoPrec - MaxGiornoPrec) * 0.25 + Apertura
Ob4 = (MinGiornoPrec - MaxGiornoPrec) * 0.50 + Apertura
RETURN MaxGiornoPrec COLOURED(0,128,0,255) AS "MaxGGprec",MinGiornoPrec COLOURED(255,0,0,255) AS "MinGGprec",Prec1730 COLOURED(0,0,255,255) AS "17:30 prec",Prec2200 COLOURED(0,0,2556,255) STYLE(dottedline,1) AS "22:00 prec",Apertura COLOURED(138,43,226,255) STYLE(dottedline,1) AS "Apertura",Ob1 COLOURED(138,43,226,255) AS "Obbiettivo1",Ob2 COLOURED(138,43,226,255) AS "Obbiettivo2",Ob3 COLOURED(138,43,226,255) AS "Obbiettivo3",Ob4 COLOURED(138,43,226,255) AS "Obbiettivo4"
////Variable as input: D
////D = 1
//once DAYHIGHER=Dhigh(1)
//once DAYLOWER =Dlow(1)
//IF time = 080000 THEN
//PrezzoApertura = close
//ENDIF
//IF time = 100000 THEN
//PrezzoChiusura = close
//ENDIF
//PrezzoChiusura= dclose(1)
//TYPICALDAY=(DHIGH(1)+DLOW(1)+PrezzoChiusura)/3
//IF TYPICALDAY <> TYPICALDAY[1] THEN
//DAYHIGHER=Dhigh(1)
//DAYLOWER=Dlow(1)
//FOR i=1 to D DO
//DAYHIGHER=max(DAYHIGHER,Dhigh(i))
//DAYLOWER=min(DAYLOWER,Dlow(i))
//NEXT
//ENDIF
//Obbiettivohigh1 =(DAYHIGHER-DAYLOWER)*0.38+PrezzoApertura
//Obbiettivohigh2 =(DAYHIGHER-DAYLOWER)*0.60+PrezzoApertura
//Obbiettivolow1 =(DAYLOWER-DAYHIGHER)*0.38+PrezzoApertura
//Obbiettivolow2 =(DAYLOWER-DAYHIGHER)*0.60+PrezzoApertura
//return PrezzoChiusura as "Prezzo Chiusura 1730", DAYLOWER as "Minimum day", DAYHIGHER as "Maximum Day", PrezzoApertura STYLE(dottedline,4) as "Prezzo Apertura 0900", Obbiettivohigh1 as "Obbiettivo rialzo 1", Obbiettivohigh2 as "Obbiettivo rialzo 2", Obbiettivolow1 as "Obbiettivo ribasso 1", Obbiettivolow2 as "Obbiettivo ribasso 2"