Richiamando un indicatore personalizzato nello screener es. mymodulo = CALL “modulo”[var1,var2,var3] come faccio a definire le variabili var1,var2, var3 nello screener stesso?
Dovrai scriverle come per ogni altra variabile assegnandogli un valore PRIMA di eseguire la CALL:
Var1 = ...
Var2 = ...
Var3 = ...
poi fai la CALL.
Al contrario degli indicatori, gli screener NON dispongono delle proprietà per settare dei valori diversi senza dovere cambiare il codice.
E’ poi possibile usare solo una variabile nello screener?
E’ possibile usare quante variabili si vogliono, dipende da cosa fai e cosa usi.
Fammi un esempio concreto di screener che vorresti.
Ho creato un indicatore che traccia canali di ATR attorno alla media a 200 vorrei uno screener che mi segnalasse i titoli con prezzo maggiore di emanATRN8 o minore di emanATRN8. Grazie di seguito il codice canale ema&nATR
// costruisce un fascio di canali
// di volatilità di prezzi
// attorno ad una media mobile calcolata a
// n periodi (default 200)
// distanti un multiplo dell'ATR
// calcolata a
// k periodi (default 200)
// 1,2,3,4,5,6,8 e 10
emanATRN1=ExponentialAverage[n](close)- AverageTrueRange[k](close)
emanATRP1=ExponentialAverage[n](close)+ AverageTrueRange[k](close)
emanATRN2=ExponentialAverage[n](close)- 2*AverageTrueRange[k](close)
emanATRP2=ExponentialAverage[n](close)+ 2*AverageTrueRange[k](close)
emanATRN3=ExponentialAverage[n](close)- 3*AverageTrueRange[k](close)
emanATRP3=ExponentialAverage[n](close)+ 3*AverageTrueRange[k](close)
emanATRN4=ExponentialAverage[n](close)- 4*AverageTrueRange[k](close)
emanATRP4=ExponentialAverage[n](close)+ 4*AverageTrueRange[k](close)
emanATRN5=ExponentialAverage[n](close)- 5*AverageTrueRange[k](close)
emanATRP5=ExponentialAverage[n](close)+ 5*AverageTrueRange[k](close)
emanATRN6=ExponentialAverage[n](close)- 6*AverageTrueRange[k](close)
emanATRP6=ExponentialAverage[n](close)+ 6*AverageTrueRange[k](close)
emanATRN8=ExponentialAverage[n](close)- 8*AverageTrueRange[k](close)
emanATRP8=ExponentialAverage[n](close)+ 8*AverageTrueRange[k](close)
emanATRN10=ExponentialAverage[n](close)- 10*AverageTrueRange[k](close)
emanATRP10=ExponentialAverage[n](close)+ 10*AverageTrueRange[k](close)
eman=ExponentialAverage[n](close)
RETURN eman COLOURED (0,0,255) AS "EMAn", emanATRP1 COLOURED (0,255,0) AS "EMAp1", emanATRN1 COLOURED (255,0,0) AS "EMAn1",emanATRP2 COLOURED (0,255,0) AS "EMAp2", emanATRN2 COLOURED (255,0,0) AS "EMAn2",emanATRP3 COLOURED (0,255,0) AS "EMAp3", emanATRN3 COLOURED
Per chiarezza dei messaggi sul Forum di Prorealcode, separate le parti del vostro codice usando il pulsante per l’inserimento del testo del codice.
Grazie.
Eccolo:
n = 200
k = 200
emanATRN8 = ExponentialAverage[n](close)- 8*AverageTrueRange[k](close)
//emanATRP8 = ExponentialAverage[n](close)+ 8*AverageTrueRange[k](close)
c1 = close > emanATRN8
c2 = close < emanATRN8
SCREENER[c1 OR c2]
Così però ti restituisce TUTTI.
Forse volevi usare emanATRP8 con c1 alla riga 5.
In tal caso sostituiscilo e togli le barre di commento alla riga 4.