承接 a.treschilov/tinkoff-invest-api-sdk 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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

GitHub 信息

  • Stars: 5
  • Watchers: 3
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: Apache-2.0
  • 更新时间: 2022-01-26