In your conditions you ask whether or not the indicator is green or red at the moment. Well, technically you are checking whether or not the values in the buffers are different or equal to EMPTY_VALUE. The thing is that obviously the green (or red) line stays green (or red) for multiple candles in a row. What you actually want is to detect when the indicator line turns green or turns red, you want to do something on the first "green" or "red" candle.
You can try "Indicator appear" block, this one detect when the buffer turns from EMPTY_VALUE to something else. Or try a condition like this:
Indicator x< (Numeric -> Value) EMPTY_VALUE
or...
Indicator x> (Numeric -> Value) 0
I didn't tested these conditions now, I might be wrong, but I think they will work.