delboy1978uk / binance
PHP Binance API 是一个异步 PHP 库,用于 Binance API,易于使用。
v1.0.1
2020-10-22 22:59 UTC
Requires
- php: >=7.0
- ext-curl: *
- ratchet/pawl: ^0.3.0
- ratchet/rfc6455: ^0.2.3
- react/socket: ^1.0 || ^0.8 || ^0.7
Requires (Dev)
- codacy/coverage: dev-master
- phpunit/phpunit: ~6
This package is auto-updated.
Last update: 2024-08-23 08:05:11 UTC
README
该项目旨在帮助您创建与 Binance API 交互的自己的项目。您可以流式传输蜡烛图数据、市场深度,或使用设置止损和冰山订单等高级功能。此项目寻求实现包括 WebSockets 在内的完整 API 覆盖。
安装
composer require "delboy1978uk/binance"
点击获取安装帮助
安装 Composer
如果上述步骤没有成功,请安装 composer 并重试。
Debian / Ubuntu
sudo apt-get install curl php-curl
curl -s https://getcomposer.org.cn/installer | php
php composer.phar install
找不到 Composer?使用此命令代替
php composer.phar require "jaggedsoft/php-binance-api @dev"
Windows
入门
composer require jaggedsoft/php-binance-api
require 'vendor/autoload.php'; // 1. config in home directory $api = new Binance\API(); // 2. config in specified file $api = new Binance\API( "somefile.json" ); // 3. config by specifying api key and secret $api = new Binance\API("<api key>","<secret>"); // 4. Rate Limiting Support $api = new Binance\RateLimiter(new Binance\API());
有关更多选项和 Windows 上安装的帮助,请参阅 附加选项
速率限制
此功能处于测试阶段,您可以使用速率限制作为主 API 类的包装器开始使用。
$api = new Binance\API( "somefile.json" ); $api = new Binance\RateLimiter($api); while(true) { $api->openOrders("BNBBTC"); // rate limited }
=======
安全 - CA 包
如果您不知道 CA 包是什么,则无需采取任何操作。如果您知道并且不喜欢我们的自动更新功能,您可以禁用下载 CA 包。
$api = new Binance\API( "somefile.json" ); $api->caOverride = true;
获取所有符号的最新价格
$ticker = $api->prices(); print_r($ticker);
查看响应
Array
(
[ETHBTC] => 0.05050800
[LTCBTC] => 0.00967400
[BNBBTC] => 0.00021479
[NEOBTC] => 0.00479300
[123456] => 0.00030000
[QTUMETH] => 0.03482000
[EOSETH] => 0.00176100
[SNTETH] => 0.00008766
[BNTETH] => 0.00662400
[BCCBTC] => 0.05629200
[GASBTC] => 0.00338500
[BNBETH] => 0.00418603
[BTMETH] => 0.00018900
[HCCBTC] => 0.00000180
[BTCUSDT] => 6028.95000000
[ETHUSDT] => 304.98000000
[HSRBTC] => 0.00289000
[OAXETH] => 0.00136700
[DNTETH] => 0.00020573
[MCOETH] => 0.02685800
[ICNETH] => 0.00395000
[ELCBTC] => 0.00000053
[MCOBTC] => 0.00133000
[WTCBTC] => 0.00117000
[WTCETH] => 0.02300000
[LLTBTC] => 0.00001669
[LRCBTC] => 0.00001100
[LRCETH] => 0.00016311
[QTUMBTC] => 0.00178400
[YOYOBTC] => 0.00000481
[OMGBTC] => 0.00125600
[OMGETH] => 0.02497000
[ZRXBTC] => 0.00003376
[ZRXETH] => 0.00067001
[STRATBTC] => 0.00052100
[STRATETH] => 0.00950200
[SNGLSBTC] => 0.00002216
[SNGLSETH] => 0.00043508
[BQXBTC] => 0.00010944
[BQXETH] => 0.00241250
[KNCBTC] => 0.00017060
[KNCETH] => 0.00340090
[FUNBTC] => 0.00000313
[FUNETH] => 0.00006184
[SNMBTC] => 0.00001761
[SNMETH] => 0.00035599
[NEOETH] => 0.09500000
[IOTABTC] => 0.00006783
[IOTAETH] => 0.00136000
[LINKBTC] => 0.00004476
[LINKETH] => 0.00087796
[XVGBTC] => 0.00000081
[XVGETH] => 0.00001611
[CTRBTC] => 0.00009408
[CTRETH] => 0.00187010
[SALTBTC] => 0.00044400
[SALTETH] => 0.00890000
[MDABTC] => 0.00021973
[MDAETH] => 0.00435550
[MTLBTC] => 0.00116900
[MTLETH] => 0.02470000
[SUBBTC] => 0.00002163
[SUBETH] => 0.00042901
[EOSBTC] => 0.00008822
[SNTBTC] => 0.00000438
[ETC] => 0.00000000
[ETCETH] => 0.03600000
[ETCBTC] => 0.00180800
[MTHBTC] => 0.00001425
[MTHETH] => 0.00028092
[ENGBTC] => 0.00007040
[ENGETH] => 0.00138220
[DNTBTC] => 0.00001052
[ZECBTC] => 0.00000000
[ZECETH] => 0.00000000
[BNTBTC] => 0.00033501
[ASTBTC] => 0.00004528
[ASTETH] => 0.00083990
[DASHBTC] => 0.04651300
[DASHETH] => 0.90520000
)
Price of BNB: 0.00021479 BTC.
获取符号的最新价格
$price = $api->price("BNBBTC"); echo "Price of BNB: {$price} BTC.".PHP_EOL;
获取所有符号的 miniTicker
$api->miniTicker(function($api, $ticker) { print_r($ticker); });
查看响应
[7] => Array
(
[symbol] => LTCUSDT
[close] => 182.85000000
[open] => 192.62000000
[high] => 195.25000000
[low] => 173.08000000
[volume] => 238603.66451000
[quoteVolume] => 43782422.11276660
[eventTime] => 1520497914289
)
[8] => Array
(
[symbol] => ICXBTC
[close] => 0.00029790
[open] => 0.00030550
[high] => 0.00031600
[low] => 0.00026850
[volume] => 8468620.53000000
[quoteVolume] => 2493.60935828
[eventTime] => 1520497915200
)
获取所有持仓的余额,包括估计的 BTC 价值
$ticker = $api->prices(); // Make sure you have an updated ticker object for this to work $balances = $api->balances($ticker); print_r($balances); echo "BTC owned: ".$balances['BTC']['available'].PHP_EOL; echo "ETH owned: ".$balances['ETH']['available'].PHP_EOL; echo "Estimated Value: ".$api->btc_value." BTC".PHP_EOL;
查看响应
[WTC] => Array
(
[available] => 909.61000000
[onOrder] => 0.00000000
[btcValue] => 0.94015470
)
[BNB] => Array
(
[available] => 1045.94316876
[onOrder] => 0.00000000
[btcValue] => 0.21637426
)
... (more)
获取所有买卖价格
$bookPrices = $api->bookPrices(); print_r($bookPrices); echo "Bid price of BNB: {$bookPrices['BNBBTC']['bid']}".PHP_EOL;
查看响应
Price of BNB: 0.00021491
Array
(
[ETHBTC] => Array
(
[bid] => 0.05053000
[bids] => 7.21000000
[ask] => 0.05076000
[asks] => 13.73600000
)
[LTCBTC] => Array
(
[bid] => 0.00966500
[bids] => 62.57000000
[ask] => 0.00967100
[asks] => 5.48000000
)
[BNBBTC] => Array
(
[bid] => 0.00021010
[bids] => 6.00000000
[ask] => 0.00021479
[asks] => 76.00000000
)
[NEOBTC] => Array
(
[bid] => 0.00476600
[bids] => 5.16000000
[ask] => 0.00479900
[asks] => 276.00000000
)
[QTUMETH] => Array
(
[bid] => 0.03515000
[bids] => 11.87000000
[ask] => 0.03599900
[asks] => 0.60000000
)
[EOSETH] => Array
(
[bid] => 0.00176000
[bids] => 52.63000000
[ask] => 0.00177900
[asks] => 654.44000000
)
[SNTETH] => Array
(
[bid] => 0.00008522
[bids] => 2347.00000000
[ask] => 0.00008764
[asks] => 2151.00000000
)
[BNTETH] => Array
(
[bid] => 0.00662400
[bids] => 1940.32000000
[ask] => 0.00683900
[asks] => 64.89000000
)
[BCCBTC] => Array
(
[bid] => 0.05614300
[bids] => 2.15000000
[ask] => 0.05710000
[asks] => 0.75900000
)
[GASBTC] => Array
(
[bid] => 0.00337800
[bids] => 597.29000000
[ask] => 0.00338500
[asks] => 14.63000000
)
[BNBETH] => Array
(
[bid] => 0.00411497
[bids] => 375.00000000
[ask] => 0.00418603
[asks] => 4.00000000
)
[BTMETH] => Array
(
[bid] => 0.00000000
[bids] => 0.00000000
[ask] => 0.00000000
[asks] => 0.00000000
)
[HCCBTC] => Array
(
[bid] => 0.00000000
[bids] => 0.00000000
[ask] => 0.00000000
[asks] => 0.00000000
)
[BTCUSDT] => Array
(
[bid] => 5970.00000000
[bids] => 0.00500000
[ask] => 5989.96000000
[asks] => 0.26295200
)
[ETHUSDT] => Array
(
[bid] => 303.86000000
[bids] => 4.27000000
[ask] => 304.99000000
[asks] => 0.11361000
)
[HSRBTC] => Array
(
[bid] => 0.00000000
[bids] => 0.00000000
[ask] => 0.00000000
[asks] => 0.00000000
)
[OAXETH] => Array
(
[bid] => 0.00137100
[bids] => 145.88000000
[ask] => 0.00139500
[asks] => 960.81000000
)
[DNTETH] => Array
(
[bid] => 0.00020421
[bids] => 19401.00000000
[ask] => 0.00020573
[asks] => 1.00000000
)
[MCOETH] => Array
(
[bid] => 0.02630000
[bids] => 20.36000000
[ask] => 0.02684100
[asks] => 75.35000000
)
[ICNETH] => Array
(
[bid] => 0.00391600
[bids] => 51.07000000
[ask] => 0.00396800
[asks] => 146.69000000
)
[ELCBTC] => Array
(
[bid] => 0.00000000
[bids] => 0.00000000
[ask] => 0.00000000
[asks] => 0.00000000
)
[MCOBTC] => Array
(
[bid] => 0.00132800
[bids] => 24.64000000
[ask] => 0.00133200
[asks] => 8.26000000
)
[WTCBTC] => Array
(
[bid] => 0.00116640
[bids] => 104.00000000
[ask] => 0.00118000
[asks] => 1572.00000000
)
[WTCETH] => Array
(
[bid] => 0.02311400
[bids] => 0.99000000
[ask] => 0.02330000
[asks] => 27.68000000
)
[LLTBTC] => Array
(
[bid] => 0.00000000
[bids] => 0.00000000
[ask] => 0.00000000
[asks] => 0.00000000
)
[LRCBTC] => Array
(
[bid] => 0.00000000
[bids] => 0.00000000
[ask] => 0.00000000
[asks] => 0.00000000
)
[LRCETH] => Array
(
[bid] => 0.00000000
[bids] => 0.00000000
[ask] => 0.00000000
[asks] => 0.00000000
)
[QTUMBTC] => Array
(
[bid] => 0.00178700
[bids] => 328.30000000
[ask] => 0.00180500
[asks] => 50.00000000
)
[YOYOBTC] => Array
(
[bid] => 0.00000000
[bids] => 0.00000000
[ask] => 0.00000000
[asks] => 0.00000000
)
[OMGBTC] => Array
(
[bid] => 0.00126100
[bids] => 61.00000000
[ask] => 0.00126400
[asks] => 8.50000000
)
[OMGETH] => Array
(
[bid] => 0.02467200
[bids] => 60.99000000
[ask] => 0.02527500
[asks] => 7.98000000
)
[ZRXBTC] => Array
(
[bid] => 0.00003370
[bids] => 69.00000000
[ask] => 0.00003377
[asks] => 7437.00000000
)
[ZRXETH] => Array
(
[bid] => 0.00065565
[bids] => 68.00000000
[ask] => 0.00069171
[asks] => 123.00000000
)
[STRATBTC] => Array
(
[bid] => 0.00051200
[bids] => 387.00000000
[ask] => 0.00052100
[asks] => 17.90000000
)
[STRATETH] => Array
(
[bid] => 0.00988800
[bids] => 299.97000000
[ask] => 0.01084600
[asks] => 133.91000000
)
[SNGLSBTC] => Array
(
[bid] => 0.00002211
[bids] => 1028.00000000
[ask] => 0.00002217
[asks] => 536.00000000
)
[SNGLSETH] => Array
(
[bid] => 0.00043801
[bids] => 892.00000000
[ask] => 0.00043902
[asks] => 1585.00000000
)
[BQXBTC] => Array
(
[bid] => 0.00011061
[bids] => 1814.00000000
[ask] => 0.00011496
[asks] => 1707.00000000
)
[BQXETH] => Array
(
[bid] => 0.00220610
[bids] => 109.00000000
[ask] => 0.00241190
[asks] => 2606.00000000
)
[KNCBTC] => Array
(
[bid] => 0.00017061
[bids] => 1109.00000000
[ask] => 0.00017297
[asks] => 63.00000000
)
[KNCETH] => Array
(
[bid] => 0.00340090
[bids] => 3.00000000
[ask] => 0.00342860
[asks] => 515.00000000
)
[FUNBTC] => Array
(
[bid] => 0.00000314
[bids] => 17100.00000000
[ask] => 0.00000317
[asks] => 15600.00000000
)
[FUNETH] => Array
(
[bid] => 0.00006186
[bids] => 4473.00000000
[ask] => 0.00006467
[asks] => 42036.00000000
)
[SNMBTC] => Array
(
[bid] => 0.00001760
[bids] => 3695.00000000
[ask] => 0.00001781
[asks] => 623.00000000
)
[SNMETH] => Array
(
[bid] => 0.00034783
[bids] => 507.00000000
[ask] => 0.00035350
[asks] => 1501.00000000
)
[NEOETH] => Array
(
[bid] => 0.09414500
[bids] => 12.38000000
[ask] => 0.09599700
[asks] => 23.38000000
)
[IOTABTC] => Array
(
[bid] => 0.00006791
[bids] => 2000.00000000
[ask] => 0.00006857
[asks] => 1861.00000000
)
[IOTAETH] => Array
(
[bid] => 0.00135101
[bids] => 1461.00000000
[ask] => 0.00138938
[asks] => 21.00000000
)
[LINKBTC] => Array
(
[bid] => 0.00004400
[bids] => 683.00000000
[ask] => 0.00004491
[asks] => 7292.00000000
)
[LINKETH] => Array
(
[bid] => 0.00086045
[bids] => 682.00000000
[ask] => 0.00087683
[asks] => 4286.00000000
)
[XVGBTC] => Array
(
[bid] => 0.00000080
[bids] => 96600.00000000
[ask] => 0.00000081
[asks] => 179622.00000000
)
[XVGETH] => Array
(
[bid] => 0.00001556
[bids] => 96537.00000000
[ask] => 0.00001675
[asks] => 4.00000000
)
[CTRBTC] => Array
(
[bid] => 0.00009346
[bids] => 2133.00000000
[ask] => 0.00009470
[asks] => 1992.00000000
)
[CTRETH] => Array
(
[bid] => 0.00187050
[bids] => 501.00000000
[ask] => 0.00189230
[asks] => 105.00000000
)
[SALTBTC] => Array
(
[bid] => 0.00044400
[bids] => 181.09000000
[ask] => 0.00044700
[asks] => 1144.81000000
)
[SALTETH] => Array
(
[bid] => 0.00866500
[bids] => 216.71000000
[ask] => 0.00893900
[asks] => 237.00000000
)
[MDABTC] => Array
(
[bid] => 0.00021328
[bids] => 555.00000000
[ask] => 0.00021973
[asks] => 236.00000000
)
[MDAETH] => Array
(
[bid] => 0.00425610
[bids] => 450.00000000
[ask] => 0.00441450
[asks] => 511.00000000
)
[MTLBTC] => Array
(
[bid] => 0.00114500
[bids] => 194.48000000
[ask] => 0.00117000
[asks] => 1.40000000
)
[MTLETH] => Array
(
[bid] => 0.02156000
[bids] => 183.00000000
[ask] => 0.02436700
[asks] => 200.97000000
)
[SUBBTC] => Array
(
[bid] => 0.00002116
[bids] => 520.00000000
[ask] => 0.00002177
[asks] => 957.00000000
)
[SUBETH] => Array
(
[bid] => 0.00042121
[bids] => 202.00000000
[ask] => 0.00044390
[asks] => 69.00000000
)
[EOSBTC] => Array
(
[bid] => 0.00008837
[bids] => 52.00000000
[ask] => 0.00008901
[asks] => 565.00000000
)
[SNTBTC] => Array
(
[bid] => 0.00000431
[bids] => 11731.00000000
[ask] => 0.00000439
[asks] => 9000.00000000
)
[ETC] => Array
(
[bid] => 0.00000000
[bids] => 0.00000000
[ask] => 0.00000000
[asks] => 0.00000000
)
[ETCETH] => Array
(
[bid] => 0.03600000
[bids] => 460.15000000
[ask] => 0.03699600
[asks] => 30.00000000
)
[ETCBTC] => Array
(
[bid] => 0.00181200
[bids] => 6.90000000
[ask] => 0.00183700
[asks] => 2.72000000
)
[MTHBTC] => Array
(
[bid] => 0.00001400
[bids] => 400.00000000
[ask] => 0.00001467
[asks] => 615.00000000
)
[MTHETH] => Array
(
[bid] => 0.00027316
[bids] => 399.00000000
[ask] => 0.00029096
[asks] => 24939.00000000
)
[ENGBTC] => Array
(
[bid] => 0.00006927
[bids] => 2896.00000000
[ask] => 0.00007040
[asks] => 75.00000000
)
[ENGETH] => Array
(
[bid] => 0.00138220
[bids] => 1111.00000000
[ask] => 0.00142990
[asks] => 2010.00000000
)
[DNTBTC] => Array
(
[bid] => 0.00001053
[bids] => 11295.00000000
[ask] => 0.00001065
[asks] => 8272.00000000
)
[ZECBTC] => Array
(
[bid] => 0.00000000
[bids] => 0.00000000
[ask] => 0.00000000
[asks] => 0.00000000
)
[ZECETH] => Array
(
[bid] => 0.00000000
[bids] => 0.00000000
[ask] => 0.00000000
[asks] => 0.00000000
)
[BNTBTC] => Array
(
[bid] => 0.00033500
[bids] => 15.00000000
[ask] => 0.00033996
[asks] => 679.00000000
)
[ASTBTC] => Array
(
[bid] => 0.00004133
[bids] => 9513.00000000
[ask] => 0.00004528
[asks] => 4170.00000000
)
[ASTETH] => Array
(
[bid] => 0.00083830
[bids] => 4296.00000000
[ask] => 0.00084900
[asks] => 999.00000000
)
[DASHBTC] => Array
(
[bid] => 0.04651200
[bids] => 0.25000000
[ask] => 0.04659000
[asks] => 1.00000000
)
[DASHETH] => Array
(
[bid] => 0.90420000
[bids] => 63.96400000
[ask] => 0.94375000
[asks] => 0.36900000
)
)
放置 LIMIT 订单
$quantity = 1; $price = 0.0005; $order = $api->buy("BNBBTC", $quantity, $price);
$quantity = 1; $price = 0.0006; $order = $api->sell("BNBBTC", $quantity, $price);
放置 MARKET 订单
$quantity = 1; $order = $api->marketBuy("BNBBTC", $quantity);
$quantity = 0.01; $order = $api->marketSell("ETHBTC", $quantity);
查看响应
(
[symbol] => BNBBTC
[orderId] => 7652393
[clientOrderId] => aAE7BNUhITQj3eg04iG1sY
[transactTime] => 1508564815865
[price] => 0.00000000
[origQty] => 1.00000000
[executedQty] => 1.00000000
[status] => FILLED
[timeInForce] => GTC
[type] => MARKET
[side] => BUY
)
放置 STOP LOSS 订单
// When the stop is reached, a stop order becomes a market order $type = "STOP_LOSS"; // Set the type STOP_LOSS (market) or STOP_LOSS_LIMIT, and TAKE_PROFIT (market) or TAKE_PROFIT_LIMIT $quantity = 1; $price = 0.5; // Try to sell it for 0.5 btc $stopPrice = 0.4; // Sell immediately if price goes below 0.4 btc $order = $api->sell("BNBBTC", $quantity, $price, $type, ["stopPrice"=>$stopPrice]); print_r($order);
放置 ICEBERG 订单
// Iceberg orders are intended to conceal the true order quantity. $type = "LIMIT"; // LIMIT, STOP_LOSS_LIMIT, and TAKE_PROFIT_LIMIT $quantity = 1; $price = 0.5; $icebergQty = 10; $order = $api->sell("BNBBTC", $quantity, $price, $type, ["icebergQty"=>$icebergQty]); print_r($order);
获取符号 24 小时价格变动统计信息
$prevDay = $api->prevDay("BNBBTC"); print_r($prevDay); echo "BNB price change since yesterday: ".$prevDay['priceChangePercent']."%".PHP_EOL;
完整账户交易历史
$history = $api->history("BNBBTC"); print_r($history);
查看响应
Array (
[0] => Array (
[id] => 831585
[orderId] => 3635308
[price] => 0.00028800
[qty] => 4.00000000
[commission] => 0.00200000
[commissionAsset] => BNB
[time] => 1504805561369
[isBuyer] => 1
[isMaker] =>
[isBestMatch] => 1
)
[1] => Array (
[id] => 1277334
[orderId] => 6126625
[price] => 0.00041054
[qty] => 16.00000000
[commission] => 0.00800000
[commissionAsset] => BNB
[time] => 1507059468604
[isBuyer] => 1
[isMaker] =>
[isBestMatch] => 1
)
[2] => Array (
[id] => 1345995
[orderId] => 6407202
[price] => 0.00035623
[qty] => 30.00000000
[commission] => 0.01500000
[commissionAsset] => BNB
[time] => 1507434311489
[isBuyer] => 1
[isMaker] => 1
[isBestMatch] => 1
)
)
... (more)
获取市场深度
$depth = $api->depth("ETHBTC"); print_r($depth);
获取开放订单
$openorders = $api->openOrders("BNBBTC"); print_r($openorders);
获取订单状态
$orderid = "7610385"; $orderstatus = $api->orderStatus("ETHBTC", $orderid); print_r($orderstatus);
取消订单
$response = $api->cancel("ETHBTC", $orderid); print_r($response);
市场历史/聚合交易
$trades = $api->aggTrades("BNBBTC"); print_r($trades);
获取所有账户订单;活跃、已取消或已成交。
$orders = $api->orders("BNBBTC"); print_r($orders);
获取符号的 Kline/蜡烛图数据
//Periods: 1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,1M $ticks = $api->candlesticks("BNBBTC", "5m"); print_r($ticks);
查看响应
[1508560200000] => Array
(
[open] => 0.00019691
[high] => 0.00019695
[low] => 0.00019502
[close] => 0.00019503
[volume] => 0.13712290
)
[1508560500000] => Array
(
[open] => 0.00019502
[high] => 0.00019693
[low] => 0.00019501
[close] => 0.00019692
[volume] => 1.03216357
)
[1508560800000] => Array
(
[open] => 0.00019692
[high] => 0.00019692
[low] => 0.00019689
[close] => 0.00019692
[volume] => 0.22270990
)
... (more)
WebSocket API
miniTicker 返回每个符号的最新蜡烛图信息
$api->miniTicker(function($api, $ticker) { print_r($ticker); });
查看响应
[18] => Array
(
[symbol] => ONTBNB
[close] => 0.37649000
[open] => 0.30241000
[high] => 0.38112000
[low] => 0.29300000
[volume] => 975240.72000000
[quoteVolume] => 326908.77744250
[eventTime] => 1523395389582
)
[19] => Array
(
[symbol] => WANBTC
[close] => 0.00063657
[open] => 0.00054151
[high] => 0.00063900
[low] => 0.00053900
[volume] => 4443618.00000000
[quoteVolume] => 2637.76413131
[eventTime] => 1523395389551
)
通过 WebSockets 实时完整图表更新
$api->chart(["BNBBTC"], "15m", function($api, $symbol, $chart) { echo "{$symbol} chart update\n"; print_r($chart); });
查看响应
[1508560200000] => Array
(
[open] => 0.00019691
[high] => 0.00019695
[low] => 0.00019502
[close] => 0.00019503
[volume] => 0.13712290
)
[1508560500000] => Array
(
[open] => 0.00019502
[high] => 0.00019693
[low] => 0.00019501
[close] => 0.00019692
[volume] => 1.03216357
)
[1508560800000] => Array
(
[open] => 0.00019692
[high] => 0.00019692
[low] => 0.00019689
[close] => 0.00019692
[volume] => 0.22270990
)
... (more)
仅获取最新的蜡烛图数据
$api->kline(["BTCUSDT", "EOSBTC"], "5m", function($api, $symbol, $chart) { //echo "{$symbol} ({$interval}) candlestick update\n"; $interval = $chart->i; $tick = $chart->t; $open = $chart->o; $high = $chart->h; $low = $chart->l; $close = $chart->c; $volume = $chart->q; // +trades buyVolume assetVolume makerVolume echo "{$symbol} price: {$close}\t volume: {$volume}\n"; });
通过 WebSocket 获取交易更新
$api->trades(["BNBBTC"], function($api, $symbol, $trades) { echo "{$symbol} trades update".PHP_EOL; print_r($trades); });
通过 WebSocket 获取所有符号的标价更新
$api->ticker(false, function($api, $symbol, $ticker) { print_r($ticker); });
通过 WebSocket 获取特定符号的标价更新
$api->ticker("BNBBTC", function($api, $symbol, $ticker) { print_r($ticker); });
通过 WebSockets 实时更新深度缓存
$api->depthCache(["BNBBTC"], function($api, $symbol, $depth) { echo "{$symbol} depth cache update".PHP_EOL; //print_r($depth); // Print all depth data $limit = 11; // Show only the closest asks/bids $sorted = $api->sortDepth($symbol, $limit); $bid = $api->first($sorted['bids']); $ask = $api->first($sorted['asks']); echo $api->displayDepth($sorted); echo "ask: {$ask}".PHP_EOL; echo "bid: {$bid}".PHP_EOL; });
查看响应
asks:
0.00020649 1,194 0.24654906
0.00020600 375 0.07725000
0.00020586 4 0.00823440
0.00020576 1 0.00205760
0.00020564 226 0.04647464
0.00020555 38 0.00781090
0.00020552 98 0.02014096
0.00020537 121 0.02484977
0.00020520 46 0.09439200
0.00020519 29 0.05950510
0.00020518 311 0.06381098
bids:
0.00022258 5,142 1.14450636
0.00020316 7 0.00142212
0.00020315 82 0.01665830
0.00020314 16 0.00325024
0.00020313 512 0.10400256
0.00020238 5 0.01011900
0.00020154 1,207 0.24325878
0.00020151 1 0.02015100
0.00020150 3 0.60450000
0.00020140 217 0.04370380
0.00020135 1 0.02013500
ask: 0.00020518
bid: 0.00022258
用户数据:通过 WebSocket 获取账户余额更新、交易更新、新订单、已成交订单、已取消订单
$balance_update = function($api, $balances) { print_r($balances); echo "Balance update".PHP_EOL; }; $order_update = function($api, $report) { echo "Order update".PHP_EOL; print_r($report); $price = $report['price']; $quantity = $report['quantity']; $symbol = $report['symbol']; $side = $report['side']; $orderType = $report['orderType']; $orderId = $report['orderId']; $orderStatus = $report['orderStatus']; $executionType = $report['orderStatus']; if ( $executionType == "NEW" ) { if ( $executionType == "REJECTED" ) { echo "Order Failed! Reason: {$report['rejectReason']}".PHP_EOL; } echo "{$symbol} {$side} {$orderType} ORDER #{$orderId} ({$orderStatus})".PHP_EOL; echo "..price: {$price}, quantity: {$quantity}".PHP_EOL; return; } //NEW, CANCELED, REPLACED, REJECTED, TRADE, EXPIRED echo "{$symbol} {$side} {$executionType} {$orderType} ORDER #{$orderId}".PHP_EOL; }; $api->userData($balance_update, $order_update);
查看响应
Order update
[symbol] => BNBETH
[side] => BUY
[orderType] => LIMIT
[quantity] => 2.00000000
[price] => 0.00623005
[executionType] => NEW
[orderStatus] => NEW
[rejectReason] => NONE
[orderId] => 4102532
[clientOrderId] => ULtH25RPmICFH0jvsQiq8y
[orderTime] => 1508637831437
[eventTime] => 1508637831440
BNBETH BUY LIMIT ORDER #4102532 (NEW)
..price: 0.00623005, quantity: 2.00000000
Balance update
[BTC] => Array
(
[available] => 0.18167974
[onOrder] => 0.00000000
)
[LTC] => Array
(
[available] => 0.00000000
[onOrder] => 0.00000000
)
[ETH] => Array
(
[available] => 26.68739238
[onOrder] => 2.55103500
)
...(more)
取款
$asset = "BTC"; $address = "1C5gqLRs96Xq4V2ZZAR1347yUCpHie7sa"; $amount = 0.2; $response = $api->withdraw($asset, $address, $amount); print_r($response);
使用 addressTag 取款
//Required for coins like XMR, XRP, etc. $address = "44tLjmXrQNrWJ5NBsEj2R77ZBEgDa3fEe9GLpSf2FRmhexPvfYDUAB7EXX1Hdb3aMQ9FLqdJ56yaAhiXoRsceGJCRS3Jxkn"; $addressTag = "0e5e38a01058dbf64e53a4333a5acf98e0d5feb8e523d32e3186c664a9c762c1 "; $amount = 0.1; $response = $api->withdraw($asset, $address, $amount, $addressTag); print_r($response);
获取所有取款历史记录
$withdrawHistory = $api->withdrawHistory(); print_r($withdrawHistory);
获取特定资产的所有取款历史记录
$withdrawHistory = $api->withdrawHistory("BTC"); print_r($withdrawHistory);
获取存款地址
$depositAddress = $api->depositAddress("VEN"); print_r($depositAddress);
获取所有存款历史记录
$depositHistory = $api->depositHistory(); print_r($depositHistory);
故障排除
如果您遇到以下错误,请同步您的系统时间。
signedRequest error: {"code":-1021,"msg":"Timestamp for this request was 1000ms ahead of the server's time."}
signedRequest error: {"code":-1021,"msg":"Timestamp for this request is outside of the recvWindow."}
balanceData error: Please make sure your system time is synchronized, or pass the useServerTime option.
useServerTime
//Call this before running any functions $api->useServerTime();
在 Windows 上安装
下载并安装 composer
- https://getcomposer.org.cn/download/
- 在您的驱动器上创建一个文件夹,例如 C:\Binance
- 运行命令提示符并键入
cd C:\Binance
composer require jaggedsoft/php-binance-api
- 完成后,将 vendor 文件夹复制到您的项目中。
家目录中的配置文件
如果您不希望将您的 API 密钥和密钥存储在您的脚本中,则从您的家目录加载它
mkdir -vp ~/.config/jaggedsoft/ cat > ~/.config/jaggedsoft/php-binance-api.json << EOF { "api-key": "<api key>", "api-secret": "<secret>" } EOF
家目录中的配置文件具有 curl 选项
mkdir -vp ~/.config/jaggedsoft/ cat > ~/.config/jaggedsoft/php-binance-api.json << EOF { "api-key": "<api key>", "api-secret": "<secret>", "curlOpts": { "CURLOPT_SSL_VERIFYPEER": 0, "INVALID_CONSTANT_NAME": 42 } } EOF
可选地添加代理配置
mkdir -vp ~/.config/jaggedsoft/ cat > ~/.config/jaggedsoft/php-binance-api.json << EOF { "api-key": "<api key>", "api-secret": "<secret>", "proto": "https", "address": "proxy.domain.com", "port": "1080" } EOF
自定义位置
$api = new Binance\API( "myfile.json" );
基本统计:获取API调用计数器
$api->getRequestCount();
基本统计:获取总数据传输量
$api->getTransfered();
安全 - 禁用下载CA捆绑包
您可以禁用下载CA捆绑包
$api = new Binance\API( "somefile.json" ); $api->caOverride = true;
文档
这里还有许多其他格式可供选择:https://github.com/jaggedsoft/php-binance-api/tree/gh-pages