konfig / snaptrade-php-sdk
将经纪账户连接到您的应用程序以获取实时仓位和交易
Requires
- php: ^8.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^1.7 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.5
- 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.26.13
- v1.26.12
- v1.26.11
- v1.26.10
- v1.26.9
- v1.26.8
- v1.26.7
- v1.26.6
- v1.26.5
- v1.26.4
- v1.26.3
- v1.26.2
- v1.26.1
- v1.26.0
- v1.25.2
- v1.25.1
- v1.25.0
- v1.24.1
- v1.24.0
- v1.23.0
- v1.22.0
- v1.21.0
- v1.20.0
- v1.19.0
- v1.18.0
- v1.17.0
- v1.16.0
- v1.15.0
- v1.14.0
- v1.13.0
- v1.12.0
- v1.11.0
- v1.10.0
- v1.9.0
- v1.8.0
- v1.7.0
- v1.6.0
- v1.5.0
- v1.4.0
- v1.3.0
- 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
- dev-new-openapi-spec-1691612468190
- dev-new-openapi-spec-1689595337599-php
- dev-new-openapi-spec-1689192808858
This package is auto-updated.
Last update: 2024-09-25 04:15:15 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 ^8.0
Composer
要通过Composer安装绑定,请在 composer.json
中添加以下内容
{ "repositories": [ { "type": "vcs", "url": "https://github.com/passiv/snaptrade-php-sdk.git" } ], "require": { "konfig/snaptrade-php-sdk": "2.0.45" } }
然后运行 composer install
手动安装
下载文件并包含 autoload.php
<?php require_once('/path/to/snaptrade-php-sdk/vendor/autoload.php');
入门
请遵循安装过程,然后运行以下命令
<?php require_once(__DIR__ . '/vendor/autoload.php'); $snaptrade = new \SnapTrade\Client( clientId: getenv("SNAPTRADE_CLIENT_ID"), consumerKey: getenv("SNAPTRADE_CONSUMER_KEY") ); $result = $snaptrade->accountInformation->getAllUserHoldings( user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", brokerage_authorizations: "917c8734-8470-4a3e-a18f-57c3f2ee6631" );
参考
snaptrade.accountInformation.getAllUserHoldings
已弃用,请使用特定账户的持仓端点代替。
列出用户的全部账户,以及每个账户的余额、仓位和订单。
🛠️ 使用方法
$result = $snaptrade->accountInformation->getAllUserHoldings( user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", brokerage_authorizations: "917c8734-8470-4a3e-a18f-57c3f2ee6631" );
⚙️ 参数
user_id: string
用户密钥: 字符串
经纪商授权: 字符串
可选。以逗号分隔的授权ID列表(仅在需要过滤一个或多个授权时使用)。
🔄 返回
🌐 端点
/holdings
GET
snaptrade.accountInformation.getUserAccountBalance
返回账户余额的列表。列表中的每个元素都有不同的货币。一些经纪商,如Questrade 允许在同一账户中持有多种货币。
这里返回的数据是缓存的。数据缓存的时长因经纪商而异。请查看经纪商集成文档,并查找“缓存过期时间”以查看特定经纪商的确切值。如果您需要实时数据,请使用手动刷新端点。
🛠️ 使用方法
$result = $snaptrade->accountInformation->getUserAccountBalance( user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", account_id: "917c8734-8470-4a3e-a18f-57c3f2ee6631" );
⚙️ 参数
user_id: string
用户密钥: 字符串
account_id: 字符串
🔄 返回
🌐 端点
/accounts/{accountId}/balances
GET
snaptrade.accountInformation.getUserAccountDetails
返回SnapTrade所知的指定账户的账户详情。
这里返回的数据总是缓存的,并且每天刷新一次。如果您需要实时数据,请使用手动刷新端点。
🛠️ 使用方法
$result = $snaptrade->accountInformation->getUserAccountDetails( user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", account_id: "917c8734-8470-4a3e-a18f-57c3f2ee6631" );
⚙️ 参数
user_id: string
用户密钥: 字符串
account_id: 字符串
🔄 返回
🌐 端点
/accounts/{accountId}
GET
snaptrade.accountInformation.getUserAccountOrders
返回指定账户中的最近订单列表。
这里返回的数据是缓存的。数据缓存的时长因经纪商而异。请查看经纪商集成文档,并查找“缓存过期时间”以查看特定经纪商的确切值。如果您需要实时数据,请使用手动刷新端点。
🛠️ 使用方法
$result = $snaptrade->accountInformation->getUserAccountOrders( user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", account_id: "917c8734-8470-4a3e-a18f-57c3f2ee6631", state: "all", days: 30 );
⚙️ 参数
user_id: string
用户密钥: 字符串
account_id: 字符串
state: 字符串
默认值设置为 "all"。
days: int
获取最近订单的过去天数。如果没有传入值,默认为过去30天。
🔄 返回
🌐 端点
/accounts/{accountId}/orders
GET
snaptrade.accountInformation.getUserAccountPositions
返回指定账户中的股票/ETF/加密货币/共同基金头寸的列表。对于期权头寸,请使用期权端点。
这里返回的数据是缓存的。数据缓存的时长因经纪商而异。请查看经纪商集成文档,并查找“缓存过期时间”以查看特定经纪商的确切值。如果您需要实时数据,请使用手动刷新端点。
🛠️ 使用方法
$result = $snaptrade->accountInformation->getUserAccountPositions( user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", account_id: "917c8734-8470-4a3e-a18f-57c3f2ee6631" );
⚙️ 参数
user_id: string
用户密钥: 字符串
account_id: 字符串
🔄 返回
🌐 端点
/accounts/{accountId}/positions
GET
snaptrade.accountInformation.getUserHoldings
返回指定账户的余额、头寸和最近订单的列表。返回的数据类似于在更细粒度的余额、头寸和订单端点返回的数据。更喜欢细粒度API。它们更容易使用,更快,并且比粗粒度API有更好的错误处理。
这里返回的数据是缓存的。数据缓存的时长因经纪商而异。请查看经纪商集成文档,并查找“缓存过期时间”以查看特定经纪商的确切值。如果您需要实时数据,请使用手动刷新端点。
🛠️ 使用方法
$result = $snaptrade->accountInformation->getUserHoldings( account_id: "917c8734-8470-4a3e-a18f-57c3f2ee6631", user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61" );
⚙️ 参数
account_id: 字符串
user_id: string
用户密钥: 字符串
🔄 返回
🌐 端点
/accounts/{accountId}/holdings
GET
snaptrade.accountInformation.listUserAccounts
返回所有已知于SnapTrade的认证用户的经纪账户。
这里返回的数据总是缓存的,并且每天刷新一次。如果您需要实时数据,请使用手动刷新端点。
🛠️ 使用方法
$result = $snaptrade->accountInformation->listUserAccounts( user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61" );
⚙️ 参数
user_id: string
用户密钥: 字符串
🔄 返回
🌐 端点
/accounts
GET
snaptrade.accountInformation.updateUserAccount
更新指定账户的多个属性。
🛠️ 使用方法
$result = $snaptrade->accountInformation->updateUserAccount( user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", account_id: "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( user_id: "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( user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", broker: "ALPACA", immediate_redirect: True, custom_redirect: "https://snaptrade.com", reconnect: "8b5f262d-4bb9-365d-888a-202bd3b15fa1", connection_type: "read", connection_portal_version: "v3" );
⚙️ 参数
user_id: string
用户密钥: 字符串
broker: string
要将用户连接到的经纪商的别名。请参阅集成页面获取受支持的经纪商及其别名的列表。
immediateRedirect: bool
当设置为true
时,用户将返回到合作伙伴的网站,而不是连接门户。如果连接门户在iframe中加载,则忽略此参数。请参阅集成连接门户的指南获取更多信息。
customRedirect: string
用户连接其经纪账户后要重定向到的URL。如果连接门户在iframe中加载,则忽略此参数。请参阅集成连接门户的指南获取更多信息。
reconnect: string
要重新连接的经纪连接的UUID。除非您正在重新连接一个已禁用的连接,否则应将此参数留空。请参阅修复损坏的连接指南获取更多信息。
connectionType: string
设置连接是否为只读或启用交易。
connectionPortalVersion: string
设置要渲染的连接门户的版本。
🔄 返回
AuthenticationLoginSnapTradeUser200Response
🌐 端点
/snapTrade/login
POST
snaptrade.authentication.registerSnapTradeUser
在您的Client ID下注册新的SnapTrade用户。将自动为您生成一个用户密钥,必须正确存储在您的系统中。大多数SnapTrade操作都需要传入用户ID和用户密钥作为参数。
🛠️ 使用方法
$result = $snaptrade->authentication->registerSnapTradeUser( user_id: "snaptrade-user-123" );
⚙️ 参数
userId: 字符串
SnapTrade用户ID。这是由API合作伙伴选择的,可以是任何唯一的字符串,并且对于用户来说是不可变的。建议不要使用电子邮件地址作为此属性的值,因为它们通常不是不可变的。
🔄 返回
🌐 端点
/snapTrade/registerUser
POST
snaptrade.authentication.resetSnapTradeUserSecret
旋转SnapTrade用户的密钥。如果您发现userSecret
已被泄露,则可能需要使用此功能。请注意,如果您调用此端点但未能保存新密钥,则将无法访问此用户的所有数据,您唯一的选项是删除并重新创建用户,然后要求他们重新连接。
🛠️ 使用方法
$result = $snaptrade->authentication->resetSnapTradeUserSecret( user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61" );
⚙️ 参数
userId: 字符串
SnapTrade用户ID。这是由API合作伙伴选择的,可以是任何唯一的字符串,并且对于用户来说是不可变的。建议不要使用电子邮件地址作为此属性的值,因为它们通常不是不可变的。
userSecret: 字符串
SnapTrade用户密钥。这是一个随机生成的字符串,应安全存储。如果被泄露,请通过旋转用户密钥端点进行旋转。
🔄 返回
🌐 端点
/snapTrade/resetUserSecret
POST
snaptrade.connections.detailBrokerageAuthorization
返回指定ID的单个连接。
🛠️ 使用方法
$result = $snaptrade->connections->detailBrokerageAuthorization( authorization_id: "87b24961-b51e-4db8-9226-f198f6518a89", user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61" );
⚙️ 参数
authorization_id: 字符串
user_id: string
用户密钥: 字符串
🔄 返回
🌐 端点
/authorizations/{authorizationId}
GET
snaptrade.connections.disableBrokerageAuthorization
手动强制指定连接变为禁用状态。这仅应用于测试重新连接流程,并且永远不应在生产连接中使用。将触发断开连接,就像它自然发生一样,并发送一个CONNECTION_BROKEN
webhook用于连接。
请联系我们以使用此端点,因为它默认已禁用。
🛠️ 使用方法
$result = $snaptrade->connections->disableBrokerageAuthorization( authorization_id: "87b24961-b51e-4db8-9226-f198f6518a89", user_id: "snaptrade-user-123", user_secret: "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( user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61" );
⚙️ 参数
user_id: string
用户密钥: 字符串
🔄 返回
🌐 端点
/authorizations
GET
snaptrade.connections.refreshBrokerageAuthorization
触发此连接下所有账户的持有额更新。更新将异步排队。每个账户在连接同步完成后将发送一个ACCOUNT_HOLDINGS_UPDATED
webhook。
请联系支持人员以访问此端点,因为此端点默认未启用。
🛠️ 使用方法
$result = $snaptrade->connections->refreshBrokerageAuthorization( authorization_id: "87b24961-b51e-4db8-9226-f198f6518a89", user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61" );
⚙️ 参数
authorization_id: 字符串
user_id: string
用户密钥: 字符串
🔄 返回
BrokerageAuthorizationRefreshConfirmation
🌐 端点
/authorizations/{authorizationId}/refresh
POST
snaptrade.connections.removeBrokerageAuthorization
根据ID删除指定的连接。这也会删除与连接相关联的所有账户和持仓。此操作不可逆。此端点是同步的,204响应表示连接已成功删除。
🛠️ 使用方法
$snaptrade->connections->removeBrokerageAuthorization( authorization_id: "87b24961-b51e-4db8-9226-f198f6518a89", user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61" );
⚙️ 参数
authorization_id: 字符串
user_id: string
用户密钥: 字符串
🔄 返回
void (空的响应体)
🌐 端点
/authorizations/{authorizationId}
DELETE
snaptrade.connections.sessionEvents
返回与用户关联的会话事件列表。
🛠️ 使用方法
$result = $snaptrade->connections->sessionEvents( partner_client_id: "SNAPTRADETEST", user_id: "917c8734-8470-4a3e-a18f-57c3f2ee6631,65e839a3-9103-4cfb-9b72-2071ef80c5f2", session_id: "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( underlying_symbol_id: "2bcd7cc3-e922-4976-bce1-9858296801c3", legs: [ [ "action" => "BUY_TO_OPEN", "option_symbol_id" => "SPY220819P00200000", "quantity" => 1, ] ], strategy_type: "CUSTOM", user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", account_id: "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( user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", account_id: "accountId_example", symbol: "symbol_example" );
⚙️ 参数
user_id: string
用户密钥: 字符串
account_id: 字符串
获取期权链的账户ID。
symbol: string
如果指定了符号,则为通用符号ID
🔄 返回
🌐 端点
/accounts/{accountId}/optionsChain
GET
snaptrade.options.getOptionsStrategyQuote
返回一个策略报价对象,其中包含指定期权策略的最新市场数据。
🛠️ 使用方法
$result = $snaptrade->options->getOptionsStrategyQuote( user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", account_id: "accountId_example", option_strategy_id: "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( user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", account_id: "917c8734-8470-4a3e-a18f-57c3f2ee6631" );
⚙️ 参数
user_id: string
用户密钥: 字符串
account_id: 字符串
🔄 返回
🌐 端点
/accounts/{accountId}/options
GET
snaptrade.options.placeOptionStrategy
放置期权策略订单并返回从经纪商收到的订单记录。
🛠️ 使用方法
$result = $snaptrade->options->placeOptionStrategy( order_type: "Market", time_in_force: "FOK", user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", account_id: "2bcd7cc3-e922-4976-bce1-9858296801c3", option_strategy_id: "2bcd7cc3-e922-4976-bce1-9858296801c3", price: 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( currency_pair: "currencyPair_example" );
⚙️ 参数
currency_pair: 字符串
基于货币代码的货币对,例如,{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( substring: "AAPL" );
⚙️ 参数
substring: 字符串
符号的搜索查询。
🔄 返回
🌐 端点
/symbols
POST
snaptrade.referenceData.getSymbolsByTicker
根据代号或通用符号ID返回指定的通用符号对象。指定代号时,返回第一个匹配的结果。我们主要遵循Yahoo Finance代号格式(点击“Yahoo Finance市场覆盖和数据延迟”)。例如,在多伦多证券交易所上市证券的符号有一个'.TO'后缀。在纳斯达克或纽约证券交易所上市的证券没有后缀。请使用带有正确后缀的代号以获得最佳结果。
🛠️ 使用方法
$result = $snaptrade->referenceData->getSymbolsByTicker( query: "query_example" );
⚙️ 参数
query: 字符串
用于查找符号的代号或通用符号ID。
🔄 返回
🌐 端点
/symbols/{query}
GET
snaptrade.referenceData.listAllBrokerageAuthorizationType
返回所有定义的经纪商授权类型对象的列表。
🛠️ 使用方法
$result = $snaptrade->referenceData->listAllBrokerageAuthorizationType( brokerage: "QUESTRADE,ALPACA" );
⚙️ 参数
brokerage: 字符串
经纪商slugs的逗号分隔值
🔄 返回
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( user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", account_id: "917c8734-8470-4a3e-a18f-57c3f2ee6631", substring: "AAPL" );
⚙️ 参数
user_id: string
用户密钥: 字符串
account_id: 字符串
substring: 字符串
符号的搜索查询。
🔄 返回
🌐 端点
/accounts/{accountId}/symbols
POST
snaptrade.trading.cancelUserAccountOrder
尝试通过经纪商取消未完成的订单。如果订单已无法取消,请求将被拒绝。
🛠️ 使用方法
$result = $snaptrade->trading->cancelUserAccountOrder( user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", account_id: "917c8734-8470-4a3e-a18f-57c3f2ee6631", brokerage_order_id: "66a033fa-da74-4fcf-b527-feefdec9257e" );
⚙️ 参数
user_id: string
用户密钥: 字符串
account_id: 字符串
brokerage_order_id: 字符串
由经纪商返回的订单ID。这是经纪商系统中订单的唯一标识符。
🔄 返回
🌐 端点
/accounts/{accountId}/orders/cancel
POST
snaptrade.trading.getOrderImpact
模拟订单及其对账户的影响。此端点不会向经纪商下单。如果成功,它将返回一个Trade
对象,可以使用该对象的ID通过下单端点向经纪商下单。请注意,返回的Trade
对象在5分钟后过期。使用过期的Trade
下单将被拒绝。
🛠️ 使用方法
$result = $snaptrade->trading->getOrderImpact( account_id: "917c8734-8470-4a3e-a18f-57c3f2ee6631", action: "BUY", universal_symbol_id: "2bcd7cc3-e922-4976-bce1-9858296801c3", order_type: "Market", time_in_force: "FOK", user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", price: 31.33, stop: 31.33, units: 10.5, notional_value: None );
⚙️ 参数
account_id: 字符串
连接经纪商账户的唯一标识符。这是在SnapTrade中引用账户的UUID。
操作:
通用符号ID:string
在SnapTrade中符号的唯一标识符。这是在SnapTrade API调用中引用符号的ID。
order_type:
time_in_force:
user_id: string
用户密钥: 字符串
price: float
Limit
和StopLimit
订单的限价。
stop:float
Stop
和StopLimit
订单触发停损订单的价格。
单位:float
名义价值:ManualTradeFormNotionalValue
🔄 返回
🌐 端点
/trade/impact
POST
snaptrade.trading.getUserAccountQuotes
为指定的符号和账户返回经纪商的报价。返回的报价可能因账户所属的经纪商而延迟。强烈建议您使用自己的市场数据提供商以获取实时报价,而不是依赖于此端点。此端点不适用于期权报价。
🛠️ 使用方法
$result = $snaptrade->trading->getUserAccountQuotes( user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", symbols: "symbols_example", account_id: "917c8734-8470-4a3e-a18f-57c3f2ee6631", use_ticker: True );
⚙️ 参数
user_id: string
用户密钥: 字符串
符号:string
要获取报价的通用符号ID或代号的列表。
account_id: 字符串
use_ticker:bool
如果symbols
由代号组成,则应设置为True
。如果未提供,则默认为False
。
🔄 返回
🌐 端点
/accounts/{accountId}/quotes
GET
snaptrade.trading.placeForceOrder
在指定的账户中放置经纪商订单。如果订单无效或账户资金不足,订单可能被经纪商拒绝。
此端点在将订单提交给经纪商之前不会计算订单对账户余额的影响以及任何潜在佣金。如果需要,可以使用检查订单影响端点。
建议在下单后手动刷新账户以确保账户是最新的。您可以使用手动刷新端点来完成此操作。
🛠️ 使用方法
$result = $snaptrade->trading->placeForceOrder( account_id: "917c8734-8470-4a3e-a18f-57c3f2ee6631", action: "BUY", universal_symbol_id: "2bcd7cc3-e922-4976-bce1-9858296801c3", order_type: "Market", time_in_force: "FOK", user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", price: 31.33, stop: 31.33, units: 10.5, notional_value: None );
⚙️ 参数
account_id: 字符串
连接经纪商账户的唯一标识符。这是在SnapTrade中引用账户的UUID。
操作:
通用符号ID:string
在SnapTrade中符号的唯一标识符。这是在SnapTrade API调用中引用符号的ID。
order_type:
time_in_force:
user_id: string
用户密钥: 字符串
price: float
Limit
和StopLimit
订单的限价。
stop:float
Stop
和StopLimit
订单触发停损订单的价格。
单位:float
名义价值:ManualTradeFormNotionalValue
🔄 返回
🌐 端点
/trade/place
POST
snaptrade.trading.placeOrder
将之前检查过的订单提交给经纪商。从检查订单影响端点获取 tradeId
。如果您希望在不检查影响的情况下提交订单,可以使用提交订单端点。
建议在下单后手动刷新账户以确保账户是最新的。您可以使用手动刷新端点来完成此操作。
🛠️ 使用方法
$result = $snaptrade->trading->placeOrder( trade_id: "139e307a-82f7-4402-b39e-4da7baa87758", user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", wait_to_confirm: 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( user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", start_date: "2022-01-24", end_date: "2022-01-24", accounts: "917c8734-8470-4a3e-a18f-57c3f2ee6631,65e839a3-9103-4cfb-9b72-2071ef80c5f2", brokerage_authorizations: "917c8734-8470-4a3e-a18f-57c3f2ee6631,65e839a3-9103-4cfb-9b72-2071ef80c5f2", type: "BUY,SELL,DIVIDEND" );
⚙️ 参数
user_id: string
用户密钥: 字符串
start_date: \DateTime
要检索的交易历史的起始日期(包含)。如果不提供,则默认为SnapTrade根据trade_date
所知的第一个交易。
end_date: \DateTime
要检索的交易历史的结束日期(包含)。如果不提供,则默认为SnapTrade根据trade_date
所知的最后一个交易。
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( start_date: "2022-01-24", end_date: "2022-01-24", user_id: "snaptrade-user-123", user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61", accounts: "917c8734-8470-4a3e-a18f-57c3f2ee6631,65e839a3-9103-4cfb-9b72-2071ef80c5f2", detailed: True, frequency: "monthly" );
⚙️ 参数
start_date: \DateTime
end_date: \DateTime
user_id: string
用户密钥: 字符串
accounts: string
可选的逗号分隔的账户ID列表,用于在特定账户上过滤请求
detailed: bool
可选,如果设置为true,则增加总价值和贡献图表的数据点频率
frequency: string
回报率图表的可选频率(默认为每月)。可能的值是每日、每周、每月、每季度、每年。
🔄 返回
🌐 端点
/performance/custom
GET
作者
此PHP软件包由Konfig自动生成