bitvavo/php-bitvavo-api

Bitvavo API 的 PHP 封装。

v1.2.1 2022-07-07 14:34 UTC

This package is auto-updated.

Last update: 2024-09-07 19:06:47 UTC


README


PHP Bitvavo API

这是 Bitvavo API 的 PHP 封装。该项目可用于构建与 Bitvavo 平台交互的自定义项目。API 中可用的每个功能都可以通过 REST 请求或 Websocket 调用。有关每个参数的详细信息,请参阅 Bitvavo API 文档

安装

获取软件包及其依赖项

composer require bitvavo/php-bitvavo-api:dev-master

运行示例

cd vendor/bitvavo/php-bitvavo-api/example

php example.php

REST请求

在所有函数(REST和Websocket)中使用的通用约定是,所有可选参数都作为关联数组传递,而必需参数则作为单独的值传递。只有在下单时,一些可选参数是必需的,因为限价订单需要比市价订单更多的信息。返回的响应也全部转换为关联数组,以便于$response['<key>'] = '<value>'

入门

API密钥和密码对于私有调用是必需的,对于公共调用是可选的。访问窗口和调试参数对于所有调用都是可选的。访问窗口用于确定请求是否在规定时间内到达,该值以毫秒为单位指定。如果您遇到错误,可以使用time函数将您的时钟同步到我们的服务器时间。REST URL和WS URL可以用于设置不同的端点(用于测试目的)。当您想记录更多信息以及完整的响应时,调试应设置为true。任何参数都可以省略,私有函数将在API密钥和密码未设置时返回错误。

require_once('bitvavo.php');

$bitvavo = new Bitvavo([
  "APIKEY" => "<APIKEY>", 
  "APISECRET" => "<APISECRET>",
  "RESTURL" => "https://api.bitvavo.com/v2",
  "WSURL" => "wss://ws.bitvavo.com/v2/",
  "ACCESSWINDOW" => 10000,
  "DEBUGGING" => false
]);

为了演示目的,我们在打印时将编码回JSON。这是因为PHP不允许美化打印数组。通常,您会按照以下方式访问所需值

$response = $bitvavo->time();
$currentTime = $response["time"];

// Do something with time
echo $currentTime

通用

获取时间

$response = $bitvavo->time();
echo json_encode($response);
查看响应
{
    "time": 1548686055654
}

获取市场

// options: market
foreach ($bitvavo->markets([]) as $market) {
  echo json_encode($market) . "\n";
}
查看响应
{
    "market": "ADA-BTC",
    "status": "trading",
    "base": "ADA",
    "quote": "BTC",
    "pricePrecision": 5,
    "minOrderInBaseAsset": "100",
    "minOrderInQuoteAsset": "0.001",
    "orderTypes": [
        "market",
        "limit"
    ]
}
{
    "market": "ADA-EUR",
    "status": "trading",
    "base": "ADA",
    "quote": "EUR",
    "pricePrecision": 5,
    "minOrderInBaseAsset": "100",
    "minOrderInQuoteAsset": "10",
    "orderTypes": [
        "market",
        "limit"
    ]
}
{
    "market": "AE-BTC",
    "status": "trading",
    "base": "AE",
    "quote": "BTC",
    "pricePrecision": 5,
    "minOrderInBaseAsset": "10",
    "minOrderInQuoteAsset": "0.001",
    "orderTypes": [
        "market",
        "limit"
    ]
}
{
    "market": "AE-EUR",
    "status": "trading",
    "base": "AE",
    "quote": "EUR",
    "pricePrecision": 5,
    "minOrderInBaseAsset": "10",
    "minOrderInQuoteAsset": "10",
    "orderTypes": [
        "market",
        "limit"
    ]
}
...

获取资产

// options: symbol
foreach ($bitvavo->assets([]) as $asset) {
  echo json_encode($asset) . "\n";
}
查看响应
{
    "symbol": "ADA",
    "name": "Cardano",
    "decimals": 6,
    "depositFee": "0",
    "depositConfirmations": 20,
    "depositStatus": "OK",
    "withdrawalFee": "0.2",
    "withdrawalMinAmount": "0.2",
    "withdrawalStatus": "OK",
    "networks": [
        "Mainnet"
    ],
    "message": ""
}
{
    "symbol": "AE",
    "name": "Aeternity",
    "decimals": 8,
    "depositFee": "0",
    "depositConfirmations": 30,
    "depositStatus": "OK",
    "withdrawalFee": "2",
    "withdrawalMinAmount": "2",
    "withdrawalStatus": "OK",
    "networks": [
        "Mainnet"
    ],
    "message": ""
}
{
    "symbol": "AION",
    "name": "Aion",
    "decimals": 8,
    "depositFee": "0",
    "depositConfirmations": 0,
    "depositStatus": "",
    "withdrawalFee": "3",
    "withdrawalMinAmount": "3",
    "withdrawalStatus": "",
    "networks": [
        "Mainnet"
    ],
    "message": ""
}
{
    "symbol": "ANT",
    "name": "Aragon",
    "decimals": 8,
    "depositFee": "0",
    "depositConfirmations": 30,
    "depositStatus": "OK",
    "withdrawalFee": "2",
    "withdrawalMinAmount": "2",
    "withdrawalStatus": "OK",
    "networks": [
        "Mainnet"
    ],
    "message": ""
}
...

市场数据

按市场获取订单簿

// options: depth
$response = $bitvavo->book("BTC-EUR", []);
echo json_encode($response) . "\n";
查看响应
{
    "market": "BTC-EUR",
    "nonce": 5111,
    "bids": [
        [
            "2998.9",
            "2.14460302"
        ],
        [
            "2998.4",
            "0.35156557"
        ],
        [
            "2997",
            "0.97089768"
        ],
        [
            "2996.5",
            "0.74129861"
        ],
        [
            "2996",
            "0.33746089"
        ],
        ...
    ],
    "asks": [
        [
            "2999",
            "0.34445088"
        ],
        [
            "2999.5",
            "0.32306421"
        ],
        [
            "3000",
            "0.37908805"
        ],
        [
            "3000.6",
            "0.85330708"
        ],
        [
            "3001.7",
            "0.31230068"
        ],
        ...
    ]
}

按市场获取交易

// options: limit, start, end, tradeIdFrom, tradeIdTo
foreach ($bitvavo->publicTrades("BTC-EUR", []) as $trade) {
  echo json_encode($trade) . "\n";
}
查看响应
{
    "id": "99cee743-1a9b-4dd4-8337-2a384e490554",
    "timestamp": 1548685961053,
    "amount": "0.55444771",
    "price": "2996.3",
    "side": "buy"
}
{
    "id": "12d442cf-23a2-43c4-ae20-4b3d61a5993c",
    "timestamp": 1548685961047,
    "amount": "0.44555229",
    "price": "2995.7",
    "side": "buy"
}
{
    "id": "75335db3-5b94-48af-bdc9-8716e0a3d6ae",
    "timestamp": 1548685918958,
    "amount": "1",
    "price": "2996.1",
    "side": "buy"
}
{
    "id": "616bfa4e-b3ff-4b3f-a394-1538a49eb9bc",
    "timestamp": 1548685870299,
    "amount": "1",
    "price": "2996",
    "side": "buy"
}
{
    "id": "34cdda49-3e9d-4d8f-a1aa-3176f61d9c27",
    "timestamp": 1548684756948,
    "amount": "0.79946345",
    "price": "2996.3",
    "side": "buy"
}
{
    "id": "525a2ae0-7c0d-4945-9e4f-cf5729b44c5c",
    "timestamp": 1548684756939,
    "amount": "0.06202504",
    "price": "2995.6",
    "side": "buy"
}
...

