Zum Inhalt springen

Workshop: Wir basteln uns einen Tradingbot (Lektion 1)


Empfohlene Beiträge

Hallo zusammen,

heute starte ich mit der ersten Lektion nachdem die Interessensabfrage (https://coinforum.de/topic/15956-interessensabfrage-wer-möchte-selber-einen-tradingbot-erstellen) recht positiv verlief und ich einige PNs zu dem Thema erhalten hatte.

Ziel des Workshops:

- Nach insgesamt 7 Lektionen hat jeder Teilnehmer einen lauffähigen Tradingbot am Laufen.
- Nach weniger als 7 Lektionen verfügt jeder Teilnehmer über Grundkenntnisse im Programmieren
- Nach der ersten Lektion (also heute) hat jeder Teilnehmer einen eigenen Webserver in Betrieb genommen und sieht "Hallo Welt" in seinem Webbrowser.

Ziel des Tradingbots:

- Da es um einen Tradingbot geht, der keine hohen Risiken eingeht, wird lediglich eine Minimalstrategie umgesetzt, die sich "Rebalancing" nennt.

Ziel der Tradingstrategie "Rebalancing":

- ein Portfolio bestehend aus einer Seitenlinie (in unserem Fall USDT, kann aber auch BTC, ETH oder BNB sein) und bestehend aus 3 Coins (wird hier BTC, ETH und ADA sein, kann aber auch mehr sein) wird mit jedem Durchlauf auf seine Balance hin überprüft. Gerät das Portfolio aus der Balance, weil z.B. der ETH-Kurs fällt wird der Bot ETH nachkaufen und so das Portfolio wieder in Balance bringen.

Definition "in Balance":

- Der Seitenlinie wird ein Prozentsatz zugewiesen: "Seitenlinie soll 100% des Wertes aller Coins betragen" ... wenn also die Coins in Summe 100 USDT wert sind, dann sollen an der Seitenlinie ebenfalls 100 USDT liegen. Das bedeutet, wenn die Coins allesamt im Wert steigen, werden automatisch Gewinne mitgenommen um die Seitenlinie im richtigen Verhältnis nachzuziehen.

Grundvoraussetzungen:

- jeder Teilnehmer sollte ein ausreichend großes Interesse mitbringen
- jeder sollte in der Lage sein Google zu benutzen :D
- jeder Teilnehmer muss sich bewusst sein, dass er mit echtem Geld automatisiert traden wird
- jeder Teilnehmer handelt vollständig eigenverantwortlich
- jeder Teilnehmer verfügt über eine eigens dafür angelegten Binance-Account, der über meineen Ref-Link erstellt wurde: https://www.binance.com/?ref=28506673  
   ... diese Referral-Einnahmen sind der Lohn meiner Arbeit in diesem Workshop, bitte seid so fair - eine Kontrolle erfolgt nicht.
- Ich lege den Bot für ein Vermögen von knapp 100 USDT aus, das ist bei Binance aufgrund des MIndesttrading-Volumens von 10 USDT sehr kritisch. Besser wäre mehr Kapital - verständlicherweise sollte zu Beginn das Spielgeld auf einen zweistelligen Betrag begrenzt werden.

Spielregeln:

- Alle Fragen sind erlaubt, bitte stellt sie hier in diesem Thread
- Wenn Ihr mir Screenshots senden wollt damit ich darauf eingehe, bitte an balancebot(ät)gmx(punkt)de

 

So, dann legen wir mal los:

1. Installieren von XAMPP (alternativ WinSCP für die, die einen Webserver haben)
2. Installieren von Notepad++
3. Erstellen der ersten PHP-Datei
4. Starten des Webservers (und Datenbank starten wir auch schonmal)

 

1. Installieren von XAMPP (alternativ WinSCP für die, die einen Webserver haben)

Damit überhaupt etwas passiert, braucht es einen Webserver. Entweder einen bei 1&1 für ca. 5 Euro anmieten oder sonstwo anmieten. Kostenfreie Lösungen habe ich bisher nicht gefunden, die die Binance-API ansprechen können.

Wer einen Server online zur Verfügung hat, der lädt ein (S)FTP-Programm, z.B. WinSCP und kann dann die PHP-Dateien auf den Webserver übertragen.

Wer keinen Online-Server hat, der lädt sich "XAMPP" (Google "XAMPP") - der Download ist über 100 MB groß.
Das Programm wird im Normalfall im Verzeichnis "c:\xampp" installiert.

So sieht das Programm nach dem ersten Start aus:

xampp-1.png.4aac7450f5d9d6d53801b4bab811c133.png


2. Installieren von Notepad++

PHP-Dateien sind ganz normale Text-Dateien mit der Endung ".php", die lassen sich auch in jedem normalen Texteditor bearbeiten. Komfortabler ist es jedoch wenn Programmcode besonders farbig markiert wird. Daher empfehle ich "Notepad++", auch hier einfach mit Google danach suchen und runterladen.

3. Erstellen der ersten PHP-Datei

Wenn die Voraussetzungen erfüllt sind, dann legen wir eine erste PHP-Datei an.

Diese muss im Verzeichnis "c\xampp\htdocs" liegen. Wir erstellen dort das Unterverzeichnis "BalanceBot".
In das Verzeichnis "c\xampp\htdocs\BalanceBot" wird die Datei "index.php" neu erstellt - rechte Maustaste drauf und mit Notepad++ öffnen.

xampp-2.png.d3a6ee5d397a233c141a90e6d892e4a7.png

Nun kann es mit dem ersten Code losgehen,. der ist zu Beginn recht einfach:

<?php

/***
* Lektion 1: Hallo Welt
* ... wir legen uns einen Webspace an oder haben XAMPP installiert
* ... wir installieren WinSCP um Dateien auf den Webspace hochzuladen (bei XAMPP nicht nötig)
* ... wir installieren Notepad++ um einfacher PHP-Dateien zu erstellen
* ... wir erstellen unsere erste PHP-Datei mit "Hallo Welt".
* ... wir laden die Datei auf den Webserver
* ... und erleben im Browser, dass es funktioniert.
*
* Weiterführende Informationen:
*  Google: "php manual echo" um den Befehl "Echo" nachzulesen
*  Google: "w3schools br" um das HTML-Tag "<br>" nachzulesen
*/


echo "Hallo Welt <br>"; 

?>

PHP-Code wird immer mit "<?php" begonnne und mit "?>" beendet.

Ich versuche auch immer Hinweise zu geben wie Ihr weiterführende Informationen erhaltet um Euch weiter aufzuschlauen was der Code macht und wozu er da ist.

Am Ende die Datei abspeichern - logisch.

4. Starten des Webservers (und Datenbank starten wir auch schonmal)

Nun wird der Webserver noch gestartet:

xampp-3.png.e9c3db4ea7baf86cc2568f2d15ed2e86.png

Dazu klickt Ihr auf die Buttons "starten" rechts neben "Apache" und "MySQL"

Macht Euch mal via Google schlau was "Apache" ist und was "MySQL" ist.

Wenn die Dienste gestartet sind, könnt Ihr im Webbrowser "http://localhost" aufrufen und seht dann "Hallo Welt".

Fertig!

In der Lektion 2 werden wir dann ans Eingemachte gehen und das erste Mal die MySQL-Datenbank einrichten und über PHP anbinden. Wir werden dort Daten hineinschreiben, in der Datenbank anschauen und diese auch wieder ausgeben. Ich denke im Laufe der kommenden Woche wird es Laktion 2 geben und zum nächsten Wochenende kommt dann Lektion 3 in der wir die Binance-API einrichten und ansprechen werden.

  • Love it 7
  • Thanks 8
  • Like 20
  • Up 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

kurze anmerkung:
Vllt wäre es doch besser, zumindest direkte downloadlinks zu einer vernünftigen Version der jeweiligen Programme zu posten? Bei Notepad gibts soweit ich weiß zig Versionen und zig Installer, ich hatte damals auch ca 20 minuten gebraucht, bis ich mich über diese Varianten informiert hatte und letzlich die richtige wählen konnte. Diese 20 minuten könntest du also ersparen, indem du direkt den anfängerfreundlichsten und für windows 64bit ausgelegten installer verlinkst.
Ähnliches gilt für "google mal was xy ist", da wären zumindest Stichwörter noch hilfreich welches Wissen genau wichtig ist. Schließlich kann man zu den meisten Dingen unendlich in die Tiefe gehen und keiner weiß nun welches Wissen genau du nun mindestens voraussetzt.

Wenn die Teilnehmer es anders sehen, kanns dir natürlich egal sein was ich schreibe :D ich wollts nur mal anmerken, dass es besonders im Hinblick auf doch einige User die geschrieben hatten, dass sie nicht sooo viel Zeit hätten, man ihnen mit ein paar wenigen Zeilen mehr von dir, schon einiges an Zeit ersparen kann.

  • Thanks 3
  • Like 3
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, hast recht - ich wollte es vermeiden, da die direkten Links auch mal unaktuell werden.

XAMPP (nur wer keinen Internet-PHP-Server zur Verfügung hat): https://www.apachefriends.org/de/download.html

WinSCP (nur wer bereits einen Internet-PHP-Server hat): https://winscp.net/eng/download.php

Notepad++: https://notepad-plus-plus.org/download/v7.6.2.html

Github mit allen Files zum Download, falls sich mal jemand vollends verheddert hat: https://github.com/Jokin-BalanceBot/BalanceBot

Bearbeitet von Jokin
  • Love it 1
  • Like 3
Link zu diesem Kommentar
Auf anderen Seiten teilen

Cool, sogar mit GitHub :cool:.

Als einfacher Texteditor ist Notepad++ ganz ok, zum Programmieren empfehle ich aber Visual Studio Code (gratis).  Nach der Installation ist der Hintergrund augenkrebsverdächtig schwarz, aber das kann man leicht ändern: Links unten auf das Zahnrad und  dann "Color Theme" klicken um was Schöneres auszuwählen. Es werden viele Features für viele Sprachen/Formate unterstütrzt, u.a. auch PHP, javascript und HTML.

Bearbeitet von Herr Coiner
  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Zitat

Damit überhaupt etwas passiert, braucht es einen Webserver. Entweder einen bei 1&1 für ca. 5 Euro anmieten oder sonstwo anmieten. Kostenfreie Lösungen habe ich bisher nicht gefunden, die die Binance-API ansprechen können.

Wer einen Server online zur Verfügung hat, der lädt ein (S)FTP-Programm, z.B. WinSCP und kann dann die PHP-Dateien auf den Webserver übertragen.

Wer keinen Online-Server hat, der lädt sich "XAMPP" (Google "XAMPP") - der Download ist über 100 MB groß.
Das Programm wird im Normalfall im Verzeichnis "c:\xampp" installiert.

vor 19 Stunden schrieb Jokin:

XAMPP (nur wer keinen Internet-PHP-Server zur Verfügung hat): https://www.apachefriends.org/de/download.html

WinSCP (nur wer bereits einen Internet-PHP-Server hat): https://winscp.net/eng/download.php

@Jokin: Damit ich mir viel Googeln erspare, eine drei kurze Zwischenfragen: Soll der Bot am Ende auf einem externen Webhoster laufen, oder auf dem eigenen PC der dann aber permanent an sein müsste...? Oder soll es beide Möglichkeiten geben...? Woran erkennt man ob ein kostenloser Webserver für diesen Bot geeignet wäre (alle Kriterien, z.B. "php-fähig" oder so)...?

P.S.: Bin erstmal am mitlesen und habe es bisher noch nicht geschafft irgendwelche Schritte durchzuführen, außer dass ich bereits schon länger Notepad++ auf dem PC installiert habe...

Bearbeitet von koiram
Link zu diesem Kommentar
Auf anderen Seiten teilen

50 minutes ago, koiram said:

@Jokin: Damit ich mir viel Googeln erspare, eine drei kurze Zwischenfragen: Soll der Bot am Ende auf einem externen Webhoster laufen, oder auf dem eigenen PC der dann aber permanent an sein müsste...? Oder soll es beide Möglichkeiten geben...? Woran erkennt man ob ein kostenloser Webserver für diesen Bot geeignet wäre (alle Kriterien, z.B. "php-fähig" oder so)...?

P.S.: Bin erstmal am mitlesen und habe es bisher noch nicht geschafft irgendwelche Schritte durchzuführen, außer dass ich bereits schon länger Notepad++ auf dem PC installiert habe...

Ich bin zwar nicht Jokin, aber anhand seiner bisherigen Beschreibung:
1+2) Wo das Ding letztlich laufen wird ist dir überlassen. Der Server muss nur die Voraussetzungen erfüllen und sollte natürlich dauerhaft verfügbar sein, sonst kann er nicht auf Marktbewegungen reagieren.
3) Vorerst sieht es aus als wären PHP und MySQL Voraussetzung. Das bietet eigentlich jeder Hoster an. Reines HTML-Hosting, das es zum Teil auch am Markt gibt, ist nicht ausreichend.

