A contract for difference is a type of financial instrument that allows traders to speculate on an asset without having to purchase it outright. Instead, CFD contracts allow you to trade the difference between the price when the trade was made and when it is finally closed. The derivative nature of CFDs allows for trades to be made on all sorts of underlying assets.