作者 karlet

feat:增加获取杠杆

@@ -236,4 +236,18 @@ class CmBroker @@ -236,4 +236,18 @@ class CmBroker
236 { 236 {
237 $this->exBroker->setLongShortMode($isLongShort); 237 $this->exBroker->setLongShortMode($isLongShort);
238 } 238 }
  239 + //获取全部品种的杠杆
  240 + public function getLevers()
  241 + {
  242 + $levers = $this->exBroker->getAllLevers();
  243 + if ($this->plat == 'okx') {
  244 + $resNew = [];
  245 + foreach ($levers as $key => $value) {
  246 + $symbol = $this->getSymbolSt($key); //转换为标准交易对
  247 + $resNew[$symbol] = $value;
  248 + }
  249 + $levers = $resNew;
  250 + }
  251 + return $levers;
  252 + }
239 } 253 }
@@ -240,4 +240,50 @@ class ExBroker @@ -240,4 +240,50 @@ class ExBroker
240 $res = $this->api->setPositionMode($param); 240 $res = $this->api->setPositionMode($param);
241 output("设置持仓模式", $res); 241 output("设置持仓模式", $res);
242 } 242 }
  243 + //获取所有品种杠杆信息
  244 + public function getAllLevers()
  245 + {
  246 + //获取所有USDT SWAP 交易对
  247 + $res = $this->api->instruments(["instType" => "SWAP"]);
  248 + $Symbols = [];
  249 + foreach ($res["data"] as $key => $value) {
  250 + if ($value["settleCcy"] == "USDT") {
  251 + $Symbols[] = $value["instId"];
  252 + }
  253 + }
  254 + //获取所有品种的杠杆信息
  255 + return $this->getLevers($Symbols);
  256 + }
  257 + //获取杠杆
  258 + private function getLevers($symbols)
  259 + {
  260 + $levers = [];
  261 + $param = [
  262 + 'mgnMode' => 'cross'
  263 + ];
  264 + $count = 0;
  265 + $instId = '';
  266 + foreach ($symbols as $key => $value) {
  267 + $count++;
  268 + if ($instId == '') {
  269 + $instId = $value;
  270 + } else {
  271 + $instId = $instId . ',' . $value;
  272 + }
  273 + if ($count % 20 == 0 || $count == count($symbols)) {
  274 + $param['instId'] = $instId;
  275 + $instId = '';
  276 + $res = $this->api->leverageInfo($param, $this->apiInfo);
  277 + if ($res['code'] == 0) {
  278 + foreach ($res["data"] as $key => $value) {
  279 + $levers[$value["instId"]] = $value["lever"];
  280 + }
  281 + } else {
  282 + var_dump($res);
  283 + break;
  284 + }
  285 + }
  286 + }
  287 + return $levers;
  288 + }
243 } 289 }