Allgemein: mein Lieblingshoster für Kleinkram ist uberspace.de. Die sind allerdings eher etwas für Leute, die mit einem Terminal umgehen können, denn mit Klicki-Bunti haben die es nicht so ☺️ Dafür kann man sich die monatlichen Kosten selbst aussuchen, solange es mindestens ein Euro ist. Die Leistung ist aber immer die gleiche.

Bearbeitet von jfuyuv
Ergänzung
  • Thanks 2
  • Like 2
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Minute schrieb jfuyuv:

Eine Sache die beim externen Hosting noch wichtig wäre, ist, ob der Bot Cronjobs brauchen wird, denn das ist bei den Hostern auch noch nicht Standard.

Ich vermute es fast, aber das kann derzeit nur @Jokin beantworten.

Ja, das ist der Titel der 7. Lektion. 

Es gibt Gratis-Cronjob-Dienstleister, ich werde dann cron-jobs.org hier ins Spiel bringen. Der funktioniert bei mir gerade sehr zuverlässig, das Skript muss nur nach 30 Sekunden fertig sein.

Wer größere Beträge (> 10.000 Euro) mit dem Bot verwalten will, könnte sich überlegen einen eigenen VPS anzumieten ... das ist aber viel zu fernes Zukunftsblafasel. 

