carpenstar/bybitapi-spot

3.0.1 2023-07-31 21:35 UTC

This package is auto-updated.

Last update: 2024-06-09 20:40:23 UTC


README

phpunit Scrutinizer Code Quality Build Status Code Intelligence Status

ByBitAPI - spot-trading package

Дисклэймер: это неофициальный SDK для интеграции с биржей ByBit.
Поддержка функционала осуществляется только в пределах зоны отвественности кода и при возможности со стороны разработчика

Разработка интеграции еще не закончена, поэтому работоспособность (как полностью, так и отдельных компонентов) не гарантируется.

Требования

  • PHP >= 7.4

Установка

composer require carpenstar/bybitapi-sdk-spot

Содержание:

MARKET DATA
Эндпоинт Тип доступа Смотреть в директории Официальная документации Язык
Best Bid Ask Price Публичный смотреть смотреть EN,RU
Instrument Info Публичный смотреть смотреть EN,RU
Kline Публичный смотреть смотреть EN,RU
Last Traded Price Публичный смотреть смотреть EN,RU
Merged Order Book Публичный смотреть смотреть EN,RU
Public Trading Records Публичный смотреть смотреть EN,RU
Tickers Публичный смотреть смотреть EN,RU
Order Book Публичный смотреть смотреть EN,RU
TRADE
Эндпоинт Тип доступа Смотреть в директории Официальная документации Язык
Place Order Приватный смотреть смотреть EN, RU
Get Order Приватный смотреть смотреть EN, RU
Cancel Order Приватный смотреть смотреть EN, RU
Batch Cancel Order Приватный смотреть смотреть EN, RU
Batch Cancel Order By Id Приватный смотреть смотреть EN, RU
Open Orders Приватный смотреть смотреть EN, RU
Order History Приватный смотреть смотреть EN, RU
Trade History Приватный смотреть смотреть EN, RU
LEVERAGE TOKEN
Эндпоинт Тип доступа Смотреть в директории Официальная документации Язык
All Asset Info Публичный смотреть смотреть EN, RU
Market Info Публичный смотреть смотреть EN, RU
Purchase Публичный смотреть смотреть EN, RU
Purchase Redeem History Публичный смотреть смотреть EN, RU
Redeem Публичный смотреть смотреть EN, RU
ACCOUNT
Эндпоинт Тип доступа Смотреть в директории Официальная документации Язык
Wallet Balance Приватный смотреть смотреть EN, RU

Market Data - Best Bid Ask Price

Официальная страница документации

Если торговый инструмент не указан, то будет возвращена лучшая цена ордера из всех символов.

// Класс эндпоинта:
\Carpenstar\ByBitAPI\Spot\MarketData\BestBidAskPrice\BestBidAskPrice::class

ПРИМЕР

use Carpenstar\ByBitAPI\BybitAPI;
use Carpenstar\ByBitAPI\Spot\MarketData\BestBidAskPrice\BestBidAskPrice;
use Carpenstar\ByBitAPI\Spot\MarketData\BestBidAskPrice\Request\BestBidAskPriceRequest;
use Carpenstar\ByBitAPI\Spot\MarketData\BestBidAskPrice\Response\BestBidAskPriceResponse;

$bybit = new BybitAPI('https://api-testnet.bybit.com',"apiKey", "secret");

$options = (new BestBidAskPriceRequest())->setSymbol("BTCUSDT");

/** @var BestBidAskPriceResponse $bestBidAskPrice */
$bestBidAskPrice = $bybit->rest(BestBidAskPrice::class, $options)->getBody()->fetch();



echo "Symbol: {$bestBidAskPrice->getSymbol()}" . PHP_EOL;
echo "Bid Price: {$bestBidAskPrice->getBidPrice()}" . PHP_EOL;
echo "Bid Qty: {$bestBidAskPrice->getBidQty()}" . PHP_EOL;
echo "Ask Price: {$bestBidAskPrice->getAskPrice()}" . PHP_EOL;
echo "Ask Qty: {$bestBidAskPrice->getAskQty()}" . PHP_EOL;
echo "Time: {$bestBidAskPrice->getTime()->format("Y-m-d H:i:s")}" . PHP_EOL;

/**
 * Result:
 *
 * Symbol: BTCUSDT
 * Bid Price: 27776
 * Bid Qty: 0.002492{}
 * Ask Price: 27776.01
 * Ask Qty: 0.004536
 * Time: 2023-05-09 18:03:57
 */

ПАРАМЕТРЫ ЗАПРОСА

namespace Carpenstar\ByBitAPI\Spot\MarketData\BestBidAskPrice\Interfaces;

interface IBestBidAskPriceRequestInterface
{
    public function setSymbol(string $symbol): self;
    
    // .. Getters
}
INTERFACE
\Carpenstar\ByBitAPI\Spot\MarketData\BestBidAskPrice\Interfaces\IBestBidAskPriceRequestInterface::class
DTO
\Carpenstar\ByBitAPI\Spot\MarketData\BestBidAskPrice\Response\BestBidAskPriceResponse::class
Метод Обязательно Описание
:: setSymbol(string $symbol): self ДА Строка с тикером торговой пары

СТРУКТУРА ОТВЕТА

namespace Carpenstar\ByBitAPI\Spot\MarketData\BestBidAskPrice\Interfaces;

interface IBestBidAskPriceResponseInterface
{
    public function getSymbol(): string; // Торговый инструмент
    public function getAskPrice(): float; // Лучшая цена продажи 
    public function getAskQty(): float; // Количество по лучшей цене продажи
    public function getBidPrice(): float; // Лучшая цена покупки
    public function getBidQty(): float; // Количество по лучшей цене покупки
    public function getTime(): \DateTime; // Время ответа на запрос
}
INTERFACE
\Carpenstar\ByBitAPI\Spot\MarketData\BestBidAskPrice\Interfaces\IBestBidAskPriceResponseInterface::class
DTO
\Carpenstar\ByBitAPI\Spot\MarketData\BestBidAskPrice\Response\BestBidAskPriceResponse::class
Метод Тип Описание
IBestBidAskPriceResponseInterface::getSymbol() string Торговый инструмент
IBestBidAskPriceResponseInterface::getAskPrice() float Лучшая цена продажи
IBestBidAskPriceResponseInterface::getAskQty() float Количество по лучшей цене продажи
IBestBidAskPriceResponseInterface::getBidPrice() float Лучшая цена покупки
IBestBidAskPriceResponseInterface::getBidQty() float Количество по лучшей цене покупки
IBestBidAskPriceResponseInterface::getTime() DateTime Время ответа на запрос

Market Data - Instrument Info

Официальная страница документации

Эндпоинт возвращает спецификации по всем символам

// Класс эндпоинта:
\Carpenstar\ByBitAPI\Spot\MarketData\InstrumentInfo\InstrumentInfo::class

