|
@@ -89,59 +89,69 @@ class CmBroker |
|
@@ -89,59 +89,69 @@ class CmBroker |
|
89
|
$this->exBroker->accListen(function ($data) use ($onData) {
|
89
|
$this->exBroker->accListen(function ($data) use ($onData) {
|
|
90
|
// output("ws 有效数据", $data);
|
90
|
// output("ws 有效数据", $data);
|
|
91
|
if ($this->plat == self::PLAT_BINANCE) {
|
91
|
if ($this->plat == self::PLAT_BINANCE) {
|
|
92
|
- $this->msg("binance 无处理ws数据实现");
|
92
|
+ $this->binanceAccDataHandle($data, $onData);
|
|
93
|
}
|
93
|
}
|
|
94
|
if ($this->plat == self::PLAT_OKX) {
|
94
|
if ($this->plat == self::PLAT_OKX) {
|
|
95
|
- if (isset($data['arg']) && $data['arg']['channel'] == 'orders') {
|
|
|
|
96
|
- foreach ($data['data'] as $key => $value) {
|
|
|
|
97
|
- $wsDataTrade = WsDataTrade::TransferOkxOrder($value, $this->symbolInfos, function ($symbol) {
|
|
|
|
98
|
- return $this->getSymbolSt($symbol);
|
|
|
|
99
|
- });
|
|
|
|
100
|
- if ($wsDataTrade != null) {
|
|
|
|
101
|
- $wsData = new WsData($this->plat, 'trade', $trade = $wsDataTrade);
|
|
|
|
102
|
- $onData($wsData);
|
|
|
|
103
|
- }
|
|
|
|
104
|
- $wsDataOrd = WsDataOrder::TransferOkxOrder($value, $this->symbolInfos, function ($symbol) {
|
|
|
|
105
|
- return $this->getSymbolSt($symbol);
|
|
|
|
106
|
- });
|
|
|
|
107
|
- if ($wsDataOrd != null) {
|
|
|
|
108
|
- $wsData = new WsData($this->plat, 'order', $trade = null, $pos = null, $order = $wsDataOrd);
|
|
|
|
109
|
- $onData($wsData);
|
|
|
|
110
|
- }
|
|
|
|
111
|
- }
|
|
|
|
112
|
- return;
|
95
|
+ $this->okxAccDataHandle($data, $onData);
|
|
|
|
96
|
+ }
|
|
|
|
97
|
+ });
|
|
|
|
98
|
+ }
|
|
|
|
99
|
+ //处理币安相关账户数据监听
|
|
|
|
100
|
+ private function binanceAccDataHandle($data, $onData)
|
|
|
|
101
|
+ {
|
|
|
|
102
|
+ $this->msg("binance 推送", $data);
|
|
|
|
103
|
+ }
|
|
|
|
104
|
+ //处理欧意账户相关数据监听
|
|
|
|
105
|
+ private function okxAccDataHandle($data, $onData)
|
|
|
|
106
|
+ {
|
|
|
|
107
|
+ if (isset($data['arg']) && $data['arg']['channel'] == 'orders') {
|
|
|
|
108
|
+ foreach ($data['data'] as $key => $value) {
|
|
|
|
109
|
+ $wsDataTrade = WsDataTrade::TransferOkxOrder($value, $this->symbolInfos, function ($symbol) {
|
|
|
|
110
|
+ return $this->getSymbolSt($symbol);
|
|
|
|
111
|
+ });
|
|
|
|
112
|
+ if ($wsDataTrade != null) {
|
|
|
|
113
|
+ $wsData = new WsData($this->plat, 'trade', $trade = $wsDataTrade);
|
|
|
|
114
|
+ $onData($wsData);
|
|
113
|
}
|
115
|
}
|
|
114
|
- if (isset($data['arg']) && $data['arg']['channel'] == 'positions') {
|
|
|
|
115
|
- $positions = [];
|
|
|
|
116
|
- $eventType = $data['eventType'];
|
|
|
|
117
|
- foreach ($data['data'] as $key => $value) {
|
|
|
|
118
|
- $wsDataPos = WsDataPos::TransferOkxPos($value, $this->symbolInfos, function ($symbol) {
|
|
|
|
119
|
- return $this->getSymbolSt($symbol);
|
|
|
|
120
|
- });
|
|
|
|
121
|
- if ($wsDataPos) {
|
|
|
|
122
|
- $pos = Pos::transferWsDataPos($wsDataPos);
|
|
|
|
123
|
- $positions[$wsDataPos->symbol . "_" . $wsDataPos->posSide] = $pos;
|
|
|
|
124
|
- $wsData = new WsData($this->plat, 'pos', $trade = null, $pos = $wsDataPos);
|
|
|
|
125
|
- $onData($wsData);
|
|
|
|
126
|
- if ($eventType == 'event_update') {
|
|
|
|
127
|
- $this->positions[$wsDataPos->symbol . "_" . $wsDataPos->posSide] = $pos;
|
|
|
|
128
|
- }
|
|
|
|
129
|
- }
|
|
|
|
130
|
- }
|
|
|
|
131
|
- if ($eventType == 'snapshot') {
|
|
|
|
132
|
- $this->positions = $positions;
|
|
|
|
133
|
- }
|
|
|
|
134
|
- return;
|
116
|
+ $wsDataOrd = WsDataOrder::TransferOkxOrder($value, $this->symbolInfos, function ($symbol) {
|
|
|
|
117
|
+ return $this->getSymbolSt($symbol);
|
|
|
|
118
|
+ });
|
|
|
|
119
|
+ if ($wsDataOrd != null) {
|
|
|
|
120
|
+ $wsData = new WsData($this->plat, 'order', $trade = null, $pos = null, $order = $wsDataOrd);
|
|
|
|
121
|
+ $onData($wsData);
|
|
135
|
}
|
122
|
}
|
|
136
|
- if (isset($data['arg']) && $data['arg']['channel'] == 'account') {
|
|
|
|
137
|
- $wsDataAccount = WsDataAccount::TransferOkxAccount($data['data']);
|
|
|
|
138
|
- $wsData = new WsData($this->plat, 'account', $trade = null, $pos = null, $order = null, $account = $wsDataAccount);
|
123
|
+ }
|
|
|
|
124
|
+ return;
|
|
|
|
125
|
+ }
|
|
|
|
126
|
+ if (isset($data['arg']) && $data['arg']['channel'] == 'positions') {
|
|
|
|
127
|
+ $positions = [];
|
|
|
|
128
|
+ $eventType = $data['eventType'];
|
|
|
|
129
|
+ foreach ($data['data'] as $key => $value) {
|
|
|
|
130
|
+ $wsDataPos = WsDataPos::TransferOkxPos($value, $this->symbolInfos, function ($symbol) {
|
|
|
|
131
|
+ return $this->getSymbolSt($symbol);
|
|
|
|
132
|
+ });
|
|
|
|
133
|
+ if ($wsDataPos) {
|
|
|
|
134
|
+ $pos = Pos::transferWsDataPos($wsDataPos);
|
|
|
|
135
|
+ $positions[$wsDataPos->symbol . "_" . $wsDataPos->posSide] = $pos;
|
|
|
|
136
|
+ $wsData = new WsData($this->plat, 'pos', $trade = null, $pos = $wsDataPos);
|
|
139
|
$onData($wsData);
|
137
|
$onData($wsData);
|
|
140
|
- return;
|
138
|
+ if ($eventType == 'event_update') {
|
|
|
|
139
|
+ $this->positions[$wsDataPos->symbol . "_" . $wsDataPos->posSide] = $pos;
|
|
|
|
140
|
+ }
|
|
141
|
}
|
141
|
}
|
|
142
|
- $this->msg("okx 无处理ws数据实现", $data);
|
|
|
|
143
|
}
|
142
|
}
|
|
144
|
- });
|
143
|
+ if ($eventType == 'snapshot') {
|
|
|
|
144
|
+ $this->positions = $positions;
|
|
|
|
145
|
+ }
|
|
|
|
146
|
+ return;
|
|
|
|
147
|
+ }
|
|
|
|
148
|
+ if (isset($data['arg']) && $data['arg']['channel'] == 'account') {
|
|
|
|
149
|
+ $wsDataAccount = WsDataAccount::TransferOkxAccount($data['data']);
|
|
|
|
150
|
+ $wsData = new WsData($this->plat, 'account', $trade = null, $pos = null, $order = null, $account = $wsDataAccount);
|
|
|
|
151
|
+ $onData($wsData);
|
|
|
|
152
|
+ return;
|
|
|
|
153
|
+ }
|
|
|
|
154
|
+ $this->msg("okx 无处理ws数据实现", $data);
|
|
145
|
}
|
155
|
}
|
|
146
|
public function klineListen($symbol, $peroid, $onData)
|
156
|
public function klineListen($symbol, $peroid, $onData)
|
|
147
|
{
|
157
|
{
|