Trading at Alpaca





Kerry Back

Create alpaca account

  • After logging in to Alpaca, you DO NOT need to enter name, address, etc. - that is only for real trading accounts.
  • By clicking the Overview icon on the left toolbar, you should get to the screen on the following slide.
  • Click on API Keys, then Regenerate to see your key and your secret key. Copy and save them somewhere.

Install alpaca-py

Connect to alpaca

from alpaca.trading.client import TradingClient
from alpaca.trading.requests import MarketOrderRequest
from alpaca.trading.enums import OrderSide, TimeInForce

KEY = "your_key"
SECRET_KEY = "your_secret_key"

trading_client = TradingClient(KEY, SECRET_KEY, paper=True)

Buy AAPL

order = MarketOrderRequest(
    symbol="AAPL",
    qty=10,
    side=OrderSide.BUY,
    time_in_force=TimeInForce.DAY
    )
_ = trading_client.submit_order(order)

Short TSLA

order = MarketOrderRequest(
    symbol="TSLA",
    qty=5,
    side=OrderSide.SELL,
    time_in_force=TimeInForce.DAY
    )
_ = trading_client.submit_order(order)

Check your positions

positions = trading_client.get_all_positions()
positions

Check your account

account = trading_client.get_account()
account
{   'account_blocked': False,
    'account_number': 'PA3L42QA92GW',
    'accrued_fees': '0',
    'buying_power': '198026.0455',
    'cash': '100000',
    'created_at': datetime.datetime(2023, 1, 16, 17, 40, 37, 187303, tzinfo=datetime.timezone.utc),
    'crypto_status': <AccountStatus.ACTIVE: 'ACTIVE'>,
    'currency': 'USD',
    'daytrade_count': 0,
    'daytrading_buying_power': '0',
    'equity': '100000',
    'id': UUID('fbe86d7e-e5c9-49e9-bfce-e6e2c098f074'),
    'initial_margin': '986.97725',
    'last_equity': '100000',
    'last_maintenance_margin': '0',
    'long_market_value': '0',
    'maintenance_margin': '1032.1045',
    'multiplier': '2',
    'non_marginable_buying_power': '98654.5',
    'pattern_day_trader': False,
    'pending_transfer_in': '0',
    'pending_transfer_out': None,
    'portfolio_value': '100000',
    'regt_buying_power': '198026.0455',
    'short_market_value': '0',
    'shorting_enabled': True,
    'sma': '0',
    'status': <AccountStatus.ACTIVE: 'ACTIVE'>,
    'trade_suspended_by_user': False,
    'trading_blocked': False,
    'transfers_blocked': False}