ПРИМЕР

use Carpenstar\ByBitAPI\BybitAPI;
use Carpenstar\ByBitAPI\Spot\MarketData\InstrumentInfo\InstrumentInfo;
use Carpenstar\ByBitAPI\Spot\MarketData\InstrumentInfo\Response\InstrumentInfoResponse;

$bybit = new BybitAPI('https://api-testnet.bybit.com',"apiKey", "secret");

/** @var InstrumentInfoResponse[] $instrumentInfoData */
$instrumentInfo = $bybit->rest(InstrumentInfo::class)->getBody()->all();
$instrumentInfo = array_slice($instrumentInfo, 0, 2);



/** @var InstrumentInfoResponse $instrumentItem */
foreach ($instrumentInfo as $instrumentItem) {
    echo "Name: {$instrumentItem->getName()}" . PHP_EOL;
    echo "Alias: {$instrumentItem->getAlias()}" . PHP_EOL;
    echo "Base Coin: {$instrumentItem->getBaseCoin()}" . PHP_EOL;
    echo "Quote Coin: {$instrumentItem->getQuoteCoin()}" . PHP_EOL;
    echo "Base Precision: {$instrumentItem->getBasePrecision()}" . PHP_EOL;
    echo "Quote Precision: {$instrumentItem->getQuotePrecision()}" . PHP_EOL;
    echo "Min Trade Quantity: {$instrumentItem->getMinTradeQty()}" . PHP_EOL;
    echo "Min Trade Amount: {$instrumentItem->getMaxTradeAmt()}" . PHP_EOL;
    echo "Min Price Precision: {$instrumentItem->getMinPricePrecision()}" . PHP_EOL;
    echo "Max Trade Quantity: {$instrumentItem->getMaxTradeQty()}" . PHP_EOL;
    echo "Max Trade Amt: {$instrumentItem->getMaxTradeAmt()}" . PHP_EOL;
    echo "Innovation: {$instrumentItem->getInnovation()}" . PHP_EOL;
    echo "Show Status: {$instrumentItem->getShowStatus()}" . PHP_EOL;
    echo "-----" . PHP_EOL;
}

/**
 * Result:
 * 
 * Name: BTCUSDT
 * Alias: BTCUSDT
 * Base Coin: BTC
 * Quote Coin: USDT
 * Base Precision: 1.0E-6
 * Quote Precision: 1.0E-8
 * Min Trade Quantity: 4.0E-5
 * Min Trade Amount: 1200000
 * Min Price Precision: 0.01
 * Max Trade Quantity: 500
 * Max Trade Amt: 1200000
 * Innovation: 0
 * Show Status: 1
 * -----
 * Name: ETHUSDT
 * Alias: ETHUSDT
 * Base Coin: ETH
 * Quote Coin: USDT
 * Base Precision: 1.0E-5
 * Quote Precision: 1.0E-7
 * Min Trade Quantity: 0.0005
 * Min Trade Amount: 1200000
 * Min Price Precision: 0.01
 * Max Trade Quantity: 100000000
 * Max Trade Amt: 1200000
 * Innovation: 0
 * Show Status: 1
 * -----
 * Name: EOSUSDT
 * Alias: EOSUSDT
 * Base Coin: EOS
 * Quote Coin: USDT
 * Base Precision: 0.01
 * Quote Precision: 1.0E-6
 * Min Trade Quantity: 0.01
 * Min Trade Amount: 10000
 * Min Price Precision: 0.0001
 * Max Trade Quantity: 90909.090909
 * Max Trade Amt: 10000
 * Innovation: 0
 * Show Status: 1
 * -----
 */

ПАРАМЕТРЫ ЗАПРОСА

Эндпоинт не принимает никаких дополнительных параметров в запросе

СТРУКТУРА ОТВЕТА

\Carpenstar\ByBitAPI\Spot\MarketData\InstrumentInfo\Interfaces\IInstrumentInfoResponse::class;

interface IInstrumentInfoResponse
{
    public function getName(): string; // Торговый инструмент
    public function getAlias(): string; // Синоним
    public function getBaseCoin(): string; // Базовый токен
    public function getQuoteCoin(): string; // Валюта котировки
    public function getBasePrecision(): float; // Десятичная точность (базовая валюта)
    public function getQuotePrecision(): float; // Десятичная точность (котируемая валюта)
    public function getMinTradeQty(): float; // Мин. обьем ордера (недействительно для MARKET ордеров на покупку)
    public function getMinTradeAmt(): float; // Мин. стоимость ордера (действительно только для рыночных ордеров на покупку)
    public function getMaxTradeQty(): float; // Макс. количество заказа (игнорируется при размещении заказа с типом заказа LIMIT_MAKER)
    public function getMaxTradeAmt(): int; // Макс. обьем ордера (игнорируется при размещении ордера типа LIMIT_MAKER)
    public function getMinPricePrecision(): float; // Мин. количество десятичных знаков
    public function getShowStatus(): int; // Указывает на то, что символ открыт для торговли
    public function getInnovation(): int; // Указывает на то, что цена этой валюты относительно волатильна
}
INTERFACE
\Carpenstar\ByBitAPI\Spot\MarketData\InstrumentInfo\Interfaces\IInstrumentInfoResponse\IInstrumentInfoResponse::class
DTO
\Carpenstar\ByBitAPI\Spot\MarketData\InstrumentInfo\Response\InstrumentInfoResponse::class
Метод Тип Описание
IInstrumentInfoResponse::getName() string Торговый инструмент
IInstrumentInfoResponse::getAlias() string Синоним
IInstrumentInfoResponse::getBaseCoin() string Базовый токен
IInstrumentInfoResponse::getQuoteCoin() string Валюта котировки
IInstrumentInfoResponse::getBasePrecision() float Десятичная точность (базовая валюта)
IInstrumentInfoResponse::getQuotePrecision() float Десятичная точность (котируемая валюта)
IInstrumentInfoResponse::getMinTradeQty() float Мин. обьем ордера (недействительно для MARKET ордеров на покупку)
IInstrumentInfoResponse::getMinTradeAmt() float Мин. стоимость ордера (действительно только для рыночных ордеров на покупку)
IInstrumentInfoResponse::getMaxTradeQty() float Макс. количество заказа (игнорируется при размещении заказа с типом заказа LIMIT_MAKER)
IInstrumentInfoResponse::getMaxTradeAmt() int Макс. обьем ордера (игнорируется при размещении ордера типа LIMIT_MAKER)
IInstrumentInfoResponse::getMinPricePrecision() float Мин. количество десятичных знаков
IInstrumentInfoResponse::getShowStatus() int Указывает на то, что символ открыт для торговли
IInstrumentInfoResponse::getInnovation() int Указывает на то, что цена этой валюты относительно волатильна

Market Data - Kline

