Jump to content

Recommended Posts

Posted

Hi Leute,

vielleicht kennt sich ja einer von euch aus. Wo finde ich in der binance-API eine Funktion, die mir hilft die: Fees Return History anzeigen zu lassen. Oder wird die woanders mit ausgewiesen?

  • Bei binance auf der Seite, unter https://www.binance.com/en/my/orders/margin/fee-return-history findet man eine Auflistung der Fees, die man beim Margin-Trading bezahlt hat, die aber einem mit einem discount von BNB-Portfolio abgezogen wurden. Ich versuche rekursiv ein Portfolio anzeigen zu lassen. Ich berechne dabei rückwärts aus dem aktuellen Stand alle Kontobewegungen (trades, withdraws, deposits, transfer zwischen einzelne Konten, loan, repayments, distributions, liquidations, etc.). Nun muss ich auch immer alle bezahlten Gebühren beachten. Ich finde aber per se nicht die Funktion, die mir diese "fees return" auswirft. 
    Binance berechnet das aktuell so: Ein trade erzeugt eine Gebühr in einem Coin. Diese Gebühr wird einem abgezogen, dann aber wieder rückerstattet auf dem isolated Konto und dem Spot Konto in BNB dem Portfolio abgezogen.
    Ich möchte also somit wissen, wieviel BNB mir abgezogen wurden und welchem isolated pair das zuzuordnen ist.

In einer Excell-Taballe habe ich das für ein isolated-margin pair mal nachgestellt und komme rückwärts nach mehreren trades, borrows, repayments, in und out auch mit Gebühren auf die 8 Nachkommastelle genau hin. Brauche aber dafür diese Repayments, die mir die abgezogenen Gebühren wieder glatt stellen.

  • Das andere, was sich nicht ganz ergibt ist in der liquidation history unter https://www.binance.com/en/my/orders/margin/liquidation/isolated_margin die Angabe von: "Liquidation Clearance Fee (BUSD)", kann ich nirgends in der API zuordnen. Bei dem anderen isolated pair, wo ich das getestet habe, komme ich auf den exakten Betrag, ohne diesem Fee, der aber auf der website unter "Liquidation Clearance Fee (BUSD)" ausgewiesen wird. Unter: https://binance-docs.github.io/apidocs/spot/en/#get-force-liquidation-record-user_data sieht man, dass dieser Wert gar nicht von der API angezeigt wird und auch da finde ich keine bessere Funktion in der API.
    Eine Liquidierung ist von den gespeicherten Trades, nur eine Zwangsglattstellung mit allen Gebühren. Der Trade läuft auch als normaler Trade bei denen in die DB, mit sich ergebendem Rest und drum und dran, und dennoch bleibt diese Gebühr, die ich nicht zuordnen kann. Vielleicht ist sie unnötig?

Ich kann theoretisch minimale Fehler tolerieren, aber ich hätte es gerne exakt, damit ich mir dann nicht unsicher sein muss, dass irgendwas nicht funktioniert. Ich möchte so, eine Tageweise Anzeige haben, die auch vollständig ist.

  • Love it 1
Posted

mit diesen "komplizierten" Punkten hab ich mich noch nicht beschäftigt. Vor kurzem konnte man nichteinmal die deposit/withdrawal history von fiat per API bekommen und viele andere basis Dinge gingen nicht, da brauchte man nach sowas komplizierten erst garnicht gucken :D 

Daher frag am Besten den Support, der ist mittlerweile ziemlich gut und antwortet nicht mehr mit copy-paste bullshit so wie früher.
Wenn du dann ne Antwort hast, dann gerne hier reinschreiben :)

Posted
vor 3 Stunden schrieb Serpens66:

Daher frag am Besten den Support,

Habe ich gerade, es gibt wirklich keinen API-Endpoint dafür. Ziemlich blöd eigentlich. Muss mir nun was anderes einfallen lassen. Händisch eintragen kann's ja nicht sein ;) 

Posted

So wie ich das bei Binance (Spot) mache ist dass ich mir das Konto vorher und nacher ansehe und die Gebühren auf dem BNB Konto bezahle, dadurch kann ich die Gebühren mit den Trades gleich setzen. Früher habe ich nur die Trades und die Gebühren auf einem Konto abgerechnet, ging auch. Man braucht eigentlich keinen eigenen End Punkt.

Posted (edited)
vor 42 Minuten schrieb Chantal Krüger:

So wie ich das bei Binance (Spot) mache ist dass ich mir das Konto vorher und nacher ansehe und die Gebühren auf dem BNB Konto bezahle, dadurch kann ich die Gebühren mit den Trades gleich setzen.

Kannst du das etwas näher erklären? (Spot geht bei mir auch easy, das erzeugt keine Probleme)

