pos.IsActive не учитывает номер свечи, поэтому если код скрипта сгенерился так, что сначала позиция закрылась, а потом вызвался индикатор, то там уже будет false.

надо написать так
"!(pos.IsActive || pos.ExitBarNum > barNum)"