-
04-10-13, 21:17 #1
- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
Richiesta aiuto per programmare un trailing stop personalizzato
Buonasera a tutti,
vorrei creare un trailing stop basato su dei pivot point, e mi servirebbe l'aiuto di qualche utente già smaliziato con il linguaggio EasyScript.
Supponiamo di essere long.
In pratica il mio trailing stop dovrebbe essere uguale all'ultimo pivot point caratterizzato da un low minore-uguale al low delle x barre che lo precedono e minore del low delle y barre che lo seguono.
x e y sono parametri inseriti per input, quindi modificabili.
Tutte le volte che si crea un nuovo low con le caratteristiche sopra descritte, quello diventa il mio trailing stop che se colpito provoca la chiusura della posizione.
In EasyScript è possibile programmare una cosa del genere ?
Un ringraziamento anticipato.
Massimo
-
06-10-13, 11:34 #2
Salve Massimo,
si, è possibile codificare un trailing stop secondo le caratteristiche richieste.
Se ho interpretato bene la sua richiesta, questo è un esempio del codice che potrebbe fare al caso suo, da utilizzare come script di Exit Long:
# Variabili di inputs INPUTS: @x(10), @y(10) # Calcolo il minimo dei minimi delle ultime @x barre # Questo valore mi serve per individuare tra @y barre qual'era il valore minimo SET realLow = MIN(LOW, @x) # Recupero il minimo dei minimi di @y barre fa' SET backLow = REF(realLow, @y) # Calcolo il minimo dei minimi delle ultime @y barre # Questo valore mi serve per verificare che @y barre fa' ci fosse stato # effettivamente il valore minore SET forwLow = MIN(LOW, @y) # Imposto il prezzo di uscita pari al minimo dei minimi di @y barre fa' # solo quando effettivamente quello era un "pivot point". # Altrimenti imposto il prezzo di uscita ad un valore al quale il prezzo # non potra' mai arrivare, in modo che di fatto non esista una # condizione di uscita. SET exitPrice = IF(backLow <= forwLow, backLow, -1) # Condizione di uscita CLOSE <= exitPrice
Il codice che ho riportato qui sopra è solo un esempio, deve adattarlo alle sue necessità.
Ho usato due variabili, @x ed @y, alle quali ho assegnato un valore iniziale pari a 10, che potranno poi anche essere ottimizzate.
Max Francario
-
06-10-13, 15:24 #3
- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
Grazie Max,
cerco subito di decifrare il codice.
Volendo lo si può plottare come un indicatore, vero ?
Cordialmente.
Massimo
-
06-10-13, 17:21 #4
-
06-10-13, 22:14 #5
Ultima modifica di Apocalips; 06-10-13 alle 22:17
....non si desidera ciò che è facile ottenere (Ovidio)....
-
07-10-13, 00:44 #6
- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
Salve Max,
per completare l'esempio a fini didattici, le chiederei le seguenti modifiche.
Innanzitutto trasformare il tutto in un indicatore plottabile tipo Supertrend che quando siamo long segue il prezzo dal basso (pivot low) per poi passare sopra i prezzi (pivot high) quando colpito, con conseguente reverse della posizione.
Inoltre il valore dell'exitPrice non dovrebbe essere messo a -1, ma dovrebbe rimanere uguale al valore dell'ultimo pivot
finché non si incontra un nuovo pivot point.
E quando colpito dai prezzi, come nel caso del supertrend dovrebbe reversare al valore dell'ultimo pivot opposto.
Saluti
Massimo
-
07-10-13, 11:04 #7
Proprio a fini didattici è meglio che iniziate voi ad editare gli script e noi a correggere gli eventuali errori.
L'idea dell'indicatore è buona ed è semplice da costruire, cerca sul manuale digitando "control F" la voce indicatori custum oppure plot e provaci.
Poi, se non esce un risultato valido, posta il code che hai scritto e noi lo correggiamo.
(così capiamo dove gli utenti trovano difficoltà e possiamo integrare il manuale)..se corri dietro a due lepri, non ne prendi nemmeno una.
-
07-10-13, 12:43 #8
- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
Questa è una versione scorretta e non funzionante dell'indicatore in questione,
ma è quanto di meglio allo stato attuale riesco a fare. Spiacente !!!
INPUTS: @x(10), @y(10)
# Valore del Low di Y+1 periodi fa. E' il low candidato pivot da esaminare.
SET CandidatePivotLow = REF(Low,@y+1)
# Valore del minimo low di @y barre. Quelle a destra del candidato pivot.
SET RightMinLow = MIN(LOW, @y)
# Valore del minimo low di @x barre.
SET LLow = MIN(LOW, @x)
# Valore del minimo low di @x barre. Quelle a sinistra del candidato pivot.
SET LeftMinLow = REF(LLow,@y+2)
# Condizione per pivot.
SET Condition1 = (CandidatePivotLow <= LeftMinLow) AND (CandidatePivotLow > RightMinLow)
# Aggiorna valore trailing.
Set PivotLine = IF(Condition1, CandidatePivotLow, REF(PivotLine, 1))
SET PLOT1=PivotLine
In attesa di correzioni e commenti agli errori a beneficio degli utenti
cordialmente saluto.
Massimo