作者 karlet

feat:获取ticker

<?php
require_once __DIR__ . '/../trader/CmBroker.php';
require_once __DIR__ . '/../trader/struct/ApiInfo.php';
require_once __DIR__ . '/../jytools/BinanceFutures.php';
require_once __DIR__ . '/../jytools/func.php';
use trader\struct\ApiInfo;
use trader\struct\WsData;
use trader\CmBroker;
use function jytools\output;
$key = "";
$secret = "";
$passphrse = "";
$apiInfo = new ApiInfo($key, $secret, $passphrse);
$wsHost = "ws://okws.keetu.com";
$restHost = "http://okapi.keetu.com";
$broker = new CmBroker(CmBroker::PLAT_OKX, $apiInfo, $wsHost, $restHost);
output("开始测试");
$res = $broker->getIndexTickers();
output($res);
... ...
... ... @@ -17,6 +17,7 @@ require_once __DIR__ . '/struct/WsDataOrder.php';
require_once __DIR__ . '/struct/WsDataAccount.php';
require_once __DIR__ . '/struct/Pos.php';
require_once __DIR__ . '/struct/Premium.php';
require_once __DIR__ . '/struct/IndexTicker.php';
require_once __DIR__ . '/../jytools/func.php';
require_once __DIR__ . '/../jytools/Websocket.php';
... ... @@ -36,6 +37,7 @@ use trader\struct\WsDataOrder;
use trader\struct\WsDataAccount;
use trader\struct\Pos;
use trader\struct\Premium;
use trader\struct\IndexTicker;
use \Exception;
use function jytools\timeFormat;
use function jytools\getMicrotime;
... ... @@ -842,4 +844,12 @@ class CmBroker
{
$this->exBroker->subDepth($symbol, $onData);
}
public function getIndexTickers()
{
$res = $this->exBroker->getIndexTickers();
if ($res && $res['code'] == '0') {
return IndexTicker::transferOkxData($res['data']);
}
return [];
}
}
... ...
... ... @@ -62,6 +62,14 @@ class Api
return $this->request($path, $method, $param);
}
//获取指数行情
public function indexTickers($param)
{
$path = '/api/v5/market/index-tickers';
$method = 'GET';
return $this->request($path, $method, $param);
}
//-----------private interface ------------
// 查询杠杆
public function leverageInfo($param)
... ...
... ... @@ -421,4 +421,12 @@ class ExBroker
];
return $this->api->getOrderPending($param);
}
public function getIndexTickers()
{
$param = [
'quoteCcy' => 'USDT',
];
$res = $this->api->indexTickers($param);
return $res;
}
}
... ...
<?php
namespace trader\struct;
class IndexTicker
{
public string $symbol = "";
public float $price = 0.0;
public float $high24 = 0.0;
public float $low24 = 0.0;
public float $open24 = 0.0;
public function __construct($symbol, $price, $high24, $low24, $open24)
{
$this->symbol = $symbol;
$this->price = $price;
$this->high24 = $high24;
$this->low24 = $low24;
$this->open24 = $open24;
}
public function toArray()
{
return [
'symbol' => $this->symbol,
'price' => $this->price,
'high24' => $this->high24,
'low24' => $this->low24,
'open24' => $this->open24,
];
}
public static function transferOkxData($data): array
{
$res = [];
foreach ($data as $item) {
$symbol = str_replace('-', '', $item['instId']);
$res[] = new IndexTicker($symbol, $item['idxPx'], $item['high24h'], $item['low24h'], $item['open24h']);
}
return $res;
}
}
... ...