Hi,
indeed you can change the entire execution chain of blocks with your own custom blocks and add any type of orders this way. On the other hand I doubt you want to take this path (though why not if you really really need it
) since it means you would need to rewrite the execution provider, execution simulator and probably other heavy blocks. It can be simple enough with the execution simulator, since you can leave the old one, add your custom block that knows how to fill non-standard orders, and route such orders to your custom simulator. But it's not that easy to add support for a new order type in the existing execution provider without rewriting it.
I think the solution to this problem is to
1) try to do our best to support all (including non-standard) order types if we implement an interface to a broker
2) add a list of custom fields to Command/Execution report classes so that a user can store additional non-standard information needed to implement a non-standard order type.
Regards,
Anton