Zum Inhalt springen

BetaTester für kostenloses Steuer Tool gesucht


gritterx23

Empfohlene Beiträge

vor einer Stunde schrieb gritterx23:

Hallo Leute, ich habe gerade für mich selbst ein kleines Tool zur Berechnung der steuerrelevanten Gewinne und Verluste bei Kryptowährungen gebastelt und könnte noch Tester brauchen.

Zu finden ist das ganze hier: https://fx.32kb.org/crypto-upload

Konstruktives Feedback ist erwünscht.

Etwas minimalistisch das ganze. Das ganze ist so minimalistisch, dass es mir auf den ersten Blick eher nach eine Art Phishing aussieht. Ich werde dir hier nicht sagen was auf meinen Wallets lagert und kann folgerichtig auch keine Daten zu deinem Dienst hochladen. Testdaten wäre schon möglich aber das ist mit etwas Aufwand verbunden. Ich denke es ist noch etwas zu früh sich diesen Aufwand zu machen. Willst du den Dienst später kommerziell vertreiben? Falls ja dann könnte man den Aufwand für Testdaten Generierung durchaus betreiben. Wenn es aber nur für deine Steuererklärung sein soll, dann lohnt sich das eher nicht.

Ohne es ausprobiert zu haben tippe ich einfach mal blind, dass die folgenden Features aktuell noch fehlen:
1. Portfolio Übersicht. Welcher steuerpflichtige / steuerfreie Verlust / Gewinn erwartet mich wenn ich Heute verkaufen möchte.
2. Wallet Trennung inklusive der dafür notwendigen Fehlerprüfungen. Gibt es zu jeder Einzahlung auch eine passende Auszahlung? Falls nein dann ist das ein Buchungsfehler und muss vor der Steuerberechnung korrigiert werden. Ist irgend eines der Wallets irgendwann mal rechnerisch im Minus gewesen? Falls ja dann ist auch das ein Buchungsfehler und muss korrigiert werden.
3. Buchungen von allen Ereignissen, die außerhalb von Börsen stattfinden. Eine Börse kennt nur Einzahlung, Auszahlung und Trades. Für eine korrekte Steuererklärung braucht man aber deutlich mehr als das. Es fehlen steuerpflichtige Einnahmen, Mining, Staking, steuerfreier Eingang zum Marktwert, Airdrop, Schenkung, steuerpflichtige Ausgaben und alles was ich in der Aufzählung jetzt vergessen habe.
4. Eine UI um die importieren Buchungen nachträglich zu ändern. Mehrfach Änderungen wäre wünschenswert aber notfalls geht es auch einzeln.

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja, ich persönlich würde es Sicherheitstechnisch leicht besser bewerten als vergleichbare kommerzielle Angebote. Schon deshalb weil kein Account für den Upload erforderlich ist und daher die Daten nicht ohne weiteres mit anderen Daten verknüpft werden könnten. Wie dem auch sei, die Vorsicht verstehe ich durchaus.

Um einfach mal zu testen, was das Tool tut, kann man das auf der Upload Seite verlinkte Template runterladen und direkt wieder hochladen. Darin ist ein minimal Beispiel enthalten.

Das Ziel ist es nicht eine vollständige Tracking Software zu entwickeln die es mit den kommerziellen Angeboten aufnehmen kann, sondern vielmehr den einfachen Use-Case von Leuten wie mir zu bedienen, die einfach nur Traden wollen und nicht noch ein Abonnement abschliessen wollen um einfach ihre Steuern zu machen.

Daher gibt es auch einen definierten Einsatzbereich, was z.B. nicht hinzukommen wird sind Dinge wie Staking, Mining, Airdrops, etc.

Was möglich ist:

Die Transaktionen verschiedenen Börsen gemeinsam auswerten, inkl. der Transaktionen hin und weg von den Börsen. Berechnung der Trades nach Fifo Methode und Anzeige der Gewinne/Verluste nach Kalenderjahr (inkl. Gebühren) sowie der Kontostände zum Ende der Kalenderjahre.

Sagt mir ob sowas interessant sein kann.

Hier wäre noch ein Link zum Quellcode: https://github.com/memmaker/fifo-crypto-tax

Bearbeitet von gritterx23
  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb gritterx23:

Das Ziel ist es nicht eine vollständige Tracking Software zu entwickeln die es mit den kommerziellen Angeboten aufnehmen kann, sondern vielmehr den einfachen Use-Case von Leuten wie mir zu bedienen, die einfach nur Traden wollen und nicht noch ein Abonnement abschliessen wollen um einfach ihre Steuern zu machen.

