konfig/snaptrade-php-7-sdk

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

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

README

Visit SnapTrade

SnapTrade

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

Packagist More Info

目录

安装与使用

要求

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

Deprecated

已弃用,请改用特定于账户的持仓端点。

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

🛠️ 使用

$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天。

🔄 返回

AccountOrderRecord

🌐 端点

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

🔄 返回

AccountHoldingsAccount

🌐 端点

/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

🔄 返回

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(
    "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) 对用户是不可变的。建议不要使用电子邮件地址作为此属性,因为它们通常不是不可变的。

🔄 返回

UserIDandSecret

🌐 端点

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

🔄 返回

UserIDandSecret

🌐 端点

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

🔄 返回

BrokerageAuthorization

🌐 端点

/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

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

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

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

🛠️ 使用

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

⚙️ 参数

user_id: string
用户密钥: 字符串

🔄 返回

BrokerageAuthorization

🌐 端点

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

🔄 返回

StrategyQuotes

🌐 端点

/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

🔄 返回

OptionChainInner

🌐 端点

/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

🔄 返回

StrategyQuotes

🌐 端点

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

🔄 返回

OptionsPosition

🌐 端点

/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

如果为限价或停限价订单,则表示交易价格。

🔄 返回

StrategyOrderRecord

🌐 端点

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

🔙 返回目录

snaptrade.referenceData.getCurrencyExchangeRatePair

返回指定货币对的汇率对对象。

🛠️ 使用

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

⚙️ 参数

currency_pair: string

基于货币代码的货币对,例如,{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(
    "AAPL"
);

⚙️ 参数

substring: string

符号的搜索查询。

🔄 返回

UniversalSymbol

🌐 端点

/symbols POST

🔙 返回目录

snaptrade.referenceData.getSymbolsByTicker

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

🛠️ 使用

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

⚙️ 参数

query: string

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

🔄 返回

UniversalSymbol

🌐 端点

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

🔄 返回

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(
    "snaptrade-user-123", 
    "adf2aa34-8219-40f7-a6b3-60156985cc61", 
    "917c8734-8470-4a3e-a18f-57c3f2ee6631", 
    "AAPL"
);

⚙️ 参数

user_id: string
用户密钥: 字符串
account_id: 字符串
substring: string

符号的搜索查询。

🔄 返回

UniversalSymbol

🌐 端点

/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。这是经纪商系统中订单的唯一标识符。

🔄 返回

AccountOrderRecord

🌐 端点

/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

LimitStopLimit订单的限价。

stop: float

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

units: float
notional_value: ManualTradeFormNotionalValue

🔄 返回

ManualTradeAndImpact

🌐 端点

/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

🔄 返回

SymbolsQuotesInner

🌐 端点

/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

LimitStopLimit订单的限价。

stop: float

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

units: float
notional_value: ManualTradeFormNotionalValue

🔄 返回

AccountOrderRecord

🌐 端点

/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 状态,因为我们不会在响应请求之前等待检查状态。

🔄 返回

AccountOrderRecord

🌐 端点

/trade/{tradeId} POST

🔙 返回目录

snaptrade.transactionsAndReporting.getActivities

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

🔄 返回

UniversalActivity

🌐 端点

/activities GET

🔙 返回目录

snaptrade.transactionsAndReporting.getReportingCustomRange

Deprecated

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

可选的收益率图表频率(默认为每月)。可能的值有每日、每周、每月、每季度、每年。

🔄 返回

PerformanceCustom

🌐 端点

/performance/custom GET

🔙 返回目录

作者

此 PHP 软件包由 Konfig 自动生成