Buongiorno,
Il seguente codice funziona in probacktest, l’ho adattato per farne uno screener ma non funziona. Non trova niente.
Lo screener dovrebbe individuare mercati in cui vi sono state almeno 7 chiusure giornaliere maggiori della media mobile semplice a 5 periodi, seguita da 1 chiusura minore alla media mobile semplice.
Sma5 = average[5,0](close)
c1 = (summation[7](close > Sma5) = 7)
c2 = close < Sma5
SCREENER[c1 AND c2] ((close/DClose(1)-1)*100 AS “% Var ieri”)
Grazie per l’aiuto
Non funziona perché la riga 3 contraddice la riga 2.
Alla riga 2 chiedi che le ultime 7 candele abbiano close > Sma5, però con l’ultima close < Sma5.
Quindi perché sia vera la riga 3 bisogna che alla 2 siano solo 6 le candele rialziste, ma allora quella condizione sarà falsa, e viceversa.
Devi dirgli che le 7 candele siano close > Sma5, ma a partire da quella precedente, in quanto quella in corso deve essere opposta:
Sma5 = average[5,0](close)
c1 = (summation[7](close > Sma5) = 7)
c2 = close < Sma5
SCREENER[c1[1] AND c2] ((close/DClose(1)-1)*100 AS “% Var ieri”)
Perfetto, grazie Roberto!
E’ possibile escludere i dati dell week-end dal calcolo?
Vorrei inglobare la candela della domenica in quella del lunedì, ma a quanto ho capito non è possibile. In tal caso escludere la candela della domenica sarebbe sufficiente.
Prova questo:
Sma5 = average[5,0](close)
Count = 0
FOR i = 1 TO BarIndex
IF (OpenDayOfWeek[i] >= 1) AND (OpenDayOfWeek[i] <=5) THEN
IF close[i] < Sma5[i] THEN
break
ENDIF
Count = Count + 1
IF Count = 7 THEN
break
ENDIF
ENDIF
NEXT
c1 = (Count = 7)
c2 = close < Sma5
SCREENER[c1 AND c2] ((close/DClose(1)-1)*100 AS "% Var ieri")