Ciao Roberto, ti chiedo una cosa semplice: vorrei disegnare una linea-segmento, dalla chiusura di ieri (ore 17:30) fino a tutta la giornata di oggi (diciamo fino alle 22:15).
Basterebbe riadattare questo codice che ho trovato, il quale disegna una linea del massimo Massimo delle ultime 30 barre (ma ancora non ho avuto tempo di approfondire le funzioni draw). Se hai un codice migliore è uguale.
DEFPARAM DRAWONLASTBARONLY = true
hh = highest[30](high)
DRAWSEGMENT(barindex-30,hh,barindex,hh)coloured(0,128,0,255)
RETURN
Grazie
Ne approfitto per segnalare che nella libreria degli indicatori di proRealCode non è presente la formula del Chande-Kroll (https://www.prorealcode.com/library-list-view/).
Mi riferisco al “Chande Kroll Stop (sul prezzo)” che si trova nella lista degli indicatori di default di proRealTime.
Lo ho ricreato uguale, se vuoi e pensi sia utile per gli altri utenti lo puoi inserire nella libreria (provalo per conferma prima, ma mi sembra identico). CIAO
nPeriod = 10
multiplier = 3
atr = averageTrueRange[nPeriod]
nPeriod2 = 20
up = (Highest[nPeriod](high)) - multiplier*atr
down = (Lowest[nPeriod](low)) + multiplier*atr
ChandeKrollUp = Highest[nPeriod2](up)
ChandeKrollDown = Lowest[nPeriod2](down)
Return ChandeKrollUp as "ChandeKrollUp", ChandeKrollDown as "ChandeKrollDown"
Eccolo:
DEFPARAM DRAWONLASTBARONLY = true
hh = highest[30](high)
IF Time = 173000 THEN
Inizio = BarIndex
ENDIF
Fine = 48 //48 (o 46?) barre sul TF a 30 minuti (da variare come
// vuoi secondo il TF, sono il numero di barre in
// un'intera giornata di trading
DRAWSEGMENT(Inizio,hh,Inizio+Fine,hh)coloured(0,128,0,255)
RETURN
L’indicatore è fedele come quello di PRT. Generalmente nella libreria ci sono quelli che mancano (a volte con poche differenze) alla piattaforma, magari qualcuno c’è in entrambe perché PRT l’ha aggiunto in qualche nuova versione.
Ad ogni modo se lo vuoi aggiungere segui il link https://www.prorealcode.com/library/ (cliccando sul simbolo + per aggiungere il codice), poi indicando che si tratta di un indicatore e seguendo le richieste (aggiungendo una foto di come appare ed una descrizione del funzionamento).
Ho provato, la formula. Per tracciare il close di ieri, va bene questa formula (Dax – 2 minuti)
DEFPARAM DRAWONLASTBARONLY = true
Chiusura = Dclose(1)
IF Time = 173000 THEN
Inizio = BarIndex
ENDIF
Fine = 720 //2 minuti (da variare come
// vuoi secondo il TF, sono il numero di barre in
// un'intera giornata di trading
DRAWSEGMENT(Inizio,Chiusura,Inizio+Fine,Chiusura)coloured(0,128,0,255)
RETURN
Se invece volessi tracciare il close di un mercato americano, in Time scrivo 221500, ma come faccio ad identificare la chiusura senza Dclose(1)?
In pratica, come posso identificare nella variabile Chiusura il prezzo alle 221500? Grazie
Si, cambia l’ora.
Puoi usare (non l’ho provato):
CLOSE[IntraDayBarIndex+1]
Non funziona, non viene plottato nulla
DEFPARAM DRAWONLASTBARONLY = true
Chiusura = CLOSE[IntraDayBarIndex+1]
IF Time = 221500 THEN
Inizio = BarIndex
ENDIF
Fine = 720 //2 minuti (da variare come
// vuoi secondo il TF, sono il numero di barre in
// un'intera giornata di trading
DRAWSEGMENT(Inizio,Chiusura,Inizio+Fine,Chiusura)coloured(0,128,0,255)
RETURN
Sul NASDAQ, 5 minuti, mi stampa come da foto (ho aggiunto il prezzo di chiusura):
DEFPARAM DRAWONLASTBARONLY = true
Chiusura = CLOSE[IntraDayBarIndex+1]
IF Time = 221500 THEN
Inizio = BarIndex
ENDIF
Fine = 276 //2 minuti (da variare come
// vuoi secondo il TF, sono il numero di barre in
// un'intera giornata di trading
DRAWSEGMENT(Inizio,Chiusura,Inizio+Fine,Chiusura)coloured(0,128,0,255)
drawtext("Close #Chiusura#",barindex,Chiusura + range)
RETURN
Ciao Roberto, il tuo codice sopra sul Nasdaq funziona. Il mio (sopra il tuo) va bene. Ho scoperto che non plottava nulla soltanto perchè nel TF a 2 minuti dovevo scrivere (in Time) 221400 ( e non 221500, che invece va bene sul 3 minuti e multipli).
Potresti invece ricontrollare quello a due minuti sul Dax, con chiusura alle 17:24 che non va bene e non capisco il motivo? (allego codice ed immagine). Il Dax ha chiuso intorno a 15400, mentre la linea è 50 punti sotto.
DEFPARAM DRAWONLASTBARONLY = true
Chiusura = Dclose(1)
IF Time = 172400 THEN
Inizio = BarIndex
ENDIF
Fine = 720 // minuti da variare come vuoi secondo il TF,
// sono il numero di barre in un'intera giornata di trading
// 48 (30) - 288 (5) - 480(3) - 720(2)
DRAWSEGMENT(Inizio,Chiusura,Inizio+Fine,Chiusura)coloured(0,128,0,255)
drawtext("Close #Chiusura#",barindex,Chiusura + range)
RETURN
Grazie
(sarebbe anche possibile ingrandire il carattere del drawtext che hai inserito?)
A me funziona (vedi foto).
Per la grandezza dei caratteri, modifica DRAWTEXT così (https://www.prorealcode.com/documentation/drawtext/):
drawtext("Close #Chiusura#",barindex,Chiusura + range,Dialog,Bold,15) //grandezza 10-30
Mi sembra che la tua immagine sia come la mia: la linea è 50 punti sotto il valore del prezzo di chiusura (o sbaglio qualcosa?)
E’ a 15347.7, la chiusura di ieri.
Anche da me la linea che plotta drawtext è a 15347.7, ma non corrisponde, come si vede dall’immagine, al valore di chiusura della candela delle 17:24 e neanche a quelle vicine (dalle 17:20 a 17:30 il prezzo è sempre sopra 15400).
Il punto è: che valore di chiusura prende IG? A che ora calcola la chiusura di giornata a 15347.7? Perchè non corrisponde all’orario delle 17:30 o dintorni.
Alla chiusura della candela Daily (alle 01:00).
Se vuoi quello delle 17:30 basta salvare il dato a quell’ora, però non è significativo, in quanto si tratta di un CFD che IG trada 24 ore, perfino nei fine settimana e non è legato alle borse; anche le quotazioni, pur simili, possono avere anche 30-40 pips di differenza.
Ad ogni modo se vuoi prendere la chiusura delle 17:30 ecco la modifica:
DEFPARAM DRAWONLASTBARONLY = true
//Chiusura = Dclose(1)
IF OpenTime = 173000 THEN
Chiusura = close
ENDIF
IF Time = 172400 THEN
Inizio = BarIndex
ENDIF
Fine = 720 // minuti da variare come vuoi secondo il TF,
// sono il numero di barre in un'intera giornata di trading
// 48 (30) - 288 (5) - 480(3) - 720(2)
DRAWSEGMENT(Inizio,Chiusura,Inizio+Fine,Chiusura)coloured(0,128,0,255)
drawtext("Close #Chiusura#",barindex,Chiusura + range,Dialog,Bold,15) //grandezza 10-30
RETURN
Perfetto, ora funziona bene (purtroppo i cdf hanno questi problemi di orari non ufficiali).
Grazie
Ciao Roberto, potresti aggiungere al codice sopra riportato, oltre la linea del close orario del giorno prima anche le linee del massimo e minimo daily (sempre del giorno prima) con la funzione draw?
Grazie