Ich selber betreibe einen VPS und hab da alles was ich brauche.

  • Love it 1
  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay, also wenns der Hoster selber kann wärs gut, wenn nicht folgt noch ein Plan B in L7. Das sollte den Leuten schon mal bei der Planung der Basis helfen ☺️

VPS kosten heutzutage eh kaum noch etwas, aber je nachdem wie versiert der Leser ist könnte dieser Level die Leute natürlich überfordern.

Ich bin mal auf die restlichen Teile gespannt. Hut ab vor deinen Bemühungen!

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb jfuyuv:

Vorerst sieht es aus als wären PHP und MySQL Voraussetzung.

Das stimmt so nicht wirklich: @Jokin schrieb, dass man den Code auch leicht in andere Sprachen portieren kann – wenn man versteht was das Programm tun soll, ist klar. Natürlich sollte dann auch ein anderer SQL-Dialekt kein Problem sein. Selber probiere ich es zunächst lokal mit Golang (zum Erlernen) und momentan noch mit MS SQL Server Express als Datenbank, später wahrscheinlich was Kleineres.

Zitat

Allgemein: mein Lieblingshoster für Kleinkram ist uberspace.de. [...] Dafür kann man sich die monatlichen Kosten selbst aussuchen, solange es mindestens ein Euro ist. Die Leistung ist aber immer die gleiche.

