作者 karlet

feat:增加k线数据获取

... ... @@ -287,4 +287,25 @@ class CmBroker
}
return -1;
}
/**
* 获取k线数据
* @param string $symbol 交易对
* @param string $peroid 周期
* @param int $limit 限制数量
* @return Kline[] 返回K线数组
*/
public function getKlines($symbol, $peroid, $limit = 100)
{
$symbolOri = $this->getSymbolOri($symbol, $this->plat);
if ($this->plat == 'okx') {
$klines = $this->exBroker->getKlines($symbolOri, $peroid, $limit);
$newKlines = [];
foreach ($klines as $key => $value) {
$kline = Kline::transferOkx($value);
$newKlines[] = $kline;
}
return $newKlines;
}
return [];
}
}
... ...
... ... @@ -54,6 +54,13 @@ class Api
return $this->request($path, $method, $param);
}
//获取k线
public function klines($param)
{
$path = "/api/v5/market/index-candles";
$method = 'GET';
return $this->request($path, $method, $param);
}
//-----------private interface ------------
// 查询杠杆
... ...
... ... @@ -348,4 +348,22 @@ class ExBroker
}
return -1;
}
//获取k线
public function getKlines($symbol, $period, $limit = "", $startTs = "", $endTs = "")
{
$param = [
'instId' => $symbol,
'bar' => $period,
];
if ($limit) {
$param['limit'] = $limit;
}
if ($startTs) {
$param['after'] = $startTs;
}
if ($endTs) {
$param['before'] = $endTs;
}
return $this->api->klines($param);
}
}
... ...
... ... @@ -41,8 +41,13 @@ class Kline
$high = $data[2];
$low = $data[3];
$close = $data[4];
$vol = $data[6];
$volQuote = $data[7];
if (count($data) > 6) {
$vol = $data[6];
$volQuote = $data[7];
} else {
$vol = 0;
$volQuote = 0;
}
return new Kline($time, $open, $high, $low, $close, $vol, $volQuote);
}
}
... ...