djansen20/poloniex-http-api

Poloniex HTTP API 客户端实现包

dev-master 2018-02-21 21:42 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:08:13 UTC


README

Poloniex HTTP API 客户端实现

Minimum PHP Version

安装

此包可以使用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)
    }
    ...
  }
}