按市场获取蜡烛

// options: limit, start, end
foreach ($bitvavo->candles("LTC-EUR", "1h", []) as $candle) {
  echo json_encode($candle) . "\n";
}
查看响应
[
    1548684000000,
    "2993.7",
    "2996.9",
    "2992.5",
    "2993.7",
    "9"
]
[
    1548684000000,
    "2993.7",
    "2996.9",
    "2992.5",
    "2993.7",
    "9"
]
[
    1548676800000,
    "2999.3",
    "3002.6",
    "2989.2",
    "2999.3",
    "63.00046504"
]
[
    1548669600000,
    "3012.9",
    "3015.8",
    "3000",
    "3012.9",
    "8"
]
[
    1548417600000,
    "3124",
    "3125.1",
    "3124",
    "3124",
    "0.1"
]
...

获取价格指示器

// options: market
foreach ($bitvavo->tickerPrice([]) as $price) {
  echo json_encode($price) . "\n";
}
查看响应
{
    "market": "EOS-EUR",
    "price": "2.0142"
}
{
    "market": "XRP-EUR",
    "price": "0.25193"
}
{
    "market": "ETH-EUR",
    "price": "91.1"
}
{
    "market": "IOST-EUR",
    "price": "0.005941"
}
{
    "market": "BCH-EUR",
    "price": "106.57"
}
{
    "market": "BTC-EUR",
    "price": "3000.2"
}
{
    "market": "STORM-EUR",
    "price": "0.0025672"
}
{
    "market": "EOS-BTC",
    "price": "0.00066289"
}
{
    "market": "BSV-EUR",
    "price": "57.6"
}
...

获取订单簿指示器

// options: market
foreach ($bitvavo->tickerBook([]) as $book) {
  echo json_encode($book) . "\n";
}
查看响应
{
    "market": "XVG-BTC",
    "bid": "0.00000045",
    "ask": "0.00000046",
    "bidSize": "28815.01275017",
    "askSize": "38392.85089495"
}
{
    "market": "XVG-EUR",
    "bid": "0.0042213",
    "ask": "0.0043277",
    "bidSize": "1695671.24837763",
    "askSize": "792229.47382889"
}
{
    "market": "ZIL-BTC",
    "bid": "0.00000082",
    "ask": "0.00000083",
    "bidSize": "140980.13397262",
    "askSize": "98839.99285373"
}
{
    "market": "ZIL-EUR",
    "bid": "0.0076923",
    "ask": "0.0077929",
    "bidSize": "348008.13304576",
    "askSize": "151544.09942432"
}
{
    "market": "ZRX-BTC",
    "bid": "0.00001679",
    "ask": "0.0000168",
    "bidSize": "633.12153002",
    "askSize": "1280.07668593"
}
{
    "market": "ZRX-EUR",
    "bid": "0.1575",
    "ask": "0.15774",
    "bidSize": "875.01315351",
    "askSize": "1013.62085819"
}
...

获取24小时指示器

// options: market
foreach ($bitvavo->ticker24h([]) as $ticker) {
  echo json_encode($ticker) . "\n";
}
查看响应
{
    "market": "XVG-EUR",
    "open": "0.0043222",
    "high": "0.0044139",
    "low": "0.0040849",
    "last": "0.0041952",
    "volume": "1237140.82971657",
    "volumeQuote": "5267.56",
    "bid": "0.0042245",
    "bidSize": "1704411.59895476",
    "ask": "0.0043217",
    "askSize": "2419888.08209617",
    "timestamp": 1565777160307
}
{
    "market": "ZIL-EUR",
    "open": "0.008125",
    "high": "0.0082359",
    "low": "0.0076094",
    "last": "0.0077285",
    "volume": "738574.75091114",
    "volumeQuote": "5724.92",
    "bid": "0.007698",
    "bidSize": "347552.37282041",
    "ask": "0.0077977",
    "askSize": "151544.09942432",
    "timestamp": 1565777159934
}
{
    "market": "ZRX-EUR",
    "open": "0.16326",
    "high": "0.16326",
    "low": "0.15812",
    "last": "0.15858",
    "volume": "4855.99528525",
    "volumeQuote": "779.72",
    "bid": "0.15748",
    "bidSize": "874.65298311",
    "ask": "0.15775",
    "askSize": "545.84965752",
    "timestamp": 1565777159932
}
...

私有

下单

在下单时,请确保设置了正确的可选参数。对于限价订单,必须设置数量和价格。如果设置了数量或数量引用,则市价订单有效。

// optional parameters: limit:(amount, price, postOnly), market:(amount, amountQuote, disableMarketProtection),
//                      stopLoss/takeProfit:(amount, amountQuote, disableMarketProtection, triggerType, triggerReference, triggerAmount)
//                      stopLossLimit/takeProfitLimit:(amount, price, postOnly, triggerType, triggerReference, triggerAmount)
//                      all orderTypes: timeInForce, selfTradePrevention, responseRequired
$response = $bitvavo->placeOrder("BTC-EUR", "buy", "limit", ["amount" => "1", "price" => "2000"]);
echo json_encode($response) . "\n";
查看响应
{
    "orderId": "97d89ffc-2339-4e8f-8032-bf7b8c9ee65b",
    "market": "BTC-EUR",
    "created": 1548686752319,
    "updated": 1548686752319,
    "status": "new",
    "side": "buy",
    "orderType": "limit",
    "amount": "1",
    "amountRemaining": "1",
    "price": "2000",
    "onHold": "2005",
    "onHoldCurrency": "EUR",
    "filledAmount": "0",
    "filledAmountQuote": "0",
    "feePaid": "0",
    "feeCurrency": "EUR",
    "fills": [],
    "selfTradePrevention": "decrementAndCancel",
    "visible": true,
    "timeInForce": "GTC",
    "postOnly": false
}

更新订单

在更新订单时,请确保已设置至少一个可选参数。否则无法更新。

// Optional parameters: limit:(amount, amountRemaining, price, timeInForce, selfTradePrevention, postOnly)
//          untriggered stopLoss/takeProfit:(amount, amountQuote, disableMarketProtection, triggerType, triggerReference, triggerAmount)
//                      stopLossLimit/takeProfitLimit: (amount, price, postOnly, triggerType, triggerReference, triggerAmount)
$response = $bitvavo->updateOrder("BTC-EUR", "97d89ffc-2339-4e8f-8032-bf7b8c9ee65b", ["amount" => "1.1"]);
echo json_encode($response) . "\n";
查看响应
{
    "orderId": "97d89ffc-2339-4e8f-8032-bf7b8c9ee65b",
    "market": "BTC-EUR",
    "created": 1548686752319,
    "updated": 1548686829227,
    "status": "new",
    "side": "buy",
    "orderType": "limit",
    "amount": "1.1",
    "amountRemaining": "1.1",
    "price": "2000",
    "onHold": "2205.5",
    "onHoldCurrency": "EUR",
    "filledAmount": "0",
    "filledAmountQuote": "0",
    "feePaid": "0",
    "feeCurrency": "EUR",
    "fills": [],
    "selfTradePrevention": "decrementAndCancel",
    "visible": true,
    "timeInForce": "GTC",
    "postOnly": false
}

