konfig/snaptrade-php-sdk

将经纪账户连接到您的应用程序以获取实时仓位和交易

v2.0.45 2024-09-25 04:09 UTC

README

Visit SnapTrade

SnapTrade

将经纪账户连接到您的应用程序以获取实时仓位和交易

Packagist More Info

目录

安装与使用

需求

此库需要 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

Deprecated

已弃用,请使用特定账户的持仓端点代替。

列出用户的全部账户,以及每个账户的余额、仓位和订单。

🛠️ 使用方法

$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

🔄 返回

DeleteUserResponse

🌐 端点

/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合作伙伴选择的,可以是任何唯一的字符串,并且对于用户来说是不可变的。建议不要使用电子邮件地址作为此属性的值,因为它们通常不是不可变的。

🔄 返回

UserIDandSecret

🌐 端点

/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用户密钥。这是一个随机生成的字符串,应安全存储。如果被泄露,请通过旋转用户密钥端点进行旋转。

🔄 返回

UserIDandSecret

🌐 端点

/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
用户密钥: 字符串

🔄 返回

BrokerageAuthorization

🌐 端点

/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

返回指定用户的所有连接的列表。请注意,ConnectionBrokerage Authorization可以互换使用,但首选使用Connection,并且在文档中使用以保持一致性。

连接通常与经纪商的单个登录相关联。单个连接可以包含多个经纪商账户。

SnapTrade会对给定用户的连接执行去重。如果用户已与经纪商存在现有连接,当使用相同凭据连接经纪商时,SnapTrade将返回现有连接而不是创建一个新的。

🛠️ 使用方法

$result = $snaptrade->connections->listBrokerageAuthorizations(
    user_id: "snaptrade-user-123", 
    user_secret: "adf2aa34-8219-40f7-a6b3-60156985cc61"
);

⚙️ 参数

user_id: string
用户密钥: 字符串

🔄 返回

BrokerageAuthorization

🌐 端点

/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。

🔄 返回

StrategyQuotes

🌐 端点

/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

🔄 返回

OptionChainInner

🌐 端点

/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

🔄 返回

StrategyQuotes

🌐 端点

/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: 字符串

🔄 返回

OptionsPosition

🌐 端点

/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

如果有价订单或停止限价订单,则为交易价格

🔄 返回

StrategyOrderRecord

🌐 端点

/accounts/{accountId}/optionStrategy/{optionStrategyId}/execute POST

🔙 返回目录

snaptrade.referenceData.getCurrencyExchangeRatePair

根据指定的货币对返回一个汇率对对象。

🛠️ 使用方法

$result = $snaptrade->referenceData->getCurrencyExchangeRatePair(
    currency_pair: "currencyPair_example"
);

⚙️ 参数

currency_pair: 字符串

基于货币代码的货币对,例如,{CAD-USD}

🔄 返回

ExchangeRatePairs

🌐 端点

/currencies/rates/{currencyPair} GET

🔙 返回目录

snaptrade.referenceData.getPartnerInfo

返回SnapTrade Client ID的配置,包括允许的经纪商和数据访问。

🛠️ 使用方法

$result = $snaptrade->referenceData->getPartnerInfo();

🔄 返回

PartnerData

🌐 端点

/snapTrade/partners GET

🔙 返回目录

snaptrade.referenceData.getSecurityTypes

返回SnapTrade支持的所有安全类型。

🛠️ 使用方法

$result = $snaptrade->referenceData->getSecurityTypes();

🔄 返回

SecurityType

🌐 端点

/securityTypes GET

🔙 返回目录

snaptrade.referenceData.getStockExchanges

返回所有受支持的交易所列表。

🛠️ 使用方法

$result = $snaptrade->referenceData->getStockExchanges();

🔄 返回

Exchange

🌐 端点

/exchanges GET

🔙 返回目录

snaptrade.referenceData.getSymbols

返回与给定查询匹配的通用符号对象的列表。匹配考虑了符号的代号和名称。只返回前20个结果。

🛠️ 使用方法

$result = $snaptrade->referenceData->getSymbols(
    substring: "AAPL"
);

⚙️ 参数

substring: 字符串

符号的搜索查询。

🔄 返回

UniversalSymbol

🌐 端点

/symbols POST

🔙 返回目录

snaptrade.referenceData.getSymbolsByTicker

根据代号或通用符号ID返回指定的通用符号对象。指定代号时,返回第一个匹配的结果。我们主要遵循Yahoo Finance代号格式(点击“Yahoo Finance市场覆盖和数据延迟”)。例如,在多伦多证券交易所上市证券的符号有一个'.TO'后缀。在纳斯达克或纽约证券交易所上市的证券没有后缀。请使用带有正确后缀的代号以获得最佳结果。

🛠️ 使用方法

$result = $snaptrade->referenceData->getSymbolsByTicker(
    query: "query_example"
);

⚙️ 参数

query: 字符串

用于查找符号的代号或通用符号ID。

🔄 返回

UniversalSymbol

🌐 端点

/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();

🔄 返回

Brokerage

🌐 端点

/brokerages GET

🔙 返回目录

snaptrade.referenceData.listAllCurrencies

返回所有定义的货币对象的列表。

🛠️ 使用方法

$result = $snaptrade->referenceData->listAllCurrencies();

🔄 返回

Currency

🌐 端点

/currencies GET

🔙 返回目录

snaptrade.referenceData.listAllCurrenciesRates

返回所有受支持货币的所有汇率对的列表。

🛠️ 使用方法

$result = $snaptrade->referenceData->listAllCurrenciesRates();

🔄 返回

ExchangeRatePairs

🌐 端点

/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: 字符串

符号的搜索查询。

🔄 返回

UniversalSymbol

🌐 端点

/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

LimitStopLimit订单的限价。

stop:float

StopStopLimit订单触发停损订单的价格。

单位:float
名义价值:ManualTradeFormNotionalValue

🔄 返回

ManualTradeAndImpact

🌐 端点

/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

🔄 返回

SymbolsQuotesInner

🌐 端点

/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

LimitStopLimit订单的限价。

stop:float

StopStopLimit订单触发停损订单的价格。

单位: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

返回指定用户和过滤标准的所有历史交易。建议使用startDateendDate分页处理数据,因为对于历史记录长或活动量大的账户,响应可能会非常大。每个请求返回的交易数量最多为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 - 从账户中提取的费用。

🔄 返回

UniversalActivity

🌐 端点

/activities GET

🔙 返回目录

snaptrade.transactionsAndReporting.getReportingCustomRange

Deprecated

返回特定时间范围内的性能信息(贡献、股息、回报率等)。请注意,总权益时间段和回报率是实验性功能。如果发现任何不一致,请联系 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

回报率图表的可选频率(默认为每月)。可能的值是每日、每周、每月、每季度、每年。

🔄 返回

PerformanceCustom

🌐 端点

/performance/custom GET

🔙 返回目录

作者

此PHP软件包由Konfig自动生成