Automatisierte Surebet-Benachrichtigungen mit einem R-Script und einem Telegram-Bot
Ich habe ein R-Script entwickelt, das Surebets auf dem Wettmarkt identifiziert. Surebets, wie der Name schon sagt, sind sichere Wetten, bei denen man durch eine clevere Verteilung des Einsatzes garantiert Gewinn machen kann. Um dies zu verdeutlichen, nehmen wir ein klassisches Beispiel aus dem Tennis: Angenommen, Spieler A wird bei Buchmacher 1 zu einer Quote von 2,10 angeboten, und Spieler B ist bei Buchmacher 2 ebenfalls zu einer Quote von 2,10 spielbar. Setzt man jeweils 100 Euro auf beide Spieler, ergibt sich ein sicherer Gewinn von 10 Euro, unabhängig vom Ausgang des Spiels. Dieses Beispiel ist natürlich fiktiv, und in der Praxis müssen auch die speziellen Wettregeln, wie etwa die „w.o.“-Regel bei Tennisspielen, beachtet werden.
Bis jetzt hat mein Programm mich durch einen lauten Beep-Ton alarmiert, wenn eine Surebet entdeckt wurde. Um es komfortabler zu gestalten, möchte ich nun Benachrichtigungen direkt auf mein Smartphone erhalten. Eine praktische Lösung dafür ist die Verwendung eines Telegram-Bots.
Telegram bietet eine API, die die Erstellung und Integration solcher Bots ermöglicht, und es gibt ein passendes R-Package, um diese API zu nutzen. Der erste Schritt ist die Erstellung eines Bots über den „BotFather“ in Telegram.
Mit /newbot kann ein neuer Bot erstellt werden. Einfach ein paar Fragen des BotFather beantworten und schon erhält man einen Token für die API. Den Bot fügt man jetzt am besten der .Renviron File hinzu. Diese kann mit folgendem Code erstellt werden:
user_renviron = path.expand(file.path("~", ".Renviron"))
if(!file.exists(user_renviron)) # check to see if the file already exists
file.create(user_renviron)
file.edit(user_renviron) # open with another text editor if this fails
Wer es genauer wissen will, kann hier mehr darüber erfahren. In diese File schreiben wir dann folgenden Befehl mit dem Token.
R_TELEGRAM_BOT_SurebetBot=Eigener_Token
Danach ist wichtig, dass RStudio neu gestartet wird. Mit folgendem Code kann dann eine Message versendet werden.
library(telegram)
bot <- TGBot$new(token = bot_token('Bot_Name'))
bot$set_default_chat_id(123456)
bot$sendMessage('Hallo, ich bin dein Telegram Bot')
Anstelle von 123456 muss die passende Chat ID eingefügt werden. Diese ID kann man durch die URL https://api.telegram.org/bot<API-access-token>/getUpdates?offset=0
herausfinden. Anstelle von <API-access-token> die eigene Token ID angeben. Zurück kommt ein JSON String in dem man unter chat: id: die passende ID herauslesen kann. Damit dies funktioniert, muss zuvor aber schon mindestens eine Nachricht an den Bot geschickt worden sein.