Zum Inhalt springen

24unix

Mitglied
  • Gesamte Inhalte

    40
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von 24unix

  1. Ein wenig habe ich diese Woche geschafft, aber nicht so viel. Ich habe die Trennung zwischen Frontend und Backend weiter ausgebaut, per Timer (das, was man vor systemd mit cron gemacht hat) werden nun alle 10 Minuten die relevanten Daten zu den Coins geholt und in die DB geschrieben, ich schaue morgen mal, wie viel das ist, sind ja nur ein paar Bytes pro Zeile, ich denke, auf eine 20GB Partition kann ich Jahre mitplotten.
  2. Unverändert 😞 Mir kam leider was anderes dazwischen. Ich hoffe, dass es nächste Woche weiter geht, aber man muss halt Prioritäten setzen. Aber vergessen habe ich die Baustelle nicht
  3. Jetzt häng eich hier gerade fest. Kann mir einer de alten Hasen erklären, was für eine Order ich da setzen soll? Ich habe links P2p Order, Margin Orders etc …
  4. Habe Lektion 3 jetzt komplett durch, konnte die Schleifen deutlich reduzieren, ob es lesbarer ist liegt im Auge des Betrachters … function updateAccountInfo($botID) { try { $this->binanceAccount = $this->binanceAPI->account(); } catch (Exception $e) { echo 'Error: ' . $e->getMessage(); } $exchangeInfo = []; try { $exchangeInfo = $this->binanceAPI->exchangeInfo(); } catch (Exception $e) { echo $e->getMessage(); } $botBaseCurrency = $this->bot->getBaseCurrency($botID); $base = array_search($botBaseCurrency, array_column($this->binanceAccount['balances'], 'asset')); $baseCurrency = $this->binanceAccount['balances'][$base]; $coins = $this->bot->getCoins($botID); $coinValues = []; foreach ($coins as $coin) { $coinID = array_search($coin->name, array_column($this->binanceAccount['balances'], 'asset')); // get rates $prevDay = []; try { echo("search: $coin->name"); // get base currency from Bot class if ($prevDayRaw = $this->binanceAPI->prevDay($coin->name . $botBaseCurrency)) { //print_r($prevDay); $prevDay['price'] = $prevDayRaw['lastPrice']; $prevDay['price24High'] = $prevDayRaw['highPrice']; $prevDay['price24Low'] = $prevDayRaw['lowPrice']; $this->storeMessage("fetched: " . $coin->name . $botBaseCurrency); } else { $this->storeMessage("error fetching: " . $coin->name . $botBaseCurrency); } } catch (Exception $e) { echo $e->getMessage(); } $rules = []; $filters = $exchangeInfo['symbols'][$coin->name . 'USDT']['filters']; $lotSizeID = array_search('LOT_SIZE', array_column($filters, 'filterType')); $rules['minQty'] = $exchangeInfo['symbols'][$coin->name . 'USDT']['filters'][$lotSizeID]['minQty']; $rules['minQtyPrecision'] = abs(floor(log10($rules['minQty']))); $minNotionalID = array_search('MIN_NOTIONAL', array_column($filters, 'filterType')); $rules['minNotional'] = $exchangeInfo['symbols'][$coin->name . 'USDT']['filters'][$minNotionalID]['minNotional']; $priceFilterID = array_search('PRICE_FILTER', array_column($filters, 'filterType')); $rules['tickSize'] = $exchangeInfo['symbols'][$coin->name . 'USDT']['filters'][$priceFilterID]['tickSize']; $rules['tickSizePrecision'] = abs(floor(log10($rules['tickSize']))); $balance = $this->binanceAccount['balances'][$coinID]; $coinValues[] = array_merge($prevDay, $balance, $rules); try { $binanceOpenOrder[$coin->name] = $this->binanceAPI->openOrders($coin->name . $botBaseCurrency); } catch(Exception $e) { echo $e->getMessage(); } } print_r($coinValues); // get all open orders } Edit: Etwas die Optik angepasst. https://y.24unix.net/v5e93
  5. Lass gut sein, ja? Du hast Recht und ich meine Ruhe. Nutze doch Google.
  6. Ich werde mir jetzt keine Google Konto anlegen und den GA installieren, um das direkt zu belegen. Fakt ist, Google speichert alles was sie kriegen können, sonst stellen die den Dienst ein. Programmieren tue ich seit Mitte der 80er … Beruflich seit den 90ern. Danke.
  7. Was meinst Du, warum die aktuelle Version kein Open Source mehr ist. TANSTAAFL. Alles, womit Google keinen Profit macht landet da: https://killedbygoogle.com/ Aber benutze es ruhig weiter, ist nicht mein Problem. Ich will hier über BitCoins lernen und einen Bot bauen.
  8. Dafür habe ich schon was auf stackoverflow gefunden, probiere ich später mal aus.
  9. Die GA ist mit Deinen Account verknüpft. Google speichert alles.
  10. Warum tust Du es dann? Ich will hier eigentlich nicht über Google diskutieren. Öffne den QR Code mit einem QR-Code Scanner, dann geht die Binance-Seite auf. In dem Moment weiß die Google App, wo Du sie verwendest.
  11. Ah … Jetzt habe ich es glaube ich. Die API kann das nicht (habe vorhin den Code überflogen, nicht gefunden). Immerhin kann man sie jetzt direkt per Composer installieren … OK, ich kann selber per curl eine connection machen, auf den Result Code testen und ab dafür. Brauche ich ja nur, wenn die Basis-Config oder eine botspezifische geändert wird.
  12. Aber ich mache doch keinen direkten curl Aufruf, sondern nutze die API?!?
  13. Ich habe oben den Code eingefügt. Das geht, ohne Fehler, egal ob der Key valid ist oder nicht. Knallen tut es bei einem falschen Key dann hier: ( ! ) Fatal error: Uncaught Error: Typed property BalanceBot::$binanceAccount must not be accessed before initialization in /var/www/virtual/24unix.net/bitcoin/htdocs/balancebot/Controller/BalanceBot.php on line 180 Oh, man kann doch Grafiken einfügen, lag dann wohl bisher an der Größe … Hmm, aber nur eine? Oder wieder zu groß? Das ist Zeile 180: $usdt = array_search('USDT', array_column($this->binanceAccount['balances'], 'asset'));
  14. Ja, wahrscheinlich 😞 Das kommt, als Textausgabe im Browser: Error: signedRequest error: {"code":-2014,"msg":"API-key format invalid."} Edit: Das ist mein Code // connect Binance API $this->binanceAPI = new API($this->config['default_api_key'], $this->config['default_api_secret']); Und ich suche einen Weg, programmatisch drauf zu reagieren, ob der Key richtig oder falsch war.
  15. Du scannst im GA den QR Code, und was steht da drin? Die URL von Binance … Ich bezweifle, dass dieses Missverständnis bei mir liegt. Aber eigentlich wollte ich über den Bot texten, nicht über Google 😹
  16. Habe ich doch 🙂 Mehr wollte ich mit der kurzen Bemerkung nicht, als drauf hinzuweisen, dass jedes OTP Tool funktioniert. Ich habe eins auf dem Mac und eins auf dem iPhone getestet.
  17. https://academy.binance.com/de/articles/binance-2fa-guide Schritt 2, da erfährt Google, für welchen Dienst man GA nutzen will.
  18. Über Coins will ich lernen, zu Corona halte ich mich bedeckt, ich trage beim Einkaufen meinen Schnutenpulli und fertig.
  19. Werbung stört mich nicht, das mit dem anonymisieren (startpage.com) hat halt auch Nachteile, wenn man gezielt personalisierte Ergebnisse will. Es ist nicht einfach 🙂 Aber ich wollte hier wirklich keinen Glaubenskrieg für oder wider Google anfangen. Ich finde es halt nur praktisch, dass ich mein Menüleistentool statt dem Handy für das OTP nehmen kann. Ach ja, hatte auf der letzen Seite noch einen Screenshot verlinkt, viel sieht man noch nicht, aber mir gefällt es
  20. Ah OK. Ich wollte eigentlich testen, wie ich sauber herausfinden kann, ob ich angemeldet bin. Wenn ich einen ungültigen Key nehme schmeisst die API eine Fehlermeldung, aber direkt als Text, keine Exception oder so. Würde das irgendwie gerne sauberer lösen.
  21. Der weiß aber, für welche Seite Du ihn benutzt. Das ist schon zu viel. Apple. Zurück zum Thema: Nachdem ich nun Guthaben in der Wallet habe bekomme ich auch die balance angezeigt. Edit: Coins habe ich noch keine, aber sobald EUR da waren wurde das array befüllt. Lustigerweise kann man auch mit ungültigem API key Kurse abfragen 🙂 Das doch recht komplizierte Konstrukt mit dem foreach über das array kann man kürzer lösen. $usdt = array_search('USDT', array_column($this->binanceAccount['balances'], 'asset')); $value = $this->binanceAccount['balances'][$usdt]; print_r($value); https://y.24unix.net/92z8z Noch ein Edit: Habe einen Screenshot vom Bot-Dialog gemacht, KEY und Secret sind optional, wenn nicht eingegeben wird, wird der aus der Config genommen (Menü Setup).
  22. Weil es eine Datenkrake ist. Ich nutze nicht von denen ausser der Suche, da gibt es leider keine brauchbaren Alternativen. Es geht Google aber ganz und gar nichts an, auf welchen Seiten ich mich anmelde, welche Dienste ich nutze. Ist aber nicht der entscheidende Punkt, sondern, dass man jedes OTP Tool verwenden kann, man muss also nicht jedesmal das Handy rauskramen wenn man ein PW braucht.
  23. Ich wollte es aber komfortabler haben. Ich habe schon Tabellen für die Bots, sobald ich mit dem Code weiter machen kann (warte auf meine Einzahlung, die balances sind immer noch leer), werde ich die gemäß der Lektionen erweitern.
  24. Ich komme ganz gut voran 🙂 Macht Spaß, muss jetzt nur warten, bis meine Einzahlung bei Binance eingegangen ist. Ich werde das ganze etwa "bottiger" machen, mehr Trennung von Darstellung und Cron-Aktionen. Und ich habe für die Bots eine extra Tabelle, man kann also mehr als einen Bots laufen lassen, ohne das Programm replizieren zu müssen. Es wird ein Default Paar Key/Secret gespeichert um die Abfragen zu machen, man kann aber für jeden Bot ein eigenes Paar angeben wenn man mehrere Accounts bei Binance hat, muss dann, wenn ich weitr im Code bin gucken ob das Problem egibt. Bilder kann man hier nicht hochladen, oder? 😞 Ich habe es mal ins Pastebin: https://y.24unix.net/4ga9a Ein Repo habe ich auch angelegt: https://git.24unix.net/tracer/BalancingBot
  25. So, ich bin jetzt auch bei Lektion 3 angekommen. Wer genauso wie ich mit Google Bauchschmerzen hat, und der Firma ganz besonders bei Geldgeschäften nicht traut: Das Ding bei Binance heisst zwar Google Authenticator, aber es ist de facto ein ganz normales OTP, ich nutze OTP Manager, eine kleine App die oben in der Menüleiste sitzt und den 2FA einfach bei Bedarf in die Zwischenablage kopiert.
×
×
  • 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.