Wow, die kannte ich nicht und die Leistung kann sich sehen lassen. Liest sich jedenfalls sehr sympathisch, wie die das machen und es wird sogar Go unterstützt. Damit würde sich dann wohl auch der Apache erübrigen B).

Bearbeitet von Herr Coiner
Link zu diesem Kommentar
Auf anderen Seiten teilen

19 minutes ago, Niiko_ said:

Bevor ich mich hier komplett einlese: Ist das alles mit einem Apple Mac (MacOS Mojave) auch möglich?

Sehe ich kein Problem. XAMPP gibts auch für MacOS (Link steht ja schon oben), einen beliebigen Texteditor, optimalerweise mit Syntax-highlighting, zu finden ist auch nicht schwer (TextWrangler hat eine gewisse Ähnlichkeit zu Notepad++ und gibts im App-Store) und statt WinSCP lässt sich z.B. FileZilla (gibts übrigens auch für Windows und Linux) einsetzen. Die Links findet Google oder eine beliebige datenschutzfreundlichere Suchmaschine wie z.B. www.duckduckgo.com

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Stunde schrieb jfuyuv:

VPS kosten heutzutage eh kaum noch etwas, aber je nachdem wie versiert der Leser ist könnte dieser Level die Leute natürlich überfordern.

Das kann dann Lektion 8 werden, wenn das Interesse da ist.