获取订单

$response = $bitvavo->getOrder("BTC-EUR", "97d89ffc-2339-4e8f-8032-bf7b8c9ee65b");
echo json_encode($response) . "\n";
查看响应
{
    "orderId": "97d89ffc-2339-4e8f-8032-bf7b8c9ee65b",
    "market": "BTC-EUR",
    "created": 1548686752319,
    "updated": 1548686752319,
    "status": "new",
    "side": "buy",
    "orderType": "limit",
    "amount": "1",
    "amountRemaining": "1",
    "price": "2000",
    "onHold": "2005",
    "onHoldCurrency": "EUR",
    "filledAmount": "0",
    "filledAmountQuote": "0",
    "feePaid": "0",
    "feeCurrency": "EUR",
    "fills": [],
    "selfTradePrevention": "decrementAndCancel",
    "visible": true,
    "timeInForce": "GTC",
    "postOnly": false
}

取消订单

$response = $bitvavo->cancelOrder("BTC-EUR", "2557ace7-f9f3-4c15-8911-46022f01cf72");
echo json_encode($response) . "\n";
查看响应
{
    "orderId":"2557ace7-f9f3-4c15-8911-46022f01cf72"
}

获取订单

返回与获取订单相同,但可用于一次性返回多个订单。

// options: limit, start, end, orderIdFrom, orderIdTo
foreach ($bitvavo->getOrders("BTC-EUR", []) as $order) {
  echo json_encode($order) . "\n";
}
查看响应
{
    "orderId": "97d89ffc-2339-4e8f-8032-bf7b8c9ee65b",
    "market": "BTC-EUR",
    "created": 1548686752319,
    "updated": 1548686829227,
    "status": "new",
    "side": "buy",
    "orderType": "limit",
    "amount": "1.1",
    "amountRemaining": "1.1",
    "price": "2000",
    "onHold": "2205.5",
    "onHoldCurrency": "EUR",
    "filledAmount": "0",
    "filledAmountQuote": "0",
    "feePaid": "0",
    "feeCurrency": "EUR",
    "fills": [],
    "selfTradePrevention": "decrementAndCancel",
    "visible": true,
    "timeInForce": "GTC",
    "postOnly": false
}
{
    "orderId": "d0471852-d753-44a9-bc9a-a3f0ddb7c209",
    "market": "BTC-EUR",
    "created": 1548685870294,
    "updated": 1548685870294,
    "status": "filled",
    "side": "buy",
    "orderType": "limit",
    "amount": "1",
    "amountRemaining": "0",
    "price": "3000",
    "onHold": "0",
    "onHoldCurrency": "EUR",
    "filledAmount": "1",
    "filledAmountQuote": "2996",
    "feePaid": "7.49",
    "feeCurrency": "EUR",
    "fills": [
        {
            "id": "616bfa4e-b3ff-4b3f-a394-1538a49eb9bc",
            "timestamp": 1548685870299,
            "amount": "1",
            "price": "2996",
            "taker": true,
            "fee": "7.49",
            "feeCurrency": "EUR",
            "settled": true
        }
    ],
    "selfTradePrevention": "decrementAndCancel",
    "visible": true,
    "timeInForce": "GTC",
    "postOnly": false
}
{
    "orderId": "80b5f04d-21fc-4ebe-9c5f-6d34f78ee477",
    "market": "BTC-EUR",
    "created": 1548684420771,
    "updated": 1548684420771,
    "status": "filled",
    "side": "buy",
    "orderType": "limit",
    "amount": "1",
    "amountRemaining": "0",
    "price": "3000",
    "onHold": "0",
    "onHoldCurrency": "EUR",
    "filledAmount": "1",
    "filledAmountQuote": "2994.47228569",
    "feePaid": "7.48771431",
    "feeCurrency": "EUR",
    "fills": [
        {
            "id": "ae9b627c-3e64-4c71-b80a-9f674498b478",
            "timestamp": 1548684420781,
            "amount": "0.82771431",
            "price": "2994.3",
            "taker": true,
            "fee": "6.205041567",
            "feeCurrency": "EUR",
            "settled": true
        },
        {
            "id": "64cc0e3d-6e7b-451c-9034-9a6dc6c4665a",
            "timestamp": 1548684420790,
            "amount": "0.17228569",
            "price": "2995.3",
            "taker": true,
            "fee": "1.282672743",
            "feeCurrency": "EUR",
            "settled": true
        }
    ],
    "selfTradePrevention": "decrementAndCancel",
    "visible": true,
    "timeInForce": "GTC",
    "postOnly": false
}
...

取消订单

取消市场中的所有订单。如果未指定市场,将取消该账户的所有订单。

// options: market
foreach ($bitvavo->cancelOrders([]) as $order) {
  echo json_encode($order) . "\n";
}
查看响应
{
    "orderId":"8b1c491b-13bd-40e1-b4fa-7d8ecf1f4fc3"
}
{
    "orderId":"95313ae5-ad65-4430-a0fb-63591bbc337c"
}
{
    "orderId":"2465c3ab-5ae2-4d4d-bec7-345f51b3494d"
}
...

获取未成交订单

返回所有未成交或已取消的订单。

// options: market
foreach ($bitvavo->ordersOpen([]) as $order) {
  echo json_encode($order) . "\n";
}
查看响应
{
    "orderId": "97d89ffc-2339-4e8f-8032-bf7b8c9ee65b",
    "market": "BTC-EUR",
    "created": 1548686752319,
    "updated": 1548686829227,
    "status": "new",
    "side": "buy",
    "orderType": "limit",
    "amount": "1.1",
    "amountRemaining": "1.1",
    "price": "2000",
    "onHold": "2205.5",
    "onHoldCurrency": "EUR",
    "filledAmount": "0",
    "filledAmountQuote": "0",
    "feePaid": "0",
    "feeCurrency": "EUR",
    "fills": [],
    "selfTradePrevention": "decrementAndCancel",
    "visible": true,
    "timeInForce": "GTC",
    "postOnly": false
}
{
    "orderId": "2465c3ab-5ae2-4d4d-bec7-345f51b3494d",
    "market": "BTC-EUR",
    "created": 1548686566366,
    "updated": 1548686789695,
    "status": "new",
    "side": "buy",
    "orderType": "limit",
    "amount": "1.0",
    "amountRemaining": "1.0",
    "price": "2200",
    "onHold": "2205",
    "onHoldCurrency": "EUR",
    "filledAmount": "0",
    "filledAmountQuote": "0",
    "feePaid": "0",
    "feeCurrency": "EUR",
    "fills": [],
    "selfTradePrevention": "decrementAndCancel",
    "visible": true,
    "timeInForce": "GTC",
    "postOnly": false
}
 ...

获取交易

返回该账户在市场内的所有交易。

