Einen Trading Bot bauen Teil 4 - Kryptoindikatorblog Teil 7
Hinweis zur Verwendung von Links:
Zur Zeit erlaubt mein read-cash-Account kein Posting von Links. Ich werde Links dennoch als Verweise oder Quellen in meinen Posts verwenden, diese jedoch so abändern,dass ein Upload des Artikels möglich ist. Hierzu ersetze ich die Endungen, z.B. "Punkt com" durch [.]com.
Dadurch klappt zwar das direkte Anklicken nicht, aber durch Anpassen des Links in der Adresszeile solltet Ihr das Ziel dennoch finden können.
Vielen Dank.
Im letzten Teil haben wir uns eine Trading Strategie überlegt und diese mittels Tests optimiert.
Jetzt, da uns eine optimale Strategie vorliegt, geht es darum, die Puzzleteile zu einem Werk zusammenzufügen.
Dieser Bot, oder dieses Programm, soll dann rund um die Uhr auf einem Mini-PC laufen.
Inwiefern es selbstständig Käufe und Verkäufe tätigt, ist dir und deinen Möglichkeiten überlassen.
Das Gerüst eines Trading Bots
Im Rahmen dieses Artikels will ich das Grundgerüst eines Bots vorstellen. Dieses sieht in etwa so aus:
while(true):
PreiseHolen()
IndikatorAusführen()
KennzahlBewerten()
AktionDurchführen()
warten(Zeit)
Das Gerüst ist also eine Endlosschleife (while loop), die sich die Preise holt und dann den Wert des Indikators bestimmt.
Wenn wir das auf das optimierte Beispiel im letzten Blogpost anwenden, bedeutet dies, der Bot würde einen aktuellen Bitcoinkurs aus dem Internet abfragen und dann den einprogrammierten Indikatorwert- das Mayer-Multiple - bestimmen.
Der erhaltene Wert würde dann mit den aus den Optimierungen gefundenen Schwellenwerten (1.1 und 2.0) verglichen werden.
Sollte ein Schwellenwert über- bzw. unterschritten werden, so dass ein Kauf oder Verkauf von Bitcoin erforderlich wäre, käme nun der Schritt, der mit "Aktion durchführen" gekennzeichnet ist.
Nach dem Durchführen der Aktion, die wir uns in diesem Kapitel näher ansehen wollen, wartet der Bot eine festgesetzte Zeit und wiederholt die obigen Schritte erneut.
Aktion durchführen
Wenn dein Bot statt mit Bitcoin mit Ethereum und den vielen auf Ethereum aufgesetzten Token handeln soll, wirst du wohlmöglich die Börse Uniswap verwenden wollen.
Uniswap besitzt für Python eine API, mit der du deinen Bot vollständig autonom agieren lassen kannst.
Wenn du Erfahrung gesammelt hast und gut programmieren kannst, wirf einen Blick auf die Python-API, falls du dies ausporbieren willst:
https://uniswap-python[.]com/getting-started.html#making-trades
Wenn du jedoch andere Coins handeln willst, dir deine Börse keine API bietet, oder du bei deinem Handel noch etwas Anderes tun willst, empfehle ich die folgende, relativ einfache Lösung:
SMTPLIB als Aktion nutzen
Lass dich doch von deinem Bot per Mail informieren, dass gerade ein interessanter Zeitpunkt vorliegt!
Mit der SMTPLIB kannst du mit wenigen Zeilen Codes deinen Bot E-Mails versenden lassen.
Damit dies funktioniert, brauchst du jedoch zwei E-Mail Adressen
(nein keine Aliases, zwei VERSCHIEDENE bei verschiedenen Providern).
Eine verwendet dann dein Bot und eine, auf welcher du dessen Vorschläge empfängst.
Ich empfehle für deinen Bot Startmail. Startmail kostet zwar etwa 50 Euro im Jahr
dies ist keine Werbung, ich bekomme von Startmail nichts
aber du kannst deinem Bot ein eigenes IMAP-Konto zuweisen und, mit einem eigenen Passwort geschützt, wird auch dein Hauptkonto geschützt!
Wenn du kostenlose und bekannte Anbieter wie GMail oder Outlook verwenden möchtest, solltest du sicherstellen, dass diese Zugriff von äußeren Programmen zulassen.
Um dies zu testen, versuche einfach dein bestehendes Emailkonto in z.B. Thunderbird einzurichten. Wenn dies gleich funktioniert, solltest du nichts weiter tun müssen. Falls es Probleme gibt, findest du hier ein paar Tipps, um Zugriff von externen Programmen - was dein Bot ja sein wird - zuzulassen:
https://joecomp[.]com/how-set-up-gmail-thunderbird
Merke dir die von dir verwendeten Portnummern gut, du wirst sie gleich brauchen.
Sobald alles funktioniert, wollen wir dem Bot die SMTPLIB hinzufügen und mit ein paar Codes eine E-Mail versenden lassen, die uns z.B. benachrichtigt, wenn wir kaufen wollen:
import smtpblib
server = smtplib.SMTP_SSL('smtp.MAILPROVIDER[.]com', SMTPPORTNUMMER)
server.login('DEINE_MAIL_ADRESSE', 'PASSWORT')
server.sendmail('EMAILADRESSE_DES_BOTS', 'EMPFÄNGERADRESSE',
'NACHRICHT')
server.quit()
Denke daran im Quelltext oben auch die eckigen Klammern um den Punkt zu löschen.
Das war es auch schon fast. Du musst nur noch die in Großbuchstaben angegebenen Variablen durch deine Informationen ersetzen und dann sollte dir dein Bot Mails schicken können.
Bedenke, dass dein Bot nur die Mails schreibt und keinen Kauf oder Verkauf tätigt. Das musst du dann zwar selbst machen, aber du musst dann nicht mehr die Kurse selbst checken ;)
Viel Spaß bei der Umsetzung.