Zu Beginn reicht aber erstmal XAMPP oder eben auch 1&1 für 4 Euro mtl.

Ich beantworte auch eMails oder per PN gebe ich da auch Support solange es im Rahmen bleibt.

vor 1 Stunde schrieb Niiko_:

Bevor ich mich hier komplett einlese: Ist das alles mit einem Apple Mac (MacOS Mojave) auch möglich? 

Danke!

Ich mache das nur am Mac. Textwrangler ist absolut ausreichend. Als FTP-Programm nutze ich Cyberduck.

XAMPP läuft auch auf dem Mac, hab es aber nicht installiert, da ich es auf einem alten Windowslaptop für die Mehrheit machen wollte.

Daher: Probiere es aus, ich unterstütze auch MacUser.

  • Love it 2
  • Thanks 1
  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo zusammen

Wäre nett, wenn jemand mal meinen neuen Webserver hier anpingt.
Nach dem Draufklicken solle er nur mit einem nackten "pong" antworten, ohne jedes HTML-Gedöns.

Sieht jemand das "pong" als Antwort? Das wäre cool. Dann weiß ich, dass es funktioniert.
Der Server läuft bei mir lokal und ich weiß bis jetzt nicht, ob er von außen auch wirklich erreichbar ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Minuten schrieb jfuyuv:

Was hab ich mir jetzt eingefangen? 😀

Hoffentlich nix. Ich nutze Chrome mit dem uMatrix Plugin. Schaltet erstmal alles aus was Schaden anrichten könnte und ich darf dann entscheiden was ich aktivieren möchte und was ausgeschaltet bleibt. Ähnliche Plugins gibt es auch für andere Browser. Auf keinen Fall ohne Gummi!

Edit: Auf der genannten Seiten wurde nichts geblockt. Selbst wenn du also ohne Gummi unterwegs bist hast du dir hier nichts eingefangen. Alle eventuell vorhandenen Krankheiten hast du von anderen bekommen.

Bearbeitet von skunk
  • Haha 2
  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Am ‎06‎.‎01‎.‎2019 um 13:59 schrieb Jokin:

das Skript muss nur nach 30 Sekunden fertig sein.

Das allerdings ist bei größeren Berechnungen, vieler Coins und Werte etc. nicht ganz so einfach gelöst ;) 