// options: limit, start, end, tradeIdFrom, tradeIdTo
foreach ($bitvavo->trades("BTC-EUR", []) as $trade) {
  echo json_encode($trade) . "\n";
}
查看响应
{
    "id": "616bfa4e-b3ff-4b3f-a394-1538a49eb9bc",
    "timestamp": 1548685870299,
    "market": "BTC-EUR",
    "side": "buy",
    "amount": "1",
    "price": "2996",
    "taker": true,
    "fee": "7.49",
    "feeCurrency": "EUR",
    "settled": true
}
{
    "id": "64cc0e3d-6e7b-451c-9034-9a6dc6c4665a",
    "timestamp": 1548684420790,
    "market": "BTC-EUR",
    "side": "buy",
    "amount": "0.17228569",
    "price": "2995.3",
    "taker": true,
    "fee": "1.282672743",
    "feeCurrency": "EUR",
    "settled": true
}
{
    "id": "ae9b627c-3e64-4c71-b80a-9f674498b478",
    "timestamp": 1548684420781,
    "market": "BTC-EUR",
    "side": "buy",
    "amount": "0.82771431",
    "price": "2994.3",
    "taker": true,
    "fee": "6.205041567",
    "feeCurrency": "EUR",
    "settled": true
}
{
    "id": "f78cc2d2-6044-4a6d-a86f-ff7d307142fb",
    "timestamp": 1548683023452,
    "market": "BTC-EUR",
    "side": "sell",
    "amount": "0.74190125",
    "price": "2992.5",
    "taker": true,
    "fee": "5.549490625",
    "feeCurrency": "EUR",
    "settled": true
}
 ...

获取账户

返回该账户的费用层级。

$response = $bitvavo->account();
echo json_encode($response, JSON_PRETTY_PRINT) . "\n";
查看响应
{
  "fees": {
    "taker": "0.0025",
    "maker": "0.0015",
    "volume": "100.00"
  }
}

获取余额

返回该账户的余额。

// options: symbol
foreach ($bitvavo->balance([]) as $balance) {
  echo json_encode($balance) . "\n";
}
查看响应
{
  "symbol": "EUR",
  "available": "2599.95",
  "inOrder": "2022.65"
}
{
  "symbol": "BTC",
  "available": "1.65437",
  "inOrder": "0.079398"
}
{
  "symbol": "ADA",
  "available": "4.8",
  "inOrder": "0"
}
{
  "symbol": "BCH",
  "available": "0.00952811",
  "inOrder": "0"
}
{
  "symbol": "BSV",
  "available": "0.00952811",
  "inOrder": "0"
}
...

存入资产

返回可用于存入资金的地址。

$response = $bitvavo->depositAssets("BTC");
echo json_encode($response) . "\n";
查看响应
{
    "address": "BitcoinAddress"
}

提取资产

可用于从Bitvavo提取资金。

// optional parameters: paymentId, internal, addWithdrawalFee
$response = $bitvavo->withdrawAssets("BTC", "1", "BitcoinAddress", []);
echo json_encode($response) . "\n";
查看响应
{
    "success": true,
    "symbol": "BTC",
    "amount": "1"
}

获取存款历史

返回您账户的存款历史。

// options: symbol, limit, start, end
foreach ($bitvavo->depositHistory([]) as $deposit) {
  echo json_encode($deposit) . "\n";
}
查看响应
{
    "timestamp": 1521550025000,
    "symbol": "EUR",
    "amount": "1",
    "fee": "0",
    "status": "completed",
    "address": "NL12RABO324234234"
}
{
    "timestamp": 1511873910000,
    "symbol": "BTC",
    "amount": "0.099",
    "fee": "0",
    "status": "completed",
    "txId": "0c6497e608212a516b8218674cb0ca04f65b67a00fe8bddaa1ecb03e9b029255"
}
...

获取提取历史

返回账户的提取历史。

// options: symbol, limit, start, end
foreach ($bitvavo->withdrawalHistory([]) as $withdrawal) {
  echo json_encode($withdrawal) . "\n";
}
查看响应
{
    "timestamp": 1548687467000,
    "symbol": "BTC",
    "amount": "0.99994",
    "fee": "0.00006",
    "status": "awaiting_processing",
    "address": "1CqtG5z55x7bYD5GxsAXPx59DEyujs4bjm"
}
{
    "timestamp": 1548682993000,
    "symbol": "BTC",
    "amount": "0.99994",
    "fee": "0.00006",
    "status": "awaiting_processing",
    "address": "1CqtG5z55x7bYD5GxsAXPx59DEyujs4bjm"
}
{
    "timestamp": 1548425559000,
    "symbol": "BTC",
    "amount": "0.09994",
    "fee": "0.00006",
    "status": "awaiting_processing",
    "address": "1CqtG5z55x7bYD5GxsAXPx59DEyujs4bjm"
}
{
    "timestamp": 1548409721000,
    "symbol": "EUR",
    "amount": "50",
    "fee": "0",
    "status": "completed",
    "address": "NL123BIM"
}
{
    "timestamp": 1537803091000,
    "symbol": "BTC",
    "amount": "0.01939",
    "fee": "0.00002",
    "status": "completed",
    "txId": "da2299c86fce67eb899aeaafbe1f81cf663a3850cf9f3337c92b2d87945532db",
    "address": "3QpyxeA7yWWsSURXEmuBBzHpxjqn7Rbyme"
}
...

Websocket

所有可以通过REST请求完成的请求也可以通过Websocket执行。Bitvavo还提供了六个订阅。如果订阅了这些,针对该类型/市场的特定更新将立即推送。我们使用php的经验是,它的性能略低于我们的其他SDK,因此我们建议对于需要与交易所持续同步的程序,在另一种语言中实现。对于简单的操作或任何集成到网站中的函数,php就足够了。

入门

应通过$websock = $bitvavo->newWebSocket();函数初始化websocket对象。之后,应通过setErrorCallback()函数设置错误的回调。之后,可以调用任何所需的函数。最后,应通过startSocket()函数启动websocket。此调用是阻塞的,这意味着在startSocket()调用之后的任何代码将不会执行。当需要将一个函数的响应作为另一个函数的输入时,应在第一个函数的回调中调用第二个函数。

$websock = $bitvavo->newWebSocket();

$websock->setErrorCallback(function($msg) {
  echo "Handle errors here " . json_encode($msg) . "\n";
});

// Call your functions here, like:
$websock->time(function($msg) {
  echo json_encode($msg) . "\n";
});

// When the response of the first call is required for the second call, make the second call in the callback.
// For demonstration purposes only, since the same could be achieved through cancelOrders().
$websock->ordersOpen(["market"=>"BTC-EUR" ], function($orderResponse) use ($webSock) {
  foreach ($orderResponse as $order) {
    $websock->cancelOrder("BTC-EUR", $order["orderId"], function($cancelResponse) {
      echo json_encode($cancelResponse) . "\n";
    });
  }
});

$websock->startSocket();

// Any code written here will not be executed until the websocket has been closed.

API密钥和密钥是从bitvavo对象中复制的。因此,如果您想使用Websocket API的私有部分,应设置如REST请求中指定的密钥和密钥。

公共

获取时间

$websock->time(function($response) {
  echo json_encode($response) . "\n";
});
查看响应
{
    "time": 1548686055654
}

获取市场

// options: market
$websock->markets([], function($response) {
  foreach ($response as $market) {
    echo json_encode($market) . "\n";
  }
});
查看响应
{
    "market": "ADA-BTC",
    "status": "trading",
    "base": "ADA",
    "quote": "BTC",
    "pricePrecision": 5,
    "minOrderInBaseAsset": "100",
    "minOrderInQuoteAsset": "0.001",
    "orderTypes": [
        "market",
        "limit"
    ]
}
{
    "market": "ADA-EUR",
    "status": "trading",
    "base": "ADA",
    "quote": "EUR",
    "pricePrecision": 5,
    "minOrderInBaseAsset": "100",
    "minOrderInQuoteAsset": "10",
    "orderTypes": [
        "market",
        "limit"
    ]
}
{
    "market": "AE-BTC",
    "status": "trading",
    "base": "AE",
    "quote": "BTC",
    "pricePrecision": 5,
    "minOrderInBaseAsset": "10",
    "minOrderInQuoteAsset": "0.001",
    "orderTypes": [
        "market",
        "limit"
    ]
}
{
    "market": "AE-EUR",
    "status": "trading",
    "base": "AE",
    "quote": "EUR",
    "pricePrecision": 5,
    "minOrderInBaseAsset": "10",
    "minOrderInQuoteAsset": "10",
    "orderTypes": [
        "market",
        "limit"
    ]
}
...

