I wonder if anything could fail here and you would be better off wrapping each such call in the for loop in an exception handler. Otherwise you may fail halfway in between. Of course you still need some form of compensation logic, but at least you try to execute on every instrument