Ich nutze all-inkl.com (link mit Refferer: https://all-inkl.com/PA141EC80C71A50 ) (einer der zuverlässigsten deutschen Anbieter im Webhosting Bereich. Rund um die Uhr support, alles Tip Top. Hat besagte Apache-Server mit PHP, MySQL-Datenbanken Ende nie, 100 Gb Speicher, auch CronJobs, domains inklusive und viele coole Tools direkt mit am Board. Wenn man da so eine Bot richtig aufsetzt, läuft das wie geschmiert ;)

Sorry, dass ich Werbung mache für die, aber ich habe da Projekte seit mehreren Jahren und die Jungs habens drauf. Support hilft einem rund um die Uhr mit technischen Fragen, kann kompetent technische Fragen beantworten und meldet sich innerhalb von Minuten wieder. Und die Server sind auch schnell und eigentlich nie down, also sehr zuverlässig.

 

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

vor 37 Minuten schrieb coinflipper:

Das allerdings ist bei größeren Berechnungen, vieler Coins und Werte etc. nicht ganz so einfach gelöst ;) 

Absolut richtig.

Bevor man jedoch einen automatischen Trading-Algorithmus auf viele Coins mit größeren Werten loslässt, hat man ein gewisses Grundvertrauen in seinen Bot. Und das hat man ja nicht weil er dauernd Miese macht ... und wenn der Bot ein positives Ergebnis bringt, dann geht es recht schnell, dass man einen Teil des Ergebnisses in das Equipment steckt und sich von Gratis-Lösungen entfernt.

Werbung machen finde ich vollkommen in Ordnung, wenn damit seriöse Erfahrungsbericht verknüpft werden.Das hast Du ja, also passt das schon - mache ich ja auch nicht anders.

 

  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Minute schrieb Jokin:

evor man jedoch einen automatischen Trading-Algorithmus auf viele Coins mit größeren Werten loslässt, hat man ein gewisses Grundvertrauen in seinen Bot.

Sehe ich auch so, deswegen finde ich das auch gut, was du hier machst!

Falls ihr noch einen guten Editor braucht: Komodo Edit (kostenfrei). Das Ding kommt mit fast allen Programmiersprachen zu Recht und hat auch eine schöne übersichtliche Ansicht, die man auch aus anderen Programmen kennt. Noch dazu, arbeitet die Auszeichnung und Einrückung recht gut, wie ich finde und koloriert die unterschiedlichen Programmiersprachen innerhalb einer Datei sehr übersichtlich. Das nutze ich seit Jahren, da ich vieles per Hand einfach "programmiere".

 

 

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Monat später...

Moin zusammen

Danke für das super Projekt, hört sich wirklich sehr interessant an 🙂

Wollte mich nun auch mal dran versuchen, leider scheitere ich bereits in Lektion 1 😞 

 

XAMPP Control Panel v3.2.2 installiert

Apache und MySQL gestartet

index.php im Verzeichnis "c\xampp\htdocs\BalanceBot erstellt und mit code gefüllt

wenn ich jetzt h**p://localhost im Browser (Opera) aufrufe , sehe ich kein "Hallo Welt" sondern das dashboard von XAMPP 😕

9259c9-1550642446.jpg

Bin für jeden Tipp dankbar.

 

Gruß SajetS

Bearbeitet von SajetS
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 5 Stunden schrieb SajetS:

index.php im Verzeichnis "c\xampp\htdocs\BalanceBot erstellt und mit code gefüllt

wenn ich jetzt h**p://localhost im Browser (Opera) aufrufe , sehe ich kein "Hallo Welt" sondern das dashboard von XAMPP 😕

9259c9-1550642446.jpg

Bin für jeden Tipp dankbar.

Mein Fehler !!

... ich sehe gerade, dass im ersten Beitrag ein Fehler drin ist.

Und zwar liegt die Datei "index.php" im Unterverzeichnis "BalanceBot" und dementsprechend muss der Aufruf h..p://localhost/BalanceBot lauten - also auch der Verzeichnisname gehört da dran.

Uff - tut mir leid, das ist mir vollkommen durchgerutscht.

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