Dann häng dich doch hier mit ran: https://github.com/rotki/rotki

Dort gibt es zwar kostenpflichtige Premium Accounts aber eventuell bekommst du kostenlosen Zugang wenn du bei der Weiterentwicklung mithilfst. Order einfach forken und den Premium Account ausbauen :D 

  • Haha 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Da keines der aktuell existierenden Steuertools in der Lage ist meinen doch extrem simplen (im vergleich zu Anderen. Nur Spottrading, etwas Margin Trading auf Kraken) Steuersachverhalt abzubilden, habe ich mir selbst schon etliche python Skripte gebastelt, um irgendwie voran zu kommen. Der aktuelle Plan ist alle meine Trades selbst per API/csv von den Börsen auszuwerten und dies in das cointracking csv-import Format umzuwandeln und dann dort hochzuladen. Dabei versuche ich dann diverse Macken von cointracking innerhalb meiner csv Datei zu "lösen". Glaube aber eher nicht, dass das klappen wird.

Ich hab für die ganzen python skripte sicherlich schon einige hundert Arbeitsstunden investiert (mit trades über API abfragen, dies bzw. csv format in mein eigenes Format umwandeln bzw. ins cointracking format usw) und bin leider dennoch sehr weit davon entfernt, endlich mal einen Gewinn anhand meiner Trades zu ermitteln (anstatt pi-mal daumen oder ends minus anfangsbestand).
Aktuell größtes Problem ist Kraken mit dem Margin Trading, was das komplizierteste an meinen Trades ist. Es ist super umständlich zwischen Close und Settle in der history zu unterscheiden (man muss sowohl trades als auch ledger gemeinsam auswerten und verknüfpen), was meiner Ansicht nach steuerlich sehr wichtig ist.

Nun zu deinem Projekt:
Neben Problemen mit den exchanges selbst (zb. coinbase hat in der API transfer history nicht einmal die Währung der Transaktion drinstehen!), gibt es auch noch Unklarheiten dazu, wie man was überhaupt in den Gewinn einrechnet, siehe zb den Thread

Ich will damit sagen, dass ich selbst die Hoffnung langsam aufgebe und ich dich davor bewahren möchte 500 stunden oder mehr darein zu investieren, um am ende festzustellen, dass es soviele Dinge gibt, auf die du selbst keinen Einfluss hast und das Ergebnis am Ende hinten und vorne nicht stimmt.... , so gehts mir aktuell :D

edit:
mein eigenes Tradesformat sieht übrigens so aus:

Exchange,Date,Pair,Menge,Preis,Typ,TradeID,QuoteMenge,BaseCur,QuoteCur,Fee,FeeCur,ID,CID,Timestamp,Comment

Das meiste ist selbsterklärend, Typ ist buy/sell, Cur steht für currency, Base steht für die Währung der Menge, Quote für die Währung des Preises.
Aufgrund von Rundungsproblemen habe ich nicht nur Menge und Preis, sondern auch "QuoteMenge" aufgenommen, was theoretisch Preis*Menge ist, aber manche exchanges geben diesen Wert separat an und er stimmt wegen Rundungen selten mit Preis*Menge überein.
Daher Feedback zu deinem Format:
1) Eventuell ebenfalls QuoteMenge direkt aus der csv auslesen, wo es möglich ist.
2) Die zweite Währung fehlt, anzunehmen, dass immer alles gegen dieselbe Währung (bei dir wohl USDT) gehandelt wird... ist auf Dauer sicherlich nicht so sinnvoll, besonders wenn auch andere Nutzer das verwenden können sollen.
3) Die Währung der Gebühr ist ebenfalls sehr wichtig, ganz besonders wenn du auf binance handelst (meist BNB)

edit2:
achja, meine Trades sind übrigens so viele, alleine auf einem einzigen exchange, dass sie meinen Arbeitsspeicher sprengen, wenn ich sie alle in eine python liste oder dict speichere :D Habe erst vor kurzem den csv DictReader/Writer gefunden und bin sehr froh, dass dieser die Trades alle nacheinander in den Arbeitspeicher packt und direkt wieder rauslöscht :)

Bearbeitet von Serpens66
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Stunde schrieb gritterx23:

Interessantes Projekt, wenn auch mit gänzlich unterschiedlichen Zielen.

Nur scheinbar. Steuer Berechnung ist ein Feature was das genannte Projekt beherrscht. Der Rest ist schmückendes Beiwerk um die Daten möglichst einfach zu pflegen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 52 Minuten schrieb skunk:

