Some signals getting skipped

I am using the following Buy and Sell codes for the Camirilla Pivot Trading

Buy = O < L3 AND H > L3 AND TimeNum() > t1 AND TimeNum() < t0
		OR O < H4 AND H > H4 AND TimeNum() > t1 AND TimeNum() < t0
		OR Cross(H,H4) AND TimeNum() > t1 AND TimeNum() < t0;
Short = O > L4 AND L4 > L AND TimeNum() > t1 AND TimeNum() < t0
		OR O > H3 AND H3 > L AND TimeNum() > t1 AND TimeNum() < t0
		OR Cross(H3,L) AND TimeNum() > t1 AND TimeNum() < t0;


Sell = Cross(H,H1)
		OR Cross(L4,L)
		OR Cross(H,H5)
		OR Cross(H3,L)		
		OR TimeNum() > t2;
Cover = Cross(L5,L)
		OR Cross(H,L3)
		OR Cross(L1,L)
		OR Cross(H,H4)
		OR TimeNum() > t2;

Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
Short = ExRem(Short,Cover);
Cover = ExRem(Cover,Short);

The problem is when there is a Long Range Candle hitting 2 levels at a time some signals get skipped. Can this problem be resolved by using IIF() function or something else. Please advice how

The buy and all other signal variables are arrays, which means one element for each bar.
so means only one signal per bar.

A way to solve this could be to define multiple sub-signal variable and then you can decide what to do with them like.

BuyL1 = ... specific condition for L1 buy only AND H < L2
BuyL2 =  specifc condition for L2 AND H < L3

then use some IIF() to apply another round of signal sorting.

Thanks for your reply