|
...
|
...
|
@@ -178,4 +178,38 @@ class ExBroker |
|
|
|
$this->wsAcc->close();
|
|
|
|
$this->wsKline->close();
|
|
|
|
}
|
|
|
|
public function closeAllPos()
|
|
|
|
{
|
|
|
|
//获取所有仓位
|
|
|
|
$param = [
|
|
|
|
'instType' => 'SWAP'
|
|
|
|
];
|
|
|
|
$res = $this->api->getPositions($param);
|
|
|
|
if ($res['code'] == 0) {
|
|
|
|
$positions = $res['data'];
|
|
|
|
foreach ($positions as $key => $value) {
|
|
|
|
if ($value['pos'] != 0) {
|
|
|
|
$this->clsoePos($value['instId'], $value['posSide'], abs($value['pos']), $value['mgnMode']);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 平仓
|
|
|
|
private function clsoePos($instId, $posSide, $size, $tdMode)
|
|
|
|
{
|
|
|
|
$param = [
|
|
|
|
'instId' => $instId,
|
|
|
|
'tdMode' => $tdMode,
|
|
|
|
'side' => strtoupper($posSide) == 'LONG' ? 'sell' : 'buy',
|
|
|
|
'posSide' => $posSide,
|
|
|
|
'ordType' => 'market',
|
|
|
|
'sz' => $size,
|
|
|
|
];
|
|
|
|
$res = $this->api->placeOrder($param);
|
|
|
|
if ($res['code'] == 0) {
|
|
|
|
return true;
|
|
|
|
} else {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|