-
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.
Ho provato anche a creare il relativo signal ma, sembrerà pazzesco, pur nella sua estrema semplicità non riesco a farlo girare.....1234567891011INPUTS
:
@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
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
segnale sell123456INPUTS
:
@periods(14),@valmin(20),@valmax(80)
SET
REQUIRED_BARS
=
50
SET
SRSI = SthocasticRSI(
@periods)
SRSI >
@valmin AND REF(SRSI, 1) < @valmin
Grazie!!!!!!123SET
SRSI = SthocasticRSI(
@periods)
SRSI <
@valmax AND REF(SRSI, 1) > @valmax
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]