作者 karlet

feat:币安增加k线获取

@@ -739,6 +739,20 @@ class CmBroker @@ -739,6 +739,20 @@ class CmBroker
739 $newKlines = array_reverse($newKlines); 739 $newKlines = array_reverse($newKlines);
740 return $newKlines; 740 return $newKlines;
741 } 741 }
  742 + if ($this->plat == self::PLAT_BINANCE) {
  743 + $res = $this->exBroker->getKlines($symbolOri, $peroidOri, $limit);
  744 + if ($res['code'] != 0) {
  745 + return [];
  746 + }
  747 + $newKlines = [];
  748 + foreach ($res['data'] as $key => $value) {
  749 + $kline = Kline::transferBinanceRest($value);
  750 + $newKlines[] = $kline;
  751 + }
  752 + //把 $newKlines 倒序
  753 + $newKlines = array_reverse($newKlines);
  754 + return $newKlines;
  755 + }
742 return []; 756 return [];
743 } 757 }
744 public function initPositions() 758 public function initPositions()
@@ -37,6 +37,13 @@ class Api @@ -37,6 +37,13 @@ class Api
37 $method = "GET"; 37 $method = "GET";
38 return $this->request($method, $url, $params); 38 return $this->request($method, $url, $params);
39 } 39 }
  40 + //获取k线
  41 + public function klines($params)
  42 + {
  43 + $url = "/fapi/v1/klines";
  44 + $method = "GET";
  45 + return $this->request($method, $url, $params);
  46 + }
40 47
41 //-------private interface ------------ 48 //-------private interface ------------
42 //获取用户监听key 49 //获取用户监听key
@@ -164,4 +164,21 @@ class ExBroker @@ -164,4 +164,21 @@ class ExBroker
164 $res = $this->api->symbolConfig(['symbol' => $symbol]); 164 $res = $this->api->symbolConfig(['symbol' => $symbol]);
165 return $res; 165 return $res;
166 } 166 }
  167 + //获取k线
  168 + public function getKlines($symbol, $interval, $limit = 200, $start = '', $end = '')
  169 + {
  170 + $params = [
  171 + 'symbol' => $symbol,
  172 + 'interval' => $interval,
  173 + 'limit' => $limit,
  174 + ];
  175 + if ($start) {
  176 + $params['startTime'] = $start;
  177 + }
  178 + if ($end) {
  179 + $params['endTime'] = $end;
  180 + }
  181 + $res = $this->api->klines($params);
  182 + return $res;
  183 + }
167 } 184 }
@@ -14,4 +14,12 @@ class ApiInfo @@ -14,4 +14,12 @@ class ApiInfo
14 $this->secret = $secret; 14 $this->secret = $secret;
15 $this->passphrase = $passphrase; 15 $this->passphrase = $passphrase;
16 } 16 }
  17 + public function toArray()
  18 + {
  19 + return [
  20 + 'key' => $this->key,
  21 + 'secret' => $this->secret,
  22 + 'passphrase' => $this->passphrase,
  23 + ];
  24 + }
17 } 25 }
@@ -71,6 +71,19 @@ class Kline @@ -71,6 +71,19 @@ class Kline
71 $isFinal = $kline['x']; 71 $isFinal = $kline['x'];
72 return new Kline($time, $open, $high, $low, $close, $vol, $volQuote, $uts, $isFinal); 72 return new Kline($time, $open, $high, $low, $close, $vol, $volQuote, $uts, $isFinal);
73 } 73 }
  74 + public static function transferBinanceRest($data)
  75 + {
  76 + $time = $data[0];
  77 + $open = $data[1];
  78 + $high = $data[2];
  79 + $low = $data[3];
  80 + $close = $data[4];
  81 + $vol = $data[5];
  82 + $volQuote = $data[7];
  83 + $uts = $data[0];
  84 + $isFinal = true;
  85 + return new Kline($time, $open, $high, $low, $close, $vol, $volQuote, $uts, $isFinal);
  86 + }
74 public static function transferBybit($data) 87 public static function transferBybit($data)
75 { 88 {
76 $kline = $data['data'][0]; 89 $kline = $data['data'][0];