from py_alpaca_api.trading.account import Account
from py_alpaca_api.trading.corporate_actions import CorporateActions
from py_alpaca_api.trading.market import Market
from py_alpaca_api.trading.news import News
from py_alpaca_api.trading.orders import Orders
from py_alpaca_api.trading.positions import Positions
from py_alpaca_api.trading.recommendations import Recommendations
from py_alpaca_api.trading.watchlists import Watchlist
[docs]
class Trading:
def __init__(self, api_key: str, api_secret: str, api_paper: bool) -> None:
headers = {
"accept": "application/json",
"APCA-API-KEY-ID": api_key,
"APCA-API-SECRET-KEY": api_secret,
}
base_url = (
"https://paper-api.alpaca.markets/v2"
if api_paper
else "https://api.alpaca.markets/v2"
)
self._initialize_components(headers=headers, base_url=base_url)
def _initialize_components(self, headers: dict[str, str], base_url: str):
self.account = Account(headers=headers, base_url=base_url)
self.corporate_actions = CorporateActions(headers=headers, base_url=base_url)
self.market = Market(headers=headers, base_url=base_url)
self.positions = Positions(
headers=headers, base_url=base_url, account=self.account
)
self.orders = Orders(headers=headers, base_url=base_url)
self.watchlists = Watchlist(headers=headers, base_url=base_url)
self.news = News(headers=headers)
self.recommendations = Recommendations()