Algorithmischer Handel mit Python und Robinhood

Feb 20 2023
Geld an der Börse zu verdienen ist oft mit viel Stress, Zeit und Risiko verbunden. Was wäre, wenn es eine Möglichkeit gäbe, den Stress und den Zeitaufwand für Investitionen zu reduzieren? Robinhood beitreten Robinhood ist eine provisionsfreie Aktienhandels- und Anlage-App, die es Menschen ermöglicht, schnell und einfach mit der Investition in den Aktienmarkt zu beginnen.
Foto von Tech Daily auf Unsplash

Geld an der Börse zu verdienen ist oft mit viel Stress, Zeit und Risiko verbunden. Was wäre, wenn es eine Möglichkeit gäbe, den Stress und den Zeitaufwand für Investitionen zu reduzieren?

Beitritt zu Robinhood

Robinhood ist eine provisionsfreie Aktienhandels- und Anlage-App, die es Menschen ermöglicht, schnell und einfach mit Investitionen an der Börse zu beginnen. Das Unternehmen bietet viele Vorteile, z. B. kein Mindestkonto, keine Handelsprovisionen und die Möglichkeit, mit Optionen zu handeln.

Darüber hinaus ist die Plattform intuitiv und bietet Benutzern Informationen wie den gleitenden 50-Tage- und 200-Tage-Durchschnitt, Analystenbewertungen zum Kauf oder Verkauf einer Aktie sowie die neuesten Nachrichten aus verschiedenen Quellen.

Über meinen unten stehenden Link können Sie Robinhood beitreten und wir erhalten beide eine Gratisaktie im Wert von 5 bis 200 US-Dollar.

Der Algorithmus

Der von uns verwendete Algorithmus ist ein Crossover mit gleitendem Durchschnitt, der häufig von Börsenanalysten verwendet wird. Dieser Algorithmus überwacht den einfachen gleitenden Durchschnitt (SMA), das arithmetische Mittel eines Aktienkurses über einen kurzfristigen Zeitraum, und vergleicht ihn mit dem gleitenden Durchschnitt eines langfristigen Zeitraums.

Ein Signal zum Kauf einer Aktie liegt dann vor, wenn der kurzfristige SMA den langfristigen SMA überschreitet, was als goldenes Kreuz bezeichnet wird. Im Gegenteil ist es ein Signal zum Verkauf einer Aktie, wenn der kurzfristige SMA den langfristigen SMA unterschreitet, was als Todeskreuz bezeichnet wird.

Codierung

Zunächst müssen wir die Bibliothek robin_stocks installieren, damit wir eine Verbindung zu einem Robinhood-Konto herstellen können.

pip install robin_stocks

Anschließend importieren wir die erforderlichen Bibliotheken und stellen die Anmeldeinformationen des Robinhood-Kontos bereit.

import robin_stocks as r
import time

# Replace "your_username" and "your_password" with your own credentials
r.login(username="your_username", password="your_password")

# Desired stock symbol
stock_symbol = "AAPL"

# Obtain moving averages
MA_50 = r.stocks.get_crypto_historicals(symbol=stock_symbol, interval='day', span='50day')[0]['close_price']
MA_200 = r.stocks.get_crypto_historicals(symbol=stock_symbol, interval='day', span='200day')[0]['close_price']

while True:
    # Current stock price
    current_price = float(r.stocks.get_latest_price(stock_symbol)[0])
    
    # Calculate new moving averages
    MA_50 = (49 * MA_50 + current_price) / 50
    MA_200 = (199 * MA_200 + current_price) / 200
    
    # Condition to buy or sell
    if MA_50 > MA_200:
        # Buy
        invest_amount = 1000
        account_balance = float(r.crypto.get_crypto_currency_balance('USD')['quantity'])
        if account_balance >= invest_amount:
            r.orders.order_sell_crypto_by_price(stock_symbol, invest_amount)
            print("Bought", stock_symbol, "at", current_price, "on", time.strftime("%c"))
    else:
        # Sell
        sell_amount = 1000
        position = r.crypto.get_crypto_currency_balance(stock_symbol)
        if float(position['quantity']) >= sell_amount:
            r.orders.order_sell_crypto_by_price(stock_symbol, -sell_amount)
            print("Sold", stock_symbol, "at", current_price, "on", time.strftime("%c"))
    
    # Wait for one minute before checking the new stock price
    time.sleep(60)

import robin_stocks as r
import time

# Replace "your_username" and "your_password" with your own credentials
r.login(username="your_username", password="your_password")

# Desired stock symbol
stock_symbol = "AAPL"

# Obtain moving averages
MA_50 = r.stocks.get_crypto_historicals(symbol=stock_symbol, interval='day', span='50day')[0]['close_price']
MA_200 = r.stocks.get_crypto_historicals(symbol=stock_symbol, interval='day', span='200day')[0]['close_price']

while True:
    # Current stock price
    current_price = float(r.stocks.get_latest_price(stock_symbol)[0])
    
    # Calculate new moving averages
    MA_50 = (49 * MA_50 + current_price) / 50
    MA_200 = (199 * MA_200 + current_price) / 200
    
    # Condition to buy or sell
    if MA_50 > MA_200:
        # Buy
        invest_amount = 1000
        account_balance = float(r.crypto.get_crypto_currency_balance('USD')['quantity'])
        if account_balance >= invest_amount:
            r.orders.order_sell_crypto_by_price(stock_symbol, invest_amount)
            print("Bought", stock_symbol, "at", current_price, "on", time.strftime("%c"))
    else:
        # Sell
        sell_amount = 1000
        position = r.crypto.get_crypto_currency_balance(stock_symbol)
        if float(position['quantity']) >= sell_amount:
            r.orders.order_sell_crypto_by_price(stock_symbol, -sell_amount)
            print("Sold", stock_symbol, "at", current_price, "on", time.strftime("%c"))
    
    # Wait for one minute before checking the new stock price
    time.sleep(60)

Ich wünsche Ihnen viel Spaß beim Implementieren Ihrer eigenen Handelsalgorithmen mit Python. Wenn Sie Fragen haben, kommentieren Sie unten und ich beantworte sie gerne!