获取资产

// options: symbol
$websock->assets([], function($response) {
  foreach ($response as $asset) {
    echo json_encode($asset) . "\n";
  }
});
查看响应
{
    "symbol": "ADA",
    "name": "Cardano",
    "decimals": 6,
    "depositFee": "0",
    "depositConfirmations": 20,
    "depositStatus": "OK",
    "withdrawalFee": "0.2",
    "withdrawalMinAmount": "0.2",
    "withdrawalStatus": "OK",
    "networks": [
        "Mainnet"
    ],
    "message": ""
}
{
    "symbol": "AE",
    "name": "Aeternity",
    "decimals": 8,
    "depositFee": "0",
    "depositConfirmations": 30,
    "depositStatus": "OK",
    "withdrawalFee": "2",
    "withdrawalMinAmount": "2",
    "withdrawalStatus": "OK",
    "networks": [
        "Mainnet"
    ],
    "message": ""
}
{
    "symbol": "AION",
    "name": "Aion",
    "decimals": 8,
    "depositFee": "0",
    "depositConfirmations": 0,
    "depositStatus": "",
    "withdrawalFee": "3",
    "withdrawalMinAmount": "3",
    "withdrawalStatus": "",
    "networks": [
        "Mainnet"
    ],
    "message": ""
}
{
    "symbol": "ANT",
    "name": "Aragon",
    "decimals": 8,
    "depositFee": "0",
    "depositConfirmations": 30,
    "depositStatus": "OK",
    "withdrawalFee": "2",
    "withdrawalMinAmount": "2",
    "withdrawalStatus": "OK",
    "networks": [
        "Mainnet"
    ],
    "message": ""
}
...

按市场获取订单簿

// options: depth
$websock->book("BTC-EUR", [], function($response) {
  echo json_encode($response) . "\n";
});
查看响应
{
    "market": "BTC-EUR",
    "nonce": 5111,
    "bids": [
        [
            "2998.9",
            "2.14460302"
        ],
        [
            "2998.4",
            "0.35156557"
        ],
        [
            "2997",
            "0.97089768"
        ],
        [
            "2996.5",
            "0.74129861"
        ],
        [
            "2996",
            "0.33746089"
        ],
        ...
    ],
    "asks": [
        [
            "2999",
            "0.34445088"
        ],
        [
            "2999.5",
            "0.32306421"
        ],
        [
            "3000",
            "0.37908805"
        ],
        [
            "3000.6",
            "0.85330708"
        ],
        [
            "3001.7",
            "0.31230068"
        ],
        ...
    ]
}

按市场获取交易

// options: limit, start, end
$websock->publicTrades("BTC-EUR", [], function($response) {
  echo json_encode($response) . "\n";
});
查看响应
{
    "id": "99cee743-1a9b-4dd4-8337-2a384e490554",
    "timestamp": 1548685961053,
    "amount": "0.55444771",
    "price": "2996.3",
    "side": "buy"
}
{
    "id": "12d442cf-23a2-43c4-ae20-4b3d61a5993c",
    "timestamp": 1548685961047,
    "amount": "0.44555229",
    "price": "2995.7",
    "side": "buy"
}
{
    "id": "75335db3-5b94-48af-bdc9-8716e0a3d6ae",
    "timestamp": 1548685918958,
    "amount": "1",
    "price": "2996.1",
    "side": "buy"
}
{
    "id": "616bfa4e-b3ff-4b3f-a394-1538a49eb9bc",
    "timestamp": 1548685870299,
    "amount": "1",
    "price": "2996",
    "side": "buy"
}
{
    "id": "34cdda49-3e9d-4d8f-a1aa-3176f61d9c27",
    "timestamp": 1548684756948,
    "amount": "0.79946345",
    "price": "2996.3",
    "side": "buy"
}
{
    "id": "525a2ae0-7c0d-4945-9e4f-cf5729b44c5c",
    "timestamp": 1548684756939,
    "amount": "0.06202504",
    "price": "2995.6",
    "side": "buy"
}
...

按市场获取蜡烛

// options: limit
$websock->candles("LTC-EUR", "1h", [], function($response) {
  foreach ($response as $candle) {
    echo json_encode($candle) . "\n";
  }
});
查看响应
[
    1548684000000,
    "2993.7",
    "2996.9",
    "2992.5",
    "2993.7",
    "9"
]
[
    1548684000000,
    "2993.7",
    "2996.9",
    "2992.5",
    "2993.7",
    "9"
]
[
    1548676800000,
    "2999.3",
    "3002.6",
    "2989.2",
    "2999.3",
    "63.00046504"
]
[
    1548669600000,
    "3012.9",
    "3015.8",
    "3000",
    "3012.9",
    "8"
]
[
    1548417600000,
    "3124",
    "3125.1",
    "3124",
    "3124",
    "0.1"
]
...

获取价格指示器

// options: market
$websock->tickerPrice([], function($response) {
  foreach ($response as $price) {
    echo json_encode($price) . "\n";
  }
});
查看响应
{
    "market": "EOS-EUR",
    "price": "2.0142"
}
{
    "market": "XRP-EUR",
    "price": "0.25193"
}
{
    "market": "ETH-EUR",
    "price": "91.1"
}
{
    "market": "IOST-EUR",
    "price": "0.005941"
}
{
    "market": "BCH-EUR",
    "price": "106.57"
}
{
    "market": "BTC-EUR",
    "price": "3000.2"
}
{
    "market": "STORM-EUR",
    "price": "0.0025672"
}
{
    "market": "EOS-BTC",
    "price": "0.00066289"
}
{
    "market": "BSV-EUR",
    "price": "57.6"
}
...

获取订单簿指示器

// options: market
$websock->tickerBook([], function($response) {
  foreach ($response as $book) {
    echo json_encode($book) . "\n";
  }
});
查看响应
{
    "market": "XVG-BTC",
    "bid": "0.00000045",
    "ask": "0.00000046",
    "bidSize": "28815.01275017",
    "askSize": "38392.85089495"
}
{
    "market": "XVG-EUR",
    "bid": "0.0042213",
    "ask": "0.0043277",
    "bidSize": "1695671.24837763",
    "askSize": "792229.47382889"
}
{
    "market": "ZIL-BTC",
    "bid": "0.00000082",
    "ask": "0.00000083",
    "bidSize": "140980.13397262",
    "askSize": "98839.99285373"
}
{
    "market": "ZIL-EUR",
    "bid": "0.0076923",
    "ask": "0.0077929",
    "bidSize": "348008.13304576",
    "askSize": "151544.09942432"
}
{
    "market": "ZRX-BTC",
    "bid": "0.00001679",
    "ask": "0.0000168",
    "bidSize": "633.12153002",
    "askSize": "1280.07668593"
}
{
    "market": "ZRX-EUR",
    "bid": "0.1575",
    "ask": "0.15774",
    "bidSize": "875.01315351",
    "askSize": "1013.62085819"
}
...

