Grazie Marco,
ne sono venuto a capo con Lastif, che in pratica è come se memorizzasse il valore che mi serviva.
Era più facile di quello che sembrava.
Questo segnale lo sto testando su Estox a 1 min, devo aggiungere un qualche filtro, se otterrò qualcosa di buono mi farò sentire

il buy signal basato su williams:
INPUTS: @Wperiods(50), @Psell(-35), @Pbuy(-70), @Xsell(-50), @Xbuy(-60)

# SET REQUIRED_BARS = @Wperiods
# @trailStop(100), @trailPercent(10), @stopLoss(1000)
# SET TRAILING_STOP = @trailStop SET TRAILING_PERCENT = @trailPercent SET STOP_LOSS = @stopLoss

SET Wil = WilliamsPctR(@Wperiods)
SET PBUY = CROSSOVER(Wil, @Pbuy)
SET A20 = LASTIF(CROSSOVER(-20, Wil))
SET A80 = LASTIF(CROSSOVER(Wil, -80))
SET A90 = LASTIF(CROSSOVER(Wil, -85))

PRINT(A20)
PRINT(A80)
PRINT(A90)

PBUY AND A80 <= A90 AND A90 < A20


il sell signal:
SET Wil = WilliamsPctR(@Wperiods)
SET PSELL = CROSSOVER( @Psell, Wil)
SET A20 = LASTIF(CROSSOVER(-20, Wil))
SET A80 = LASTIF(CROSSOVER(Wil, -80))
SET A10 = LASTIF(CROSSOVER(-15, Wil))

PSELL AND A20 <= A10 AND A10 < A80

il close buy:
SET Wil = WilliamsPctR(@Wperiods)
SET PSELL = CROSSOVER( @Psell, Wil)
SET A20 = LASTIF(CROSSOVER(-20, Wil))
SET A80 = LASTIF(CROSSOVER(Wil, -80))
SET A10 = LASTIF(CROSSOVER(-15, Wil))

CROSSOVER(-80, Wil) OR (PSELL AND A20 <= A10 AND A10 < A80)

il close sell:
SET Wil = WilliamsPctR(@Wperiods)
SET PBUY = CROSSOVER(Wil, @Pbuy)
SET A20 = LASTIF(CROSSOVER(-20, Wil))
SET A80 = LASTIF(CROSSOVER(Wil, -80))
SET A90 = LASTIF(CROSSOVER(Wil, -85))

CROSSOVER(Wil, -20) OR (PBUY AND A80 <= A90 AND A90 < A20)