Официальная страница документации

Эндпоинт возвращает результаты только последних 1000 свечей независимо от того, какой интервал указан.

Если startTime и endTime не указаны, будут отправлены только последние свечи.

// Класс эндпоинта:
\Carpenstar\ByBitAPI\Spot\MarketData\Kline\Kline::class

ПРИМЕР

use Carpenstar\ByBitAPI\Spot\MarketData\Kline\Response\KlineResponse;

$bybit = new BybitAPI('https://api-testnet.bybit.com',"apiKey", "secret");

$options = (new KlineRequest())
    ->setSymbol("ATOMUSDT")
    ->setInterval(EnumIntervals::MINUTE1)
    ->setLimit(3);

/** @var KlineResponse $kline */
$kline = $bybit->rest(Kline::class, $options)->getBody()->fetch();



echo "Time: {$kline->getTime()->format('Y-m-d H:i:s')}" . PHP_EOL;
echo "Symbol: {$kline->getSymbol()}" . PHP_EOL;
echo "Alias: {$kline->getAlias()}" . PHP_EOL;
echo "Close Price: {$kline->getClosePrice()}" . PHP_EOL;
echo "High Price: {$kline->getHighPrice()}" . PHP_EOL;
echo "Low Price: {$kline->getLowPrice()}" . PHP_EOL;
echo "Open Price: {$kline->getOpenPrice()}" . PHP_EOL;
echo "Trading Volume: {$kline->getTradingVolume()}" . PHP_EOL;

/**
 * Result:
 *
 * Time: 2023-05-09 18:30:00
 * Symbol: ATOMUSDT
 * Alias: ATOMUSDT
 * Close Price: 702.8
 * High Price: 702.85
 * Low Price: 702.65
 * Open Price: 702.65
 * Trading Volume: 0.03
 */

ПАРАМЕТРЫ ЗАПРОСА

namespace Carpenstar\ByBitAPI\Spot\MarketData\Kline\Interfaces;

interface IKlineRequestInterface
{
    public function setSymbol(string $symbol): self; // Торговый инструмент
    public function setLimit(int $limit): self; // Лимит на количество получаемых тиков. [1, 1000]. По умолчанию: 1000
    public function setInterval(string $interval): self; // Размер тика. Доступные значения: 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 12, 1d, 1w, 1M
    public function setStartTime(int $timestamp): self; // Таймштамп ОТ которого получаем срез данных
    public function setEndTime(int $timestamp): self; // Таймштамп ДО которого получаем срез данных
    
    // .. Getters
}
INTERFACE
\Carpenstar\ByBitAPI\Spot\MarketData\Kline\Interfaces\IKlineRequestInterface::class
DTO
\Carpenstar\ByBitAPI\Spot\MarketData\Kline\Response\KlineResponse::class
Метод Обязательно Описание
IKlineRequestInterface::setSymbol(string $symbol): self ДА Торговый инструмент
IKlineRequestInterface::setInterval(string $interval): self ДА Размер тика. Доступные значения: 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 12, 1d, 1w, 1M
IKlineRequestInterface::setLimit(int $limit): self НЕТ Лимит на количество получаемых тиков. [1, 1000]. По умолчанию: 1000
IKlineRequestInterface::setStartTime(int $startTime): self НЕТ Таймштамп ОТ которого получаем срез данных
IKlineRequestInterface::setEndTime(int $endTime): self НЕТ Таймштамп ДО которого получаем срез данных

CТРУКТУРА ОТВЕТА

namespace Carpenstar\ByBitAPI\Spot\MarketData\Kline\Interfaces;

interface IKlineResponseInterface
{
    public function getTime(): \DateTime; // Время начала тика
    public function getSymbol(): string; // Торговый инструмент
    public function getAlias(): string; // Алиас
    public function getClosePrice(): float; // Цена закрытия тика
    public function getHighPrice(): float; // Максимальная цена тика
    public function getLowPrice(): float; // Минимальная цена тика
    public function getOpenPrice(): float; // Цена открытия тика
    public function getTradingVolume(): float; // Торговый обьем
}
INTERFACE
\Carpenstar\ByBitAPI\Spot\MarketData\Kline\Interfaces\IKlineResponseInterface
DTO
\Carpenstar\ByBitAPI\Spot\MarketData\Kline\Response\KlineResponse
Метод Тип Описание
IKlineResponseInterface::getTime() DateTime Время начала тика
IKlineResponseInterface::getSymbol() string Торговый инструмент
IKlineResponseInterface::getAlias() string Алиас
IKlineResponseInterface::getClosePrice() float Цена закрытия тика
IKlineResponseInterface::getHighPrice() float Максимальная цена тика
IKlineResponseInterface::getLowPrice() float Минимальная цена тика
IKlineResponseInterface::getOpenPrice() float Цена открытия тика
IKlineResponseInterface::getTradingVolume() float Торговый обьем

Market Data - Last Traded Price

Официальная страница документации

Если символ не указан, будет возвращена цена всех символов.

// Класс эндпоинта:
\Carpenstar\ByBitAPI\Spot\MarketData\LastTradedPrice\LastTradedPrice::class

ПРИМЕР

use Carpenstar\ByBitAPI\BybitAPI;
use Carpenstar\ByBitAPI\Spot\MarketData\LastTradedPrice\Request\LastTradedPriceRequest;
use Carpenstar\ByBitAPI\Spot\MarketData\LastTradedPrice\Response\LastTradedPriceResponse;
use Carpenstar\ByBitAPI\Spot\MarketData\LastTradedPrice\LastTradedPrice;

$bybit = new BybitAPI('https://api-testnet.bybit.com',"apiKey", "secret");

$options = (new LastTradedPriceRequest())
    ->setSymbol("ATOMUSDT");

/** @var LastTradedPriceResponse $lastTradePrice */
$lastTradePrice = $bybit->rest(LastTradedPrice::class, $options)->getBody()->fetch();



echo "Symbol: {$lastTradePrice->getSymbol()}" . PHP_EOL;
echo "Price: {$lastTradePrice->getPrice()}" . PHP_EOL;

/**
 * Result:
 *
 * Symbol: ATOMUSDT
 * Price: 702.85
 */

ПАРАМЕТРЫ ЗАПРОСА

namespace Carpenstar\ByBitAPI\Spot\MarketData\LastTradedPrice\Interfaces;

interface ILastTradedPriceRequestInterface
{
    public function setSymbol(string $symbol): self;
    
    // .. Getters
}
INTERFACE
\Carpenstar\ByBitAPI\Spot\MarketData\LastTradedPrice\Interfaces\ILastTradedPriceRequestInterface::class
DTO
\Carpenstar\ByBitAPI\Spot\MarketData\LastTradedPrice\Request\LastTradedPriceRequest::class
Метод Обязательно Описание
ILastTradedPriceRequestInterface::setSymbol(string $symbol): self НЕТ Торговый инструмент

