作者 karlet

feat:优化持仓处理

@@ -231,12 +231,12 @@ class CmBroker @@ -231,12 +231,12 @@ class CmBroker
231 $wsDataPos = WsDataPos::TransferBybitPos($value, $this->symbolInfos, function ($symbol) { 231 $wsDataPos = WsDataPos::TransferBybitPos($value, $this->symbolInfos, function ($symbol) {
232 return $this->getSymbolSt($symbol); 232 return $this->getSymbolSt($symbol);
233 }); 233 });
234 - }  
235 - if ($wsDataPos != null) {  
236 - $pos = Pos::transferWsDataPos($wsDataPos);  
237 - $this->positions[$wsDataPos->symbol . "_" . $wsDataPos->posSide] = $pos;  
238 - $wsData = new WsData($this->plat, 'pos', $trade = null, $pos = $wsDataPos);  
239 - $onData($wsData); 234 + if ($wsDataPos != null) {
  235 + $pos = Pos::transferWsDataPos($wsDataPos);
  236 + $this->positions[$wsDataPos->symbol . "_" . $wsDataPos->posSide] = $pos;
  237 + $wsData = new WsData($this->plat, 'pos', $trade = null, $pos = $wsDataPos);
  238 + $onData($wsData);
  239 + }
240 } 240 }
241 return; 241 return;
242 } 242 }
@@ -79,7 +79,13 @@ class WsDataPos @@ -79,7 +79,13 @@ class WsDataPos
79 if ($symbolInfo === null) { 79 if ($symbolInfo === null) {
80 return null; 80 return null;
81 } 81 }
82 - $posSide = strtoupper($data['side']); 82 + $posSide = "BOTH";
  83 + if ($data['positionIdx'] == 1) {
  84 + $posSide = "LONG";
  85 + }
  86 + if ($data['positionIdx'] == 2) {
  87 + $posSide = "SHORT";
  88 + }
83 $qty = (float)$data['size']; 89 $qty = (float)$data['size'];
84 $lot = $qty; 90 $lot = $qty;
85 $avgPrice = (float)$data['entryPrice']; 91 $avgPrice = (float)$data['entryPrice'];