Zum Inhalt springen

Binance-API - wo finde ich...


coinflipper

Empfohlene Beiträge

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
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Bearbeitet von coinflipper
Link zu diesem Kommentar
Auf anderen Seiten teilen

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
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ;) 

Link zu diesem Kommentar
Auf anderen Seiten teilen

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
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.