Ich habe z.B. auf dem isolated margin-pair Konto trades. Diese verursachen Gebühren. Z.B. im Pair BTC/USDT. Bei einem BUY sind die Gebühren in BTC, bei einem SELL in USDT. Diese Gebühren, werden tatsächlich dem isolated margin-pair Konto abgezogen. dann ermittelt das System alle 6 Stunden ob diese Gebühren mittels BNB bezahlt hätten werden können und zieht einem vom Spot-Konto vergüngstigt BNB ab und fügt die Gebühren entweder in BTC oder USDT dem isolated margin-account wieder zu. Diese letzte Transaktion erscheint aber nicht. Sie sind schon vorhanden, aber man kann sie nicht mittels API erfassen.

Für mich heißt das, wenn ich z.B. täglich meinen Kontostand der diversen Spot, isolated, cross-Accounts erfassen will, kann ich entweder immer nur einen "IST"-Stand zu einer gewissen Stunde erfragen, würde mir aber schwer tun, einen IST-Stand nach einem Trade zu erfassen. Ich kann den Trade dem IST-Stand abziehen, hätte aber immer diese Differenzen wegen den Gebühren. Hätte ich z.B. nur 1 Trade auf diesem account, und ziehe den ab, könnte es sein, dass ich sogar ein "Minus" habe, wenn ich das zurück rechne, weil ich nicht weiß, ob mir die Gebühren dazwischen rückerstattet wurden oder nicht. Je länger so eine rekursive Berechnung geht, desto mehr summiert sich das auf.

D.h. ich habe entweder einen "schwammigen" regelmäßigen IST-Stand, der eigentlich eine "unrealised PnL" darstellt, oder ich habe eine Erfassung nach jedem Trade, der eine tatsächliche PnL darstellt, ich kann aber dabei die Gebühren nur schwammig mit einfließen lassen. 

Ich kann aktuell aus binance, kaum sagen, wie war mein Stand am z.B. 20.12.2020 in realised PnL und unrealised PnL, geschweige denn auch umgerechnet in USD. Sie haben dazu keine Funktion, die das trackt. Somit muss man sich jeden Teilbereich (spot, margin, savings) selber tracken, wenn man das haben will und wenn man den auch noch in USD umgerechnet haben will, ebenso selber tun. 

Um das zu schaffen, tracke ich jede Transaktion und jeden Trade, und versuche das dann in einer Anzeige rückwirkend abzubilden, bzw. sobald ich weiß, dass die "Tagesabschlüsse" korrekt sind, oder die "nach den Trades"-Abschlüsse korrekt sind, kann ich auch Zwischenpunkte abspeichern. Z.B. Snapshots eines jeden Tages und dann daraus rückwirkend wieder rechnen, wenn ich will.

EDIT: Ich könnte ja theoretisch nach jedem Trade mal checken, aber das würde nur gehen, wenn ich sämtliche trades über die API mache und nicht über die Website/App. So könnte ich das Konto einfach immer aktualisieren nach einem Trade. Da ich aber nicht nur über die API-traden will, sammeln sich unweigerlich Trades, die ich erst abrufen muss und schon bin ich wieder beim Berechnungsproblem :) Und bei den Trades, wenn es isolated-pairs sind, muss man beim Abrufen der Trades, das Pair abfragen. Ermittelt man das z.B. stündlich und eröffnet dazwischen ein neues isolated pair Konto, macht dort einen Trade, würde ein automatisches System das gar nicht erfassen können, aber das ist eine andere Geschichte.

Es ist einfach ein komplexes System, mMn. um hier lückenlos zu erfassen, wo haben sich Gelder bewegt, und wie war der Stand nach jeder Bewegung.

Edited by coinflipper
Posted
22 minutes ago, coinflipper said:

Kannst du das etwas näher erklären? (Spot geht bei mir auch easy, das erzeugt keine Probleme)

Ich habe z.B. auf dem isolated margin-pair Konto trades. Diese verursachen Gebühren. Z.B. im Pair BTC/USDT. Bei einem BUY sind die Gebühren in BTC, bei einem SELL in USDT. Diese Gebühren, werden tatsächlich dem isolated margin-pair Konto abgezogen. dann ermittelt das System alle 6 Stunden ob diese Gebühren mittels BNB bezahlt hätten werden können und zieht einem vom Spot-Konto vergüngstigt BNB ab und fügt die Gebühren entweder in BTC oder USDT dem isolated margin-account wieder zu. Diese letzte Transaktion erscheint aber nicht. Sie sind schon vorhanden, aber man kann sie nicht mittels API erfassen.

