a.treschilov/tinkoff-invest-api-sdk
最新稳定版本:v0.3.13
Composer 安装命令:
composer require a.treschilov/tinkoff-invest-api-sdk
包简介
PHP SDK for Tinkoff invest API V2
README 文档
README
Unofficial PHP SDK for Tinkoff invest API V2. See official API documentation
Installation
It's recommended that you use Composer to install.
$ composer require a.treschilov/tinkoff-invest-api-sdk
SDK requires:
- PHP 8.3 or newer
- grpc extension
Install grpc
sudo pecl install grpc
Add to php.ini
extension=grpc.so
How to use
Basic Usage (limited methods support)
<?php declare(strict_types=1); use ATreschilov\TinkoffInvestApiSdk\Exceptions\TIException as TIException; use ATreschilov\TinkoffInvestApiSdk\TIClient; require __DIR__ . '/../vendor/autoload.php'; /** * Your personal Tinkoff Invest token * * @see https://tinkoff.github.io/investAPI/token/ */ $token = '<Your Tinkoff Invest Account Token>'; $options = [ 'isRateLimitRetry' => false ]; $tiClient = new TIClient($token, $options); try { $tiAccounts = $tiClient->getUser()->getAccounts(); $accounts = []; foreach ($tiAccounts as $account) { $accounts[] = [ 'id' => $account->getId(), 'name' => $account->getName(), 'type' => $account->getType(), 'status' => $account->getStatus(), 'openedDate' => $account->getOpenedDate()->getSeconds(), 'closedDate' => $account->getClosedDate()->getSeconds() ]; } echo '<pre>' . print_r($accounts, true) . '</pre>'; } catch (TIException $e) { echo $e->getCode() . '. ' . $e->getMessage(); }
Basic usage methods support
- User
- ✔ getAccounts
- ✖ GetMarginAttributes
- ✖ GetUserTariff
- ✖ GetInfo
- Instruments
- ✖ TradingSchedules
- ✔ BondBy
- ✔ Bonds
- ✔ GetBondCoupons
- ✔ GetBondsEvents
- ✔ CurrencyBy
- ✔ Currencies
- ✖ EtfBy
- ✔ Etfs
- ✔ FutureBy
- ✔ Futures
- ✖ OptionBy
- ✖ Options
- ✖ OptionsBy
- ✔ ShareBy
- ✔ Shares
- ✔ Indicatives
- ✖ GetAccruedInterests
- ✖ GetFuturesMargin
- ✔ GetInstrumentBy
- ✔ GetDividends
- ✖ GetAssetBy
- ✖ GetAssets
- ✖ GetFavorites
- ✖ EditFavorites
- ✖ GetCountries
- ✖ FindInstrument
- ✖ GetBrands
- ✖ GetBrandBy
- ✖ GetAssetFundamentals
- ✖ GetAssetReports
- ✖ GetConsensusForecasts
- ✖ GetForecastBy
- OrdersStream
- ✖ TradesStream
- Orders
- ✖ PostOrder
- ✖ CancelOrder
- ✖ GetOrderState
- ✖ GetOrders
- ✖ ReplaceOrder
- ✖ GetMaxLots
- ✖ GetOrderPrice
- Operations
- ✔ GetOperations
- ✔ GetPortfolio
- ✖ GetPositions
- ✔ GetWithdrawLimits
- ✖ GetBrokerReport
- ✖ GetDividendsForeignIssuer
- ✖ GetOperationsByCursor
- OperationsStream
- ✖ PortfolioStream
- ✖ PositionsStream
- MarketData
- ✔ GetCandles
- ✔ GetLastPrices
- ✖ GetOrderBook
- ✖ GetTradingStatus
- ✖ GetTradingStatuses
- ✖ GetLastTrades
- ✖ GetClosePrice
- ✖ GetTechAnalysis
- MarketDataStream
- ✖ MarketDataStream
- ✖ MarketDataServerSideStream
- StopOrders
- ✖ PostStopOrder
- ✖ GetStopOrders
- ✖ CancelStopOrder
- Signals
- ✖ OpenSandboxAccount
- ✖ GetSandboxAccounts
- Sandbox
- ✖ OpenSandboxAccount
- ✖ GetSandboxAccounts
- ✖ CloseSandboxAccount
- ✖ PostSandboxOrder
- ✖ ReplaceSandboxOrders
- ✖ GetSandboxOrders
- ✖ CancelSandboxOrder
- ✖ GetSandboxOrderState
- ✖ GetSandboxPositions
- ✖ GetSandboxOperations
- ✖ GetSandboxOperationsByCursor
- ✖ GetSandboxPortfolio
- ✖ SandboxPayIn
- ✖ GetSandboxWithdrawLimits
Advance usage (full methods support)
<?php declare(strict_types=1); use ATreschilov\TinkoffInvestApiSdk\TIClient; use Tinkoff\Invest\V1\Account; use Tinkoff\Invest\V1\GetAccountsRequest; use Tinkoff\Invest\V1\GetAccountsResponse; use Tinkoff\Invest\V1\UsersServiceClient; require __DIR__ . '/../vendor/autoload.php'; /** * Your personal Tinkoff Invest token * * @see https://tinkoff.github.io/investAPI/token/ */ $token = '<Your Tinkoff Invest Account Token>'; $tiClient = new TIClient($token); $userServiceClient = new UsersServiceClient($tiClient->getHostname(), $tiClient->getApiConfig()); $request = new GetAccountsRequest(); /** @var GetAccountsResponse $response */ list($response, $status) = $userServiceClient->GetAccounts($request)->wait(); if ($status->code !== 0) { echo '<pre>' . print_r($status, true) . '</pre>'; return; } $accounts = []; /** @var Account $account */ foreach ($response->getAccounts() as $account) { $accounts[] = [ 'id' => $account->getId(), 'name' => $account->getName(), 'type' => $account->getType(), 'status' => $account->getStatus(), 'openedDate' => $account->getOpenedDate()->getSeconds(), 'closedDate' => $account->getClosedDate()->getSeconds() ]; } echo '<pre>' . print_r($accounts, true) . '</pre>';
统计信息
- 总下载量: 656
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 5
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2022-01-26