CТРУКТУРА ОТВЕТА

\Carpenstar\ByBitAPI\Spot\MarketData\LastTradedPrice\Interfaces\ILastTradedPriceResponseInterface::class

interface ILastTradedPriceResponseInterface
{
    public function getSymbol(): string; // Торговый инструмент
    public function getPrice(): float; // Цена последней сделки
}
INTERFACE
\Carpenstar\ByBitAPI\Spot\MarketData\LastTradedPrice\Interfaces\ILastTradedPriceResponseInterface::class
DTO
\Carpenstar\ByBitAPI\Spot\MarketData\LastTradedPrice\Response\LastTradedPriceResponse::class
Метод Тип Описание
ILastTradedPriceResponseInterface::getSymbol() string Торговый инструмент
ILastTradedPriceResponseInterface::getPrice() float Цена последней сделки

Market Data - Merged Order Book

Официальная страница документации

// Класс эндпоинта:
\Carpenstar\ByBitAPI\Spot\MarketData\MergedOrderBook\MergedOrderBook::class

ПРИМЕР

use Carpenstar\ByBitAPI\BybitAPI;
use Carpenstar\ByBitAPI\Spot\MarketData\MergedOrderBook\Request\MergedOrderBookRequest;
use Carpenstar\ByBitAPI\Spot\MarketData\MergedOrderBook\Response\MergedOrderBookResponse;
use Carpenstar\ByBitAPI\Spot\MarketData\MergedOrderBook\MergedOrderBook;
use Carpenstar\ByBitAPI\Spot\MarketData\MergedOrderBook\Response\MergedOrderBookPriceResponse;

$bybit = new BybitAPI('https://api-testnet.bybit.com',"apiKey", "secret");

$options = (new MergedOrderBookRequest())
    ->setSymbol("BTCUSDT")
    ->setScale(1)
    ->setLimit(5);

/** @var MergedOrderBookResponse $mergedOrderBook */
$mergedOrderBook = $bybit->rest(MergedOrderBook::class, $options)->getBody()->fetch();



echo "Time: {$mergedOrderBook->getTime()->format('Y-m-d H:i:s')}" . PHP_EOL;
echo '---' . PHP_EOL;
/** @var MergedOrderBookPriceResponse $bid */
foreach ($mergedOrderBook->getBids()->all() as $bid) {
    echo " - Bid Price: {$bid->getPrice()} Bid Quantity: {$bid->getQuantity()}" . PHP_EOL;
}
echo '---' . PHP_EOL;
/** @var MergedOrderBookPriceResponse $ask */
foreach ($mergedOrderBook->getAsks()->all() as $ask) {
    echo " - Ask Price: {$ask->getPrice()} Ask Quantity: {$ask->getQuantity()}" . PHP_EOL;
}
echo '---' . PHP_EOL;


/**
 * Result:
 *
 * Time: 2023-05-11 21:10:57
 * ---
 * - Bid Price: 27028.4 Bid Quantity: 0.052636
 * - Bid Price: 27028.3 Bid Quantity: 0.193124
 * - Bid Price: 27014.8 Bid Quantity: 0.020057
 * - Bid Price: 27014.7 Bid Quantity: 0.003761
 * - Bid Price: 26938.2 Bid Quantity: 0.001864
 * ---
 * - Ask Price: 27028.5 Ask Quantity: 0.132579
 * - Ask Price: 27028.6 Ask Quantity: 0.077184
 * - Ask Price: 27033.1 Ask Quantity: 0.152256
 * - Ask Price: 27033.2 Ask Quantity: 0.016766
 * - Ask Price: 27033.4 Ask Quantity: 0.112448
 * ---
 */

ПАРАМЕТРЫ ЗАПРОСА

namespace Carpenstar\ByBitAPI\Spot\MarketData\MergedOrderBook\Interfaces;

interface IMergedOrderBookRequestInterface
{
    public function setSymbol(string $symbol): self; // Торговый инструмент
    public function setScale(int $scale): self; // Точность объединенной книги заказов: 1 означает 1 цифру.
    public function setLimit(int $limit): self; // Ограничение размера данных. [1, 200]. По умолчанию: 100 (50 ask + 50 bid)
}
INTERFACE
\Carpenstar\ByBitAPI\Spot\MarketData\Kline\Interfaces\IMergedOrderBookRequestInterface::class
DTO
\Carpenstar\ByBitAPI\Spot\MarketData\MergedOrderBook\Request\MergedOrderBookRequest::class
Метод Обязательно Описание
IKlineRequestInterface::setSymbol(string $symbol) ДА Торговый инструмент
IKlineRequestInterface::setScale(int $scale) НЕТ Точность объединенной книги заказов: 1 означает 1 цифру.
IKlineRequestInterface::setLimit(int $limit) НЕТ Ограничение размера данных. [1, 200]. По умолчанию: 100 (50 ask + 50 bid)

CТРУКТУРА ОТВЕТА

namespace Carpenstar\ByBitAPI\Spot\MarketData\MergedOrderBook\Interfaces;

interface IMergedOrderBookResponseInterface
{
    public function getTime(): \DateTime; //
    public function getAsks(): EntityCollection; //
    public function getBids(): EntityCollection; //

}
INTERFACE
\Carpenstar\ByBitAPI\Spot\MarketData\LastTradedPrice\Interfaces\ILastTradedPriceResponseInterface::class
DTO
\Carpenstar\ByBitAPI\Spot\MarketData\MergedOrderBook\Response\MergedOrderBookResponse::class
Метод Тип Описание
ILastTradedPriceResponseInterface::getTime() DateTime Время исполнения запроса
ILastTradedPriceResponseInterface::getAsks() MergedOrderBookPriceItemResponse[] -
ILastTradedPriceResponseInterface::getBids() MergedOrderBookPriceItemResponse[] -
namespace Carpenstar\ByBitAPI\Spot\MarketData\MergedOrderBook\Interfaces;

interface IMergedOrderBookPriceResponseInterface
{
    public function getPrice(): float;
    public function getQuantity(): float;
}
INTERFACE
\Carpenstar\ByBitAPI\Spot\MarketData\MergedOrderBook\Interfaces\IMergedOrderBookPriceResponseInterface::class
DTO
\Carpenstar\ByBitAPI\Spot\MarketData\MergedOrderBook\Response\MergedOrderBookPriceItemResponse::class
Метод Тип Описание
IMergedOrderBookPriceResponseInterface::getPrice() float Цена
IMergedOrderBookPriceResponseInterface::getQuantity() float Количество токенов по этой цене

Market Data - Public Trading Records

Официальная страница документации

ПРИМЕР

