Wundert mich nicht, dass dich die Gesetze verwirren, weil das in diesem Fall (CFD Margin Trading mit Spot Collateral) nicht ganz trivial ist.
Ich fange daher mal einfach (und etwas abgewandelt) an und mache es am Beispiel
Kraken BTC/EUR (da gab es 2018 eine schöne Illiquidität welche die steuerliche Betrachtung vereinfacht).
Sagen wir du kaufst am 22.12.2017 im Spot Trading 0,15 BTC für €1500 (beim Kurs von 10k€), deine Balance zeigt also nur 0,15 BTC sonst nichts.
Am 13.01.2018 steigt der Kurs kurzzeitig auf 20k€ wo du eine 5x Short Position über 0,75 BTC aufmachst, die du am 14.01.2018 beim Kurs von 6.666,66€ wieder schließt. Dein CFD Handelsgewinn beträgt 1,5 BTC bzw. 10.000€.
Für die CFD Handelsgewinne ist der Zeitpunkt des Zuflusses entscheidend. Hier müssen die 10.000€ Handelsgewinn versteuert werden, auch dann wenn die 1,5 BTC am Jahresende 2018 nur noch ~5k€ wert sind. Für die Versteuerung greift normalerweise die Abgeltungssteuer von 25% + Soli, ist dein persönlicher Steuersatz niedriger kannst du in der Steuererklärung aber eine Günstigerprüfung beantragen und zahlst dann den persönlichen Steuersatz, bei 10.000€ dürften das nahe 0% liegen (je nach anzurechnenden Leistungen).
Da der Handelsgewinn in BTC ausgezahlt wird hast du nun 1,5 BTC mehr, die steuerlich als Spot Coins ja anders betrachtet werden. Hier gilt dann der 14.01.2018 als Anschaffungszeitpunkt und die 6.666€ als Anschaffungskurs. Ab dem 14.01.2019 sind alle Spot Bestände steuerfrei, d.h. wenn du 2024 deine 1,65 BTC bei 90k€ für ~150k€ verkaufst fallen a.h.S. keine weiteren Steuern an. (Alles unter Vorbehalt, bin ja kein Steuerberater)
Komplizierter wird das ganze wenn du in 2018 wirklich getradet hast, sprich auch Fees und realisierte Verluste angefallen sind. Beides würden ja von deiner BTC Balance abgezogen werden, stellt steuerlich also Veräußerungsvorgänge dar, auch wenn du nicht (bewusst) gegen FIAT tauscht. Meinem Verständnis nach würden gemäß FIFO für realisierte Verluste+Fees zunächst deine gekauften BTC hergenommen, d.h. du hast unterjährige und somit zu versteuernde Vorgänge bei deinen Spot Coins (was für 2018 nicht schlecht sein muss, ggf. lassen sich noch einige Verluste aus privaten Veräußerungsgeschäften "sichern").
Was ich mich dann aber frage ist wie die Verlustverrechnung bei den CFD trades erfolgen soll. Eine Verrechnung der BTC Gewinne mit den BTC Verlusten würde automatisch die Frage aufwerfen welche BTC (Anschaffungspreis und -zeitpunkt) denn übrig bleiben?! Insofern kann in meiner Logik die Antwort nur sein steuerlich jeden BTC Gewinn als EUR Gewinn mit sofortigem BTC Kauf und jeden Verlust (inkl. Fees) als EUR Verlust und BTC Verkauf zu werten. Die CFD Gewinne in EUR können dann sauber verrechnet werden, während Ver-/Kauf der Spot Coins zwar da die Buchführung komplizierter macht, aber zumindest 1 Jahr nach ende des Tradings relativ sicher alle Spotbestände steuerfrei sind.
Ob meine Einschätzung richtig ist, das lasse lieber nochmal vom Steuerberater überprüfen.
Ich fahre für mich die Strategie Trades und Fees immer in EUR abzurechnen und da auch immer bissl Puffer liegen zu haben um genau solche Probleme zu vermeiden. Alternativ hilft das "offenhalten" von Verlustpositionen, also "innerhalb der Position" zu traden um die Verluste nicht realisieren zu müssen. Je nach Anbieter / Cryptobörse kann man ja ggf. selber entscheiden ob man eine offene Position reduzieren/erweitern möchte oder eine neue Position aufmacht. Hilft für 2018 wahrscheinlich nicht mehr, aber vielleicht für die Zukunft?!