Discussione: Indicatore SthocasticRSI
-
08-11-13, 17:37 #1
- Data Registrazione
- Feb 2013
- Località
- Verona/Vicenza
- Messaggi
- 154
Indicatore SthocasticRSI
Ciao a tutti!
Dopo essere entrato anche io a far parte di questo validissimo gruppo, ho provato subito a buttare giù qualcosina in EasyScript, giusto per iniziare a testarlo!
Ho elaborato questo semplice indicatore che trovo particolarmente interessante in quanto di più immediata lettura rispetto al semplice RSI.
INPUTS: @periods(14),@lineamin(20),@lineamax(80) SET RSIL = MIN(RSI(CLOSE, @periods), @periods) SET RSIH = MAX(RSI(CLOSE, @periods), @periods) set DIFF = MAX(RSI(CLOSE, @periods), @periods)-MIN(RSI(CLOSE, @periods), @periods) SET SthocasticRSI = ((RSI(CLOSE, @periods)-RSIL)/DIFF)*100 set plot1 = SthocasticRSI set plot2 = @lineamin set plot3 = @lineamax
Ho provato anche a creare il relativo signal ma, sembrerà pazzesco, pur nella sua estrema semplicità non riesco a farlo girare.....
Praticamente genera il segnale buy quando lo SthocasticRSI attraversa dal basso verso l'alto la linea del minimo e il segnale sell quando attraversa dall'alto verso il basso la linea del massimo.
Mi sapete dire dove cavolo sbaglio??????
segnale buy
INPUTS: @periods(14),@valmin(20),@valmax(80) SET REQUIRED_BARS = 50 SET SRSI = SthocasticRSI(@periods) SRSI > @valmin AND REF(SRSI, 1) < @valmin
segnale sell
SET SRSI = SthocasticRSI(@periods) SRSI < @valmax AND REF(SRSI, 1) > @valmax
Grazie!!!!!!
Beppe
-
08-11-13, 19:42 #2
Grazie e complimenti!
Ora non ho accesso a beeTrader per darti il codice finito, comunque, per far eseguire i tuoi segnali devi usare CROSSOVER (SRSI, @valmin) nel Buy , mentre nel sell usi CROSSOVER (@valmax, SRSI )
e credo sia meglio creare una tua funzione che chiamerai "SthocasticRSI"..se corri dietro a due lepri, non ne prendi nemmeno una.
-
08-11-13, 20:13 #3
- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
-
08-11-13, 20:36 #4
- Data Registrazione
- Feb 2013
- Località
- Verona/Vicenza
- Messaggi
- 154
Grazie Tiziano, ma siamo proprio alle basi delle basi della scuola elementare!!!!!!
Comunque, come con altri linguaggi di programmazione (tipo MQL5), l'unico modo per imparare è provare e riprovare e capire perfettamente la sintassi del linguaggio....
Avevo utilizzato subito la funzione CROSSOVER esattamente come l'hai scritta tu ma senza risultati, quindi pensavo che sbagliassi qualcosa anche perchè sul manuale è scritto che rileva il passaggio dal basso verso l'alto di un vettore rispetto all'altro e non avevo intuito che anche una variabile come @valmin potesse essere considerata un vettore!!!
Come dicevo, avevo già provato a scrivere il codice come suggerisci tu ma non succede niente ugualmente.....
Ho creato anche la funzione SthocasticRSI memorizzandola come funzione (ho uno SthocasticRSI.func e uno SthocasticRSI.indicator) anche se non ho capito se quando viene chiamata la routine esterna, il codice si riferisce al .function o al .indicator......
Il codice della funzione, comunque, è identico a quello dell'indicatore!
Dove sbaglio???????
-
08-11-13, 20:43 #5
- Data Registrazione
- Feb 2013
- Località
- Verona/Vicenza
- Messaggi
- 154
No Massimo non capisco cosa intendi.....
Non avendo capito immediatamente l'utilizzo di CROSSOVER ho bypassato il problema impostando quella condizione:
per rilevare il passaggio dal basso verso l'alto dell'indicatore rispetto alla linea 20, ho detto al programma di controllare che l'indicatore relativo all'ultima barra fosse maggiore di 20 e contemporaneamente quello relativo alla barra (n-1) fosse minore di 20.....
Così facendo ho fotografato proprio il passaggio dal basso verso l'alto della linea 20!
Il contrario, ovviamente, per il segnale sell.....
-
08-11-13, 21:17 #6
- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
-
08-11-13, 21:36 #7
- Data Registrazione
- Feb 2013
- Località
- Verona/Vicenza
- Messaggi
- 154
segnale buy: l'indicatore attraversa dal basso verso l'alto la linea pari al valore corrispondente a @valmin
segnale sell: l'indicatore attraversa dall'alto verso il basso la linea pari al valore corrispondente a @valmax
Grazie!!
Beppe
-
08-11-13, 22:11 #8
- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
-
08-11-13, 22:52 #9
- Data Registrazione
- Feb 2013
- Località
- Verona/Vicenza
- Messaggi
- 154
Infatti Massimo!!!
Invece se lo testo in backtest non mi da nessun risultato!!!!
Mi sto scervellando ma non capisco come mai non funziona essendo di una semplicità disarmante......
-
09-11-13, 00:14 #10
- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
Ciao Beppe,
ho copiato e leggermente modificato il tuo codice, creandolo come indicatore per plottarlo e come signal.
Il plot dell'indicatore funziona, mentre il signal non fornisce nessun ordine di buy o sell.
Anch'io non riesco a trovare l'errore. Che si tratti di un bug di beeTrader ?
Saluti
Massimo
[High]
# Signal Buy Script
INPUTS: @periods(14), @lineamin(20), @lineamax(80)
SET RSIL = MIN(RSI(CLOSE, @periods), @periods)
SET RSIH = MAX(RSI(CLOSE, @periods), @periods)
SET DIFF = RSIH - RSIL
SET SthocasticRSI = ((RSI(CLOSE, @periods) - RSIL) / DIFF) * 100
SET SRSI = SthocasticRSI
SRSI > @lineamin AND REF(SRSI, 1) < @lineamin
[/High]
[High]
# Signal Sell Script
SET RSIL = MIN(RSI(CLOSE, @periods), @periods)
SET RSIH = MAX(RSI(CLOSE, @periods), @periods)
SET DIFF = RSIH - RSIL
SET SthocasticRSI = ((RSI(CLOSE, @periods) - RSIL) / DIFF) * 100
SET SRSI = SthocasticRSI
SRSI < @lineamax AND REF(SRSI, 1) > @lineamax
[/High]
[High]
# Indicator
INPUTS: @periods(14), @lineamin(20), @lineamax(80)
SET RSIL = MIN(RSI(CLOSE, @periods), @periods)
SET RSIH = MAX(RSI(CLOSE, @periods), @periods)
SET DIFF = RSIH - RSIL
SET SthocasticRSI = ((RSI(CLOSE, @periods) - RSIL) / DIFF) * 100
SET SRSI = SthocasticRSI
SET PLOT1 = SRSI
SET PLOT2 = @lineamin
SET PLOT3 = @lineamax
[/High]