eval and position sizing

use of these sell rules below lead to “Sell error: shares < 0” during simulation

(Rank < 90) OR
Eval(GainPct > 100, 0.333 , 0) OR
Eval(GainPct > 200, 0.5 , 0) OR
Eval(PctFromHi < -20, 0.333 , 0) OR
Eval(PctFromHi < -40, 0.5 , 0)

is there a workaround to deal with these rules ?

ps : even with 2 rules i get the sell error !

Eval(GainPct > 100, 0.5 , 0)
Eval(PctFromHi < -30, 0.5 , 0)