Этот SDK объединяет API многих бирж, торгующих в настоящее время наиболее активно, позволяя разработчикам сосредоточиться только на бизнес-уровне. Он основан на Bitmex, Okex, Huobi и Binance (и так далее), и эти базовые API снова инкапсулируются. Его преимущества включают поддержку нескольких платформ одновременно, поддержку унифицированного ввода и вывода параметров, а также поддержку ввода собственных параметров и простую количественную торговлю для полного удовлетворения ваших потребностей. Даже если у вас есть особые требования, вы можете использовать метод getPlatform(), чтобы вернуть экземпляр и вызвать базовый API.
Биржи включают все перечисленные ниже биржи и настоятельно рекомендуются.
Если вы не нашли нужный вам SDK для обмена, сообщите мне, и я присоединюсь к ним.
composer require linwj/exchanges
//Public
$exchanges=new Exchanges('binance');
$exchanges=new Exchanges('bitmex');
$exchanges=new Exchanges('okex');
$exchanges=new Exchanges('huobi');
$exchanges=new Exchanges('kucoin');
...
...
//Private
$exchanges=new Exchanges('binance',$key,$secret);
$exchanges=new Exchanges('bitmex',$key,$secret);
$exchanges=new Exchanges('okex',$key,$secret,$passphrase);
$exchanges=new Exchanges('huobi',$key,$secret,$account_id);
$exchanges=new Exchanges('kucoin',$key,$secret,$passphrase);
...
...
Получить Huobi Spot $account_id
Все отправленные параметры и возвращаемые значения, если первый символ — подчёркивание _
, предназначены для пользовательских параметров.
/**
* Buy() Sell() Show() Унифицированный возврат параметров
* @return [
* ***Возврат исходных данных
* ...
* ...
* ***Возвращает пользовательские данные в формате унифицированных возвращаемых параметров с символом подчёркивания '_'
* _status=>NEW PART_FILLED FILLED CANCELING CANCELLED FAILURE
* _filled_qty=>Количество выполненных транзакций
* _price_avg=>Средняя цена транзакции
* _filed_amount=>цена транзакции
* _order_id=>системный идентификатор
* _client_id=>пользовательский идентификатор
* ]
*
* */
/**
* Системная ошибка
* Код запроса HTTP 400 403 500 503
* @return [
* _error=>[
* ***Возврат исходных данных
* ...
* ...
* ***Возвращает пользовательские данные в формате унифицированных возвращаемых параметров с символом подчёркивания '_'
* _method => POST
*
``` Метод Buy Sell имеет время ожидания по умолчанию [2 секунды](https://github.com/zhouaini528/exchanges-php/blob/master/src/Config/Exchanges.php). Поскольку биржа является транзакцией сопоставления, запрос должен ждать. Двухсекундный запрос по умолчанию можно отключить с помощью: [buy($data,false)](https://github.com/zhouaini528/exchanges-php/blob/master/src/Api/Trader.php#L41).
Запрос на покупку и продажу возвращает унифицированный параметр детализации [detail](https://github.com/zhouaini528/exchanges-php/blob/master/src/Api/Trader.php#L59).
Возврат унифицированного параметра ошибки системы для Binance, Okex, Huobi, Bitmex и Kucoin.
В настоящее время SDK поддерживает только REST-запросы и пока не поддерживает Websocket. Поддержка будет добавлена позже.
Поддержка дополнительных параметров запроса [More](https://github.com/zhouaini528/exchanges-php/blob/master/tests/okex.php#L53).
```php
$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'
]);
//Поддержка оригинальных параметров
$exaches->trader()->buy([
'account-id'=>$account_id,
'symbol'=>'btcusdt',
'type'=>'buy-limit',
'amount'=>'0.001',
'price'=>'2001'
]);
#### Future Trader
##### Market
```php
//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
]); **Текст запроса написан на языке PHP.**
В запросе содержатся фрагменты кода, в которых описываются операции покупки криптовалюты на различных биржах. В запросе также есть примеры использования метода *show()*, который позволяет получить информацию об ордере по его идентификатору.
**Точный перевод текста невозможен из-за наличия фрагментов кода.** Однако можно предположить, что текст описывает процесс создания и обработки торговых операций на криптовалютных биржах с использованием определённого программного обеспечения. **$exchanges->trader()->show([
'_order_id'=>'29897313869',
//'_client_id'=>'1bc3e974577a6ad9ce730006eafb5522',
]);**
//huobi future
**$exchanges->trader()->show([
'_symbol'=>'XRP190927',
'_order_id'=>'2715696586',
//'_client_id'=>'1bc3e974577a6ad9ce730006eafb5522',
]);**
#### Get accounts or positions
```php
//binance
//Get current account information.
$exchanges->account()->get();
//bitmex
//bargaining transaction
$exchanges->account()->get([
//Default return all
//'_symbol'=>'XBTUSD'
]);
//okex spot
//This endpoint supports getting the balance, amount available/on hold of a token in spot account.
$exchanges->account()->get([
'_symbol'=>'BTC',
]);
//okex future
//Get the information of holding positions of a contract.
$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
$exchanges->account()->get([
'_symbol'=>'BTC190927',
]);
Below is the call to the underlying API to initiate a new order instance
The following is the call to the underlying API to initiate a new order instance. There are two ways to call the underlying API.
Method 1: through $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
]);
Method 2: directly instantiate the underlying exchange. The following code is equivalent to mode 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',
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )