Devi ricontrollare l’immagine del primo post.
Deve mancare l’ombra sulla chiusura, anche perché diversamente avrebbe un significato contrario al colore della candela.
Comunque per me è semplice cambiarla, per favore confermami le caratteristiche che devono avere:
Shaven Head:
1 – rialzista
2 – candela precedente ribassista
3 – ombra superiore o inferiore assente?
Shaven Bottom:
1 – ribassista
2 – candela precedente rialzista
3 – ombra superiore o inferiore assente?
Vero, sono state fuorvianti in realtà. Ma è colpa mia che non ti ho descritto bene la questione.
Allora, una Shaven Head (Green quindi rialzista) per essere valida deve avere:
1)candela precedente ribassista (col filtro che ti ho chiesto oggi su dax e/o sp)
2)Ombra inferiore ASSENTE
—
Al contrario una Shaven Head Red (quindi ribassista) deve avere:
1)candela precedente rializsta – green (con filtri specificati precedentemente – posso modifcarli io se mi indichi la riga del codice corrispondente)
2)ombra superiore ASSENTE
Inoltre, sarebbe magnifico se riuscisse a incrementare a 5 il massimo numero di segnali
Grazie mille
Intanto devo fare un’ulteriore correzione, prima dovevo scrivere:
AND Body[1]
Nessuna incomprensione, basta invertire il significato della foto iniziale.
Te lo farò quanto prima.
Ecco il codice:
DEFPARAM CalculateOnLastBars = 1000
DEFPARAM DrawOnLastBarOnly = true
ONCE Barra1 = 0
ONCE Barra2 = 0
ONCE Barra3 = 0
IF IntraDayBarIndex = 0 THEN //Resetta i segnali ad ogni nuovo giorno
Barra1 = 0
Barra2 = 0
Barra3 = 0
ENDIF
Bullish = close > open
Bearish = open > close
Body = (abs(open - close) > 2.0 * pipsize)
UpperSH = high - max(open,close)
LowerSH = min(open,close) - low
// ----- ombra assente sulla Chiusura
//ShavenH = (UpperSH = 0) AND Bullish AND Bearish[1] AND Body[1]
//ShavenB = (LowerSH = 0) AND Bearish AND Bullish[1] AND Body[1]
// ----- ombra assente sull'Apertura
ShavenH = (LowerSH = 0) AND Bullish AND Bearish[1] AND Body[1]
ShavenB = (UpperSH = 0) AND Bearish AND Bullish[1] AND Body[1]
Shaven = ShavenH OR ShavenB
IF Shaven THEN
Barra3 = Barra2 //Ad ogni nuovo segnale occorre spostare i due più recenti di una posizione....
Barra2 = Barra1
Tipo3 = Tipo2
Tipo2 = Tipo1
Offset3= Offset2
Offset2= Offset1
Barra1 = BarIndex
IF ShavenH THEN
Tipo1 = 1 //... per fare spazio alla nuova SHAVEN
Offset1= low
ELSE
Tipo1 = 2
Offset1= high
ENDIF
ENDIF
IF Barra3 > 0 THEN
IF Tipo3 = 1 THEN
DRAWARROWUP(Barra3,Offset3 - range) COLOURED(0,128,0,255)
ELSE
DRAWARROWDOWN(Barra3,Offset3 + range) COLOURED(255,0,0,255)
ENDIF
ENDIF
IF Barra2 > 0 THEN
IF Tipo2 = 1 THEN
DRAWARROWUP(Barra2,Offset2 - range) COLOURED(0,128,0,255)
ELSE
DRAWARROWDOWN(Barra2,Offset2 + range) COLOURED(255,0,0,255)
ENDIF
ENDIF
IF Barra1 >0 THEN
IF Tipo1 = 1 THEN
DRAWARROWUP(Barra1,Offset1 - range) COLOURED(0,128,0,255)
ELSE
DRAWARROWDOWN(Barra1,Offset1 + range) COLOURED(255,0,0,255)
ENDIF
ENDIF
RETURN
In pratica ho lasciato anche le vecchie righe, commentate, in modo che se vuoi puoi facilmente invertire (1718 con 20-21) i commenti e tornare all’altra versione.
Perfetto, grazie
Ultima cosa.
La linea 13 recita cosi: Body = (abs(open – close) > 2-0 * pipsize)
Cosa devo modificare per i filtri discussi prima? Dimmi se è corretto come segue:
SP500 2 Tick / 0,5 punti –> Body = (abs(open – close) > 0.5-0 * pipsize)
DAX 4 Tick / 2 punti –> Body = (abs(open – close) > 2-0 * pipsize)
È 2.0, scritto male, ci metti un qualunque altro valore ti serva, 0.5 o altro.
che anche non è male
Hai fatto bene a precisarlo, altrimenti avrei codificato QUALUNQUE candela senza NESSUNA ombra.
Nel pomeriggio te lo faccio.
che anche non sarebbe male 😀
Basta che alle righe 20 e 21 (o 17 e 18) metti all’inizio che Body sia uguale a Range:
ShavenH = (Body = range) AND Bullish AND Bearish[1] AND Body[1]
ShavenB = (Body = range) AND Bearish AND Bullish[1] AND Body[1]
in questo modo ti segnalerà le candele SENZA ombre.
Buongiorno Roberto
Lo script funziona egregiamente, solo che si perde qualche segnale che comunque è valido
Ad esempio quello in allegato (freccia rossa). Forse è perchè il body non ha neanche un ombra? Per fare in modo da segnalarmi anche tali fattispecie, mi rifaccio al tuo post precedente? Non è che poi la smette di segnalarmi anche quelli “base”?
No, non è per le ombre, ogni tipologia richiede che ne manchi una obbligatoriamente, ma possono mancare entrambe.
Hai verificato l’ampiezza del corpo della candela precedente?
No, appena rientro verifico. Cmq se lo script può già adesso segnalare anche quelle a cui manca completamente siamo d’accordo, probabilmente è questione della candela precedente
No, non è per le ombre, ogni tipologia richiede che ne manchi una obbligatoriamente, ma possono mancare entrambe.
Hai verificato l’ampiezza del corpo della candela precedente?
Buongiorno Roberto
Ho provato a mettere giù un semplice sistema automatico basato sul pattern che mi ha aiutato a codificare.
Adesso, il punto è che il TARGET delle posizioni che apro, deve proprio corrispondere col punto/prezzo “senza ombra”; quindi al prezzo di apertura della stessa candela di pattern
Ho scritto il codice seguente (una parte del TS) ma c’è qualcosa che non va…dove sbaglio?
Per vitare di andare a rileggere il thread, tenga presente che ShavenH e ShavenB sono le candele in questione che mi ha codificato direttamente lei nell’indicatore. Il problema è che questo script NON chiude al target indicato.
IF ShavenH then
MyProfitShort = Open
ELSIF ShavenB then
MYprofitLong = Open
ENDIF
//----- Trade Opening e Closing
If ShavenH then
SELLSHORT 1 Contracts at market
SET STOP PLOSS 250
SET TARGET PROFIT MyProfitShort
ENDIF
If ShavenB then
Buy 1 Contracts at market
SET STOP PLOSS 250
SET TARGET PROFIT MyProfitLong
ENDIF
SET TARGET PROFIT vuole una differenza di prezzo, es.: 0.0100, non un prezzo.
Ok, che istruzione mi consigli di usare per il mio caso?
Dipende da cosa vuoi fare, come vuoi calcolare il profitto?
Le righe 2 e 4 devono essere uguali?