Nur scheinbar. Steuer Berechnung ist ein Feature was das genannte Projekt beherrscht. Der Rest ist schmückendes Beiwerk um die Daten möglichst einfach zu pflegen.

Wie gesagt, mir geht's hier um etwas ohne schmückendes Beiwerk.

@Serpens66Danke für die Hinweise, hast du das Tool auf dem Link probiert oder dir den Quellcode angeschaut?

Die Daten kommen alle aus den CSV Dateien und für die angegebenen Börsen (Binance, Coinbase und Bitcoin.de) schienen mir erstmal alle relevanten Daten vorhanden. Auch habe ich meine Transaktionen der letzten 5 Jahre durchlaufen lassen und die Zahlen sahen alle plausibel aus. Ich bin mir auch fast sicher, bereits alle notwendigen Informationen für die Steuer zusammen zu haben, auch wenn gerade das der Punkt war denn ich hier gerne noch bestätigt bekommen hätte.

Ja, die Gebühren bei Binance sind mir auch direkt aufgefallen, um die korrekt abzurechnen braucht man historische Daten zum BNB Kurs. Hab erstmal nur USDT-BNB Kurshistorien gefunden und wollte die mittels USD-EUR Quotes nach Euro zurückrechnen, aber freue mich wenn jemand ne bessere Idee hat.

Auch scheint etwas Verwirrung hinsichtlich meiner Pläne zur herrschen, ich habe aktuell lediglich 2 Tage in das Projekt investiert und bin bereits sehr zufrieden und recht sicher das Ergebnis für meine eigene Steuererklärung nutzen zu können. Ich habe also nicht die Absicht weitere 500 Stunden in irgendwas zu investieren, wüsste auch nicht wozu :)

Hmm, wenn deine Trades den Speicher sprengen hast du entweder zu wenig davon oder echt krass Datenstruktur ;)

Bearbeitet von gritterx23
Korrektur
  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Minute schrieb gritterx23:

Auch scheint etwas Verwirrung hinsichtlich meiner Pläne zur herrschen, ich habe aktuell lediglich 2 Tage in das Projekt investiert und bin bereits sehr zufrieden und recht sicher das Ergebnis für meine eigene Steuererklärung nutzen zu können. Ich habe also nicht die Absicht weitere 500 Stunden in irgendwas zu investieren, wüsste auch nicht wozu :)

Mit oder ohne Wallet Trennung?

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 12 Minuten schrieb gritterx23:

Jede Transaktion? Das macht doch gar keinen Sinn, oder doch?

Jede Wallet würde ich verstehen..

Beispiel:

Auf Wallet A lagern einmal 1 BTC von vor einem Jahr und nochmal 0,5 BTC von letzter Wocher. Beides sind Käufe gewesen.

Jetzt bewegst du 1 BTC auf Wallet B. Das ist jetzt nur eine "interne" Transaktion. Trotzdem gilt auch hier FIFO.

Nach diversen derartigen internen Transaktionen folgen dann Verkäufe. Da selbst den Überblick behalten zu wollen ist aufwändig und vermutlich der Grund warum die, die es versucht haben, locker 100 Stunden und mehr investiert haben. Ich habe das auch irgendwann mal probiert und irgendwann festgestellt, dass der Lohn, den ich mir eigentlich selber zahlen müsste, höher ist als der Preis für alle Steuertools zusammen....

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Depottrennung selbst erscheint mir nicht gerade kompliziert, zumindestens aus steuerlicher bzw. Sicht der Transaktionen.

Aktuell ignoriere ich einfach Interne Transaktionen, damit behält jeder Coin sein ursprüngliches Kaufdatum und meines Erachtens sollte das Ergebnis gesetzeskonform sein.

Wenn ich es richtig verstehe ist die Depottrennung etwas was man machen darf aber nicht muss. Und falls man es so macht, muss man eben stringent die Herkünfte trotz der internen Transaktionen nachweisen, richtig?

Allerdings ist so natürlich keine Depottrennung zum organisieren der Haltbarkeit möglich. Da ich selbst meine Depots bis jetzt gar nicht auf diese Weise getrennt habe, wäre das für mich selbst aber auch gar nicht nötig.

Die Transaktionen zwischen den Depots lassen sich nicht anhand der Börsen Infos sondern nur anhand der Blockchain nachvollziehen, korrekt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 12 Stunden schrieb Serpens66:

achja, meine Trades sind übrigens so viele, alleine auf einem einzigen exchange, dass sie meinen Arbeitsspeicher sprengen, wenn ich sie alle in eine python liste oder dict speichere :D Habe erst vor kurzem den csv DictReader/Writer gefunden und bin sehr froh, dass dieser die Trades alle nacheinander in den Arbeitspeicher packt und direkt wieder rauslöscht :)

