Zum Inhalt springen

Klicman

Mitglied
  • Gesamte Inhalte

    6
  • Benutzer seit

  • Letzter Besuch

Reputation in der Community

1 Neutral

Letzte Besucher des Profils

297 Profilaufrufe
  1. Hallo clubemotions, dein Vorgehen ist grundsätzlich korrekt und die Fehlermeldung ist etwas irritierend, aber wie ich sie interpretiere erfüllst du die Anforderungen des Käufers nicht. Versuch es beim Abgreifen des Orderbooks doch mal mit der Option "order_requirements_fullfilled" (siehe Doku). Dann solltest du nur Orders erhalten, die du auch traden "darfst". (Und setz spaßeshalber auch "only_express_orders" mal auf null.) Gruß, Peter
  2. Das Zeug läuft soweit ich weiss über cloudflare - da sind pings/traceroutes immer schnell und spiegeln nicht das reale Bild wider. Auch IP-Adressen sind da nicht in Stein gemeisselt. Was die Serverkommunikation angeht gebe ich dir recht - der bitcoin.de-Server gleicht sich wohl nicht schnell genug mit den cloudflare-Servern ab. Das lässt sich vielleicht mit neuer(er) Hardware (ich weiss nicht, was bitcoin.de da stehen hat, aber so schlecht wird es schon nicht sein), letztendlich aber nur mit einer dicke(re)n Leitung lösen. Und ja, das mit dem Orderbuch ist lästig, aber über Websockets kann man das recht gut handhaben.
  3. Oh ja, Serpens hat natürlich recht - die Anfragen müssen nacheinander eingehen (sonst macht eine Nonce auch keinen Sinn). Du hast bei asynchronen Systemen wie z.B. nodejs über das Netzwerk bei einem zustandslosen Protokoll ja keine Garantie, dass deine Anfragen in der gleichen Reihenfolge verarbeitet werden in der sie in deinem Programm stehen (Proxy, Load-Balancing, unterbrochene Route, whatever). Beim Orderbuch ist das natürlich lästig - aber so sind die Regeln. Ich halte das Orderbuch über das WS-Interface aktuell - dann geht's... Und durch das Credits-Limit kann man eh nicht viel schneller handeln. Wenn das für dich nicht akzeptabel ist, solltest du dir die großen Exchanges wie coinbase/gdax, bitfinex oder kraken ansehen (die sich mittlerweile ja wieder berappelt haben). Da sind APIs und Geschwindigkeit (meistens ) top, aber auch da gibt es natürlich Limits.
  4. Hallo, Nonces dienen letztendlich (vereinfacht ausgedrückt) der Sequenzierung, d.h. sie sollen (u.a.) die richtige Reihenfolge der Anfragen sicherstellen. Wie in der bitcoin.de-Dokumentation beschrieben ist der verwendete Nonce-Wert völlig egal, solange er höher ist, als der Nonce-Wert der vorherigen Anfrage. Du brauchst also für *jeden* API-Call eine neue Nonce, deren Wert *höher* ist als der vorherige. Die PHP-API v1 (die neue habe ich mir nicht angesehen) nutzt z.B. den "normalen" UNIX-Timer (Unix-Epoche in Sekunden) als Nonce, der aber nur eine Auflösung von einer Sekunde hat, d.h. der Nonce-Wert ändert sich nur einmal pro Sekunde. Es kann also schon mal zu einer "Invalid Nonce" kommen (und bei 200ms im schlimmsten Fall halt 5), wenn du innerhalb einer Sekunde zwei (oder 5) Calls durchführst... Wenn du das verhindern willst, muss dein Noncer höher auflösen (z.B. im Millisekunden-Bereich), oder du musst zwischen den Calls eine Sekunde warten Unter dem Strich hat das Problem also nichts mit bitcoin.de zu tun, zumal eine zu offensive Anfragestrategie über die Credits unterbunden wird. Wie man so etwas programmtechnisch löst, zeigt z.B. die node.js-API von 4ley. Link habe ich gerade nicht parat, ist aber im Forum zu finden. Gruß, Peter
  5. Hallo, hm, vor meinen Wechsel zu Fidor habe ich die API recht lange mit einem ING-DIBA-Konto genutzt. War zwangsläufig SEPA-only und hat immer prima funktioniert. Konkret sieht das (mit der PHP-Library) bei mir so aus: 1. Ich möchte etwas zum Preis XXX verkaufen: $my_sell_order = $trading_api_sdk->doRequest ( TradingApiSdk::METHOD_CREATE_ORDER, array ( 'type' => TradingApiSdk::ORDER_TYPE_SELL, 'max_amount' => $amount, 'price' => $price, 'min_amount' => $minamount, 'new_order_for_remaining_amount' => 1, 'payment_option' => $payment)); // In diesem Fall also SEPA-only = 2! Wie in der Dokumentation beschrieben ist der optionale Parameter "payment-option" (nur) für Verkaufsangebote erlaubt, voreingestellt ist aber Express-only. Wenn man nicht Express handeln kann/will, ist dieser Parameter also Pflicht. 2. Ich möchte etwas zum Preis XXX kaufen $my_buy_order = $trading_api_sdk->doRequest ( TradingApiSdk::METHOD_CREATE_ORDER, array ( 'type' => TradingApiSdk::ORDER_TYPE_BUY, 'max_amount' => $amount, 'price' => $price, 'min_amount' => $minamount, 'new_order_for_remaining_amount' => 1 ) ); Hier ist laut Doku "payment_option" nicht relevant, sondern die Einstellungen für den Express-Handel: Wenn es bei dir nicht funktioniert, schau dir doch mal die Einstellungen unter "Express-Handel -> Express Handel Einstellungen" an. Der Express-Handel muss dort deaktiviert sein... Viele Grüße, Peter
  6. Hallo, ich vermute das du schlicht einen falschen Schlüssel nutzt. Die Keys der aktuellen API, die du im Menü unter "Trading-API" anlegen kannst, sind mit der Legacy-API nicht kompatibel. Unter "Trading-API -> ...Dokumentation zur Trading-API -> Bitcoin.de API (legacy)" kannst (musst) du einen passenden Schlüssel beantragen. Der Aufruf erfolgt dann in der von dir beschriebenen Form (hier über die Kommandozeile mit curl): $ curl https://bitcoinapi.de/v1/DEIN_API_KEY/rate.json und du erhälst die gewünschten Daten im JSON-Format zurück: {"rate_weighted":"607.14794603","rate_weighted_3h":"607.14794603","rate_weighted_12h":"604.18803489"} Letztlich ist die Nutzung der Legacy-API aber nicht sinnvoll. Die aktuelle API ist etwas komplexer, aber auch deutlich umfangreicher und komfortabler. Gruß, Peter
×
×
  • 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.