Python ve Robinhood ile Algoritmik Ticaret

Feb 20 2023
Borsada para kazanmak genellikle çok fazla stres, zaman ve risk içerir. Ya yatırım yapmak için gereken stresi ve zamanı azaltmanın bir yolu olsaydı? Robinhood'a Katılmak Robinhood, insanların hızlı ve kolay bir şekilde borsaya yatırım yapmaya başlamasını sağlayan komisyonsuz bir hisse senedi alım satım ve yatırım uygulamasıdır.
Unsplash'ta Tech Daily'nin fotoğrafı

Borsada para kazanmak genellikle çok fazla stres, zaman ve risk içerir. Ya yatırım yapmak için gereken stresi ve zamanı azaltmanın bir yolu olsaydı?

Robinhood'a Katılmak

Robinhood, insanların borsaya hızlı ve kolay bir şekilde yatırım yapmaya başlamasını sağlayan komisyonsuz bir hisse senedi alım satım ve yatırım uygulamasıdır. Şirketin minimum hesap olmaması, işlemlerde komisyon olmaması ve opsiyon ticareti yapabilme gibi birçok avantajı vardır.

Ek olarak, platform sezgiseldir ve kullanıcılara 50 günlük ve 200 günlük hareketli ortalama, bir hisse senedi alıp satmayacağına ilişkin analist derecelendirmeleri ve çeşitli kaynaklardan en son haberler gibi bilgiler sağlar.

Aşağıdaki bağlantımı kullanarak Robinhood'a katılabilirsin ve ikimiz de 5 dolardan 200 dolara kadar değerinde ücretsiz bir hisse senedi alırız.

Algoritma

Kullanacağımız algoritma, borsa analistleri tarafından yaygın olarak kullanılan bir hareketli ortalama geçişidir. Bu algoritma, bir hisse senedi fiyatının kısa vadeli bir süre boyunca aritmetik ortalaması olan basit hareketli ortalamayı (SMA) izler ve bunu uzun vadeli bir dönemin hareketli ortalamasıyla karşılaştırır.

Bir hisse senedi satın almak için bir sinyal, kısa vadeli SMA'nın golden cross olarak adlandırılan uzun vadeli SMA'yı geçtiği zamandır. Aksine, bir hisse senedi satma sinyali, kısa vadeli SMA'nın ölüm çaprazı olarak bilinen uzun vadeli SMA'nın altına düşmesidir.

kodlama

Başlamak için, öncelikle bir Robinhood hesabına bağlanmamızı sağlayan robin_stocks kitaplığını yüklememiz gerekecek.

pip install robin_stocks

Daha sonra gerekli kitaplıkları içe aktaracağız ve Robinhood hesabının kimlik bilgilerini sağlayacağız.

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)

Python kullanarak kendi ticaret algoritmalarınızı uygulamaktan keyif alacağınızı umuyorum ve herhangi bir sorunuz varsa aşağıya yorum yapın, cevaplamaktan memnuniyet duyarım!