SAMParticipant
Senior
Ciao a tutti, è possibile creare un indicatore che calcoli il max e mix della precedente candela a 4 ore, ed aggiungerlo al grafico dei prezzi con time-frame inferiori(5-10-15 min?)
Grazie mille
SAM
Come deve mostrarteli, con un segmento, un testo… ?
SAMParticipant
Senior
Ciao Roberto, una linea orizzontale andrebbe benissimo..
ti spiego cosa vorrei fare… vorrei testare un break-out o down di un grafico 5min o 1 min calcolato sul Massimo o minimo della candela di 4 ore precedente…
Grazie mille
Eccolo:
DEFPARAM CalculateOnLastBars = 1000
DEFPARAM DrawOnLastBarOnly = true
IF (OpenHour MOD 4 = 1) AND (OpenHour <> OpenHour[1]) THEN
Minimo = low
Massimo = high
Barra = barindex
ENDIF
Minimo = min(low,Minimo)
Massimo = max(high,Massimo)
DRAWSEGMENT(Barra,Massimo,barindex,Massimo) coloured(0,128,0,255)
DRAWSEGMENT(Barra,Minimo,barindex,Minimo) coloured(255,0,0,255)
RETURN
SAMParticipant
Senior
Ciao Roberto, ti ringrazio moltissimo per il codice.
Volevo segnalarti che però io avevo intenzione di creare un indicatore che mi segnasse il Max e Min. della candela di 4H precedente, non di quella in corso. In oltre se si poteva creare una indicatore con linee continue tipo quello che posto nell’esempio.
Grazie mille…
Meglio, la soluzione è più semplice.
Colora te le linee tramite le proprietà:
DEFPARAM CalculateOnLastBars = 1000
IF (OpenHour MOD 4 = 1) AND (OpenHour <> OpenHour[1]) THEN
MassimoPrec = Massimo
MinimoPrec = Minimo
Minimo = low
Massimo = high
ENDIF
Minimo = min(low,Minimo)
Massimo = max(high,Massimo)
RETURN MinimoPrec as “Min”,MassimoPrec as “Massimo"
edit: Ho variato il codice dopo averlo postato.
SAMParticipant
Senior
Ciao Roberto, ho provato a trasformare il codice che hai programmato in uno screener, ma sembra non funzionare….
IF (OpenHour MOD 4= 1) AND (OpenHour <> OpenHour[1]) THEN
Massimoprec= Massimo
Minimoprec = Minimo
Minimo = low
Massimo = high
ENDIF
Minimo = min(low,Minimo)
Massimo = max(high,Massimo)
c1=close crosses over Massimoprec
c2= close crosses under Minimoprec
screener[c1 or c2]
Anch’io non sono riuscito a farlo funzionare. Domattina chiedo a Nicolas.
Ho risolto.
ProScreener non supporta OpenHour, per cui devi sostituirlo con Hour.
Ovviamente affinché combaci con l’indicatore devi sostituirlo anche in quest’ultimo, altrimenti i dati saranno parzialmente sfalzati.
La differenza è che OpenHour restituisce l’ora all’APERTURA di una candela, mentre Hour restituisce quella alla CHIUSURA della candela.
Ad esempio, per la candela a 10 minuti che apre alle 08:50, OpenHour restituirà 8, mentre Hour restituirà 9.
SAMParticipant
Senior
Ciao Roberto, ho cambiato OpenHour con Hour nello screener (come hai suggerito) ora lo screener mi restituisce dei risultati ma alcuni non sono corretti. Per questo ti allego alcune schermate e ti allego dei codici. Dalla foto screener1
- A sinistra trovi lo screener con i risultati su un grafico con time frame 15 min
- Di fianco a dx nel grafico del prezzo acandele ho inserito il tuo codice che mi disegna con il formato linea il max e il min della candela 4h precedente.
- Sotto al grafico dei prezzi ho inserito un indicatore “Boleano” che in indica 1 e -1 quando la chiusura supera il alto o in basso il MAx e il Min dela candela di 4H precedente. Cosi per verificare ad occhio se i risultati dello Screener sono corretti.
Nella foto Screener1 come puoi notare ho selezionato fra i tanti risultati che mi restituisce la ricerca HD Supply Hidg Inc come -1 e il tutto è confermato dal mio indicatore sotto al grafico a candela che è -1
Nella foto Screener2 ho selezionato una azione dallo screener come Break-out rialzista ed è nuovamente confermato dal mio indicatore sotto al prezzo
Nella foto Screener3 e Screene4 invece ho selezionato delle azioni che lo screener me le dava come (+1) ma in realta i risultati dello screener erano sbagliati, perchè i prezzo effettivamente non avevano fatto un break-out.
Anzi sono più i risultati errati che quelli giusti…
Come mai secondo te?
Te l’ho detto qual’è la differenza.
Non ce ne sono altre. Se cambi sia screener che indicatore, l’unica differenza può essere solo sull’orario, tra chiusura e apertura.
Se usi un TF a 1 minuto la differenza sarà poca, se usi 1H può essere notevole.
SAMParticipant
Senior
Ciao, si ho letto il tuo post, infatti sia nello screener che nell’indicatore uso sempre il comando Huor. Appunto per evitare risultati differenti.
IF (Hour MOD 4 = 1) AND (Hour <> Hour[1]) THEN
MassimoPrec = Massimo
MinimoPrec = Minimo
Minimo = low
Massimo = high
ENDIF
Minimo = min(low,Minimo)
Massimo = max(high,Massimo)
RETURN MinimoPrec as "Min",MassimoPrec as "Massimo"
IF (Hour MOD 4= 1) AND (Hour <> Hour[1]) THEN
massimoprec = Massimo
minimoprec = Minimo
Minimo = low
Massimo = high
ENDIF
minimo = min(low,Minimo)
massimo= max(high,Massimo)
timeframe (default)
su=close crosses over massimoprec
giu= close crosses under minimoprec
if su then
direzione=1
endif
if giu then
direzione=-1
endif
screener[su or giu](direzione)
Ti faccio un esempio sulla candela a 4 ore che apre alle 9 e chiude alle 13 che tu osservi sul tuo grafico.
Se usi un TF a 1 minuto, con Hour ti considererà il massimo ed il minimo tra le 8:59 e le 12:59 come apertura, perché sono quelle che CHIUDONO alle 9 ed alle 13. Essendo molto raro che i massimi ed i minimi si verifichino nell’ultimo minuto di una candela, la differenza potrebbe essere pochissima o assente.
Se, invece, usi un TF ad 1 ora, considererà le candele che vanno dalle 8 alle 12 (perché chiudono alle 9 ed alle 13) e qui la differenza potrebbe esserci molto spesso.
Se usi un TF di 2 ore, considererà le candele delle 7 e delle 11 (sempre perché chiudono alle 9 ed alle 13, che sono gli orari della candela a 4 ore) ed in tal caso lo sfalsamento è enorme!