Ho realizzato questo semplice screener che mi dovrebbe aiutare a selezionare i cross su cui lavorare settimana x settimana ma ho 2 problemi:
- Non sembra funzionare, non tira fuori nulla anche controllando i valori degli indici
- Vorrei che evidenziasse, sulla lista, in modo diverso segnali Long e Short, si può fare ?
In allegato il codice
JSParticipant
Veteran
Try this (V12)…
//----------------------------------------------------------------------
// ForexManual-scr1.0
//----------------------------------------------------------------------
Signal = 0
// --------- Filtro Volumi giornalieri ----------
//
TIMEFRAME(daily)
// volume attuale maggiore del volumen medio di 50 cnadele
AVGVol = average[30](Volume)
CondVol = Volume[1]>AVGVol
TIMEFRAME(default)
// ----------------------------------------------
// ----------- Filtro RSI e CCI -----------------
RSISignal = RSI[14](Close)
CCISignal = CCI[20](Close)
//Condizioni di segnale Long
CondL1=RSISignal<=RSIDownThres
CondL2=CCISignal<=CCIDownThres
//Condizioni di segnale Short
CondS1=RSISignal>=RSIUpThres
CondS2=CCISignal>=CCIUpThres
if CondVol and CondL1 and CondL2 then
Signal=1
elsif CondVol and CondS1 and CondS2 then
Signal=-1
endif
SCREENER [Signal=1 or Signal=-1](1 as "Long", -1 as "Short")
I valori negativi non li accetta:
//----------------------------------------------------------------------
// ForexManual-scr1.0
//----------------------------------------------------------------------
Signal = 0
x = 0
// --------- Filtro Volumi giornalieri ----------
//
TIMEFRAME(daily)
// volume attuale maggiore del volumen medio di 50 cnadele
AVGVol = average[30](Volume)
CondVol = Volume[1]>AVGVol
TIMEFRAME(default)
// ----------------------------------------------
// ----------- Filtro RSI e CCI -----------------
RSISignal = RSI[14](Close)
CCISignal = CCI[20](Close)
//Condizioni di segnale Long
CondL1=RSISignal<=RSIDownThres
CondL2=CCISignal<=CCIDownThres
//Condizioni di segnale Short
CondS1=RSISignal>=RSIUpThres
CondS2=CCISignal>=CCIUpThres
if CondVol and CondL1 and CondL2 then
Signal=1
x = AVGVol
elsif CondVol and CondS1 and CondS2 then
Signal= 2
x = -AVGVol
endif
SCREENER [Signal](x as "Average Volume")
Come non accetta i valori negativi ? Allora anche la variabile CCIDownThres = -100 non va bene ?
Tutte le volte che codifico segnali negativi ho risultati strani, se uso due valori diversi, ma positivi, funzionano.
Devi verificarlo.
Ad ogni modo non cambia molto tra segnali negativi e positvi, restituire 1 e 2 invece di 1 e -1 cambia poco!