获取24小时指示器

// options: market
$websock->ticker24h([], function($response) {
  foreach ($response as $ticker) {
    echo json_encode($ticker) . "\n";
  }
});
查看响应
{
    "market": "XVG-EUR",
    "open": "0.0043222",
    "high": "0.0044139",
    "low": "0.0040849",
    "last": "0.0041952",
    "volume": "1237140.82971657",
    "volumeQuote": "5267.56",
    "bid": "0.0042245",
    "bidSize": "1704411.59895476",
    "ask": "0.0043217",
    "askSize": "2419888.08209617",
    "timestamp": 1565777160307
}
{
    "market": "ZIL-EUR",
    "open": "0.008125",
    "high": "0.0082359",
    "low": "0.0076094",
    "last": "0.0077285",
    "volume": "738574.75091114",
    "volumeQuote": "5724.92",
    "bid": "0.007698",
    "bidSize": "347552.37282041",
    "ask": "0.0077977",
    "askSize": "151544.09942432",
    "timestamp": 1565777159934
}
{
    "market": "ZRX-EUR",
    "open": "0.16326",
    "high": "0.16326",
    "low": "0.15812",
    "last": "0.15858",
    "volume": "4855.99528525",
    "volumeQuote": "779.72",
    "bid": "0.15748",
    "bidSize": "874.65298311",
    "ask": "0.15775",
    "askSize": "545.84965752",
    "timestamp": 1565777159932
}
...

私有

下单

在下单时,请确保设置了正确的可选参数。对于限价订单,必须设置数量和价格。如果设置了数量或数量引用,则市价订单有效。

// optional parameters: limit:(amount, price, postOnly), market:(amount, amountQuote, disableMarketProtection),
//                      stopLoss/takeProfit:(amount, amountQuote, disableMarketProtection, triggerType, triggerReference, triggerAmount)
//                      stopLossLimit/takeProfitLimit:(amount, price, postOnly, triggerType, triggerReference, triggerAmount)
//                      all orderTypes: timeInForce, selfTradePrevention, responseRequired
$websock->placeOrder("BTC-EUR", "buy", "limit", ["amount" => "0.1", "price" => "5000"], function($response) {
  echo json_encode($response) . "\n";
});
查看响应
{
    "orderId": "97d89ffc-2339-4e8f-8032-bf7b8c9ee65b",
    "market": "BTC-EUR",
    "created": 1548686752319,
    "updated": 1548686752319,
    "status": "new",
    "side": "buy",
    "orderType": "limit",
    "amount": "1",
    "amountRemaining": "1",
    "price": "2000",
    "onHold": "2005",
    "onHoldCurrency": "EUR",
    "filledAmount": "0",
    "filledAmountQuote": "0",
    "feePaid": "0",
    "feeCurrency": "EUR",
    "fills": [],
    "selfTradePrevention": "decrementAndCancel",
    "visible": true,
    "timeInForce": "GTC",
    "postOnly": false
}

更新订单

在更新订单时,请确保已设置至少一个可选参数。否则无法更新。

// Optional parameters: limit:(amount, amountRemaining, price, timeInForce, selfTradePrevention, postOnly)
//          untriggered stopLoss/takeProfit:(amount, amountQuote, disableMarketProtection, triggerType, triggerReference, triggerAmount)
//                      stopLossLimit/takeProfitLimit: (amount, price, postOnly, triggerType, triggerReference, triggerAmount)
$websock->updateOrder("BTC-EUR", "68322e0d-1a41-4e39-bc26-8c9b9a268a81", ["amount" => "0.2"], function($response) {
  echo json_encode($response) . "\n";
});
查看响应
{
    "orderId": "97d89ffc-2339-4e8f-8032-bf7b8c9ee65b",
    "market": "BTC-EUR",
    "created": 1548686752319,
    "updated": 1548686829227,
    "status": "new",
    "side": "buy",
    "orderType": "limit",
    "amount": "1.1",
    "amountRemaining": "1.1",
    "price": "2000",
    "onHold": "2205.5",
    "onHoldCurrency": "EUR",
    "filledAmount": "0",
    "filledAmountQuote": "0",
    "feePaid": "0",
    "feeCurrency": "EUR",
    "fills": [],
    "selfTradePrevention": "decrementAndCancel",
    "visible": true,
    "timeInForce": "GTC",
    "postOnly": false
}

获取订单

$websock->getOrder("BTC-EUR", "68322e0d-1a41-4e39-bc26-8c9b9a268a81", function($response) {
  echo json_encode($response) . "\n";
});
查看响应
{
    "orderId": "97d89ffc-2339-4e8f-8032-bf7b8c9ee65b",
    "market": "BTC-EUR",
    "created": 1548686752319,
    "updated": 1548686752319,
    "status": "new",
    "side": "buy",
    "orderType": "limit",
    "amount": "1",
    "amountRemaining": "1",
    "price": "2000",
    "onHold": "2005",
    "onHoldCurrency": "EUR",
    "filledAmount": "0",
    "filledAmountQuote": "0",
    "feePaid": "0",
    "feeCurrency": "EUR",
    "fills": [],
    "selfTradePrevention": "decrementAndCancel",
    "visible": true,
    "timeInForce": "GTC",
    "postOnly": false
}

取消订单

$websock->cancelOrder("BTC-EUR", "68322e0d-1a41-4e39-bc26-8c9b9a268a81", function($response) {
  echo json_encode($response) . "\n";
});
查看响应
{
    "orderId":"2557ace7-f9f3-4c15-8911-46022f01cf72"
}

获取订单

返回与获取订单相同,但可用于一次性返回多个订单。

