А что происходит в функции onOrder? Если заявка выставляется выше цены, то скорее всего заявка будет удовлетворена тут же по рыночной цене, и поэтому заявка сразу будет иметь статус OS_MATCHED. Может быть вы эту ситуацию как-то пропускаете?
По сути тут нужно смотреть как присваивается price, ведь если он из спреда - то : какие If - ы стоят в самой функции onOrder() (ведь там у вас стоит алерт что он сработал)Хотя как я помню еще в версии 1.16 onATFOrder(id) - использовали эту штуку,...потом были новости, что она не актуальна. Но тем не менее попробуйте ее.
function onOrder(var trnid) { signal::output("It works!");}