Berdagang Secara Algoritma dengan Python dan Robinhood

Feb 20 2023
Menghasilkan uang di pasar saham seringkali melibatkan banyak stres, waktu, dan risiko. Bagaimana jika ada cara untuk mengurangi stres dan waktu yang dibutuhkan untuk berinvestasi? Bergabung dengan Robinhood Robinhood adalah aplikasi perdagangan dan investasi saham bebas komisi yang memungkinkan orang untuk mulai berinvestasi di pasar saham dengan cepat dan mudah.
Foto oleh Tech Daily di Unsplash

Menghasilkan uang di pasar saham seringkali melibatkan banyak stres, waktu, dan risiko. Bagaimana jika ada cara untuk mengurangi stres dan waktu yang dibutuhkan untuk berinvestasi?

Bergabung dengan Robin Hood

Robinhood adalah aplikasi perdagangan dan investasi saham bebas komisi yang memungkinkan orang dengan cepat dan mudah mulai berinvestasi di pasar saham. Perusahaan memiliki banyak keuntungan seperti tidak ada minimum akun, tidak ada komisi untuk perdagangan, dan kemampuan untuk memperdagangkan opsi.

Selain itu, platform ini intuitif dan memberi pengguna informasi seperti rata-rata pergerakan 50 hari dan 200 hari, peringkat analis apakah akan membeli atau menjual saham, dan berita terbaru dari berbagai sumber.

Anda dapat bergabung dengan Robinhood menggunakan tautan saya di bawah ini, dan kami berdua akan mendapatkan saham gratis senilai $5 hingga $200.

Algoritma

Algoritma yang akan kita gunakan adalah moving average crossover yang biasa digunakan oleh analis pasar saham. Algoritme ini memantau rata-rata pergerakan sederhana (SMA), rata-rata aritmatika dari harga saham selama periode jangka pendek, dan membandingkannya dengan rata-rata pergerakan periode jangka panjang.

Sinyal untuk membeli saham adalah ketika SMA jangka pendek memotong ke atas SMA jangka panjang, disebut sebagai golden cross. Sebaliknya, sinyal jual saham adalah saat SMA jangka pendek memotong ke bawah SMA jangka panjang, yang dikenal sebagai death cross.

Pengkodean

Untuk memulai, pertama-tama kita perlu menginstal perpustakaan robin_stocks, yang memungkinkan kita terhubung ke akun Robinhood.

pip install robin_stocks

Kami kemudian akan mengimpor perpustakaan yang diperlukan dan memberikan kredensial akun Robinhood.

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)

Saya harap Anda menikmati penerapan algoritme perdagangan Anda sendiri menggunakan Python, dan jika Anda memiliki pertanyaan, beri komentar di bawah dan saya akan dengan senang hati menjawabnya!