// options: limit, start, end, orderIdFrom, orderIdTo
$websock->getOrders("BTC-EUR", [], function($response) {
  foreach ($response as $order) {
    echo json_encode($order) . "\n";
  }
});
查看响应
{
    "orderId": "97d89ffc-2339-4e8f-8032-bf7b8c9ee65b",
    "market": "BTC-EUR",
    "created": 1548686752319,
    "updated": 1548686829227,
    "status": "new",
    "side": "buy",
    "orderType": "limit",
    "amount": "1.1",
    "amountRemaining": "1.1",
    "price": "2000",
    "onHold": "2205.5",
    "onHoldCurrency": "EUR",
    "filledAmount": "0",
    "filledAmountQuote": "0",
    "feePaid": "0",
    "feeCurrency": "EUR",
    "fills": [],
    "selfTradePrevention": "decrementAndCancel",
    "visible": true,
    "timeInForce": "GTC",
    "postOnly": false
}
{
    "orderId": "d0471852-d753-44a9-bc9a-a3f0ddb7c209",
    "market": "BTC-EUR",
    "created": 1548685870294,
    "updated": 1548685870294,
    "status": "filled",
    "side": "buy",
    "orderType": "limit",
    "amount": "1",
    "amountRemaining": "0",
    "price": "3000",
    "onHold": "0",
    "onHoldCurrency": "EUR",
    "filledAmount": "1",
    "filledAmountQuote": "2996",
    "feePaid": "7.49",
    "feeCurrency": "EUR",
    "fills": [
        {
            "id": "616bfa4e-b3ff-4b3f-a394-1538a49eb9bc",
            "timestamp": 1548685870299,
            "amount": "1",
            "price": "2996",
            "taker": true,
            "fee": "7.49",
            "feeCurrency": "EUR",
            "settled": true
        }
    ],
    "selfTradePrevention": "decrementAndCancel",
    "visible": true,
    "timeInForce": "GTC",
    "postOnly": false
}
{
    "orderId": "80b5f04d-21fc-4ebe-9c5f-6d34f78ee477",
    "market": "BTC-EUR",
    "created": 1548684420771,
    "updated": 1548684420771,
    "status": "filled",
    "side": "buy",
    "orderType": "limit",
    "amount": "1",
    "amountRemaining": "0",
    "price": "3000",
    "onHold": "0",
    "onHoldCurrency": "EUR",
    "filledAmount": "1",
    "filledAmountQuote": "2994.47228569",
    "feePaid": "7.48771431",
    "feeCurrency": "EUR",
    "fills": [
        {
            "id": "ae9b627c-3e64-4c71-b80a-9f674498b478",
            "timestamp": 1548684420781,
            "amount": "0.82771431",
            "price": "2994.3",
            "taker": true,
            "fee": "6.205041567",
            "feeCurrency": "EUR",
            "settled": true
        },
        {
            "id": "64cc0e3d-6e7b-451c-9034-9a6dc6c4665a",
            "timestamp": 1548684420790,
            "amount": "0.17228569",
            "price": "2995.3",
            "taker": true,
            "fee": "1.282672743",
            "feeCurrency": "EUR",
            "settled": true
        }
    ],
    "selfTradePrevention": "decrementAndCancel",
    "visible": true,
    "timeInForce": "GTC",
    "postOnly": false
}
...

取消订单

取消市场中的所有订单。如果未指定市场,将取消该账户的所有订单。

// options: market
$websock->cancelOrders(["market" => "BTC-EUR"], function($response) {
  foreach ($response as $deletion) {
    echo json_encode($deletion) . "\n"; 
  }
});
查看响应
{
    "orderId":"8b1c491b-13bd-40e1-b4fa-7d8ecf1f4fc3"
}
{
    "orderId":"95313ae5-ad65-4430-a0fb-63591bbc337c"
}
{
    "orderId":"2465c3ab-5ae2-4d4d-bec7-345f51b3494d"
}
...

获取未成交订单

返回所有未成交或已取消的订单。

// options: market
$websock->ordersOpen([], function($response) {
  foreach ($response as $order) {
    echo json_encode($order) . "\n";
  }
});
查看响应
{
    "orderId": "97d89ffc-2339-4e8f-8032-bf7b8c9ee65b",
    "market": "BTC-EUR",
    "created": 1548686752319,
    "updated": 1548686829227,
    "status": "new",
    "side": "buy",
    "orderType": "limit",
    "amount": "1.1",
    "amountRemaining": "1.1",
    "price": "2000",
    "onHold": "2205.5",
    "onHoldCurrency": "EUR",
    "filledAmount": "0",
    "filledAmountQuote": "0",
    "feePaid": "0",
    "feeCurrency": "EUR",
    "fills": [],
    "selfTradePrevention": "decrementAndCancel",
    "visible": true,
    "timeInForce": "GTC",
    "postOnly": false
}
{
    "orderId": "2465c3ab-5ae2-4d4d-bec7-345f51b3494d",
    "market": "BTC-EUR",
    "created": 1548686566366,
    "updated": 1548686789695,
    "status": "new",
    "side": "buy",
    "orderType": "limit",
    "amount": "1.0",
    "amountRemaining": "1.0",
    "price": "2200",
    "onHold": "2205",
    "onHoldCurrency": "EUR",
    "filledAmount": "0",
    "filledAmountQuote": "0",
    "feePaid": "0",
    "feeCurrency": "EUR",
    "fills": [],
    "selfTradePrevention": "decrementAndCancel",
    "visible": true,
    "timeInForce": "GTC",
    "postOnly": false
}
 ...

获取交易

返回该账户在市场内的所有交易。

// options: limit, start, end, tradeIdFrom, tradeIdTo
$websock->trades("BTC-EUR", [], function($response) {
  foreach ($response as $trade) {
    echo json_encode($trade) . "\n";
  }
});
查看响应
{
    "id": "616bfa4e-b3ff-4b3f-a394-1538a49eb9bc",
    "timestamp": 1548685870299,
    "market": "BTC-EUR",
    "side": "buy",
    "amount": "1",
    "price": "2996",
    "taker": true,
    "fee": "7.49",
    "feeCurrency": "EUR",
    "settled": true
}
{
    "id": "64cc0e3d-6e7b-451c-9034-9a6dc6c4665a",
    "timestamp": 1548684420790,
    "market": "BTC-EUR",
    "side": "buy",
    "amount": "0.17228569",
    "price": "2995.3",
    "taker": true,
    "fee": "1.282672743",
    "feeCurrency": "EUR",
    "settled": true
}
{
    "id": "ae9b627c-3e64-4c71-b80a-9f674498b478",
    "timestamp": 1548684420781,
    "market": "BTC-EUR",
    "side": "buy",
    "amount": "0.82771431",
    "price": "2994.3",
    "taker": true,
    "fee": "6.205041567",
    "feeCurrency": "EUR",
    "settled": true
}
{
    "id": "f78cc2d2-6044-4a6d-a86f-ff7d307142fb",
    "timestamp": 1548683023452,
    "market": "BTC-EUR",
    "side": "sell",
    "amount": "0.74190125",
    "price": "2992.5",
    "taker": true,
    "fee": "5.549490625",
    "feeCurrency": "EUR",
    "settled": true
}
 ...

获取账户

返回该账户的费用层级。

$websock->account(function($response) {
  echo json_encode($response, JSON_PRETTY_PRINT) . "\n";
});
查看响应
{
  "fees": {
    "taker": "0.0025",
    "maker": "0.0015",
    "volume": "100.00"
  }
}

获取余额

返回该账户的余额。

// options: symbol
$websock->balance([], function($response) {
  foreach ($response as $balance) {
    echo json_encode($balance) . "\n";
  }
});
查看响应
{
  "symbol": "EUR",
  "available": "2599.95",
  "inOrder": "2022.65"
}
{
  "symbol": "BTC",
  "available": "1.65437",
  "inOrder": "0.079398"
}
{
  "symbol": "ADA",
  "available": "4.8",
  "inOrder": "0"
}
{
  "symbol": "BCH",
  "available": "0.00952811",
  "inOrder": "0"
}
{
  "symbol": "BSV",
  "available": "0.00952811",
  "inOrder": "0"
}
...

存入资产

返回可用于存入资金的地址。

$websock->depositAssets("BTC", function($response) {
  echo json_encode($response) . "\n";
});
查看响应
{
    "address": "BitcoinAddress"
}

提取资产

可用于从Bitvavo提取资金。

// optional parameters: paymentId, internal, addWithdrawalFee
$websock->withdrawAssets("BTC", "1", "BitcoinAddress", [], function($response) {
  echo json_encode($response) . "\n";
});
查看响应
{
    "success": true,
    "symbol": "BTC",
    "amount": "1"
}

获取存款历史

返回您账户的存款历史。

