1. Go to this page and download the library: Download tigusigalpa/bcs-trade-php library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
tigusigalpa / bcs-trade-php example snippets
use Tigusigalpa\BCSTrade\BCSTradeClient;
// Через конструктор
$client = new BCSTradeClient(config('bcs-trade'));
// Через Laravel Container
$client = app(BCSTradeClient::class);
// Через Facade
use Tigusigalpa\BCSTrade\Facades\BCSTrade;
$limits = BCSTrade::limits()->get();
use Tigusigalpa\BCSTrade\Http\Responses\TokenResponse;
// Получить токен вручную
$tokenResponse = $client->auth()->getToken(
'your_refresh_token',
'trade-api-read'
);
echo $tokenResponse->accessToken;
echo $tokenResponse->expiresIn;
// Токены управляются автоматически, ручной вызов не требуется
// Расписание торгов
$schedule = $client->information()->getDailySchedule('TQBR', 'SBER');
// Инструменты по ISIN
$instruments = $client->information()->getByIsins(['RU0009029540']);
// Инструмент по тикеру
$instrument = $client->information()->getByTicker('SBER', 'TQBR');
// Инструменты по типу
$stocks = $client->information()->getByType('stock');
// Статусы торгов
$statuses = $client->information()->getTradingStatuses(
['SBER', 'GAZP'],
['TQBR', 'TQBR']
);
use Tigusigalpa\BCSTrade\Enums\TimeFrame;
// Получить исторические свечи (до 1000 баров)
$candles = $client->marketData()->getCandles(
classCode: 'TQBR',
ticker: 'SBER',
startDate: '2025-01-01T07:00:00Z',
endDate: '2025-01-31T20:00:00Z',
timeFrame: TimeFrame::D
);
// Или используйте строку
$candles = $client->marketData()->getCandles(
'TQBR',
'SBER',
'2025-01-01T07:00:00Z',
'2025-01-31T20:00:00Z',
'H1'
);
// Автоматическая пагинация для больших диапазонов
$candles = $client->marketData()->getCandlesPaginated(
'TQBR',
'SBER',
'2024-01-01T07:00:00Z',
'2025-12-31T20:00:00Z',
TimeFrame::D
);
// Доступные таймфреймы
TimeFrame::M1 // 1 минута
TimeFrame::M5 // 5 минут
TimeFrame::M15 // 15 минут
TimeFrame::M30 // 30 минут
TimeFrame::H1 // 1 час
TimeFrame::H4 // 4 часа
TimeFrame::D // День
TimeFrame::W // Неделя
TimeFrame::MN // Месяц
use Tigusigalpa\BCSTrade\Enums\OrderSide;
use Tigusigalpa\BCSTrade\Enums\OrderType;
// Создать рыночный ордер на покупку
$order = $client->orders()->create([
'side' => OrderSide::Buy,
'orderType' => OrderType::Market,
'orderQuantity' => 10,
'ticker' => 'SBER',
'classCode' => 'TQBR',
]);
// Создать лимитный ордер на продажу
$order = $client->orders()->create([
'side' => OrderSide::Sell,
'orderType' => OrderType::Limit,
'orderQuantity' => 5,
'ticker' => 'GAZP',
'classCode' => 'TQBR',
'price' => 150.50,
]);
// Создать ордер с собственным UUID
$order = $client->orders()->create([
'clientOrderId' => 'my-unique-uuid',
'side' => '1', // или OrderSide::Buy
'orderType' => '2', // или OrderType::Limit
'orderQuantity' => 10,
'ticker' => 'SBER',
'classCode' => 'TQBR',
'price' => 250.00,
]);
// Получить статус ордера
$status = $client->orders()->status($clientOrderId);
// Получить все ордера
$allOrders = $client->orders()->all();
// Изменить ордер
$updated = $client->orders()->edit($clientOrderId, [
'orderQuantity' => 15,
'price' => 251.00,
]);
// Отменить ордер
$cancelled = $client->orders()->cancel($clientOrderId);
// Получить все сделки
$deals = $client->deals()->all();
// Получить скидки для всех инструментов
$discounts = $client->discounts()->get();
// Получить скидки для конкретных тикеров
$discounts = $client->discounts()->get(['SBER', 'GAZP']);