Für mich heißt das, wenn ich z.B. täglich meinen Kontostand der diversen Spot, isolated, cross-Accounts erfassen will, kann ich entweder immer nur einen "IST"-Stand zu einer gewissen Stunde erfragen, würde mir aber schwer tun, einen IST-Stand nach einem Trade zu erfassen. Ich kann den Trade dem IST-Stand abziehen, hätte aber immer diese Differenzen wegen den Gebühren. Hätte ich z.B. nur 1 Trade auf diesem account, und ziehe den ab, könnte es sein, dass ich sogar ein "Minus" habe, wenn ich das zurück rechne, weil ich nicht weiß, ob mir die Gebühren dazwischen rückerstattet wurden oder nicht. Je länger so eine rekursive Berechnung geht, desto mehr summiert sich das auf.

D.h. ich habe entweder einen "schwammigen" regelmäßigen IST-Stand, der eigentlich eine "unrealised PnL" darstellt, oder ich habe eine Erfassung nach jedem Trade, der eine tatsächliche PnL darstellt, ich kann aber dabei die Gebühren nur schwammig mit einfließen lassen. 

Ich kann aktuell aus binance, kaum sagen, wie war mein Stand am z.B. 20.12.2020 in realised PnL und unrealised PnL, geschweige denn auch umgerechnet in USD. Sie haben dazu keine Funktion, die das trackt. Somit muss man sich jeden Teilbereich (spot, margin, savings) selber tracken, wenn man das haben will und wenn man den auch noch in USD umgerechnet haben will, ebenso selber tun. 

Um das zu schaffen, tracke ich jede Transaktion und jeden Trade, und versuche das dann in einer Anzeige rückwirkend abzubilden, bzw. sobald ich weiß, dass die "Tagesabschlüsse" korrekt sind, oder die "nach den Trades"-Abschlüsse korrekt sind, kann ich auch Zwischenpunkte abspeichern. Z.B. Snapshots eines jeden Tages und dann daraus rückwirkend wieder rechnen, wenn ich will.

EDIT: Ich könnte ja theoretisch nach jedem Trade mal checken, aber das würde nur gehen, wenn ich sämtliche trades über die API mache und nicht über die Website/App. So könnte ich das Konto einfach immer aktualisieren nach einem Trade. Da ich aber nicht nur über die API-traden will, sammeln sich unweigerlich Trades, die ich erst abrufen muss und schon bin ich wieder beim Berechnungsproblem :) Und bei den Trades, wenn es isolated-pairs sind, muss man beim Abrufen der Trades, das Pair abfragen. Ermittelt man das z.B. stündlich und eröffnet dazwischen ein neues isolated pair Konto, macht dort einen Trade, würde ein automatisches System das gar nicht erfassen können, aber das ist eine andere Geschichte.

Es ist einfach ein komplexes System, mMn. um hier lückenlos zu erfassen, wo haben sich Gelder bewegt, und wie war der Stand nach jeder Bewegung.

 

Ein Merkmal von gutem Trading ist auch die Dokumentation. Ich trade z.B. nix. was ich nicht dokumentieren kann. Das hat allein schon damit zu tun, dass ich meine negativen Trades ansehe und versuche zu verstehen, warum die negativ waren.

Ein anderes Merkmal ist, dass jeder sein eigenes Konzept hat. Da muss man genau hinsehen, was am besten für Dich passt.

Bei mir ist es so, dass ich ausschliesstlich über API trade und die Trades einzeln abrechne, so auch die Gebühren aus den Differenzen ermittle.

Du kannst auch irgendwie die Trades als CSV runterladen und bei Cointracker oder so auswerten lassen, da kenne ich mich aber nicht mit aus.

 

 

  • Like 1
Posted
vor 2 Minuten schrieb Chantal Krüger:

Ein Merkmal von gutem Trading ist auch die Dokumentation. Ich trade z.B. nix. was ich nicht dokumentieren kann. Das hat allein schon damit zu tun, dass ich meine negativen Trades ansehe und versuche zu verstehen, warum die negativ waren.

Sehe ich auch so, deswegen arbeite ich da an einer guten Auswertung und Statistik. Und ständig mittels Export oder Excell zu arbeiten, ist mir zu mühsam. 

Aber, ich bekomme das schon hin, irgendwie ;) 

Posted
3 minutes ago, coinflipper said:

Sehe ich auch so, deswegen arbeite ich da an einer guten Auswertung und Statistik. Und ständig mittels Export oder Excell zu arbeiten, ist mir zu mühsam. 

Aber, ich bekomme das schon hin, irgendwie ;) 

Das einzige, was ich Dir empfehlen kann :

- Schau, was Du an Daten aus der API bekommst. Oft braucht man keinen speziellen Endpunkt

- Und dann seh zu, ob Du aus den Daten, die Du bekommst, die Werte extrahieren kannst, die Du brauchst. 

- Evtl. musst Du etwas das Trading umstellen, sollte aber auch gut funktionieren.

Bei mir klappt das sehr gut im Binance Spot. Ich werde das bald auf Futures ausweiten.

  • Like 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.