What determines stock price movements?

Got asked this question by a friend and realised I didn’t really know myself.

I know that the price goes up when people buy and goes down when more people want to sell, but how is the exact price movement calculated?

Is it as simple as the bid/ask spread? E.g. If the most recent share price is £10 and the next available seller has a limit sell of £11, the share price would increase to £11 once I bought?

Wouldn’t this cause huge volatility in stocks with low volume?

Essentially, people with shares who want to sell say what the minimum price they will accept is. People who want to buy say what the maximum they will pay is.

At any given moment, the market maker tries to find the price that will result in the maximum number of shares to be sold that satisfies people’s price conditions.

Typically, there will be sellers wanting more than the current price, and buyers who don’t want to pay the current price, so as soon as a suitable matching bid comes in, that can complete the sale.

The bid-ask spread represents the profit the market maker makes on the transaction. The buyer must pay a slightly higher price than the buyer receives.

A market bid just accepts the current price, whatever that is, but that means you could end up with a bad deal if there isn’t a large volume of transactions, so if you can you should use limit orders unless the stock has a high volume and low volatilty, in which case it doesn’t matter much.


Yes, your example is essentially correct (though it’s also possible to directly negotiate trades at prices other than the bid and ask prices), and I saw an instance of it in real time last week. I was looking at my Google spreadsheet of my portfolio when my ‘price change this week’ column for GDIG (a mining ETF that I hold at another broker) went from +5% to +21% right before my eyes. I got pretty excited – was this the jump I’d been waiting for? Sadly, no. Shares had been trading at $32.78 or $32.79 earlier that morning, and then one trade of about 6 shares, if I remember correctly, went through at $37.76. The data feed therefore reported that the value of the ETF was now $37.76 per share. Of course, no other trades went through at that price, and if I’d tried to offer my shares at that price, I would have been ignored, and it returned to trading under $33 for the rest of the day. So this is what the price graph looks like in Google:

Yes, it does!


Supply and demand