use Carpenstar\ByBitAPI\BybitAPI;
use Carpenstar\ByBitAPI\Spot\MarketData\PublicTradingRecords\Request\PublicTradingRecordsRequest;
use Carpenstar\ByBitAPI\Spot\MarketData\PublicTradingRecords\PublicTradingRecords;
use Carpenstar\ByBitAPI\Spot\MarketData\PublicTradingRecords\Response\PublicTradingRecordsResponse;

$bybit = new BybitAPI('https://api-testnet.bybit.com',"apiKey", "secret");

$options = (new PublicTradingRecordsRequest())
    ->setSymbol("BTCUSDT")
    ->setLimit(5);

/** @var PublicTradingRecordsResponse[] $publicTradingRecordsList */
$publicTradingRecordsList = $bybit->rest(PublicTradingRecords::class, $options)->getBody()->all();



foreach ($publicTradingRecordsList as $publicTradingRecord) {
    echo "Time: {$publicTradingRecord->getTime()->format('Y-m-d H:i:i')}" . PHP_EOL;
    echo "Price: {$publicTradingRecord->getPrice()}" . PHP_EOL;
    echo "Quantity: {$publicTradingRecord->getQuantity()}" . PHP_EOL;
    echo "Is Buyer Maker: {$publicTradingRecord->getIsBuyerMaker()}" . PHP_EOL;
    echo "Type: {$publicTradingRecord->getType()}" . PHP_EOL;
    echo "-----" . PHP_EOL;
}

/**
 * Result:
 *
 * Time: 2023-05-12 09:45:45
 * Price: 26327.59
 * Quantity: 0.00038
 * Is Buyer Maker: 1
 * Type: 0
 * -----
 * Time: 2023-05-12 09:45:45
 * Price: 26327.59
 * Quantity: 0.000342
 * Is Buyer Maker: 1
 * Type: 0
 * -----
 * Time: 2023-05-12 09:45:45
 * Price: 26327.59
 * Quantity: 0.00038
 * Is Buyer Maker: 1
 * Type: 0
 * -----
 * Time: 2023-05-12 09:45:45
 * Price: 26327.59
 * Quantity: 0.00019
 * Is Buyer Maker: 1
 * Type: 0
 * -----
 * Time: 2023-05-12 09:45:45
 * Price: 26327.59
 * Quantity: 0.00038
 * Is Buyer Maker: 1
 * Type: 0
 * -----
 */

ПАРАМЕТРЫ ЗАПРОСА

namespace Carpenstar\ByBitAPI\Spot\MarketData\PublicTradingRecords\Interfaces;

interface IPublicTradingRecordsRequestInterface
{
    public function setSymbol(string $symbol): self; // Торговый инструмент
    public function setLimit(int $limit): self; // Лимит возвращаемых записей на запрос
    
    // .. Getters
}
INTERFACE
\Carpenstar\ByBitAPI\Spot\MarketData\PublicTradingRecords\Interfaces\IPublicTradingRecordsRequestInterface::class
DTO
\Carpenstar\ByBitAPI\Spot\MarketData\PublicTradingRecords\Request\PublicTradingRecordsRequest::class
Метод Обязательно Описание
IPublicTradingRecordsRequestInterface::setSymbol(string $symbol) ДА Торговый инструмент
IPublicTradingRecordsRequestInterface::setLimit(int $limit) НЕТ Лимит возвращаемых записей на запрос

CТРУКТУРА ОТВЕТА

namespace Carpenstar\ByBitAPI\Spot\MarketData\PublicTradingRecords\Interfaces;

interface IPublicTradingRecordsResponseInterface
{
    public function getPrice(): float; // Цена сделки
    public function getQuantity(): float; // Обьем сделки
    public function getTime(): \DateTime; // Время сделки
    public function getIsBuyerMaker(): bool; // 0:Продажа , 1:Покупка
    public function getType(): int; // 0:обычная сделка, 1:внебиржевая сделка (OTC)
}
INTERFACE
\Carpenstar\ByBitAPI\Spot\MarketData\PublicTradingRecords\Interfaces\IPublicTradingRecordsResponseInterface::class
DTO
\Carpenstar\ByBitAPI\Spot\MarketData\PublicTradingRecords\Response\PublicTradingRecordsResponse::class
Метод Тип Описание
IPublicTradingRecordsResponseInterface::getPrice() float Цена сделки
IPublicTradingRecordsResponseInterface::getQuantity() float Обьем сделки
IPublicTradingRecordsResponseInterface::getTime() DateTime Время сделки
IPublicTradingRecordsResponseInterface::getIsBuyerMaker() bool 0:Продажа , 1:Покупка
IPublicTradingRecordsResponseInterface::getType() int 0:обычная сделка, 1:внебиржевая сделка (OTC)

Market Data - Tickers

Официальная страница документации

// Endpoint classname
\Carpenstar\ByBitAPI\Spot\MarketData\Tickers\Tickers::class

ПРИМЕР

use Carpenstar\ByBitAPI\BybitAPI;
use Carpenstar\ByBitAPI\Spot\MarketData\Tickers\Request\TickersRequest;
use Carpenstar\ByBitAPI\Spot\MarketData\Tickers\Response\TickersResponse;
use Carpenstar\ByBitAPI\Spot\MarketData\Tickers\Tickers;

$bybit = new BybitAPI('https://api-testnet.bybit.com',"apiKey", "secret");

$options = (new TickersRequest())
    ->setSymbol("ATOMUSDT");

/** @var TickersResponse $tickersData */
$tickersData = $bybit->rest(Tickers::class, $options)->getBody()->fetch();



echo "Time: {$tickersData->getTime()->format('Y-m-d H:i:s')}" . PHP_EOL;
echo "Symbol: {$tickersData->getSymbol()}" . PHP_EOL;
echo "Best Ask Price: {$tickersData->getBestAskPrice()}" . PHP_EOL;
echo "Last Traded Price: {$tickersData->getLastTradedPrice()}" . PHP_EOL;
echo "High Price: {$tickersData->getHighPrice()}" . PHP_EOL;
echo "Low Price: {$tickersData->getLowPrice()}" . PHP_EOL;
echo "Open Price: {$tickersData->getOpenPrice()}" . PHP_EOL;
echo "Best Bid Price: {$tickersData->getBestAskPrice()}" . PHP_EOL;
echo "Trading Volume: {$tickersData->getTradingVolume()}" . PHP_EOL;
echo "Trading Quote Volume: {$tickersData->getTradingQuoteVolume()}" . PHP_EOL;

/**
 * Result:
 *
 * Time: 2023-05-12 10:00:24
 * Symbol: ATOMUSDT
 * Best Ask Price: 702.85
 * Last Traded Price: 702.85
 * High Price: 702.85
 * Low Price: 702.4
 * Open Price: 702.85
 * Best Bid Price: 702.85
 * Trading Volume: 25.74
 * Trading Quote Volume: 18091.003
 */

