Das Programm soll folgendes machen:
Es wird alle 20 Sekunden der aktuelle BTC-Kurs geladen. Wenn der Kurs unter einer bestimmten Grenze ist (PRICE_TO_BUY ), soll er mit dem aktuellen Guthaben in Euro (euro_balance) so viele BTC wie möglich kaufen. Wenn der Kurs unter PRICE_TO_SELL ist, soll er alle aktuellen BTC die ich habe wieder verkaufen. Wenn der Kurs dann wieder unter die Grenze von PRICE_TO_BUY kommt wieder für das ganze Geld kaufen.
Da ich das Programm nicht richtig testen kann, wollte ich fragen ob mir einer sagen kann ob das Programm das macht was ich möchte oder ob ich ein Fehler in der Logik habe.
Code: Alles auswählen
import requests
from bs4 import BeautifulSoup
import time
HEADERS = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"}
URL = "https://www.google.com/search?q=btc+kurs&ie=utf-8&oe=utf-8"
PRICE_TO_SELL = 10900
PRICE_TO_BUY = 10300
def get_current_btc_course(URL):
page = requests.get(URL, headers=HEADERS)
soup = BeautifulSoup(page.content, "html.parser")
price = soup.find(id="knowledge-currency__tgt-amount").get_text()
converted_price = float(price.replace(".", "").replace(",","."))
return converted_price
def btc_to_euro(btc):
return btc * get_current_btc_course(URL)
def euro_to_btc(euro):
return euro / get_current_btc_course(URL)
def buy_all_btc(euro_balance, btc_balance):
if euro_balance > 0:
btc_balance += euro_to_btc(euro_balance)
euro_balance = 0
print(f"Du hast jetzt {btc_balance} BTC")
def sell_all_btc(euro_balance, btc_balance):
if btc_balance > 0:
euro_balance += btc_to_euro(btc_balance)
btc_balance = 0
print(f"Du hast jetzt {euro_balance} Euro")
def main():
euro_balance = 500
btc_balance = 0
while True:
current_btc_course = get_current_btc_course(URL)
print(f"Aktueller BTC-Kurs: {current_btc_course} Euro")
if current_btc_course <= PRICE_TO_BUY:
buy_all_btc(euro_balance, btc_balance)
elif current_btc_course >= PRICE_TO_SELL:
sell_all_btc(euro_balance, btc_balance)
time.sleep(20)
if __name__ == '__main__':
main()