First Focus: Bid-Ask Spread
CFD sites (bucketshops, read more here about what that means) and futures exchanges (with orderbooks) alike are affected with a non-zero spread between the price you can buy at immediately vs. the price you can sell at immediately.
CFD sites will often advertise as being "no fee", but really when they are maintaining a spread and offering you the liquidity, that difference between what you can immediately buy and sell for (the spread) is in fact a fee by a different name.
Let's look at a few examples and run down how they work. SimpleFX above shows a $1 spread between its bid and offer that you can enter position for on BTCUSD: Buy at 420.26 , Sell at 419.26. That means if you were to buy and sell right after each other, you would lose 0.23% on the nominal price. That means if you were at max 10x leverage that SimpleFX offers for BTCUSD, you would lose 2.3% of your margin right at the entry of the position. This is, in effect, just a fee for entering the position.
Here's 1Broker, another CFD provider, and the spread they offer on BTCUSD:
Finally, here's WhaleClubCo spread which is the least competitive of the bunch:
The three examples above are for CFD sites which offer trading of BTCUSD. Let's quickly look at the bid-ask spread of some actual futures and spot exchanges which use an orderbook and have customers trading against each other, not the CFD trading against the customer.
Here's Bitfinex from their orderbook, note that the spread is tiny... only $0.10, which is 0.024%. At max leverage of 3.3x the spread ends up costing the trader 0.08%. However, on Bitfinex there's also a 0.2% transaction fee for taker and a sliding scale on maker. If you are on the highest fee structure then you end up paying 0.2% + 0.2% + 0.08% = 0.48% on the trade:
All the above examples, from CFD sites to Spot exchange to Futures exchange, illustrate the importance of NOT DOING MARKET ORDERS. Focus on setting a limit order that others can fill on orderbook exchanges, or the CFD site will have the price move up to fill you. Not only do you get a better entry price and avoid the sting of the spread (especially on orderbook exchanges, not so much on CFD), but it is a good way to regulate your own behavior and instill some discipline.
Lesson 1: Focus on making limit orders to reduce the sting of the bid-ask spread.
Second Consideration: Margin & Leverage Interest Fees
Starting again with SimpleFX fee on the BTC/USD pair:
Next, at 1Broker you have differing margin rates for long and short for BTC/USD:
And finally, let's look at the third CFD site, Whale Club Co, to see their fee structure:
So we see that the CFD sites are quite cumbersome with fees, between the bid-ask spread and the overnight fees for margin, it can get quite costly trading Bitcoin on them when there are cheaper alternatives.
Bitfinex, the top bitcoin spot-margin exchange, has a customer-based lending system. So instead of borrowing from the exchange and paying the financing charges like that, instead you are paying whatever the market rate is for the funds that other exchange customers are offering.