What is the difference between your implementation and
bt built-in implementation?
Your question is not totally clear, but let me try.
You want to issue buy order and sell order at the same time for the same data and have position open. Right?
You can do this only if order sizes are different. Or you use different data feeds for buy and sell orders. Otherwise it will be zero position after both orders processing.
In order to make all-in-one sizer I've used both cheat-on-open feature and built-in filter which splits the candle in 2 candles: OOOO and OHLC.
With the cheat-on-open feature the broker value from the previous day is used. Which left me sometime with the excessive amount of cash after rebalancing of positions. Filter above gives an opportunity to use broker value recalculated for open price.