1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zhouaini528-exchanges-php

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Введение

Этот SDK объединяет API многих бирж, торгующих в настоящее время наиболее активно, позволяя разработчикам сосредоточиться только на бизнес-уровне. Он основан на Bitmex, Okex, Huobi и Binance (и так далее), и эти базовые API снова инкапсулируются. Его преимущества включают поддержку нескольких платформ одновременно, поддержку унифицированного ввода и вывода параметров, а также поддержку ввода собственных параметров и простую количественную торговлю для полного удовлетворения ваших потребностей. Даже если у вас есть особые требования, вы можете использовать метод getPlatform(), чтобы вернуть экземпляр и вызвать базовый API.

中文文档

Другие 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'=>[]
]);

Spot Trader

Market
//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
]);
Limit
//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',
]);

Support for original parameters

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 )

Вы можете оставить комментарий после Вход в систему

Введение

Интеграция API бирж, входящих в 20 крупнейших по объёму торгов цифровыми валютами. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники (5)

все

Недавние действия

Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/zhouaini528-exchanges-php.git
git@gitlife.ru:oschina-mirror/zhouaini528-exchanges-php.git
oschina-mirror
zhouaini528-exchanges-php
zhouaini528-exchanges-php
master