// options: symbol, limit, start, end
$websock->depositHistory([], function($response) {
  foreach ($response as $deposit) {
    echo json_encode($deposit) . "\n";
  }
});
查看响应
{
    "timestamp": 1521550025000,
    "symbol": "EUR",
    "amount": "1",
    "fee": "0",
    "status": "completed",
    "address": "NL12RABO324234234"
}
{
    "timestamp": 1511873910000,
    "symbol": "BTC",
    "amount": "0.099",
    "fee": "0",
    "status": "completed",
    "txId": "0c6497e608212a516b8218674cb0ca04f65b67a00fe8bddaa1ecb03e9b029255"
}
...

获取提取历史

返回账户的提取历史。

// options: symbol, limit, start, end
$websock->withdrawalHistory([], function($response) {
  foreach ($response as $withdrawal) {
    echo json_encode($withdrawal) . "\n";
  }
});
查看响应
{
    "timestamp": 1548687467000,
    "symbol": "BTC",
    "amount": "0.99994",
    "fee": "0.00006",
    "status": "awaiting_processing",
    "address": "1CqtG5z55x7bYD5GxsAXPx59DEyujs4bjm"
}
{
    "timestamp": 1548682993000,
    "symbol": "BTC",
    "amount": "0.99994",
    "fee": "0.00006",
    "status": "awaiting_processing",
    "address": "1CqtG5z55x7bYD5GxsAXPx59DEyujs4bjm"
}
{
    "timestamp": 1548425559000,
    "symbol": "BTC",
    "amount": "0.09994",
    "fee": "0.00006",
    "status": "awaiting_processing",
    "address": "1CqtG5z55x7bYD5GxsAXPx59DEyujs4bjm"
}
{
    "timestamp": 1548409721000,
    "symbol": "EUR",
    "amount": "50",
    "fee": "0",
    "status": "completed",
    "address": "NL123BIM"
}
{
    "timestamp": 1537803091000,
    "symbol": "BTC",
    "amount": "0.01939",
    "fee": "0.00002",
    "status": "completed",
    "txId": "da2299c86fce67eb899aeaafbe1f81cf663a3850cf9f3337c92b2d87945532db",
    "address": "3QpyxeA7yWWsSURXEmuBBzHpxjqn7Rbyme"
}
...

订阅

交易牌价订阅

每次最佳买入价、最佳卖出价或最新价格发生变化时发送更新。

$websock->subscriptionTicker("BTC-EUR", function($response) {
  echo json_encode($response) . "\n";
});
查看响应
{
    "event": "ticker",
    "market": "BTC-EUR",
    "bestAsk": "9410.1",
    "bestAskSize": "0.10847628",
    "lastPrice": "9335"
}

24小时交易牌价订阅

更新后的ticker24h对象将每秒通过此通道发送一次。如果除时间戳之外的值发生变化,则认为ticker24h对象已更新。

$websock->subscriptionTicker24h("BTC-EUR", function($response) {
  echo json_encode($response) . "\n";
});
查看响应
{
    "market": "BTC-EUR",
    "open": "10061",
    "high": "10061",
    "low": "9265.4",
    "last": "9400.3",
    "volume": "309.30172822",
    "volumeQuote": "2993760.89",
    "bid": "9400.1",
    "bidSize": "0.10576468",
    "ask": "9400.4",
    "askSize": "0.10858821",
    "timestamp": 1565777506453
}

账户订阅

每当发生与账户相关的事件时,都会发送更新。这些是“订单”事件(创建、更新、取消)或“成交”事件(发生了交易)。

$websock->subscriptionAccount("BTC-EUR", function($function){
  echo json_encode($response) . "\n";
});
查看响应
Fill:
{
    "event": "fill",
    "timestamp": 1548688159231,
    "market": "BTC-EUR",
    "orderId": "a7844f9d-2f63-46ae-b96f-0df1a63dc6ae",
    "fillId": "0b921924-9ee7-4276-b63c-1681f49d016c",
    "side": "buy",
    "amount": "0.36346668",
    "price": "2993.9",
    "taker": true,
    "fee": "2.717106748",
    "feeCurrency": "EUR"
}

Order:
{
    "event": "order",
    "orderId": "a7844f9d-2f63-46ae-b96f-0df1a63dc6ae",
    "market": "BTC-EUR",
    "created": 1548688159220,
    "updated": 1548688159220,
    "status": "filled",
    "side": "buy",
    "orderType": "limit",
    "amount": "1",
    "amountRemaining": "0",
    "price": "3000",
    "onHold": "2.24",
    "onHoldCurrency": "EUR",
    "selfTradePrevention": "decrementAndCancel",
    "visible": true,
    "timeInForce": "GTC",
    "postOnly": false
}

蜡烛订阅

对于指定区间和市场的每笔交易发送更新的蜡烛。

$websock->subscriptionCandles("BTC-EUR", "1h", function($response) {
  echo json_encode($response) . "\n";
});
查看响应
{
    "event": "candle",
    "market": "BTC-EUR",
    "interval": "1h",
    "candle": [
        [
            1548687600000,
            "2998.2",
            "3000.3",
            "2990.8",
            "2998.2",
            "3.05"
        ]
    ]
}

交易订阅

每当该市场发生交易时发送更新。对于您自己的交易,请订阅账户。

$websock->subscriptionTrades("BTC-EUR", function($response) {
  echo json_encode($response) . "\n";
});
查看响应
{
    "event": "trade",
    "timestamp": 1548688231625,
    "market": "BTC-EUR",
    "id": "9956f4c9-b9e3-4ec9-9793-1070ef56c016",
    "amount": "0.05",
    "price": "2992.9",
    "side": "sell"
}

订单簿订阅

每当该特定市场的订单簿发生变化时发送更新。返回一个由元组([价格,数量])组成的列表,其中数量‘0’表示该价格没有更多订单。如果您想维护自己订单簿的副本,请考虑使用下一个函数。尽管将接收到所有更新,但与其他语言相比可能会略有延迟。在使用此函数进行自动交易时,请考虑用另一种语言进行编码。

$webSock->subscriptionBookUpdate("BTC-EUR", function($response){
  echo json_encode($response) . "\n";
});
查看响应
{
    "event": "book",
    "market": "BTC-EUR",
    "nonce": 18592,
    "bids": [
        [
            "2986",
            "0"
        ]
    ],
    "asks": [
        [
            "2986.6",
            "0"
        ],
        [
            "2986.5",
            "0.00335008"
        ]
    ]
}

带有本地副本的订单簿订阅

这是“按市场获取图书”和“图书订阅”的结合,它维护了本地副本。每当订单簿更新时,整个订单簿都会返回到回调函数中,而图书订阅只会返回图书的更新。虽然会接收到所有更新,但与其他语言相比可能会略有延迟。在用于自动化交易时,请考虑使用其他语言的编码。

$websock->subscriptionBook("BTC-EUR", function($response) {
  echo json_encode($response) . "\n";
});
查看响应
{
    "bids": [
        [
            "2986.3",
            "0.0033503"
        ],
        [
            "2985.8",
            "0.00335087"
        ],
        [
            "2985",
            "0.00335176"
        ],
        [
            "2984.4",
            "0.00335244"
        ],
        [
            "2984.1",
            "2.06836375"
        ],
        ...
    ],
    "asks": [
        [
            "2986.4",
            "0.00335019"
        ],
        [
            "2987.1",
            "0.00334996"
        ],
        [
            "2987.5",
            "0.00335008"
        ],
        [
            "2988.2",
            "0.00334996"
        ],
        [
            "2989",
            "5.19132723"
        ],
        ...
    ],
    "nonce": 18632
}