作者 karlet

feat:k线获取

... ... @@ -771,6 +771,52 @@ class CmBroker
}
return [];
}
/**
* 获取k线数据 根据开始结束时间
* @param string $symbol 交易对
* @param string $peroid 周期
* @param int $startTs 开始时间
* @param int $endTs 结束时间
* @return Kline[] 返回K线数组
*/
public function getKlinesBt($symbol, $peroid, $startTs, $endTs)
{
$symbolOri = $this->getSymbolOri($symbol);
$peroidOri = $this->getPeriodOri($this->plat, $peroid);
if ($this->plat == self::PLAT_OKX) {
$limit = 100;
$res = $this->exBroker->getKlines($symbolOri, $peroidOri, $limit);
if ($res['code'] != '0') {
return [];
}
$newKlines = [];
foreach ($res['data'] as $key => $value) {
$kline = Kline::transferOkx($value);
$newKlines[] = $kline;
}
//把 $newKlines 倒序
$newKlines = array_reverse($newKlines);
return $newKlines;
}
if ($this->plat == self::PLAT_BINANCE) {
// $res = $this->exBroker->getKlines($symbolOri, $peroidOri, $limit);
$res = $this->exBroker->getKlines($symbolOri, $peroidOri, 1500, $startTs, $endTs);
if (count($res) == 0) {
return [];
}
$newKlines = [];
foreach ($res as $key => $value) {
$kline = Kline::transferBinanceRest($value);
$newKlines[] = $kline;
}
//把 $newKlines 倒序
$newKlines = array_reverse($newKlines);
return $newKlines;
}
return [];
}
public function initPositions()
{
$this->positions = $this->getAllPos();
... ...