Discussione: Condizione LASTIF con TODAY
-
05-12-13, 01:06 #1
- Data Registrazione
- Dec 2009
- Messaggi
- 813
Condizione LASTIF con TODAY
Sapete dirmi cosa sbaglio? Vorrei uscire dal trade quando il prezzo scende sotto il supporto del giorno...
# Calcolo la Frontiera della direzione Ribassista SET FdDDown = TODAYOPEN() - @AmpFdD # Vettore per condizione di uscita ribassista SET FdDDownExit = CLOSE < FdDDown # Uso il LASTIF per contare quante barre il close resta sotto la linea ribassista SET barre = LASTIF(FdDDownExit > REF(FdDDownExit, 1)) # Condizione di uscita # barre > 3 significa che il close è da 15 minuti sotto la linea ribassista # ed anche # la Slope della SignalLine e' negativa barre > @exitBars
Se serve il signal lo vedete in questo post http://www.playoptions.it/vbforum/sh...ll=1#post68083Ultima modifica di CIVT; 05-12-13 alle 01:11
-
05-12-13, 11:11 #2
- Data Registrazione
- Feb 2012
- Località
- Pisa
- Messaggi
- 351
Ciao,
a prima vista l'uso del LASTIF sembrerebbe corretto.
Ma se lo script (immagino che sia un Exit Long Script) lo metti così, ti funziona?
# Calcolo la Frontiera della direzione Ribassista SET FdDDown = TODAYOPEN() - @AmpFdD # Vettore per condizione di uscita ribassista SET FdDDownExit = CLOSE < FdDDown # Uso il LASTIF per contare quante barre il close resta sotto la linea ribassista SET barre = LASTIF(FdDDownExit > REF(FdDDownExit, 1)) # Condizione di uscita # barre > 3 significa che il close è da 15 minuti sotto la linea ribassista # ed anche # la Slope della SignalLine e' negativa # barre > @exitBars FdDDownExit
-
05-12-13, 11:24 #3
Salve,
il mio consiglio è di provare a modificare lo script in questo modo:
# Calcolo la Frontiera della direzione Ribassista SET FdDDown = TODAYOPEN() - @AmpFdD # Vettore per condizione di uscita ribassista SET FdDDownExit = CLOSE < FdDDown # Calcolo la condizione per l'istruzione LASTIF SET condizione = FdDDownExit > REF(FdDDownExit, 1) # Verifica nella finestra di debug della condizione #PRINT(condizione) # Uso il LASTIF per contare quante barre il close resta sotto la linea ribassista SET barre = LASTIF(condizione) # Condizione di uscita # barre > 3 significa che il close è da 15 minuti sotto la linea ribassista # ed anche # la Slope della SignalLine e' negativa barre > @exitBars
Max Francario
-
05-12-13, 14:36 #4
- Data Registrazione
- Dec 2009
- Messaggi
- 813
Ciao e grazie a tutti per i suggerimenti ma non funziona il codice modificato, vorrei creare un exit order dinamico in luogo del classico stop loss in denaro, lo spunto arriva dal codice che ha scritto Tiziano nel post del Bobao http://www.playoptions.it/vbforum/sh...ll=1#post65623
Exit Long:
# Primo ExitLong (completo) SET c1 = CROSSOVER(BigBottom, SignalLine) OR CROSSOVER(SmallBottom, SignalLine) OR CROSSOVER(SmallTop, SignalLine) # Secondo ExitLong (pendenza SignalLine) # Usiamo il LASTIF che misura il numero di barre da quando # la SignalLine e' verde SET barre = LASTIF(SignalLine > REF(SignalLine, 1)) # Condizione di uscita # barre > 3 significa che le ultime 2 barre la SignalLine e' stata rossa # ed anche # la Slope della SignalLine e' negativa SET c2 = barre > @exitBars AND LinearRegressionSlope(@price, @SLperiods) < 0 c1 OR c2
in questo caso viene eseguito l'ordine di uscita se la signal line corrente è superiore alla precedente da almeno n°barre e se la slope e minore di zero.
-
05-12-13, 21:56 #5
- Data Registrazione
- Dec 2009
- Messaggi
- 813
Debuggando l'indicatore ho capito che la condizione "SET condizione = FdDDownExit > REF(FdDDownExit, 1)" era superflua quindi eliminandola e invertendo il segno "CLOSE < FdDDown" riesco finalmente a contare da quante barre il CLOSE non è minore di FdDDown
Quindi il codice corretto è questo:
# Calcolo la Frontiera della direzione Ribassista SET FdDDown = TODAYOPEN() - @AmpFdD # Vettore per condizione di uscita ribassista SET FdDDownExit = CLOSE > FdDDown # Calcolo la condizione per l'istruzione LASTIF #SET condizione = FdDDownExit > REF(FdDDownExit, 1) ## Verifica nella finestra di debug della condizione #PRINT(condizione) # Uso il LASTIF per contare quante barre il close resta sotto la linea ribassista SET barre = LASTIF(condizione) # Condizione di uscita # barre > 3 significa che il close è da 15 minuti sotto la linea ribassista # ed anche # la Slope della SignalLine e' negativa barre > @exitBars
Ecco il risultato, come vedete modificando il numero di barre da 3 a 15 si sposta lo stoploss
-
06-12-13, 10:40 #6