Why there is price difference between sell and buy prices in CFD?
That is called the spread. For CFD trading you pay the spread as a transaction fee.
But isn’t trading212 is commission free platform?
For invest account it is. As far as I know they make money using the spreads. So if you only use the Invest account, then everything is free.
The invest account also has spread between buy and sell prices, but the buy and sell differ by a smaller percentage than they do for the CFD on the same stock. The spread in the invest account differs from stock to stock according to the volatility and liquidity of the stock. In the invest account the spread provides profit for market makers. In the CFD account it provides profit for Trading 212. My understanding is that CFD providers do not actually hedge trades that clients place - they simply take the opposite position and know that in the average over many client trades they will make money on the spread. Commission is a charge made per trade and different to spread. On other platforms you might pay commission of as much as £11.95 per trade, whereas on Trading 212 you pay 0.