ПАРАМЕТРЫ ЗАПРОСА

namespace Carpenstar\ByBitAPI\Spot\MarketData\Tickers\Interfaces;

interface ITickerRequestInterface
{
    public function setSymbol(string $symbol): self; // Торговый инструмент
    
    // .. Getters
}
INTERFACE
\Carpenstar\ByBitAPI\Spot\MarketData\Tickers\Interfaces\ITickerRequestInterface::class
DTO
\Carpenstar\ByBitAPI\Spot\MarketData\Tickers\Request\TickersRequest::class
Метод Обязательно Описание
ITickerRequestInterface::setSymbol(string $symbol) ДА Торговый инструмент

CТРУКТУРА ОТВЕТА

namespace Carpenstar\ByBitAPI\Spot\MarketData\Tickers\Interfaces;

interface ITickersResponseInterface
{
    public function getTime(): \DateTime; // Время исполнения запроса
    public function getSymbol(): string; // Торговый инструмент
    public function getBestAskPrice(): float; // Лучшая цена продажи за 24 часа
    public function getLastTradedPrice(): float; // Цена последней сделки
    public function getHighPrice(): float; // Максимальная цена за 24 часа
    public function getLowPrice(): float; // Наименьшая цена за 24 часа
    public function getOpenPrice(): float; // Цена открытия за 24 часа
    public function getBestBidPrice(): float; // Лучшая цена покупки за 24 часа
    public function getTradingVolume(): float; // Торговый обьем за 24 часа
    public function getTradingQuoteVolume(): float; // Проторгованный обьем символа за 24 часа
}
INTERFACE
\Carpenstar\ByBitAPI\Spot\MarketData\Tickers\Interfaces\ITickersResponseInterface::class
DTO
\Carpenstar\ByBitAPI\Spot\MarketData\Tickers\Response\TickersResponse::class
Метод Тип Описание
ITickersResponseInterface::getTime() DateTime Время исполнения запроса
ITickersResponseInterface::getSymbol() string Торговый инструмент
ITickersResponseInterface::getBestAskPrice() float Лучшая цена продажи за 24 часа
ITickersResponseInterface::getLastTradedPrice() float Цена последней сделки
ITickersResponseInterface::getHighPrice() float Максимальная цена за 24 часа
ITickersResponseInterface::getLowPrice() float Наименьшая цена за 24 часа
ITickersResponseInterface::getOpenPrice() float Цена открытия за 24 часа
ITickersResponseInterface::getBestBidPrice() float Лучшая цена покупки за 24 часа
ITickersResponseInterface::getTradingVolume() float Торговый обьем за 24 часа
ITickersResponseInterface::getTradingQuoteVolume() float Проторгованный обьем символа за 24 часа

Market Data - Order Book

Официальная страница документации

// Endpoint classname 
\Carpenstar\ByBitAPI\Spot\MarketData\OrderBook\OrderBook::class

ПРИМЕР

use Carpenstar\ByBitAPI\BybitAPI;
use Carpenstar\ByBitAPI\Spot\MarketData\OrderBook\OrderBook;
use Carpenstar\ByBitAPI\Spot\MarketData\OrderBook\Response\OrderBookResponse;
use Carpenstar\ByBitAPI\Spot\MarketData\OrderBook\Request\OrderBookRequest;
use Carpenstar\ByBitAPI\Spot\MarketData\OrderBook\Response\OrderBookPriceResponse;

$bybit = new BybitAPI('https://api-testnet.bybit.com',"apiKey", "secret");

$options = (new OrderBookRequest())
    ->setSymbol("ATOMUSDT")
    ->setLimit(5);

/** @var OrderBookResponse $orderBookData */
$orderBookData = $bybit->rest(OrderBook::class, $options)->getBody()->fetch();



echo "Time: {$orderBookData->getTime()->format('Y-m-d H:i:s')}" . PHP_EOL;
echo "Bids:" . PHP_EOL;
/** @var OrderBookPriceResponse $bid */
foreach ($orderBookData->getBids()->all() as $bid) {
    echo " - Bid Price: {$bid->getPrice()} Bid Quantity: {$bid->getQuantity()}" . PHP_EOL;
}
echo "Asks:" . PHP_EOL;
/** @var OrderBookPriceResponse $ask */
foreach ($orderBookData->getAsks()->all() as $ask) {
    echo " - Bid Price: {$ask->getPrice()} Bid Quantity: {$ask->getQuantity()}" . PHP_EOL;
}

/**
 * Result:
 * 
 * Time: 2023-05-12 10:15:41
 * Bids:
 * - Bid Price: 171.45 Bid Quantity: 19.29
 * - Bid Price: 104.15 Bid Quantity: 9.96
 * - Bid Price: 90.25 Bid Quantity: 99.72
 * - Bid Price: 81.05 Bid Quantity: 0.75
 * - Bid Price: 16.7 Bid Quantity: 5.98
 * Asks:
 * - Bid Price: 702.85 Bid Quantity: 1639.55
 * - Bid Price: 702.9 Bid Quantity: 0.01
 * - Bid Price: 703 Bid Quantity: 0.01
 * - Bid Price: 703.25 Bid Quantity: 0.01
 * - Bid Price: 704.8 Bid Quantity: 179.16
 */

ПАРАМЕТРЫ ЗАПРОСА

namespace Carpenstar\ByBitAPI\Spot\MarketData\OrderBook\Interfaces;

interface IOrderBookRequestInterface
{
    public function setSymbol(string $symbol): self; // Торговый инструмент
    public function setLimit(int $limit): self; //
    
    // .. Getters
}
INTERFACE
\Carpenstar\ByBitAPI\Spot\MarketData\OrderBook\Interfaces\IOrderBookRequestInterface::class
DTO
\Carpenstar\ByBitAPI\Spot\MarketData\OrderBook\Request\OrderBookRequest::class
Метод Обязательно Описание
IOrderBookRequestInterface::setSymbol(string $symbol) ДА Торговый инструмент
IOrderBookRequestInterface::setLimit(int $limit) НЕТ Ограничение размера данных. [1, 200]. По умолчанию: 100 (50 ask + 50 bid)

CТРУКТУРА ОТВЕТА

namespace Carpenstar\ByBitAPI\Spot\MarketData\OrderBook\Interfaces;

interface IOrderBookResponseInterface
{
    public function getTime(): \DateTime; // Время исполнения запроса
    public function getAsks(): EntityCollection;
    public function getBids(): EntityCollection;
}
INTERFACE
\Carpenstar\ByBitAPI\Spot\MarketData\OrderBook\Interfaces\IOrderBookResponseInterface::class
DTO
\Carpenstar\ByBitAPI\Spot\MarketData\OrderBook\Response\OrderBookResponse::class
Метод Тип Описание
IOrderBookResponseInterface::getTime() DateTime -
IOrderBookResponseInterface::getAsks() IOrderBookPriceResponseInterface[] -
IOrderBookResponseInterface::getBids() IOrderBookPriceResponseInterface[] -
namespace Carpenstar\ByBitAPI\Spot\MarketData\OrderBook\Interfaces;

