invest_tinkoff
Ruby Rest API client
Install
gem install invest_tinkoff
Requirements
- Ruby 2.3.0 or higher
Docs
API v2
client = InvestTinkoff::V2::Client.new token: 'ВАШ_ТОКЕН'Справочная информации о ценных бумагах
Метод получения облигации по её идентификатору
# @id_type: InvestTinkoff::V2::InstrumentIdType
# @id: String
# @class_code: String (Обязателен при id_type = TICKER)
bond_by id_type:, id:, class_code: nilМетод получения списка облигаций
# @instrument_status: InvestTinkoff::V2::InstrumentStatus
bonds instrument_status: InvestTinkoff::V2::InstrumentStatus::BASEМетод получения списка валют
# @instrument_status: InvestTinkoff::V2::InstrumentStatus
currencies instrument_status: InvestTinkoff::V2::InstrumentStatus::BASEМетод получения валюты по её идентификатору
# @id_type: InvestTinkoff::V2::InstrumentIdType
# @id: String
# @class_code: String (Обязателен при id_type = TICKER)
currency_by id_type:, id:, class_code: nilМетод редактирования избранных инструментов
https://tinkoff.github.io/investAPI/instruments/#editfavorites
# @figis: String, пример: ['BBG000B9XRY4', 'BBG000BWXBC2']
# @action_type: InvestTinkoff::V2::EditFavoritesActionType
edit_favorites figis:, action_type: InvestTinkoff::V2::EditFavoritesActionType::ADDМетод получения инвестиционного фонда по его идентификатору
# @id_type: InvestTinkoff::V2::InstrumentIdType
# @id: String
# @class_code: String (Обязателен при id_type = TICKER)
etf_by id_type:, id:, class_code: nilМетод получения списка инвестиционных фондов
# @instrument_status: InvestTinkoff::V2::InstrumentStatus
etfs instrument_status: InvestTinkoff::V2::InstrumentStatus::BASEМетод получения фьючерса по его идентификатору
# @id_type: InvestTinkoff::V2::InstrumentIdType
# @id: String
# @class_code: String (Обязателен при id_type = TICKER)
future_by id_type:, id:, class_code: nil# Примеры:
client.future_by id_type: InvestTinkoff::V2::InstrumentIdType::FIGI, id: 'FUTSI0323000'
client.future_by id_type: InvestTinkoff::V2::InstrumentIdType::TICKER, id: 'SiH3', class_code: 'SPBFUT'Метод получения списка фьючерсов
# @instrument_status: InvestTinkoff::V2::InstrumentStatus
futures instrument_status: InvestTinkoff::V2::InstrumentStatus::BASEМетод получения накопленного купонного дохода по облигации
https://tinkoff.github.io/investAPI/instruments/#getaccruedinterests
# @figi: String, пример: 'BBG00X6ZGSY7'
# @from: Time, пример: 1.year.ago
# @to: Time, пример: 2.months.from_now
accrued_interests figi:, from:, to:Метод получения актива по его идентификатору
# @id: String, пример: '9f083982-cf4c-418a-a0bf-8b82f16db42d'
asset_by id:Метод получения списка активов
assetsМетод получения графика выплат купонов по облигации
https://tinkoff.github.io/investAPI/instruments/#getbondcoupons
# @figi: String, пример: 'BBG00X6ZGSY7'
# @from: Time, пример: 1.year.ago
# @to: Time, пример: 6.months.from_now
bond_coupons figi:, from:, to:Метод для получения событий выплаты дивидендов по инструменту
https://tinkoff.github.io/investAPI/instruments/#getdividends
# @figi: String, пример: 'BBG000B9XRY4'
# @from: Time, пример: 1.year.ago
# @to: Time, пример: 1.month.from_now
dividends figi:, from:, to:Метод получения избранных инструментов
https://tinkoff.github.io/investAPI/instruments/#getfavorites
favoritesМетод получения размера гарантийного обеспечения по фьючерсам
https://tinkoff.github.io/investAPI/instruments/#getfuturesmargin
# @figi: String
futures_margin figi:Метод получения основной информации об инструменте
https://tinkoff.github.io/investAPI/instruments/#getinstrumentby
# @id_type: InvestTinkoff::V2::InstrumentIdType
# @id: String
# @class_code: String (Обязателен при id_type = TICKER)
instrument_by id_type:, id:, class_code: nil# Примеры:
client.instrument_by id_type: InvestTinkoff::V2::InstrumentIdType::FIGI, id: 'FUTSI0323000'
client.instrument_by id_type: InvestTinkoff::V2::InstrumentIdType::TICKER, id: 'SiH3', class_code: 'SPBFUT'Метод получения акции по её идентификатору
# @id_type: InvestTinkoff::V2::InstrumentIdType
# @id: String
# @class_code: String (Обязателен при id_type = TICKER)
share_by id_type:, id:, class_code: nil# Примеры:
client.share_by id_type: InvestTinkoff::V2::InstrumentIdType::FIGI, id: 'BBG000B9XRY4'
client.share_by id_type: InvestTinkoff::V2::InstrumentIdType::TICKER, id: 'AAPL', class_code: 'SPBXM'Метод получения списка акций
# @instrument_status: InvestTinkoff::V2::InstrumentStatus
shares instrument_status: InvestTinkoff::V2::InstrumentStatus::BASEМетод получения расписания торгов торговых площадок
https://tinkoff.github.io/investAPI/instruments/#tradingschedulesrequest
# @exchange: String, пример: 'MOEX'
# @from: Time, пример: 1.day.from_now
# @to: Time, пример: 5.days.from_now
trading_schedules exchange:, from:, to:Получения биржевой информации
Метод запроса исторических свечей по инструменту
# @figi: String, пример: 'BBG000B9XRY4'
# @from: Time, пример: 1.hour.ago
# @to: Time, пример: Time.zone.now
# @interval: InvestTinkoff::V2::CandleInterval
candles(
figi:,
from:,
to:,
interval: InvestTinkoff::V2::CandleInterval::HOUR
)Метод запроса последних цен по инструментам
https://tinkoff.github.io/investAPI/marketdata/#getlastprices
# @figis: [String]
last_prices figis:# Примеры:
client.last_prices figis: ['BBG0013HGFT4', 'BBG0013HJJ31']Метод запроса последних обезличенных сделок по инструменту
https://tinkoff.github.io/investAPI/marketdata/#getlasttrades
# @figi: String, пример: 'BBG000B9XRY4'
# @from: Time, пример: 1.hour.ago
# @to: Time, пример: Time.zone.now
last_trades figi:, from:, to:Метод получения стакана по инструменту
https://tinkoff.github.io/investAPI/marketdata/#getorderbook
# @figi: String, пример: 'BBG000B9XRY4'
# @depth: Integer
order_book figi:, depth: 10Метод запроса статуса торгов по инструментам
https://tinkoff.github.io/investAPI/marketdata/#gettradingstatus
# @figi: String, пример: 'BBG000B9XRY4'
trading_status figi:Операции по счёту
Метод получения списка операций по счёту
https://tinkoff.github.io/investAPI/operations/#getoperations
# @account_id: String
# @figi: String, пример: 'BBG000B9XRY4'
# @from: Time
# @to: Time
# @state (опиционально): InvestTinkoff::V2::OperationState
operations(
account_id:,
figi:,
from:,
to:,
state: InvestTinkoff::V2::OperationState::UNSPECIFIED
)Метод получения портфеля по счёту
https://tinkoff.github.io/investAPI/operations/#getportfolio
# @account_id: String
portfolio account_id:Метод получения списка позиций по счёту
https://tinkoff.github.io/investAPI/operations/#getpositions
# @account_id: String
positions account_id:Метод получения доступного остатка для вывода средств
https://tinkoff.github.io/investAPI/operations/#getwithdrawlimits
# @account_id: String
withdraw_limits account_id:Метод получения брокерского отчёта NotImplemented
https://tinkoff.github.io/investAPI/operations/#getbrokerreport
broker_reportМетод получения отчёта "Справка о доходах за пределами РФ" NotImplemented
https://tinkoff.github.io/investAPI/operations/#getdividendsforeignissuer
dividends_foreign_issuerТорговые поручения
Метод получения списка активных заявок по счёту
# @account_id: String
orders account_id:Метод выставления заявки
# @account_id: String
# @figi: String
# @quantity: Integer
# @price: Float
# @direction: InvestTinkoff::V2::OrderDirection
# @order_type: InvestTinkoff::V2::OrderType
# @order_id: String (max length 36)
create_order(
account_id:,
figi:,
quantity:,
price:,
direction:,
order_type:,
order_id:
)# Пример:
client.create_order(
account_id: 'ВАШ_ID_СЧЁТА',
figi: 'BBG000BL9C59',
quantity: 1,
price: 11.35,
direction: InvestTinkoff::V2::OrderDirection::BUY,
order_type: InvestTinkoff::V2::OrderType::LIMIT,
order_id: 'ВАШ_ВНУТРЕННИЙ_ID_ЗАЯВКИ'
)Метод получения статуса торгового поручения
# @account_id: String
# @order_id: String
order_state account_id:, order_id:Метод отмены биржевой заявки
# @account_id: String
# @order_id: String
cancel_order account_id:, order_id:Стоп-заявки
Метод получения списка активных стоп заявок по счёту
https://tinkoff.github.io/investAPI/stoporders/#getstoporders
# @account_id: String
stop_orders account_id:Метод выставления стоп-заявки
https://tinkoff.github.io/investAPI/stoporders/#poststoporder
# @account_id: String
# @figi: String, пример: 'BBG000B9XRY4'
# @quantity: Integer
# @price: Float
# @stop_price: Float
# @expiration_type: InvestTinkoff::V2::StopOrderExpirationType
# @stop_order_type: InvestTinkoff::V2::StopOrderType
create_stop_order(
account_id:,
figi:,
quantity:,
price:,
stop_price:,
expire_date:,
expiration_type: InvestTinkoff::V2::StopOrderExpirationType::UNSPECIFIED,
stop_order_type: InvestTinkoff::V2::StopOrderType::UNSPECIFIED,
)Метод отмены стоп-заявки
https://tinkoff.github.io/investAPI/stoporders/#cancelstoporder
# @account_id: String
# @order_id: String
cancel_stop_order account_id:, order_id:Получение справочной информации о пользователе Тинькофф Инвестиций
Метод получения счетов пользователя
accountsМетод получения информации о пользователе
infoРасчёт маржинальных показателей по счёту
https://tinkoff.github.io/investAPI/users/#getmarginattributes
# @account_id: String
margin_attributes account_id:Текущий тариф пользователя (лимиты запросов к API)
user_tariffAPI v2 Sandbox
client = InvestTinkoff::V2::SandboxClient.new token: 'ВАШ_ТОКЕН_ПЕСОЧНИЦЫ'Операции в sandbox
Метод отмены торгового поручения в песочнице
https://tinkoff.github.io/investAPI/sandbox/#cancelsandboxorder
# @account_id: String
# @order_id: String
cancel_sandbox_order account_id:, order_id:Метод закрытия счёта в песочнице
https://tinkoff.github.io/investAPI/sandbox/#closesandboxaccount
# @account_id: String
close_sandbox_account account_id:Метод получения счетов в песочнице
https://tinkoff.github.io/investAPI/sandbox/#getsandboxaccounts
sandbox_accountsМетод получения операций в песочнице по номеру счёта
https://tinkoff.github.io/investAPI/sandbox/#getsandboxoperations
# @account_id: String
# @figi: String, пример: 'BBG000B9XRY4'
# @from: Time
# @to: Time
# @state (опиционально): InvestTinkoff::V2::OperationState
sandbox_operations(
account_id:,
figi:,
from:,
to:,
state: InvestTinkoff::V2::OperationState::UNSPECIFIED
)Метод получения статуса заявки в песочнице
https://tinkoff.github.io/investAPI/sandbox/#getsandboxorderstate
# @account_id: String
# @order_id: String
sandbox_order_state account_id:, order_id:Метод получения списка активных заявок по счёту в песочнице
https://tinkoff.github.io/investAPI/sandbox/#getsandboxorders
# @account_id: String
sandbox_orders account_id:Метод получения портфолио в песочнице
https://tinkoff.github.io/investAPI/sandbox/#getsandboxportfolio
# @account_id: String
sandbox_portfolio account_id:Метод получения позиций по виртуальному счёту песочницы
https://tinkoff.github.io/investAPI/sandbox/#getsandboxpositions
# @account_id: String
sandbox_positions account_id:Метод регистрации счёта в песочнице
https://tinkoff.github.io/investAPI/sandbox/#opensandboxaccount
open_sandbox_accountМетод выставления торгового поручения в песочнице
https://tinkoff.github.io/investAPI/sandbox/#postsandboxorder
# @account_id: String
# @figi: String
# @quantity: Integer
# @price: Float
# @direction: InvestTinkoff::V2::OrderDirection
# @order_type: InvestTinkoff::V2::OrderType
# @order_id: String (max length 36)
create_sandbox_order(
account_id:,
figi:,
quantity:,
price:,
direction:,
order_type:,
order_id:
)Метод пополнения счёта в песочнице
# @account_id: String
# @amount: Float
# @currency: String, пример 'RUB', 'USD', 'EUR' и т.д.
sandbox_pay_in account_id:, amount:, currency:API v1
Deprecated
Все новые рабочие токены доступны только для версии V2. Поддержка первой версии будет завершена в 2022 году.
client = InvestTinkoff::V1::SandboxClient.new token: 'ВАШ_ТОКЕН'Операции с заявками
Получение списка активных заявок
ordersСоздание лимитной заявки
orders_limit_order figi:, operation:, lots:, price:Создание рыночной заявки
orders_market_order figi:, operation:, lots:Отмена заявки
orders_cancel idОперации с портфелем пользователя
Получение портфеля клиента
portfolioПолучение валютных активов клиента
portfolio_currenciesПолучении информации по бумагам
Получение списка акций
market_stocksПолучение списка облигаций
market_bondsПолучение списка ETF
market_etfsПолучение списка валютных пар
market_currenciesПолучение стакана по FIGI
market_orderbook figi:, depth: 20Получение исторических свечей по FIGI
market_candles figi:, from:, to:, interval:Получение инструмента по FIGI
market_search_by_figi figiПолучение инструмента по тикеру
market_search_by_ticker tickerПолучении информации по операциям
Получение списка операций
operations from:, to:, figi: nilПолучении информации по брокерским счетам
Получение брокерских счетов клиента
user_accountsAPI v1 Sandbox
Все операции рабочего клиента плюс:
client = InvestTinkoff::V1::SandboxClient.new token: 'ВАШ_ТОКЕН_ПЕСОЧНИЦЫ'Операции в sandbox
Создание счета и выставление баланса по валютным позициям
registerВыставление баланса по валютным позициям
currencies_balance currency:, balance:Выставление баланса по инструментным позициям
position_balance figi:, balance:Удаление всех позиций клиента
clearУдаление счета клиента
remove