正在显示
4 个修改的文件
包含
53 行增加
和
2 行删除
| @@ -287,4 +287,25 @@ class CmBroker | @@ -287,4 +287,25 @@ class CmBroker | ||
| 287 | } | 287 | } |
| 288 | return -1; | 288 | return -1; |
| 289 | } | 289 | } |
| 290 | + /** | ||
| 291 | + * 获取k线数据 | ||
| 292 | + * @param string $symbol 交易对 | ||
| 293 | + * @param string $peroid 周期 | ||
| 294 | + * @param int $limit 限制数量 | ||
| 295 | + * @return Kline[] 返回K线数组 | ||
| 296 | + */ | ||
| 297 | + public function getKlines($symbol, $peroid, $limit = 100) | ||
| 298 | + { | ||
| 299 | + $symbolOri = $this->getSymbolOri($symbol, $this->plat); | ||
| 300 | + if ($this->plat == 'okx') { | ||
| 301 | + $klines = $this->exBroker->getKlines($symbolOri, $peroid, $limit); | ||
| 302 | + $newKlines = []; | ||
| 303 | + foreach ($klines as $key => $value) { | ||
| 304 | + $kline = Kline::transferOkx($value); | ||
| 305 | + $newKlines[] = $kline; | ||
| 306 | + } | ||
| 307 | + return $newKlines; | ||
| 308 | + } | ||
| 309 | + return []; | ||
| 310 | + } | ||
| 290 | } | 311 | } |
| @@ -54,6 +54,13 @@ class Api | @@ -54,6 +54,13 @@ class Api | ||
| 54 | return $this->request($path, $method, $param); | 54 | return $this->request($path, $method, $param); |
| 55 | } | 55 | } |
| 56 | 56 | ||
| 57 | + //获取k线 | ||
| 58 | + public function klines($param) | ||
| 59 | + { | ||
| 60 | + $path = "/api/v5/market/index-candles"; | ||
| 61 | + $method = 'GET'; | ||
| 62 | + return $this->request($path, $method, $param); | ||
| 63 | + } | ||
| 57 | 64 | ||
| 58 | //-----------private interface ------------ | 65 | //-----------private interface ------------ |
| 59 | // 查询杠杆 | 66 | // 查询杠杆 |
| @@ -348,4 +348,22 @@ class ExBroker | @@ -348,4 +348,22 @@ class ExBroker | ||
| 348 | } | 348 | } |
| 349 | return -1; | 349 | return -1; |
| 350 | } | 350 | } |
| 351 | + //获取k线 | ||
| 352 | + public function getKlines($symbol, $period, $limit = "", $startTs = "", $endTs = "") | ||
| 353 | + { | ||
| 354 | + $param = [ | ||
| 355 | + 'instId' => $symbol, | ||
| 356 | + 'bar' => $period, | ||
| 357 | + ]; | ||
| 358 | + if ($limit) { | ||
| 359 | + $param['limit'] = $limit; | ||
| 360 | + } | ||
| 361 | + if ($startTs) { | ||
| 362 | + $param['after'] = $startTs; | ||
| 363 | + } | ||
| 364 | + if ($endTs) { | ||
| 365 | + $param['before'] = $endTs; | ||
| 366 | + } | ||
| 367 | + return $this->api->klines($param); | ||
| 368 | + } | ||
| 351 | } | 369 | } |
| @@ -41,8 +41,13 @@ class Kline | @@ -41,8 +41,13 @@ class Kline | ||
| 41 | $high = $data[2]; | 41 | $high = $data[2]; |
| 42 | $low = $data[3]; | 42 | $low = $data[3]; |
| 43 | $close = $data[4]; | 43 | $close = $data[4]; |
| 44 | - $vol = $data[6]; | ||
| 45 | - $volQuote = $data[7]; | 44 | + if (count($data) > 6) { |
| 45 | + $vol = $data[6]; | ||
| 46 | + $volQuote = $data[7]; | ||
| 47 | + } else { | ||
| 48 | + $vol = 0; | ||
| 49 | + $volQuote = 0; | ||
| 50 | + } | ||
| 46 | return new Kline($time, $open, $high, $low, $close, $vol, $volQuote); | 51 | return new Kline($time, $open, $high, $low, $close, $vol, $volQuote); |
| 47 | } | 52 | } |
| 48 | } | 53 | } |
-
请 注册 或 登录 后发表评论