konfig / snaptrade-php-7-sdk
将经纪账户连接到您的应用程序,以获取实时仓位和交易
Requires
- php: >=7.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^1.7 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.3
- phpunit/phpunit: ^8.0 || ^9.0
- dev-master
- dev-main
- v2.0.45
- v2.0.44
- v2.0.43
- v2.0.42
- v2.0.41
- v2.0.40
- v2.0.39
- v2.0.38
- v2.0.37
- v2.0.36
- v2.0.35
- v2.0.34
- v2.0.33
- v2.0.32
- v2.0.31
- v2.0.30
- v2.0.29
- v2.0.28
- v2.0.27
- v2.0.26
- v2.0.25
- v2.0.24
- v2.0.23
- v2.0.22
- v2.0.21
- v2.0.20
- v2.0.19
- v2.0.18
- v2.0.17
- v2.0.16
- v2.0.15
- v2.0.14
- v2.0.13
- v2.0.12
- v2.0.11
- v2.0.10
- v2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.4.12
- v1.4.11
- v1.4.10
- v1.4.9
- v1.4.8
- v1.4.7
- v1.4.6
- v1.4.5
- v1.4.4
- v1.4.3
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.1
- v1.2.0
- v1.1.0
- v1.0.0
- dev-bump
- dev-new-openapi-spec-1727236781586
- dev-new-openapi-spec-1726939769863
- dev-new-openapi-spec-1725911630114
- dev-new-openapi-spec-1725574439875
- dev-new-openapi-spec-1725542273573
- dev-new-openapi-spec-1725060898552
- dev-new-openapi-spec-1724882834271
- dev-new-openapi-spec-1724419593624
- dev-new-openapi-spec-1724364636157
- dev-new-openapi-spec-1724279176654
- dev-new-openapi-spec-1724202904762
- dev-new-openapi-spec-1724127533946
- dev-new-openapi-spec-1724080143085
- dev-new-openapi-spec-1723821337151
- dev-new-openapi-spec-1723734797988
- dev-new-openapi-spec-1723579427038
This package is auto-updated.
Last update: 2024-09-25 04:15:25 UTC
README
SnapTrade
将经纪账户连接到您的应用程序,以获取实时仓位和交易
目录
- 安装与使用
- 入门
- 参考
snaptrade.accountInformation.getAllUserHoldings
snaptrade.accountInformation.getUserAccountBalance
snaptrade.accountInformation.getUserAccountDetails
snaptrade.accountInformation.getUserAccountOrders
snaptrade.accountInformation.getUserAccountPositions
snaptrade.accountInformation.getUserHoldings
snaptrade.accountInformation.listUserAccounts
snaptrade.accountInformation.updateUserAccount
snaptrade.apiStatus.check
snaptrade.authentication.deleteSnapTradeUser
snaptrade.authentication.listSnapTradeUsers
snaptrade.authentication.loginSnapTradeUser
snaptrade.authentication.registerSnapTradeUser
snaptrade.authentication.resetSnapTradeUserSecret
snaptrade.connections.detailBrokerageAuthorization
snaptrade.connections.disableBrokerageAuthorization
snaptrade.connections.listBrokerageAuthorizations
snaptrade.connections.refreshBrokerageAuthorization
snaptrade.connections.removeBrokerageAuthorization
snaptrade.connections.sessionEvents
snaptrade.options.getOptionStrategy
snaptrade.options.getOptionsChain
snaptrade.options.getOptionsStrategyQuote
snaptrade.options.listOptionHoldings
snaptrade.options.placeOptionStrategy
snaptrade.referenceData.getCurrencyExchangeRatePair
snaptrade.referenceData.getPartnerInfo
snaptrade.referenceData.getSecurityTypes
snaptrade.referenceData.getStockExchanges
snaptrade.referenceData.getSymbols
snaptrade.referenceData.getSymbolsByTicker
snaptrade.referenceData.listAllBrokerageAuthorizationType
snaptrade.referenceData.listAllBrokerages
snaptrade.referenceData.listAllCurrencies
snaptrade.referenceData.listAllCurrenciesRates
snaptrade.referenceData.symbolSearchUserAccount
snaptrade.trading.cancelUserAccountOrder
snaptrade.trading.getOrderImpact
snaptrade.trading.getUserAccountQuotes
snaptrade.trading.placeForceOrder
snaptrade.trading.placeOrder
snaptrade.transactionsAndReporting.getActivities
snaptrade.transactionsAndReporting.getReportingCustomRange
安装与使用
要求
此库需要 PHP ^7.0
Composer
要通过 Composer 安装绑定,请将以下内容添加到 composer.json
{ "repositories": [ { "type": "vcs", "url": "https://github.com/passiv/snaptrade-php-7-sdk.git" } ], "require": { "konfig/snaptrade-php-7-sdk": "2.0.45" } }
然后运行 composer install
手动安装
下载文件并包含 autoload.php
<?php require_once('/path/to/snaptrade-php-7-sdk/vendor/autoload.php');
入门
请按照 安装过程 操作,然后运行以下命令
<?php require_once(__DIR__ . '/vendor/autoload.php'); $snaptrade = new \SnapTrade\Client( getenv("SNAPTRADE_CONSUMER_KEY"), getenv("SNAPTRADE_CLIENT_ID") ); $result = $snaptrade->accountInformation->getAllUserHoldings( "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", "917c8734-8470-4a3e-a18f-57c3f2ee6631" );
参考
snaptrade.accountInformation.getAllUserHoldings
已弃用,请改用特定于账户的持仓端点。
列出用户的全部账户,以及每个账户的余额、仓位和订单。
🛠️ 使用
$result = $snaptrade->accountInformation->getAllUserHoldings( "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", "917c8734-8470-4a3e-a18f-57c3f2ee6631" );
⚙️ 参数
user_id: string
用户密钥: 字符串
经纪商授权: 字符串
可选。以逗号分隔的授权ID列表(仅在需要在一项或多项授权上过滤时使用)。
🔄 返回
🌐 端点
/holdings
GET
snaptrade.accountInformation.getUserAccountBalance
返回账户余额列表。列表中的每个元素都有不同的货币。一些经纪商,如Questrade 允许在同一个账户中持有多种货币。
此处返回的数据已缓存。数据缓存的时间长度因经纪商而异。请检查经纪商集成文档并查找“缓存过期时间”以查看特定经纪商的确切值。如果您需要实时数据,请使用手动刷新端点。
🛠️ 使用
$result = $snaptrade->accountInformation->getUserAccountBalance( "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", "917c8734-8470-4a3e-a18f-57c3f2ee6631" );
⚙️ 参数
user_id: string
用户密钥: 字符串
account_id: 字符串
🔄 返回
🌐 端点
/accounts/{accountId}/balances
GET
snaptrade.accountInformation.getUserAccountDetails
返回SnapTrade已知特定账户的账户详情。
此处返回的数据始终缓存,并且每天刷新一次。如果您需要实时数据,请使用手动刷新端点。
🛠️ 使用
$result = $snaptrade->accountInformation->getUserAccountDetails( "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", "917c8734-8470-4a3e-a18f-57c3f2ee6631" );
⚙️ 参数
user_id: string
用户密钥: 字符串
account_id: 字符串
🔄 返回
🌐 端点
/accounts/{accountId}
GET
snaptrade.accountInformation.getUserAccountOrders
返回指定账户中的最近订单列表。
此处返回的数据已缓存。数据缓存的时间长度因经纪商而异。请检查经纪商集成文档并查找“缓存过期时间”以查看特定经纪商的确切值。如果您需要实时数据,请使用手动刷新端点。
🛠️ 使用
$result = $snaptrade->accountInformation->getUserAccountOrders( "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", "917c8734-8470-4a3e-a18f-57c3f2ee6631", "all", 30 );
⚙️ 参数
user_id: string
用户密钥: 字符串
account_id: 字符串
state: 字符串
默认值设置为 "all"。
days: int
获取最近订单的过去天数。如果没有传入值,默认为最近30天。
🔄 返回
🌐 端点
/accounts/{accountId}/orders
GET
snaptrade.accountInformation.getUserAccountPositions
返回指定账户中的股票/ETF/加密货币/共同基金头寸列表。对于期权头寸,请使用期权端点。
此处返回的数据已缓存。数据缓存的时间长度因经纪商而异。请检查经纪商集成文档并查找“缓存过期时间”以查看特定经纪商的确切值。如果您需要实时数据,请使用手动刷新端点。
🛠️ 使用
$result = $snaptrade->accountInformation->getUserAccountPositions( "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", "917c8734-8470-4a3e-a18f-57c3f2ee6631" );
⚙️ 参数
user_id: string
用户密钥: 字符串
account_id: 字符串
🔄 返回
🌐 端点
/accounts/{accountId}/positions
GET
snaptrade.accountInformation.getUserHoldings
返回指定账户的余额、持仓和最近订单的列表。返回的数据类似于通过更细粒度的余额、持仓和订单端点返回的数据。推荐使用更细粒度的API。它们更容易使用,速度更快,并且比这个粗粒度API有更好的错误处理。
此处返回的数据已缓存。数据缓存的时间长度因经纪商而异。请检查经纪商集成文档并查找“缓存过期时间”以查看特定经纪商的确切值。如果您需要实时数据,请使用手动刷新端点。
🛠️ 使用
$result = $snaptrade->accountInformation->getUserHoldings( "917c8734-8470-4a3e-a18f-57c3f2ee6631", "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61" );
⚙️ 参数
account_id: 字符串
user_id: string
用户密钥: 字符串
🔄 返回
🌐 端点
/accounts/{accountId}/holdings
GET
snaptrade.accountInformation.listUserAccounts
返回认证用户在SnapTrade上知道的所有连接中的所有经纪账户。
此处返回的数据始终缓存,并且每天刷新一次。如果您需要实时数据,请使用手动刷新端点。
🛠️ 使用
$result = $snaptrade->accountInformation->listUserAccounts( "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61" );
⚙️ 参数
user_id: string
用户密钥: 字符串
🔄 返回
🌐 端点
/accounts
GET
snaptrade.accountInformation.updateUserAccount
更新指定账户的各个属性。
🛠️ 使用
$result = $snaptrade->accountInformation->updateUserAccount( "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", "accountId_example" );
⚙️ 参数
user_id: string
用户密钥: 字符串
account_id: 字符串
要更新的账户ID。
🔄 返回
🌐 端点
/accounts/{accountId}
PUT
snaptrade.apiStatus.check
检查API是否正常运行并验证时间戳。
🛠️ 使用
$result = $snaptrade->apiStatus->check();
🔄 返回
🌐 端点
/
GET
snaptrade.authentication.deleteSnapTradeUser
删除已注册的用户及其所有相关数据。此操作不可逆。此API是异步的,如果请求被接受,将返回200状态码。用户及其所有相关数据将被排队等待删除。一旦删除,将发送USER_DELETED
webhook。
🛠️ 使用
$result = $snaptrade->authentication->deleteSnapTradeUser( "snaptrade-user-123" );
⚙️ 参数
user_id: string
🔄 返回
🌐 端点
/snapTrade/deleteUser
DELETE
snaptrade.authentication.listSnapTradeUsers
返回所有注册用户ID的列表。请注意,当前响应未分页。
🛠️ 使用
$result = $snaptrade->authentication->listSnapTradeUsers();
🔄 返回
string[]
🌐 端点
/snapTrade/listUsers
GET
snaptrade.authentication.loginSnapTradeUser
验证SnapTrade用户并返回用于连接经纪账户的连接门户URL。请参阅此指南了解如何将连接门户集成到您的应用程序中。
请注意,返回的URL在5分钟后过期。
🛠️ 使用
$result = $snaptrade->authentication->loginSnapTradeUser( "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", "ALPACA", True, "https://snaptrade.com", "8b5f262d-4bb9-365d-888a-202bd3b15fa1", "read", "v3" );
⚙️ 参数
user_id: string
用户密钥: 字符串
broker: string
连接用户的经纪商的缩写。请参阅集成页面了解支持的经纪商及其缩写。
immediateRedirect: bool
当设置为true
时,用户将被重定向回合作伙伴的网站而不是连接门户。如果连接门户在iframe中加载,则忽略此参数。请参阅关于集成连接门户的指南以获取更多信息。
customRedirect: string
用户连接其经纪账户后重定向用户的URL。如果连接门户在iframe中加载,则忽略此参数。请参阅关于集成连接门户的指南以获取更多信息。
重新连接: 字符串
将要重新连接的经纪商连接的UUID。除非您正在重新连接一个禁用的连接,否则应将此参数留空。有关更多信息,请参阅修复断开连接指南。
connectionType: 字符串
设置连接是否为只读或启用交易。
connectionPortalVersion: 字符串
设置要渲染的连接门户版本。
🔄 返回
AuthenticationLoginSnapTradeUser200Response
🌐 端点
/snapTrade/login
POST
snaptrade.authentication.registerSnapTradeUser
在您的Client ID下注册新的SnapTrade用户。将为您自动生成用户密钥,必须在您的系统中妥善存储。大多数SnapTrade操作都需要传入用户ID和用户密钥作为参数。
🛠️ 使用
$result = $snaptrade->authentication->registerSnapTradeUser( "snaptrade-user-123" );
⚙️ 参数
userId: 字符串
SnapTrade用户ID。这是由API合作伙伴选择的,可以是任何满足以下条件的字符串:a) 对用户是唯一的,b) 对用户是不可变的。建议不要使用电子邮件地址作为此属性,因为它们通常不是不可变的。
🔄 返回
🌐 端点
/snapTrade/registerUser
POST
snaptrade.authentication.resetSnapTradeUserSecret
旋转SnapTrade用户的密钥。如果您发现userSecret
已泄露,则可以使用此功能。请注意,如果您调用此端点并未能保存新密钥,您将无法访问该用户的所有数据,您的唯一选择将是删除并重新创建用户,然后要求他们重新连接。
🛠️ 使用
$result = $snaptrade->authentication->resetSnapTradeUserSecret( "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61" );
⚙️ 参数
userId: 字符串
SnapTrade用户ID。这是由API合作伙伴选择的,可以是任何满足以下条件的字符串:a) 对用户是唯一的,b) 对用户是不可变的。建议不要使用电子邮件地址作为此属性,因为它们通常不是不可变的。
userSecret: 字符串
SnapTrade用户密钥。这是一个随机生成的字符串,应安全存储。如果泄露,请通过旋转用户密钥端点进行旋转。
🔄 返回
🌐 端点
/snapTrade/resetUserSecret
POST
snaptrade.connections.detailBrokerageAuthorization
根据指定ID返回单个连接。
🛠️ 使用
$result = $snaptrade->connections->detailBrokerageAuthorization( "87b24961-b51e-4db8-9226-f198f6518a89", "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61" );
⚙️ 参数
authorization_id: 字符串
user_id: string
用户密钥: 字符串
🔄 返回
🌐 端点
/authorizations/{authorizationId}
GET
snaptrade.connections.disableBrokerageAuthorization
手动强制指定的连接变为禁用状态。这应仅用于测试重新连接流程,绝不能在生产连接上使用。将触发断开连接,就像它自然发生一样,并发送CONNECTION_BROKEN
webhook。
为了使用此端点,请联系我们,因为它默认已禁用。
🛠️ 使用
$result = $snaptrade->connections->disableBrokerageAuthorization( "87b24961-b51e-4db8-9226-f198f6518a89", "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61" );
⚙️ 参数
authorization_id: 字符串
user_id: string
用户密钥: 字符串
🔄 返回
BrokerageAuthorizationDisabledConfirmation
🌐 端点
/authorizations/{authorizationId}/disable
POST
snaptrade.connections.listBrokerageAuthorizations
返回指定用户的全部连接列表。请注意,Connection
和Brokerage Authorization
可以互换,但首选使用Connection
,并在文档中保持一致性。
连接通常与经纪商的单一登录关联。单个连接可以包含多个经纪商账户。
SnapTrade会对特定用户的连接进行去重处理。如果用户已与经纪商存在连接,当使用相同的凭证连接经纪商时,SnapTrade将返回现有连接而不是创建新的连接。
🛠️ 使用
$result = $snaptrade->connections->listBrokerageAuthorizations( "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61" );
⚙️ 参数
user_id: string
用户密钥: 字符串
🔄 返回
🌐 端点
/authorizations
GET
snaptrade.connections.refreshBrokerageAuthorization
触发此连接下所有账户的持仓更新。更新将异步排队。完成每个账户的同步后,将发送ACCOUNT_HOLDINGS_UPDATED
webhook。
请联系支持人员以获取访问权限,因为此端点默认未启用。
🛠️ 使用
$result = $snaptrade->connections->refreshBrokerageAuthorization( "87b24961-b51e-4db8-9226-f198f6518a89", "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61" );
⚙️ 参数
authorization_id: 字符串
user_id: string
用户密钥: 字符串
🔄 返回
BrokerageAuthorizationRefreshConfirmation
🌐 端点
/authorizations/{authorizationId}/refresh
POST
snaptrade.connections.removeBrokerageAuthorization
根据ID删除指定的连接。这还将删除与连接关联的所有账户和持仓。此操作不可逆。此端点是同步的,204响应表示连接已成功删除。
🛠️ 使用
$snaptrade->connections->removeBrokerageAuthorization( "87b24961-b51e-4db8-9226-f198f6518a89", "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61" );
⚙️ 参数
authorization_id: 字符串
user_id: string
用户密钥: 字符串
🔄 返回
void (空响应体)
🌐 端点
/authorizations/{authorizationId}
DELETE
snaptrade.connections.sessionEvents
返回与用户关联的会话事件列表。
🛠️ 使用
$result = $snaptrade->connections->sessionEvents( "SNAPTRADETEST", "917c8734-8470-4a3e-a18f-57c3f2ee6631,65e839a3-9103-4cfb-9b72-2071ef80c5f2", "917c8734-8470-4a3e-a18f-57c3f2ee6631,65e839a3-9103-4cfb-9b72-2071ef80c5f2" );
⚙️ 参数
partner_client_id: string
user_id: string
可选的用逗号分隔的用户ID列表,用于在特定用户上过滤请求
session_id: string
可选的用逗号分隔的会话ID列表,用于在特定用户上过滤请求
🔄 返回
ConnectionsSessionEvents200ResponseInner
🌐 端点
/sessionEvents
GET
snaptrade.options.getOptionStrategy
创建一个用于放置期权策略订单的期权策略对象。
🛠️ 使用
$result = $snaptrade->options->getOptionStrategy( "2bcd7cc3-e922-4976-bce1-9858296801c3", [ [ "action" => "BUY_TO_OPEN", "option_symbol_id" => "SPY220819P00200000", "quantity" => 1, ] ], "CUSTOM", "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", "accountId_example" );
⚙️ 参数
underlying_symbol_id: string
legs: OptionLeg
[]
strategy_type: string
user_id: string
用户密钥: 字符串
account_id: 字符串
创建期权策略对象所使用的账户ID。
🔄 返回
🌐 端点
/accounts/{accountId}/optionStrategy
POST
snaptrade.options.getOptionsChain
返回指定账户中指定符号的期权链。
🛠️ 使用
$result = $snaptrade->options->getOptionsChain( "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", "accountId_example", "symbol_example" );
⚙️ 参数
user_id: string
用户密钥: 字符串
account_id: 字符串
获取期权链的账户ID。
symbol: string
符号的通用符号ID
🔄 返回
🌐 端点
/accounts/{accountId}/optionsChain
GET
snaptrade.options.getOptionsStrategyQuote
返回一个策略报价对象,其中包含指定期权策略的最新市场数据。
🛠️ 使用
$result = $snaptrade->options->getOptionsStrategyQuote( "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", "accountId_example", "2bcd7cc3-e922-4976-bce1-9858296801c3" );
⚙️ 参数
user_id: string
用户密钥: 字符串
account_id: 字符串
策略将放置的账户ID。
option_strategy_id: string
创建期权策略对象时从响应中获得的期权策略ID
🔄 返回
🌐 端点
/accounts/{accountId}/optionStrategy/{optionStrategyId}
GET
snaptrade.options.listOptionHoldings
返回指定账户中的期权头寸列表。对于股票/ETF/加密货币/共同基金头寸,请使用positions端点。
此处返回的数据已缓存。数据缓存的时间长度因经纪商而异。请检查经纪商集成文档并查找“缓存过期时间”以查看特定经纪商的确切值。如果您需要实时数据,请使用手动刷新端点。
🛠️ 使用
$result = $snaptrade->options->listOptionHoldings( "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", "917c8734-8470-4a3e-a18f-57c3f2ee6631" );
⚙️ 参数
user_id: string
用户密钥: 字符串
account_id: 字符串
🔄 返回
🌐 端点
/accounts/{accountId}/options
GET
snaptrade.options.placeOptionStrategy
放置期权策略订单并返回从经纪商接收到的订单记录。
🛠️ 使用
$result = $snaptrade->options->placeOptionStrategy( "Market", "FOK", "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", "2bcd7cc3-e922-4976-bce1-9858296801c3", "2bcd7cc3-e922-4976-bce1-9858296801c3", 31.33 );
⚙️ 参数
order_type:
time_in_force:
user_id: string
用户密钥: 字符串
account_id: 字符串
执行策略的账户ID。
option_strategy_id: string
创建期权策略对象时从响应中获得的期权策略ID
price: float
如果为限价或停限价订单,则表示交易价格。
🔄 返回
🌐 端点
/accounts/{accountId}/optionStrategy/{optionStrategyId}/execute
POST
snaptrade.referenceData.getCurrencyExchangeRatePair
返回指定货币对的汇率对对象。
🛠️ 使用
$result = $snaptrade->referenceData->getCurrencyExchangeRatePair( "currencyPair_example" );
⚙️ 参数
currency_pair: string
基于货币代码的货币对,例如,{CAD-USD}
🔄 返回
🌐 端点
/currencies/rates/{currencyPair}
GET
snaptrade.referenceData.getPartnerInfo
返回针对SnapTrade Client ID的配置,包括允许的经纪商和数据访问。
🛠️ 使用
$result = $snaptrade->referenceData->getPartnerInfo();
🔄 返回
🌐 端点
/snapTrade/partners
GET
snaptrade.referenceData.getSecurityTypes
返回SnapTrade支持的所有可用证券类型。
🛠️ 使用
$result = $snaptrade->referenceData->getSecurityTypes();
🔄 返回
🌐 端点
/securityTypes
GET
snaptrade.referenceData.getStockExchanges
返回所有受支持的交易所列表。
🛠️ 使用
$result = $snaptrade->referenceData->getStockExchanges();
🔄 返回
🌐 端点
/exchanges
GET
snaptrade.referenceData.getSymbols
返回与给定查询匹配的通用符号对象列表。匹配考虑了符号的标记和名称。仅返回前20个结果。
🛠️ 使用
$result = $snaptrade->referenceData->getSymbols( "AAPL" );
⚙️ 参数
substring: string
符号的搜索查询。
🔄 返回
🌐 端点
/symbols
POST
snaptrade.referenceData.getSymbolsByTicker
返回由股票代码或通用符号ID指定的通用符号对象。当指定股票代码时,返回第一个匹配的结果。我们主要遵循Yahoo Finance股票代码格式(点击“Yahoo Finance市场覆盖和数据延迟”)。例如,对于在多伦多证券交易所上市的交易证券,符号具有'.TO'后缀。对于在纳斯达克或纽约证券交易所上市的交易证券,符号没有后缀。请使用带有适当后缀的股票代码以获得最佳结果。
🛠️ 使用
$result = $snaptrade->referenceData->getSymbolsByTicker( "query_example" );
⚙️ 参数
query: string
用于查找符号的股票代码或通用符号ID。
🔄 返回
🌐 端点
/symbols/{query}
GET
snaptrade.referenceData.listAllBrokerageAuthorizationType
返回所有定义的经纪商授权类型对象列表。
🛠️ 使用
$result = $snaptrade->referenceData->listAllBrokerageAuthorizationType( "QUESTRADE,ALPACA" );
⚙️ 参数
brokerage: string
经纪商slug的逗号分隔值
🔄 返回
BrokerageAuthorizationTypeReadOnly
🌐 端点
/brokerageAuthorizationTypes
GET
snaptrade.referenceData.listAllBrokerages
返回所有定义的经纪商对象列表。
🛠️ 使用
$result = $snaptrade->referenceData->listAllBrokerages();
🔄 返回
🌐 端点
/brokerages
GET
snaptrade.referenceData.listAllCurrencies
返回所有定义的货币对象列表。
🛠️ 使用
$result = $snaptrade->referenceData->listAllCurrencies();
🔄 返回
🌐 端点
/currencies
GET
snaptrade.referenceData.listAllCurrenciesRates
返回所有支持的货币的所有汇率对的列表。
🛠️ 使用
$result = $snaptrade->referenceData->listAllCurrenciesRates();
🔄 返回
🌐 端点
/currencies/rates
GET
snaptrade.referenceData.symbolSearchUserAccount
返回与给定查询匹配的通用符号对象列表。匹配考虑了符号的标记和名称。仅返回前20个结果。
搜索结果进一步限制为账户所在的经纪商支持的符号。
🛠️ 使用
$result = $snaptrade->referenceData->symbolSearchUserAccount( "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", "917c8734-8470-4a3e-a18f-57c3f2ee6631", "AAPL" );
⚙️ 参数
user_id: string
用户密钥: 字符串
account_id: 字符串
substring: string
符号的搜索查询。
🔄 返回
🌐 端点
/accounts/{accountId}/symbols
POST
snaptrade.trading.cancelUserAccountOrder
尝试取消经纪商的未成交订单。如果订单无法取消,则请求将被拒绝。
🛠️ 使用
$result = $snaptrade->trading->cancelUserAccountOrder( "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", "917c8734-8470-4a3e-a18f-57c3f2ee6631", "66a033fa-da74-4fcf-b527-feefdec9257e" );
⚙️ 参数
user_id: string
用户密钥: 字符串
account_id: 字符串
brokerage_order_id: string
由经纪商返回的订单ID。这是经纪商系统中订单的唯一标识符。
🔄 返回
🌐 端点
/accounts/{accountId}/orders/cancel
POST
snaptrade.trading.getOrderImpact
模拟一个订单及其对账户的影响。此端点不会将订单提交给经纪商。如果成功,它将返回一个Trade
对象,可以使用place checked order endpoint使用对象的ID将订单提交给经纪商。请注意,返回的Trade
对象在5分钟后过期。使用过期的Trade
放置的订单将被拒绝。
🛠️ 使用
$result = $snaptrade->trading->getOrderImpact( "917c8734-8470-4a3e-a18f-57c3f2ee6631", "BUY", "2bcd7cc3-e922-4976-bce1-9858296801c3", "Market", "FOK", "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", 31.33, 31.33, 10.5, None );
⚙️ 参数
account_id: 字符串
连接的经纪商账户的唯一标识符。这是在SnapTrade中引用账户所使用的UUID。
action:
universal_symbol_id: string
在SnapTrade中符号的唯一标识符。这是在SnapTrade API调用中引用符号的ID。
order_type:
time_in_force:
user_id: string
用户密钥: 字符串
price: float
Limit
和StopLimit
订单的限价。
stop: float
触发Stop
和StopLimit
订单停止的触发价格。
units: float
notional_value: ManualTradeFormNotionalValue
🔄 返回
🌐 端点
/trade/impact
POST
snaptrade.trading.getUserAccountQuotes
返回指定符号和账户的经纪商报价。返回的报价可能因账户所属的经纪商而延迟。强烈建议您使用自己的市场数据提供商获取实时报价,而不是依赖此端点。此端点不适用于期权报价。
🛠️ 使用
$result = $snaptrade->trading->getUserAccountQuotes( "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", "symbols_example", "917c8734-8470-4a3e-a18f-57c3f2ee6631", True );
⚙️ 参数
user_id: string
用户密钥: 字符串
symbols: string
要获取报价的通用符号ID或股票代码的列表。
account_id: 字符串
use_ticker: bool
如果symbols
由股票代码组成,则应设置为True
。如果没有提供,则默认为False
。
🔄 返回
🌐 端点
/accounts/{accountId}/quotes
GET
snaptrade.trading.placeForceOrder
在指定账户中放置经纪商订单。如果订单无效或账户资金不足,则订单可能被经纪商拒绝。
此端点在提交订单给经纪商之前,不计算订单对账户余额以及任何潜在佣金的 影响。如果需要这样做,可以使用 检查订单影响端点。
建议在下单后手动刷新账户,以确保账户是最新的。您可以使用此 手动刷新 端点。
🛠️ 使用
$result = $snaptrade->trading->placeForceOrder( "917c8734-8470-4a3e-a18f-57c3f2ee6631", "BUY", "2bcd7cc3-e922-4976-bce1-9858296801c3", "Market", "FOK", "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", 31.33, 31.33, 10.5, None );
⚙️ 参数
account_id: 字符串
连接的经纪商账户的唯一标识符。这是在SnapTrade中引用账户所使用的UUID。
action:
universal_symbol_id: string
在SnapTrade中符号的唯一标识符。这是在SnapTrade API调用中引用符号的ID。
order_type:
time_in_force:
user_id: string
用户密钥: 字符串
price: float
Limit
和StopLimit
订单的限价。
stop: float
触发Stop
和StopLimit
订单停止的触发价格。
units: float
notional_value: ManualTradeFormNotionalValue
🔄 返回
🌐 端点
/trade/place
POST
snaptrade.trading.placeOrder
将之前检查过的订单提交给经纪商。 tradeId
从 检查订单影响端点 获取。如果您更希望在不检查影响的情况下下单,可以使用 下单端点。
建议在下单后手动刷新账户,以确保账户是最新的。您可以使用此 手动刷新 端点。
🛠️ 使用
$result = $snaptrade->trading->placeOrder( "139e307a-82f7-4402-b39e-4da7baa87758", "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", True );
⚙️ 参数
trade_id: string
从调用 检查订单影响端点 获取。
user_id: string
用户密钥: 字符串
wait_to_confirm: bool
可选,默认为 true。确定是否执行等待以检查订单状态。如果为 false,延迟将会减少,但返回的订单更有可能是 PENDING
状态,因为我们不会在响应请求之前等待检查状态。
🔄 返回
🌐 端点
/trade/{tradeId}
POST
snaptrade.transactionsAndReporting.getActivities
返回指定用户和过滤标准的所有历史交易。建议使用 startDate
和 endDate
来分页数据,因为对于历史时间长或活动量大的账户,响应可能非常大。每次请求返回的交易数最多为 10000。
无法保证返回的交易排序。如果您需要特定顺序,请根据 trade_date
字段对交易进行排序。
此处返回的数据始终缓存,并且每天刷新一次。如果您需要实时数据,请使用手动刷新端点。
🛠️ 使用
$result = $snaptrade->transactionsAndReporting->getActivities( "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", "2022-01-24", "2022-01-24", "917c8734-8470-4a3e-a18f-57c3f2ee6631,65e839a3-9103-4cfb-9b72-2071ef80c5f2", "917c8734-8470-4a3e-a18f-57c3f2ee6631,65e839a3-9103-4cfb-9b72-2071ef80c5f2", "BUY,SELL,DIVIDEND" );
⚙️ 参数
user_id: string
用户密钥: 字符串
start_date: \DateTime
要检索的交易历史记录的起始日期(包含)。如果没有提供,默认为基于 trade_date
知道的 SnapTrade 的第一笔交易。
end_date: \DateTime
要检索的交易历史记录的结束日期(包含)。如果没有提供,默认为基于 trade_date
知道的 SnapTrade 的最后一笔交易。
accounts: string
可选的以逗号分隔的 SnapTrade 账户 ID 列表,用于过滤请求到特定账户。如果没有提供,默认为用户的全部已知经纪商账户。此参数优先于 brokerageAuthorizations
参数。
经纪商授权: 字符串
可选的以逗号分隔的 SnapTrade 连接(经纪商授权)ID 列表,用于过滤请求仅包括那些连接的账户。如果没有提供,默认为用户的全部连接。此参数优先于 accounts
参数。
type: string
可选的以逗号分隔的交易类型列表,用于筛选。SnapTrade 尽力将经纪交易类型分类到一组常见值中。以下是一些最流行的值:- BUY
- 购买的资产。 - SELL
- 出售的资产。 - DIVIDEND
- 股息支付。 - CONTRIBUTION
- 现金贡献。 - WITHDRAWAL
- 现金提取。 - REI
- 股息再投资。 - INTEREST
- 存入账户的利息。 - FEE
- 从账户中提取的费用。
🔄 返回
🌐 端点
/activities
GET
snaptrade.transactionsAndReporting.getReportingCustomRange
返回特定时间段的性能信息(贡献、股息、收益率等)。请注意,总权益时间段和收益率是实验性功能。如果您发现任何不一致之处,请联系 support@snaptrade.com。
🛠️ 使用
$result = $snaptrade->transactionsAndReporting->getReportingCustomRange( "2022-01-24", "2022-01-24", "snaptrade-user-123", "adf2aa34-8219-40f7-a6b3-60156985cc61", "917c8734-8470-4a3e-a18f-57c3f2ee6631,65e839a3-9103-4cfb-9b72-2071ef80c5f2", True, "monthly" );
⚙️ 参数
start_date: \DateTime
end_date: \DateTime
user_id: string
用户密钥: 字符串
accounts: string
可选的以逗号分隔的账户ID列表,用于对特定账户进行请求筛选
detailed: bool
可选的,如果设置为 true,则增加总价值图表和贡献图表的数据点频率
frequency: string
可选的收益率图表频率(默认为每月)。可能的值有每日、每周、每月、每季度、每年。
🔄 返回
🌐 端点
/performance/custom
GET
作者
此 PHP 软件包由 Konfig 自动生成