interface IOrderBookPriceResponseInterface
{
    public function getPrice(): float;
    public function getQuantity(): float;
}
INTERFACE
\Carpenstar\ByBitAPI\Spot\MarketData\OrderBook\Interfaces\IOrderBookPriceResponseInterface::class
DTO
\Carpenstar\ByBitAPI\Spot\MarketData\OrderBook\Response\OrderBookPriceItemResponse::class
Метод Тип Описание
IOrderBookPriceResponseInterface::getPrice() float Цена
IOrderBookPriceResponseInterface::getQuantity() float Количество токенов по этой цене

Trade - Batch Cancel Order

Официальная страница документации


Trade - Batch Cancel Order By ID

Официальная страница документации

use Carpenstar\ByBitAPI\BybitAPI;
use Carpenstar\ByBitAPI\Spot\Trade\BatchCancelOrderById\Request\BatchCancelOrderByIdRequest;
use Carpenstar\ByBitAPI\Spot\Trade\BatchCancelOrderById\BatchCancelOrderById;
use Carpenstar\ByBitAPI\Spot\Trade\BatchCancelOrderById\Response\BatchCancelOrderByIdResponse;

$api = new BybitAPI('https://api-testnet.bybit.com',"apiKey", "secret");

$params = (new BatchCancelOrderByIdRequest())
    ->setOrderIds("1474203506643697408,1474203500838780672,1474186221723975424");

$cancelInfo = $api->rest(BatchCancelOrderById::class, $params);

echo "Result Message: {$cancelInfo->getReturnMessage()} \n";

if ($cancelInfo->getBody()->count() > 0) {
    /** @var BatchCancelOrderByIdResponse $failedOrder */
    foreach ($cancelInfo->getBody()->all() as $failedOrder) {
        echo "Failed Order: {$failedOrder->getOrderId()}. Code: {$failedOrder->getCode()} \n";
    }
}

/**
 * Result Message: OK
 */

Trade - Cancel Order

https://bybit-exchange.github.io/docs/spot/trade/cancel

Example:

use Carpenstar\ByBitAPI\BybitAPI;
use Carpenstar\ByBitAPI\Spot\Trade\CancelOrder\CancelOrder;
use Carpenstar\ByBitAPI\Spot\Trade\CancelOrder\Response\CancelOrderResponse;
use Carpenstar\ByBitAPI\Spot\Trade\CancelOrder\Request\CancelOrderRequest;


$bybit = new BybitAPI('https://api-testnet.bybit.com',"apiKey", "secret");

/** @var CancelOrderResponse $canceledOrderData */
$canceledOrderData = $bybit->rest(CancelOrder::class, (new CancelOrderRequest())
        ->setOrderLinkId('645fa48a26ccb')
    )->getBody()
    ->fetch();



echo "Order ID: {$canceledOrderData->getOrderId()}" . PHP_EOL;
echo "Order Link ID: {$canceledOrderData->getOrderLinkId()}" . PHP_EOL;
echo "Status: {$canceledOrderData->getStatus()}" . PHP_EOL;
echo "Symbol: {$canceledOrderData->getSymbol()}" . PHP_EOL;
echo "Account ID: {$canceledOrderData->getAccountId()}" . PHP_EOL;
echo "Order Price: {$canceledOrderData->getOrderPrice()}" . PHP_EOL;
echo "Create Time: {$canceledOrderData->getCreateTime()->format('Y-m-d H:i:s')}" . PHP_EOL;
echo "Order Quantity: {$canceledOrderData->getOrderQty()}" . PHP_EOL;
echo "Execution Quantity: {$canceledOrderData->getExecQty()}" . PHP_EOL;
echo "Time In Force: {$canceledOrderData->getTimeInForce()}" . PHP_EOL;
echo "Order Type: {$canceledOrderData->getOrderType()}" . PHP_EOL;
echo "Side: {$canceledOrderData->getSide()}" . PHP_EOL;

/**
 * Result:
 *
 * Order ID: 1419802462493152768
 * Order Link ID: 645fa48a26ccb
 * Status: CANCELED
 * Symbol: BTCUSDT
 * Account ID: 1111837
 * Order Price: 1000
 * Create Time: 2023-05-13 14:54:02
 * Order Quantity: 0.001
 * Execution Quantity: 0
 * Time In Force: GTC
 * Order Type: LIMIT
 * Side: BUY
 */

Trade - Get Order

https://bybit-exchange.github.io/docs/spot/trade/get-order

Example:

use Carpenstar\ByBitAPI\BybitAPI;
use Carpenstar\ByBitAPI\Spot\Trade\GetOrder\Response\GetOrderResponse;
use Carpenstar\ByBitAPI\Spot\Trade\GetOrder\GetOrder;
use Carpenstar\ByBitAPI\Spot\Trade\GetOrder\Request\GetOrderRequest;


$bybit = new BybitAPI('https://api-testnet.bybit.com',"apiKey", "secret");

/** @var GetOrderResponse $orderData */
$orderData = $bybit->rest(GetOrder::class, (new GetOrderRequest())
    ->setOrderLinkId('645fa48a26ccb'))->getBody()->fetch();



echo "Account ID: {$orderData->getAccountId()}" . PHP_EOL;
echo "Symbol: {$orderData->getSymbol()}" . PHP_EOL;
echo "Order Link ID: {$orderData->getOrderLinkId()}" . PHP_EOL;
echo "Order ID: {$orderData->getOrderId()}" . PHP_EOL;
echo "Order Price: {$orderData->getOrderPrice()}" . PHP_EOL;
echo "Order Quantity: {$orderData->getOrderQty()}" . PHP_EOL;
echo "Execution Quantity: {$orderData->getExecQty()}" . PHP_EOL;
echo "Cummulative Quote Quantity: {$orderData->getCummulativeQuoteQty()}" . PHP_EOL;
echo "Avg Price: {$orderData->getAvgPrice()}" . PHP_EOL;
echo "Status: {$orderData->getStatus()}" . PHP_EOL;
echo "Time In Force: {$orderData->getTimeInForce()}" . PHP_EOL;
echo "Order Type: {$orderData->getOrderType()}" . PHP_EOL;
echo "Side: {$orderData->getSide()}" . PHP_EOL;
echo "Stop Price: {$orderData->getStopPrice()}" . PHP_EOL;
echo "Create Time: {$orderData->getCreateTime()->format('Y-m-d H:i:s')}" . PHP_EOL;
echo "Update Time: {$orderData->getUpdateTime()->format('Y-m-d H:i:s')}" . PHP_EOL;
echo "Is Working: {$orderData->getIsWorking()}" . PHP_EOL;
echo "Is Locked {$orderData->getLocked()}" . PHP_EOL;

