Volume is the number of contracts traded. If you have a 150 volume chart, one bar could be 150 trades, or it could be 1 trade, but the volume for that bar would be 150.
Do this to prove it to your self, create a 1 tick chart and add the Volume indicator. You will see that volume is not always 1
Now create a 150 volume chart and add the volume indicator. You will see the volume is always 150.
Keeping it simple, if a trade comes in to sell 5 contracts at price X, it must get filled with 5 contracts to buy at X. The system for the most part is FIFO, First In First Out processing. Market orders have precedence, when they hit the system they get filled at the market price - even before a limit order, causing/adding to the potential slippage of limit orders.
If a trade comes in for 5 contracts, the fill of this order could come from limit or a market orders, it just depends on the state of the queue at that given point in time.
I sure wish I could determine how it got filled as that may provide an edge. The closest I know how to get to that is looking at the Bid and Ask. With futures the spread is typically small between the bid and ask (typically 0, 1 or 2 ticks). Aggressive Buyers buy at the ask and aggressive Sellers sell at the bid - I am basing my measurement on the aggressor trader, the market order traders.
You can test this too, in simulation, during a slow time period, if you place a buy market order what price do you get filled at, bid or ask? Conversely if you issue a market sell order what do you get filled at?
What's even more weird, typically standing sell orders are above the ask, so the market moves upward looking for sellers - it either finds them or it does not. If it finds sellers the up movement does 1 of 2 things, goes sideways or goes down. But if there are no sellers to be found, price continues up. It's the law of supply and demand. Aggressive buyers is a low supply of sellers and the market moves to find the sellers. The market moves between points of equilibrium, seeking equilibrium.