Das kommt mir bekannt vor. Ich habe da auch so meine Erfahrungen. Ich musste damals auch alle paar Tage meine Bitcoin Wallet resetten um die im Mempool festsitzenden Transaktionen überschreiben zu können. Das hat mich jedes mal mehrere Stunden gekostet. -> Hardware Upgrade und die kosten dafür habe ich direkt als Werbekosten abgesetzt. Es war schlicht nicht möglich mit meinem alten Rechner diese Geschäfte aufrecht zu erhalten und ich habe mehr als genug Gewinn erwirtschaftet um davon ein Teil zu reinvestieren. Mit dann 64 GB RAM und den Umstieg auf eine M2 SSD waren alle meine Probleme auf einen Schlag gelöst. Die eingesparte Lebenszeit ist unbezahlbar :D  

  • Up 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 11 Minuten schrieb gritterx23:

Wenn ich es richtig verstehe ist die Depottrennung etwas was man machen darf aber nicht muss.

Gut dann mache ich auch hierfür nochmal ein Beispiel.

Du kaufst 1 BTC und lagerst das auf Wallet A. Kaufdatum von vor einem Jahr.

Du kaufst 0,5 BTC und lässt sie für ein paar Tage auf der Börse. Anschließend transferierst du die 0,5 BTC auf eine Altcoin Börse und fängst an dich mit ein paar interessanten Altcoins einzudecken.

Du beendest das Steuerjahr damit die alten BTC von Wallet A zurück auf die Exchange zu bewegen und zu verkaufen.

Frage: Was passiert jetzt mit und ohne Wallet Trennung? Ich würde behaupten in diesem Beispiel ist die Wallet Trennung Pflicht weil die alternative nicht akzeptabel ist.

Das ist jetzt ein Beispiel bei dem du mit Wallet Trennung weniger Steuern zahlst als Ohne. Also folgt direkt Beispiel Nummer 2. Du kaufst erneut 1 BTC und lagerst das auf Wallet A. Auch dieser BTC ist inzwischen Steuerfrei aber du verkaufst die 0,5 BTC von vor einem Monat von Wallet B. Ohne Wallet Trennung wäre das jetzt ein steuerfreier Gewinn für dich. Das Finanzamt kommt um die Ecke und fragt dich wann und wo du die 0,5 BTC gekauft hast. Bitte einmal den Weg dieser 0,5 BTC nachverfolgen. Moment die sind ja gerade mal wenige Monate alt und nicht wie behauptet steuerfrei. Die steuerfreien BTC langern nachweislich immer noch auf Wallet A und wurden nicht bewegt. Bitte beweisen sie, wie sie die steuerfreien BTC verkaufen konnten ohne sie bewegt zu haben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 12 Minuten schrieb gritterx23:

Pflicht aus der Perspektive des Steuerzahlers meinst du? Weil es günstiger für ihn ist, klar. Aber diese Beispiele setzen ja entsprechende Transaktionen voraus. Wer solche Transaktionen nicht hat, für den macht es vermutlich keinen Unterschied.

Ich behaupte du hast solche Transaktionen zwangsläufig. Auf Wallet Trennung verzichten können nur diejenigen, die nur eine Exchange verwenden und ihre Coins dort auch lagern. Wer nur 1 Wallet hat, muss auch keine Wallet Trennung durchführen. Sobald eine zweite Exchange oder ein zweites Wallet ins Spiel kommt, wird das wie gesagt kompliziert.

Ich hatte dir auch gerade ein Beispiel geliefert bei dem es ohne Wallet Trennung für den Steuerzahler günstiger wäre jedoch der Nachweis bezüglich der Steuerfreiheit im Zweifel nicht erbracht werden kann. Das waren beides einfache Beispiele. Beim ganz normalen Trading auf mehr als einem Wallet bekommst du früher oder später eine Mischung aus beidem. In einigen Fällen wirst du eine Steuerfreiheit ausweisen, die du im Zweifel nicht beweisen kannst und in anderen Fällen werden steuerfreie Coins viel zu früh verkauft.

Link zu diesem Kommentar
Auf anderen Seiten teilen

20 hours ago, Serpens66 said:

achja, meine Trades sind übrigens so viele, alleine auf einem einzigen exchange, dass sie meinen Arbeitsspeicher sprengen, wenn ich sie alle in eine python liste oder dict speichere :D Habe erst vor kurzem den csv DictReader/Writer gefunden und bin sehr froh, dass dieser die Trades alle nacheinander in den Arbeitspeicher packt und direkt wieder rauslöscht

