|
...
|
...
|
@@ -203,26 +203,43 @@ class WsDataOrder |
|
|
|
}
|
|
|
|
public static function TransferBitgetOrder(array $data, array $symbolInfos, callable $toSymbolSt): WsDataOrder|null
|
|
|
|
{
|
|
|
|
$symbol = call_user_func($toSymbolSt, $data['symbol']);
|
|
|
|
var_dump($data);
|
|
|
|
$symbol = call_user_func($toSymbolSt, $data['instId']);
|
|
|
|
/** @var SymbolInfo $symbolInfo */
|
|
|
|
$symbolInfo = $symbolInfos[$symbol] ?? null;
|
|
|
|
if ($symbolInfo === null) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
$posSide = strtoupper($data['posSide']);
|
|
|
|
if ($posSide == 'NET') {
|
|
|
|
$posSide = 'BOTH';
|
|
|
|
}
|
|
|
|
$avgPx = 0;
|
|
|
|
if (isset($data['priceAvg'])) {
|
|
|
|
$avgPx = (float)$data['priceAvg'];
|
|
|
|
}
|
|
|
|
$ordType = strtoupper($data['orderType']);
|
|
|
|
$timeInForce = strtoupper($data['force']);
|
|
|
|
if ($ordType == 'LIMIT' && $timeInForce == 'IOC') {
|
|
|
|
$ordType = 'IOC';
|
|
|
|
}
|
|
|
|
$pnl = 0;
|
|
|
|
if (isset($data['pnl'])) {
|
|
|
|
$pnl = (float)$data['pnl'];
|
|
|
|
}
|
|
|
|
return new WsDataOrder(
|
|
|
|
'bitget',
|
|
|
|
'BOTH',
|
|
|
|
$posSide,
|
|
|
|
$symbol,
|
|
|
|
strtoupper($data['side']),
|
|
|
|
(float)$data['price'],
|
|
|
|
(float)$data['fillPrice'],
|
|
|
|
$avgPx,
|
|
|
|
(float)$data['size'],
|
|
|
|
(float)$data['size'],
|
|
|
|
0,
|
|
|
|
$pnl,
|
|
|
|
(int)($data['cTime']),
|
|
|
|
(int)($data['uTime']),
|
|
|
|
strtoupper($data['orderType']),
|
|
|
|
$ordType,
|
|
|
|
$data['clientOid'],
|
|
|
|
$data['orderId'],
|
|
|
|
self::getBitgetStatus($data['status'])
|
|
...
|
...
|
@@ -232,9 +249,9 @@ class WsDataOrder |
|
|
|
private static function getBitgetStatus($status)
|
|
|
|
{
|
|
|
|
switch ($status) {
|
|
|
|
case 'new':
|
|
|
|
case 'live':
|
|
|
|
return 'LIVE';
|
|
|
|
case 'partial-filled':
|
|
|
|
case 'partially_filled':
|
|
|
|
return 'PARTIALLY_FILLED';
|
|
|
|
case 'filled':
|
|
|
|
return 'FILLED';
|
...
|
...
|
|