djansen20 / poloniex-http-api
Poloniex HTTP API 客户端实现包
Requires
- php: ^7.1
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-29 05:08:13 UTC
README
Poloniex HTTP API 客户端实现
安装
此包可以使用composer安装
composer require djansen20/poloniex-http-api dev-master
用法
为了使用此库,将以下命名空间包含到您的项目中
use Poloniex\PoloniexHttpApi
所有方法都将返回一个可以转换为json或可用的数组的结果对象。
# To get data as array $array = $response->asArray(); # Or Json $json = $response->jsonSerialize();
请求限制
Poloniex要求将公共API的调用次数保持在每秒6次。重复且无谓地获取大量数据可能会导致您的IP被禁用。
交易对常量
一些API调用要求您提供交易对。您可以使用CurrencyPair类的常量来获取API期望的正确字符串。
use \Poloniex\Models\\CurrencyPair; $pair = CurrencyPair::USDT_BTC;
如果您不想使用CurrencyPair常量,则需要提供一个有效的货币对字符串,大写。例如:USDT_BTC
公共方法
此包允许您在不提供账户凭证的情况下使用公共API。要获取公共API的实例,请调用以下方法
$api = PoloniexHttpApi::PublicApi();
现在您可以开始从API请求数据。
getDailyTicker
返回过去一天内所有货币的行情数据。返回对象包含每个货币的数组。每个货币有以下属性。
示例请求
$api = PoloniexHttpApi::PublicApi(); $responseObject = $api->getDailyTicker(); $data = $responseObject->asArray();
示例响应
array(99) { ["BTC_BCN"]=> array(10) { ["id"]=> int(7) ["last"]=> string(10) "0.00000048" ["lowestAsk"]=> string(10) "0.00000049" ["highestBid"]=> string(10) "0.00000048" ["percentChange"]=> string(11) "-0.07692307" ["baseVolume"]=> string(11) "58.98148207" ["quoteVolume"]=> string(18) "117273515.50009523" ["isFrozen"]=> string(1) "0" ["high24hr"]=> string(10) "0.00000053" ["low24hr"]=> string(10) "0.00000046" } ["BTC_BELA"]=> array(10) { ["id"]=> int(8) ["last"]=> string(10) "0.00001290" ["lowestAsk"]=> string(10) "0.00001302" ["highestBid"]=> string(10) "0.00001290" ["percentChange"]=> string(11) "-0.06045156" ["baseVolume"]=> string(10) "2.35221818" ["quoteVolume"]=> string(15) "180690.09194013" ["isFrozen"]=> string(1) "0" ["high24hr"]=> string(10) "0.00001373" ["low24hr"]=> string(10) "0.00001250" } ... }
getDailyVolume
返回所有市场的24小时成交量,以及主要货币的总计。每个返回的市场有以下属性。
示例请求
$api = PoloniexHttpApi::PublicApi(); $responseObject = $api->getDailyVolume(); $data = $responseObject->asArray();
示例响应
array(104) { ["BTC_BCN"]=> array(2) { ["BTC"]=> string(11) "54.13476343" ["BCN"]=> string(18) "111407382.31755247" } ["BTC_BELA"]=> array(2) { ["BTC"]=> string(10) "4.36484881" ["BELA"]=> string(15) "318971.34721168" } ... ["totalBTC"]=> string(14) "14101.39553898" ["totalETH"]=> string(13) "3206.73104864" ["totalUSDT"]=> string(18) "146242934.09559988" ["totalXMR"]=> string(13) "1041.71051366" ["totalXUSD"]=> string(10) "0.00000000" }
getOrderBook
返回给定对的货币订单簿。函数的第一个参数必须是货币对,第二个参数是可选的,用于确定深度。
您可以将currencyPair参数设置为'all'以获取所有市场的数据
每个响应有以下属性
示例请求
$api = PoloniexHttpApi::PublicApi(); $responseObject = $api->getOrderBook(\Poloniex\Models\CurrencyPair::USDT_BCH, 2); $data = $responseObject->asArray();
示例响应
array(4) { ["asks"]=> array(2) { [0]=> array(2) { [0]=> string(13) "1299.52061526" [1]=> float(0.01) } [1]=> array(2) { [0]=> string(13) "1301.00000000" [1]=> float(0.82615439) } } ["bids"]=> array(2) { [0]=> array(2) { [0]=> string(13) "1299.52061509" [1]=> float(3.32059391) } [1]=> array(2) { [0]=> string(13) "1293.28756413" [1]=> float(15.14260483) } } ["isFrozen"]=> string(1) "0" ["seq"]=> int(53148248) }
getTradeHistory
返回给定市场的过去200笔交易,或指定在UNIX时间戳范围内的最多50000笔交易。
每个响应有以下属性
示例请求
$api = PoloniexHttpApi::PublicApi(); $responseObject = $api->getTradeHistory(\Poloniex\Models\CurrencyPair::XMR_MAID, 1410158341, 1410499372); $data = $responseObject->asArray();
示例响应
array(15) { [0]=> array(7) { ["globalTradeID"]=> int(2036160) ["tradeID"]=> int(109) ["date"]=> string(19) "2014-09-12 04:19:39" ["type"]=> string(4) "sell" ["rate"]=> string(10) "0.00100100" ["amount"]=> string(12) "182.42951471" ["total"]=> string(10) "0.18261194" } [1]=> array(7) { ["globalTradeID"]=> int(2036159) ["tradeID"]=> int(108) ["date"]=> string(19) "2014-09-12 04:19:39" ["type"]=> string(4) "sell" ["rate"]=> string(10) "0.00710010" ["amount"]=> string(12) "152.00000000" ["total"]=> string(10) "1.07921520" }
getChartData
返回K线图数据。必需参数包括"currencyPair"(货币对),"period"(K线周期,以秒为单位;有效值为300、900、1800、7200、14400和86400),"start"和"end"。"Start"和"end"以UNIX时间戳格式给出,用于指定返回数据的日期范围。
每个返回的周期有以下属性
示例请求
$api = PoloniexHttpApi::PublicApi(); $responseObject = $api->getChartData(\Poloniex\Models\CurrencyPair::BTC_XMR, 1510158341, 9999999999, 86400); $data = $responseObject->asArray();
示例响应
array(105) { [0]=> array(8) { ["date"]=> int(1510185600) ["high"]=> float(0.01725283) ["low"]=> float(0.01500069) ["open"]=> float(0.01523299) ["close"]=> float(0.0168699) ["volume"]=> float(1766.02561139) ["quoteVolume"]=> float(109182.67024292) ["weightedAverage"]=> float(0.01617496) } [1]=> array(8) { ["date"]=> int(1510272000) ["high"]=> float(0.01699997) ["low"]=> float(0.0155) ["open"]=> float(0.0168699) ["close"]=> float(0.01601257) ["volume"]=> float(1794.34874489) ["quoteVolume"]=> float(110576.71429265) ["weightedAverage"]=> float(0.01622718) } }
getCurrencies
返回有关货币的信息。
每种货币包含以下属性
示例请求
$api = PoloniexHttpApi::PublicApi(); $responseObject = $api->getCurrencies(); $data = $responseObject->asArray();
示例响应
array(291) { ["1CR"]=> array(8) { ["id"]=> int(1) ["name"]=> string(7) "1CRedit" ["txFee"]=> string(10) "0.01000000" ["minConf"]=> int(3) ["depositAddress"]=> NULL ["disabled"]=> int(0) ["delisted"]=> int(1) ["frozen"]=> int(0) } ["ABY"]=> array(8) { ["id"]=> int(2) ["name"]=> string(7) "ArtByte" ["txFee"]=> string(10) "0.01000000" ["minConf"]=> int(8) ["depositAddress"]=> NULL ["disabled"]=> int(0) ["delisted"]=> int(1) ["frozen"]=> int(0) } }
getLoanData
返回给定货币的贷款出价和需求列表。
每种货币有以下属性。
示例请求
$api = PoloniexHttpApi::PublicApi(); $responseObject = $api->getLoanData('BTC'); $data = $responseObject->asArray();
示例响应
array(2) { ["offers"]=> array(50) { [0]=> array(4) { ["rate"]=> string(10) "0.00007200" ["amount"]=> string(10) "0.01997185" ["rangeMin"]=> int(2) ["rangeMax"]=> int(2) } [1]=> array(4) { ["rate"]=> string(10) "0.00007389" ["amount"]=> string(10) "0.01406117" ["rangeMin"]=> int(2) ["rangeMax"]=> int(2) } ... ["demands"]=> array(4) { [0]=> array(4) { ["rate"]=> string(10) "0.02000000" ["amount"]=> string(10) "0.00005250" ["rangeMin"]=> int(2) ["rangeMax"]=> int(2) } [1]=> array(4) { ["rate"]=> string(10) "0.00003010" ["amount"]=> string(10) "0.06571919" ["rangeMin"]=> int(2) ["rangeMax"]=> int(2) } ... } }