Buonasera, volevo chiedere se e come è possibile far funzionare uno screener solo se sono rispettate determinate condizioni a monte, in modo da filtrare ulteriormente i risultati, per esempio: se “x” barre fa il prezzo ha toccato solo determinati livelli di ritracciamento, allora faccio funzionare lo screener con le condizioni attuali.
Io ho provato un concetto di questo tipo che però non funziona (ho provato anche con istruzione FOR per x da 1 a 3 ma non funziona comunque):
// c1-c3 sono le condizioni a monte
IF c1 THEN
x = 1
ELSIF c2 THEN
x = 2
ELSIF c3 THEN
x = 3
ENDIF
// c10-c12 sono le condizioni attuali
IF x = 1 OR x = 2 OR x = 3 THEN
SCREENER[c10 AND c11 AND c12]
ENDIF
Grazie in anticipo
L’istruzione SCREENER all’interno di un blocco condizionale IF…ENDIF, purché accettato (mentre negli indicatori è proibito) è un errore logico. Non c’è ragione di metterlo li e se non si riesce a farne a meno significa che il codice scritto prima è logicamente sbagliato.
Non capisco bene cosa tu intenda e cosa abbiano a che fare c1, c2 e c3 con c10, c11 e c12.
Fammi un esempio concreto con uno io più indicatori.
Per esempio: poniamo che c1, c2 e c3 siano dei livelli di ritracciamento, quindi dei lowest low di periodo, ben definiti (esempio 38,2 50 e 61,8% con un po’ di tolleranza chiaramente) rispetto ad una gamba rialzista precedente. Bene, io voglio fare in modo che lo screener mi tiri fuori solo i titoli che hanno rispettato questi livelli di ritracciamento e che solo successivamente soddisfino le altre condizioni dello screener sul prezzo attuale (c10, c11 ecc). Come posso fare ad aggiungere questo filtro?
Spero di essere stato più chiaro ora.
Grazie
Puoi fare:
a1 = (close >= prezzo618) //Prezzo > 618 (comprende anche 50 e 38.2)
b1 = Condizione1
b2 = Condizione2
b3 = Condizione3
x = a1 AND b1 AND b2 AND b3
SCREENER[x]
Ovviamente dovrai avere calcolato prima PREZZO618.