I have a suggestion like what other exchange are doing. For example,
If a buyer wants to buy 100,000 GRN but I only have 50,000 GRN to sell for him/her then the sell order shall be filled and will proceed at his/her desired cost. And the remaining 50,000 GRN will remain as his sell order which can be filled by other traders, how about this?
If buyer want to buy 100 000 GRNs for 0.01 BTC, for example. And you want to sell 50 000 GRNs for 0.005 BTC.
You makes buy order, he makes sell order. He gets 50 000 coins and you get 0.005 BTC.
His left 0.005 BTC stays as active order, until somene do not sell to him GRN for this price
price in this case will be 10 000 000 GRNs for 1 BTC
or revert exchange rate 0.0000001 BTC for 1 GRN