Данный SDK в настоящее время поддерживает только REST-запросы, WebSocket пока не поддерживается, но будет добавлен позже.
Поддерживаются дополнительные параметры запроса More:
$exchanges->setOptions([
// Устанавливаем время ожидания ответа, по умолчанию 60 секунд
'timeout'=>10,
// https://github.com/guzzle/guzzle
'proxy'=>[],
// https://www.php.net/manual/en/book.curl.php
'curl'=>[]
]);
// binance
// Отправка унифицированных параметров
$exchanges->trader()->buy([
'_symbol'=>'BTCUSDT',
'_number'=>'0.01',
]);
// Также поддерживаются исходные параметры, которые эквивалентны предыдущим
$exchanges->trader()->buy([
'symbol'=>'BTCUSDT',
'type'=>'MARKET',
'quantity'=>'0.01'
]);
// okex по умолчанию использует v3 интерфейс для отправки
//$exchanges->setPlatform('spot')->setVersion('v5'); // Включаем отправку через v5 интерфейс
// Отправка унифицированных параметров
$exchanges->trader()->buy([
'_symbol'=>'BTC-USDT',
'_price'=>'10',
]);
// Также поддерживаются исходные параметры, которые эквивалентны предыдущим
$exchanges->trader()->buy([
'instrument_id'=>'btc-usdt',
'type'=>'market',
'notional'=>'10'
]);
// huobi
// Отправка унифицированных параметров
$exchanges->trader()->buy([
'_symbol'=>'btcusdt',
'_price'=>'10',
]);
// Также поддерживаются исходные параметры, которые эквивалентны предыдущим
$exchanges->trader()->buy([
'account-id'=>$account_id,
'symbol'=>'btcusdt',
'type'=>'buy-market',
'amount'=>10
]);
//binance
//Отправка унифицированных параметров
$exchanges->trader()->buy([
'_symbol'=>'BTCUSDT',
'_number'=>'0.01',
'_price'=>'2000',
]);
//Также поддерживаются исходные параметры, которые эквивалентны предыдущим
$exchanges->trader()->buy([
'symbol'=>'BTCUSDT',
'type'=>'LIMIT',
'quantity'=>'0.01',
'price'=>'2000',
'timeInForce'=>'GTC',
]);
//okex по умолчанию использует v3 интерфейс для отправки
//$exchanges->setPlatform('spot')->setVersion('v5');//Включаем отправку через v5 интерфейс
//Отправка унифицированных параметров
$exchanges->trader()->buy([
'_symbol'=>'BTC-USDT',
'_number'=>'0.001',
'_price'=>'2000',
]);
//Также поддерживаются исходные параметры, которые эквивалентны предыдущим
$exchanges->trader()->buy([
'instrument_id'=>'btc-usdt',
'price'=>'100',
'size'=>'0.001'
]);
//huobi
//Отправка унифицированных параметров
$exchanges->trader()->buy([
'_symbol'=>'btcusdt',
'_number'=>'0.001',
'_price'=>'2000',
]);
//Также поддерживаются исходные параметры, которые эквивалентны предыдущим
$exchanges->trader()->buy([
'account-id'=>$account_id,
'symbol'=>'btcusdt',
'type'=>'buy-limit',
'amount'=>'0.001',
'price'=>'2001'
]);
//binance
//Отправка унифицированных параметров
$exchanges->trader()->buy([
'_symbol'=>'BTCUSDT',
'_number'=>'0.001',
]);
//Также поддерживаются исходные параметры, которые эквивалентны предыдущим
$exchanges->trader()->buy([
'symbol'=>'BTCUSDT',
'quantity'=>'0.001',
'type'=>'MARKET'
]);
//bitmex
//Отправка унифицированных параметров
$exchanges->trader()->buy([
'_symbol'=>'XBTUSD',
'_number'=>'1',
]);
//Также поддерживаются исходные параметры, которые эквиваленты предыдущим
$exchanges->trader()->buy([
'symbol'=>'XBTUSD',
'orderQty'=>'1',
'ordType'=>'Market'
]);
//okex по умолчанию использует v3 интерфейс для отправки
//$exchanges->setPlatform('future')->setVersion('v5');//Включаем отправку через v5 интерфейс
//Отправка унифицированных параметров
$exchanges->trader()->buy([
'_symbol'=>'BTC-USD-190628',
'_number'=>'1',
'_entry'=>true,//buy=true:открываем длинную позицию buy=false:закрываем длинную позицию
]);
$exchanges->trader()->sell([
'_symbol'=>'BTC-USD-190628',
'_number'=>'1',
'_entry'=>true,//sell=true:открываем короткую позицию sell=false:закрываем короткую позицию
]);
//Также поддерживаются исходные параметры, которые эквивалентны предыдущим
$exchanges->trader()->buy([
'instrument_id'=>'BTC-USD-190628',
'size'=>1,
'type'=>1,//1:open long 2:open short 3:close long 4:close short
//'price'=>2000,
'leverage'=>10,//10x или 20x leverage
'match_price' => 1,
'order_type'=>0
]);
//huobi
$exchanges->trader()->buy([
'_symbol'=>'ETC191227',
'_number'=>'1',
'_entry'=>true,//true:открыть false:закрыть
]);
//Также поддерживаются исходные параметры, которые эквивалентны предыдущим
$exchanges->trader()->buy([
'symbol'=>'XRP',//string false "BTC","ETH"...
'contract_type'=>'quarter',//string false Contract Type ("this_week": "next_week": "quarter":)
'contract_code'=>'XRP190927',//string false BTC180914
//'price'=>'0.3',// decimal true Price
'volume'=>'1',//long true Numbers of orders (amount)
//'direction'=>'buy',// string true Transaction direction
'offset'=>'open',// string true "open", "close"
'order_price_type'=>'opponent',//"limit", "opponent"
'lever_rate'=>20//int true Leverage rate [if“Open”is multiple orders in 10 rate, there will be not multiple **Заказы по лимиту цен**
// Binance
// Отправка унифицированных параметров
$exchanges->trader()->buy([
'_symbol' => 'BTCUSDT',
'_number' => '0.001',
'_price' => '6000'
]);
// Также поддерживается использование исходных параметров, что эквивалентно предыдущему
$exchanges->trader()->buy([
'symbol' => 'BTCUSDT',
'quantity' => '0.001',
'type' => 'LIMIT',
'price' => '6500',
'timeInForce' => 'GTC',
]);
// BitMEX
// Отправка унифицированных параметров
$exchanges->trader()->buy([
'_symbol' => 'XBTUSD',
'_number' => 1,
'_price' => 100
]);
// Также поддерживается использование исходных параметров, что эквивалентно предыдущему
$exchanges->trader()->buy([
'symbol' => 'XBTUSD',
'price' => 100,
'orderQty' => 1,
'ordType' => 'Limit',
]);
// OKEX (по умолчанию используется интерфейс V3 для отправки)
//$exchanges->setPlatform('future')->setVersion('v5'); // Включение интерфейса V5 для отправки
// Отправка унифицированных параметров
$exchanges->trader()->buy([
'_symbol' => 'BTC-USD-190628',
'_number' => 1,
'_price' => 2000,
'_entry' => true, // buy = true: открытие длинной позиции, buy = false: закрытие длинной позиции
]);
// Также поддерживается использование исходных параметров, что эквивалентно предыдущему
$exchanges->trader()->buy([
'instrument_id' => 'BTC-USD-190628',
'size' => 1,
'type' => 1, // 1: открытие длинной позиции 2: открытие короткой позиции 3: закрытие длинной позиции 4: закрытие короткой позиции
'price' => 2000,
'leverage' => 10, // 10x или 20x кредитное плечо
'match_price' => 0,
'order_type' => 0,
]);
// Huobi
$exchanges->trader()->buy([
'_symbol' => 'XRP190927',
'_number' => 1,
'_price' => 0.3,
'_entry' => true, // true: открытие, false: закрытие
]);
// Также поддерживается использование исходных параметров, что эквивалентно предыдущему
$exchanges->trader()->buy([
'symbol' => 'XRP', // строка false "BTC", "ETH" ...
'contract_type' => 'quarter', // строка false Contract Type ("this_week": "next_week": "quarter":)
'contract_code' => 'XRP190927', // строка false BTC180914
'price' => 0.3, // десятичное число true Price
'volume' => 1, // длинное истинное количество заказов (сумма)
// 'direction' => 'buy', // строка true Transaction direction
'offset' => 'open', // строка true "open", "close"
'order_price_type' => 'limit', // "limit", "opponent"
'lever_rate' => 20, // int true Leverage rate [если «Open» — это несколько заказов в 10 раз, то не будет нескольких заказов в 20 раз]
]);
Запрос заказов
// Binance
$exchanges->trader()->show([
'_symbol' => 'BTCUSDT',
'_order_id' => '324314658',
// '_client_id' => '1bc3e974577a6ad9ce730006eafb5522',
]);
// Bitmex
$exchanges->trader()->show([
'_symbol' => 'XBTUSD',
'_order_id' => '7d03ac2a-b24d-f48c-95f4-2628e6411927',
// '_client_id' => '1bc3e974577a6ad9ce730006eafb5522',
]);
// OKEx (по умолчанию используется интерфейс V3 для отправки)
//$exchanges->setPlatform('spot')->setVersion('v5'); // Включение интерфейса V5 для отправки
$exchanges->trader()->show([
'_symbol' => 'BTC-USDT',
'_order_id' => '2671215997495296',
// '_client_id' => '1bc3e974577a6ad9ce730006eafb5522',
]);
$exchanges->trader()->show([
'_symbol' => 'BTC-USD-190927',
'_order_id' => '2671566274710528',
// '_client_id' => '1bc3e974577a6ad9ce730006eafb5522',
]);
$exchanges->trader()->show([
'_symbol' => 'BTC-USD-SWAP',
'_order_id' => '2671566274710528',
// '_client_id' => '1bc3e974577a6ad9ce730006eafb5522',
]);
// Huobi Spot
$exchanges->trader()->show([
'_order_id' => '29897313869',
// '_client_id' => '1bc3e974577a6ad9ce730006eafb5522',
]);
// Huobi Future
$exchanges->trader()->show([
'_symbol' => 'XRP190927',
'_order_id' => '2715696586',
// '_client_id' => '1bc3e974577a6ad9ce730006eafb5522',
]);
Баланс и информация о позициях
// Binance
// Получение текущей информации об аккаунте.
$exchanges->account()->get();
// BitMex
// Торговая операция
$exchanges->account()->get([
// Не указано, по умолчанию возвращает все позиции
// '_symbol' => 'XBTUSD'
]);
// Okex Spot
// Этот эндпойнт поддерживает получение баланса, доступной суммы/заблокированной суммы токена на спотовом аккаунте.
$exchanges->account()->get([
'_symbol' => 'BTC',
]);
// Okex Future
// Получить информацию о удерживаемых позициях контракта.
$exchanges->account()->get([
'_symbol' => 'BTC-USD-190628',
]);
// Okex Swap
$exchanges->account()->get([
'_symbol' => 'BTC-USD-SWAP',
]);
// Huobi Spot
$exchanges->account()->get([
'_symbol' => 'btcusdt',
]);
// Huobi Future
$ex exchanges->account()->get([
'_symbol' => 'BTC190927',
]);
Поддержка более низкоуровневых API-объектов запросов
Рекомендуется сначала ознакомиться с этими ресурсами перед использованием:
Ниже приведён пример вызова API для создания нового ордера на различных биржах через SDK, который уже был упакован на нижнем уровне.
Способ 1: через $exchanges->getPlatform()
// Binance
$exchanges = new Exchanges('binance', $key, $secret);
$exchanges->getPlatform('spot')->trade()->postOrder([
'symbol' => 'BTCUSDT',
'side' => 'BUY',
'type' => 'LIMIT',
'quantity' => '0.01',
'price' => '2000',
'timeInForce' => 'GTC',
]);
$exchanges->getPlatform('future')->trade()->postOrder([
'symbol' => 'BTCUSDT',
'side' => 'BUY',
'type' => 'LIMIT',
'quantity' => '0.01',
'price' => '2000',
'timeInForce' => 'GTC',
]);
// BitMEX
$exchanges = new Exchanges('bitmex', $key, $secret);
$exchanges->getPlatform()->order()->post([
'symbol' => 'XBTUSD',
'price' => '100',
'side' => 'Buy',
'orderQty' => '1',
'ordType' => 'Limit',
]);
// OKEx
$exchanges = new ExChanges('okex', $key, $secret);
$exchanges->getPlatform('spot')->order()->post([
'instrument_id' => 'btc-usdt',
'side' => 'buy',
'price' => '100',
'size' => '0.001',
//'type'=>'market',
//'notional'=>'100'
]);
$exchanges->getPlatform('future')->order()->post([
'instrument_id' => 'btc-usd-190628',
'type' => '1',
'price' => '100',
'size' => '1',
]);
$result = $exchanges->getPlatform('swap')->order()->post([
'instrument_id' => 'BTC-USD-SWAP',
'type' => '1',
'price' => '5000',
'size' => '1',
]);
// Huobi
$exchanges = new Exchanges('huobi', $key, $secret);
$exchanges->getPlatform('spot')->order()->postPlace([
'account-id' => $account_id,
'symbol' => 'btcusdt',
'type' => 'buy-limit',
'amount' => '0.001',
'price' => '100',
]);
$exchanges->getPlatform('future')->contract()->postOrder([
'symbol' => 'XRP', //string false "BTC","ETH"...
'contract_type' => 'quarter', // string false Contract Type ("this_week": "next_week": "quarter":)
'contract_code' => 'XRP190927', // string false BTC180914
'price' => '0.3', // decimal true Price
'volume' => '1', // long true Numbers of orders (amount)
'direction' => 'buy', // string true Transaction direction
'offset' => 'open', // string true "open", "close"
'order_price_type' => 'limit', //"limit", "opponent"
'lever_rate' => 20, //int true Leverage rate [if“Open”is multiple orders in 10 rate, there will be not multiple orders in 20 rate
//'client_order_id'=>'', //long false Clients fill and maintain themselves, and this time must be greater than last time
]);
Способ 2: напрямую создать экземпляр нижнего уровня обмена
Этот способ эквивалентен способу 1.
//Binance
$binance = new Binance($key, $secret);
$binance->trade()->postOrder([
'symbol' => 'BTCUSDT',
'side' => 'BUY',
'type' => 'LIMIT',
'quantity' => '0.01',
'price' => '2000',
'timeInForce' => 'GTC',
]);
$binance=new BinanceFuture($key,$secret);
$binance->trade()->postOrder([
'symbol'=>'BTCUSDT',
'side'=>'BUY',
'type'=>'LIMIT',
'quantity'=>'0.01',
'price'=>'2000',
'timeInForce'=>'GTC',
]);
//BitMEX
$bitmex = new Bitmex($key, $secret);
$bitmex->order()->post([
'symbol' => 'XBTUSD',
'price' => '100',
'side' => 'Buy',
'orderQty' => '1',
'ordType' => 'Limit',
]);
//OKEx
$okex = new OkexSpot($key, $secret, $passphrase);
$okex->order()->post([
'instrument_id' => 'btc-usdt',
'side' => 'buy',
'price' => '100',
'size' => '0.001',
//'type'=>'market',
//'notional'=>'100'
]);
$okex=new OkexFuture($key,$secret,$passphrase);
$okex->order()->post([
'instrument_id'=>'btc-usd-190628',
'type'=>'1',
'price'=>'100',
'size'=>'1',
]);
$okex=new OkexSwap($key,$secret,$passphrase);
$okex->order()->post([
'instrument_id'=>'BTC-USD-SWAP',
'type'=>'1',
'price'=>'5000',
'size'=>'1',
]);
//Huobi
$huobi = new HuobiSpot($key, $secret);
$huobi->order()->postPlace([
'account-id'=>$account_id,
'symbol'=>'btcusdt',
'type'=>'buy-limit',
'amount'=>'0.001',
'price'=>'100',
]);
$huobi=new HuobiFuture($key,$secret);
$huobi->contract()->postOrder([
'symbol'=>'XRP',//string false "BTC","ETH"...
'contract_type'=>'quarter',// string false Contract Type ("this_week": "next_week": "quarter":)
'contract_code'=>'XRP190927',// string false BTC180914
'price'=>'0.3',// decimal true Price
'volume'=>'1',// long true Numbers of orders (amount)
'direction'=>'buy',// string true Transaction direction
'offset'=>'open',// string true "open", "close"
'order_price_type'=>'limit',//"limit", "opponent"
'lever_rate'=>20,//int true Leverage rate [if“Open”is multiple orders in 10 rate, there will be not multiple orders in 20 rate
//'client_order_id'=>'',//long false Clients fill and maintain themselves, and this time must be greater than last time
]);
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )