alpaca-py
是一个用于与 Alpaca 提供的 API 产品进行交互的 Python 库。Alpaca 提供了多种 REST、WebSocket 和 SSE 端点,允许用户进行从流式市场数据到创建自己的投资应用程序等各种操作。以下是对该仓库的详细介绍:
主要特性
- 多 API 支持:支持 Alpaca 的交易 API、市场数据 API 和经纪 API,可用于开发各类投资应用。
- OOP 设计:采用面向对象编程(OOP)的方式设计,通过创建请求对象来提交请求,每个方法通常对应一个独特的请求模型。
- 数据验证:利用数据验证确保请求数据的有效性。
- 多客户端支持:提供多个客户端类,方便用户与不同的 Alpaca API 进行交互。
仓库结构
.dockerignore
.gitattributes
.gitignore
.pre-commit-config.yaml
CODEOWNERS
CONTRIBUTING.md
Dockerfile
LICENSE
Makefile
README.md
cloudbuild.yaml
poetry.lock
pyproject.toml
.github/
ISSUE_TEMPLATE/
workflows/
tools/
scripts/
docs/
Makefile
_static/
_templates/
api_reference/
broker.rst
conf.py
getting_started.rst
images/
index.rst
make.bat
market_data.rst
trading.rst
examples/
README.md
crypto-trading-basic.ipynb
options-trading-basic.ipynb
...
tests/
...
alpaca/
...
核心模块与功能
1. 经纪账户相关
alpaca.broker.models.accounts
:定义了与经纪账户相关的模型,如Identity
(用户身份信息)、Disclosures
(用户披露信息)、Account
(经纪账户信息)和TradeAccount
(交易账户信息)等。
from alpaca.broker.models.accounts import Identity
identity = Identity(
given_name="John",
family_name="Doe",
date_of_birth="1990-01-01",
country_of_tax_residence="USA"
)
alpaca.broker.requests
:包含了与经纪账户相关的请求模型,如UpdateAccountRequest
(更新账户请求)和ListAccountsRequest
(列出账户请求)等。
2. 交易相关
alpaca.trading.models
:定义了交易相关的模型,如Asset
(资产模型)和Order
(订单模型)等。
from alpaca.trading.models import Asset
from alpaca.trading.enums import AssetClass, AssetExchange, AssetStatus
asset = Asset(
id="12345678-1234-1234-1234-123456789012",
asset_class=AssetClass.US_EQUITY,
exchange=AssetExchange.NASDAQ,
symbol="AAPL",
status=AssetStatus.ACTIVE,
tradable=True
)
alpaca.trading.requests
:包含了与交易相关的请求模型,如GetAssetsRequest
(获取资产请求)等。
3. 市场数据相关
alpaca.data.models
:定义了市场数据相关的模型,如ActiveStock
(活跃股票模型)等。alpaca.data.requests
:包含了与市场数据相关的请求模型,如BaseStockLatestDataRequest
(获取最新股票数据请求)和StockLatestBarRequest
(获取最新股票条形数据请求)等。
安装与更新
- 安装:支持 Python 3.8 及以上版本,可使用
pip
进行安装。
pip install alpaca-py
- 更新:若已安装,可使用以下命令更新到最新版本。
pip install alpaca-py --upgrade
文档与示例
- 文档:提供了详细的文档,包含所有客户端、方法和模型的参考,以及使用示例。文档地址为:https://alpaca.markets/sdks/python/getting_started.html
- 示例:仓库中包含多个示例文件,如
crypto-trading-basic.ipynb
和options-trading-basic.ipynb
等,帮助用户快速上手。
贡献与许可
- 贡献:欢迎开发者为该项目做出贡献,具体贡献指南可参考
CONTRIBUTING.md
文件。 - 许可:该项目采用特定的许可证,具体信息可查看
LICENSE
文件。