Python ist aber auch ein extremer Speicherfresser, weil es um jeden einzelnen Datenwert ein Python-Objekt zieht.

Als ich meinen Bot von Python auf Go umgestellt habe, ist der Speicherbedarf bei nahezu gleicher Datenmenge auf weniger ein Zehntel gesunken. (Und deutlich schneller läuft es seitdem auch noch. 😉 )
So unterschiedlich ist die Syntax beider Sprachen auch gar nicht, was die 08/15-Geschichten betrifft. Wer Python kennt, kommt auch mit Go bald zurecht.

Ich kann nur ermuntern, sich auch an andere Sprachen zu trauen. Das weitet den Horizont und gibt neue Möglichkeiten.

  • Like 1
  • Up 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 29.10.2021 um 23:31 schrieb gritterx23:

Wie gesagt, mir geht's hier um etwas ohne schmückendes Beiwerk.

@Serpens66Danke für die Hinweise, hast du das Tool auf dem Link probiert oder dir den Quellcode angeschaut?

Die Daten kommen alle aus den CSV Dateien und für die angegebenen Börsen (Binance, Coinbase und Bitcoin.de) schienen mir erstmal alle relevanten Daten vorhanden. Auch habe ich meine Transaktionen der letzten 5 Jahre durchlaufen lassen und die Zahlen sahen alle plausibel aus. Ich bin mir auch fast sicher, bereits alle notwendigen Informationen für die Steuer zusammen zu haben, auch wenn gerade das der Punkt war denn ich hier gerne noch bestätigt bekommen hätte.

Ja, die Gebühren bei Binance sind mir auch direkt aufgefallen, um die korrekt abzurechnen braucht man historische Daten zum BNB Kurs. Hab erstmal nur USDT-BNB Kurshistorien gefunden und wollte die mittels USD-EUR Quotes nach Euro zurückrechnen, aber freue mich wenn jemand ne bessere Idee hat.

Auch scheint etwas Verwirrung hinsichtlich meiner Pläne zur herrschen, ich habe aktuell lediglich 2 Tage in das Projekt investiert und bin bereits sehr zufrieden und recht sicher das Ergebnis für meine eigene Steuererklärung nutzen zu können. Ich habe also nicht die Absicht weitere 500 Stunden in irgendwas zu investieren, wüsste auch nicht wozu :)

Hmm, wenn deine Trades den Speicher sprengen hast du entweder zu wenig davon oder echt krass Datenstruktur ;)

Hab mir auf github nur dein data_template.csv angeguckt und ging davon aus, dass das was da drin steht, alles ist, was du berücksichtigst.
Bei Drittwährungsgebühren ist es mathematisch tatsächlich nicht notwendig die Kursverlauf davon zu kennen, musste mir auch erst ein Mathematiker vorrechnen, bis ich das kapiert hab :D Wenn man den Kaufkurs der BNB hat, dann reicht das völlig aus, und den hat man ja, weil es ein Trade war (siehe mein Rechenbeispiel mit BNB im oben verlinkten Gebührenthread). Ob es auch steuerlich ausreichend ist, ist allerdings eine andere Frage, da hängt es stark davon ab, wie genau man das einrechnen möchte und ob man die Jahresfrist einhält oder nicht.

Meine Datenstruktur eines jeden Trades ist ein python dictionary mit zugegebenermaßen relativ vielen keys (18 Stück, die ID/TradeIDs sind dabei besonders lang, je nach exchange) und dicts verbrauchen in Pyhton sehr viel Arbeitsspeicher, weiß grad die genaue Zahl nicht, aber ich glaub 500k Trades sind bereits zuviel für 16 GB.

Ansonsten bin ich jetzt aber denke ich raus aus diesem Thread, außer bezogen auf Dinge dir mir selbst helfen. Ich persönlich mache mir tatsächlich oft zuviel Arbeit, aber ich bin dann halt ein "Perfektionist" (ohne dass es jemals perfekt wird :D) und kann mich mit "keep it simple and stupid" garnicht anfreunden. Wenn man die Berechnung nicht exakt und 100% korrekt machen will, dann kann man es auch sein lassen, denn bei mir hat jede kleinste Abweichung aufgrund der Menge von Trades gigantische Auswirkungen.

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...

Wichtige Information

Wir haben Cookies auf Deinem Gerät platziert. Das hilft uns diese Webseite zu verbessern. Du kannst die Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Du damit einverstanden bist, weiterzumachen.