Методы и примеры кода для роботизированного инвестирования с помощью Robinhood

  1. Ребалансировка портфеля.
    Робоконсультанты часто используют ребалансировку портфеля для поддержания желаемого распределения активов. Вот простой пример Python с использованием библиотеки Pandas:
import pandas as pd
def rebalance_portfolio(current_portfolio, target_weights):
    current_weights = current_portfolio / current_portfolio.sum()
    target_portfolio = current_portfolio.sum() * target_weights
    rebalancing_amount = target_portfolio - current_portfolio
    return rebalancing_amount
# Example usage
current_portfolio = pd.Series([5000, 3000, 2000], index=['AAPL', 'GOOG', 'AMZN'])
target_weights = pd.Series([0.4, 0.4, 0.2], index=['AAPL', 'GOOG', 'AMZN'])
rebalancing_amount = rebalance_portfolio(current_portfolio, target_weights)
print(rebalancing_amount)
  1. Оценка рисков и распределение активов.
    Робо-консультанты обычно оценивают толерантность инвестора к риску и рекомендуют соответствующее распределение активов. Вот упрощенный пример использования базовой анкеты для оценки рисков:
def assess_risk_tolerance(answers):
    score = sum(answers)
    if score <= 5:
        return 'Conservative'
    elif score <= 10:
        return 'Moderate'
    else:
        return 'Aggressive'
# Example usage
answers = [4, 3, 5, 2, 1]
risk_tolerance = assess_risk_tolerance(answers)
print(risk_tolerance)
  1. Автоматическое размещение ордеров.
    Робо-советники автоматически размещают сделки на основе заранее определенных правил. Вот упрощенный пример использования API Alpaca для размещения рыночного ордера на покупку акций:
import alpaca_trade_api as tradeapi
api = tradeapi.REST('API_KEY_ID', 'API_SECRET_KEY', base_url='https://paper-api.alpaca.markets')
def place_market_order(symbol, quantity):
    api.submit_order(
        symbol=symbol,
        qty=quantity,
        side='buy',
        type='market',
        time_in_force='gtc'
    )
# Example usage
symbol = 'AAPL'
quantity = 10
place_market_order(symbol, quantity)