/**
 * Result:
 *
 * Account ID: 1111837
 * Symbol: BTCUSDT
 * Order Link ID: 645fa48a26ccb
 * Order ID: 1419802462493152768
 * Order Price: 1000
 * Order Quantity: 0.001
 * Execution Quantity: 0
 * Cummulative Quote Quantity: 0
 * Avg Price: 0
 * Status: CANCELED
 * Time In Force: GTC
 * Order Type: LIMIT
 * Side: BUY
 * Stop Price: 0
 * Create Time: 2023-05-13 14:54:02
 * Update Time: 2023-05-13 15:06:29
 * Is Working: 1
 * Is Locked 0
 */

Trade - Open Orders

Официальная страница документации

use Carpenstar\ByBitAPI\BybitAPI;
use Carpenstar\ByBitAPI\Spot\Trade\OpenOrders\OpenOrders;
use Carpenstar\ByBitAPI\Spot\Trade\OpenOrders\Request\OpenOrdersRequest;
use Carpenstar\ByBitAPI\Spot\Trade\OpenOrders\Response\OpenOrdersResponse;

$api = new BybitAPI('https://api-testnet.bybit.com',"apiKey", "apiSecret");

$params = (new OpenOrdersRequest())
    ->setOrderId(1474203519788618496)
    ->setSymbol("BTCUSDT")
    ->setLimit(1);

/** @var OpenOrdersResponse[] $openOrders */
$openOrders = $api->rest(OpenOrders::class, $params)->getBody()->all();

foreach($openOrders as $order) {

    echo "Result: \n";
    echo "Account ID: {$order->getAccountId()} \n";
    echo "Symbol: {$order->getSymbol()} \n";
    echo "Order Link ID: {$order->getOrderLinkId()} \n";
    echo "Order ID: {$order->getOrderId()} \n";
    echo "Order Price: {$order->getOrderPrice()} \n";
    echo "Order Quantity: {$order->getOrderQty()} \n";
    echo "Execution Qty: {$order->getExecQty()} \n";
    echo "Cumulative Quote Quantity: {$order->getCummulativeQuoteQty()} \n";
    echo "Avg Price: {$order->getAvgPrice()} \n";
    echo "Status: {$order->getStatus()} \n";
    echo "Time In Force: {$order->getTimeInForce()} \n";
    echo "Order Type: {$order->getOrderType()} \n";
    echo "Side: {$order->getSide()} \n";
    echo "Stop Price: {$order->getStopPrice()} \n";
    echo "Create Time: {$order->getCreateTime()->format("Y-m-d H:i:s")} \n";
    echo "Update Time: {$order->getUpdateTime()->format("Y-m-d H:i:s")} \n";
    echo "Is Working: {$order->getIsWorking()} \n";
    echo "Order Category: {$order->getOrderCategory()} \n";
    echo "Trigger Price: {$order->getTriggerPrice()} \n";
}

/**
 * Result:
 * Account ID: 1111837
 * Symbol: BTCUSDT
 * Order Link ID: 64c299000dab5
 * Order ID: 1474203506643697408
 * Order Price: 1000
 * Order Quantity: 0.001
 * Execution Qty: 0
 * Cumulative Quote Quantity: 0
 * Avg Price: 0
 * Status: NEW
 * Time In Force: GTC
 * Order Type: LIMIT
 * Side: BUY
 * Stop Price: 0
 * Create Time: 2023-07-27 16:19:12
 * Update Time: 2023-07-27 16:19:12
 * Is Working: 1
 * Order Category: 0
 * Trigger Price: NULL
 */

Trade - Order History

Официальная страница документации


Trade - Place Order

https://bybit-exchange.github.io/docs/spot/trade/place-order

Example:

use Carpenstar\ByBitAPI\BybitAPI;
use Carpenstar\ByBitAPI\Spot\Trade\PlaceOrder\Request\PlaceOrderRequest;
use Carpenstar\ByBitAPI\Spot\Trade\PlaceOrder\PlaceOrder;
use Carpenstar\ByBitAPI\Spot\Trade\PlaceOrder\Response\PlaceOrderResponse;


$bybit = new BybitAPI('https://api-testnet.bybit.com',"apiKey", "secret");

/** @var  PlaceOrderResponse $placeOrderData */
$placeOrderData = $bybit->rest(PlaceOrder::class, (new PlaceOrderRequest())
        ->setSymbol('BTCUSDT')
        ->setOrderType('Limit') 
        ->setSide('Buy')
        ->setOrderLinkId(uniqid())
        ->setOrderQty(0.001)
        ->setOrderPrice(1000)
        ->setTimeInForce('GTC'))
    ->getBody()
    ->fetch();



echo "Order ID: {$placeOrderData->getOrderId()}" . PHP_EOL;
echo "Order Link ID: {$placeOrderData->getOrderLinkId()}" . PHP_EOL;
echo "Symbol: {$placeOrderData->getSymbol()}" . PHP_EOL;
echo "Create Time: {$placeOrderData->getCreateTime()->format('Y-m-d H:i:s')}" . PHP_EOL;
echo "Order Price: {$placeOrderData->getOrderPrice()}" . PHP_EOL;
echo "Order Quantity: {$placeOrderData->getOrderQty()}" . PHP_EOL;
echo "Order Type: {$placeOrderData->getOrderType()}" . PHP_EOL;
echo "Side: {$placeOrderData->getSide()}" . PHP_EOL;
echo "Status: {$placeOrderData->getStatus()}" . PHP_EOL;
echo "Time In Force: {$placeOrderData->getTimeInForce()}" . PHP_EOL;
echo "Account ID: {$placeOrderData->getAccountId()}" . PHP_EOL;
echo "Order Category: {$placeOrderData->getOrderCategory()}" . PHP_EOL;
echo "Trigger Price: {$placeOrderData->getTriggerPrice()}" . PHP_EOL;


/**
 * Result:
 *
 * Order ID: 1419802462493152768
 * Order Link ID: 645fa48a26ccb
 * Symbol: BTCUSDT
 * Create Time: 2023-05-13 14:54:02
 * Order Price: 1000
 * Order Quantity: 0.001
 * Order Type: LIMIT
 * Side: BUY
 * Status: NEW
 * Time In Force: GTC
 * Account ID: 1111837
 * Order Category: 0
 * Trigger Price:
 */

Trade - Trade History

Официальная страница документации


Leverage Token - All Asset Info

Официальная страница документации


Leverage Token - Market Info

Официальная страница документации


Leverage Token - Purchase

Официальная страница документации


Leverage Token - Purchase Redeem History

Официальная страница документации


Leverage Token - Reedem

Официальная страница документации