Discussione: Aiuto per un signal
Visualizzazione Ibrida
-
10-10-16, 17:12 #1
- Data Registrazione
- May 2010
- Messaggi
- 47
Aiuto per un signal
Buongiorno,
non riesco a capire come stabilire una condizione a un signal (che so essere banale), cioè:
una volta che stabilisco che c'è un LOWEST di Giornata, alla prima barra verde, compro. Non riesco a capire come scrivere di verificare ogni volta un nuovo LOWEST.
Francesco
-
10-10-16, 19:55 #2
-
11-10-16, 10:54 #3
- Data Registrazione
- May 2010
- Messaggi
- 47
Mi sono spiegato malino...
Il codice che ho usato è low=todaylow and se c'è la barra verde ok. Ma ovviamente scritto così mi prende solo il primo low di giornata. Vorrei che per ogni nuovo Todaylow a partire dal primo, a cui segue una barra verde, mi parta il segnale buy.
Purtroppo faccio ancora fatica a capire i procedimenti logici per usare al meglio easyscript.
Grazie mille (per l'ennesima volta) per il prezioso aiuto
-
11-10-16, 12:39 #4
Ti ho fatto l'indicatore così vedi se è quello che desideri. (puoi importare il file allegato o fare copia incolla dal testo)
Se va bene, per trasformarlo in segnale basta che lo copi ed incolli in un segnale e togli dall'ultima riga "SET PLOT! =" e lasci solo "condizioneFinale"
# Calcola condizione sul prezzo minimo SET condizioneLow = (LOW = TODAYLOW()) # Numero di barre trascorse dall'ultimo prezzo minimo di giornata SET barreDaLowGiornata = LASTIF(condizioneLow) # Calcola condizione sul "colore" della barra attuale SET condizioneBarraVerde = (CLOSE > OPEN) # Calcola combinazione delle 2 condizioni precedenti SET combinazione = (condizioneBarraVerde) AND (barreDaLowGiornata >= 0) # Calcola quante volte la combinazione delle condizioni e' avvenuta dall'ultimo low di giornata SET somma = SUM(combinazione, barreDaLowGiornata) # Prende in considerazione solo la prima volta delle precedenti SET condizionePrimaCombinazione = (somma = 1) # Calcola la condizione finale SET condizioneFinale = (condizionePrimaCombinazione AND combinazione) SET PLOT1 = condizioneFinale
..se corri dietro a due lepri, non ne prendi nemmeno una.
-
11-10-16, 15:59 #5
Grazie Tiziano per l'indicatore
Andrebbe sistemata una cosetta
Ho fatto il debug della variabile barreDaLowGiornata
Questo contatore dovrebbe azzerarsi ad ogni prima barra di inizio nuova giornata, però sembra che questo non sempre avvenga andando a falsare il primo ingresso intraday come nel seguente caso:
grazie
ApoUltima modifica di Apocalips; 11-10-16 alle 16:14
....non si desidera ciò che è facile ottenere (Ovidio)....
-
12-10-16, 10:27 #6
-
11-10-16, 17:23 #7
- Data Registrazione
- May 2010
- Messaggi
- 47
-
11-10-16, 22:15 #8
ATTENZIONE !!!!!!!!
Non usare lo script per il backtest in quanto la funzioni di prezzo TODAYLOW e TODAYHIGH sono indipendenti dal timeframe e restituiscono pertanto nel backtest sempre il valore max/min di giornata calcolato a posteriori. Entreresti sempre sui max e i min di giornata con equity mostruose.
per il front test invece lo script va bene in quanto l'aggiornamento del TODAYLOW e TODAYHIGH avviene barra dopo barra.
ApoUltima modifica di Apocalips; 11-10-16 alle 22:18
....non si desidera ciò che è facile ottenere (Ovidio)....
-
24-10-16, 16:19 #9
- Data Registrazione
- May 2010
- Messaggi
- 47
Buongiorno, ho trovato che potrebbe funzionare meglio se il LOW fosse contemporaneo alla barra verde. E anche in questo caso (strano ma vero XD) non mi raccapezzo col codice. Perchè mi serve contare ogni volta un nuovo LOW che sia verde sulla barra stessa e non sulla successiva (o meglio, ANCHE sulla successiva).
Posso chiedere ancora un aiuto?
E poi non capisco come mai il mio tentativo di usare questo tuo codice abbia risultati strani : con trailing stop attivato spara 250 ordini su 1200 barre orarie e senza, solo controllato con lo stop fa solo 17 ordini alle prime barre caricate e stop. Dopo luglio non va più avanti e non capisco proprio il perchè.
# Calcola condizione sul prezzo minimo
SET condizioneLow = (LOW = TODAYLOW())
# Numero di barre trascorse dall'ultimo prezzo minimo di giornata
SET barreDaLowGiornata = LASTIF(condizioneLow)
# Calcola condizione sul "colore" della barra attuale
SET condizioneBarraVerde = (HACLOSE > HAOPEN)
# Calcola combinazione delle 2 condizioni precedenti
SET combinazioneVerde = (condizioneBarraVerde) AND (barreDaLowGiornata >= 0)
# Calcola quante volte la combinazione delle condizioni e' avvenuta dall'ultimo low di giornata
#SET somma = SUM(combinazioneVerde, barreDaLowGiornata)
# Prende in considerazione solo la prima volta delle precedenti
#SET condizionePrimaCombinazione = (somma = 1)
# Calcola la condizione finale
SET condizioneFinaleVerde = combinazioneVerde
condizioneFinaleVerde
-
24-10-16, 23:23 #10
Salve,
Le modifiche da apportare al codice in questo caso sono minime.
La riga infatti contempla già adesso il fatto che il Low di giornata corrisponda alla barra verde. L'unica riga da modificare è pertanto la 10, dove vengono contate le occorrenze. Se il Low di giornata corrisponde alla barra attuale, barreDaLowGiornata vale zero. Se barreDaLowGiornata vale zero, allora la somma eseguita alla riga 10 su zero periodi vale sempre e comunque zero. Pertanto bisogna modificare il numero di periodi utilizzati nella somma, includendo anche questa condizione, modificando quindi il codice in questo modo:
# Calcola condizione sul prezzo minimo SET condizioneLow = (LOW = TODAYLOW()) # Numero di barre trascorse dall'ultimo prezzo minimo di giornata SET barreDaLowGiornata = LASTIF(condizioneLow) # Calcola condizione sul "colore" della barra attuale SET condizioneBarraVerde = (CLOSE > OPEN) # Calcola combinazione delle 2 condizioni precedenti SET combinazione = (condizioneBarraVerde) AND (barreDaLowGiornata >= 0) # Calcola quante volte la combinazione delle condizioni e' avvenuta dall'ultimo low di giornata SET somma = SUM(combinazione, barreDaLowGiornata + 1) # Prende in considerazione solo la prima volta delle precedenti SET condizionePrimaCombinazione = (somma = 1) # Calcola la condizione finale SET condizioneFinale = (condizionePrimaCombinazione AND combinazione) SET PLOT1 = condizioneFinale
La modifica è presente sulla riga 10.
Con l'uscita Trailing Stop è abbastanza normale ottenere nei backtest un numero molto più elevato del normale di trades: una volta raggiunto il valore di prezzo corrispondente al Trigger del Trailing Stop, da quel punto in avanti qualsiasi ritracciamento potrebbe portare ad eseguire l'uscita dal trade corrente, riabilitando quindi la valutazione del codice di Buy / Sell. Se nel trading system è presente solo lo Stop Loss, senza uscite Trailing Stop e Take Profit, è possibile che un trade rimanga aperto molto a lungo. In particolare, se non c'è uno script di entrata di segno opposto (Sell), il trade potrebbe rimanere aperto all'infinito, finché non tornerà in perdita.
Max Francario