hedgequantx 2.9.188 → 2.9.189

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hedgequantx",
3
- "version": "2.9.188",
3
+ "version": "2.9.189",
4
4
  "description": "HedgeQuantX - Prop Futures Trading CLI",
5
5
  "main": "src/app.js",
6
6
  "bin": {
@@ -39,6 +39,9 @@ const createOrderHandler = (service) => {
39
39
  case RES.SHOW_ORDERS:
40
40
  handleShowOrdersResponse(service, data);
41
41
  break;
42
+ case RES.NEW_ORDER:
43
+ handleNewOrderResponse(service, data);
44
+ break;
42
45
  case STREAM.EXCHANGE_NOTIFICATION:
43
46
  handleExchangeNotification(service, data);
44
47
  break;
@@ -154,6 +157,36 @@ const handleShowOrdersResponse = (service, data) => {
154
157
  }
155
158
  };
156
159
 
160
+ /**
161
+ * Handle new order response (template 313)
162
+ */
163
+ const handleNewOrderResponse = (service, data) => {
164
+ try {
165
+ const res = proto.decode('ResponseNewOrder', data);
166
+ debug('New order response:', JSON.stringify(res));
167
+
168
+ // Emit as orderNotification for the placeOrder listener
169
+ if (res.basketId || res.orderId) {
170
+ const order = {
171
+ basketId: res.basketId || res.orderId,
172
+ accountId: res.accountId,
173
+ symbol: res.symbol,
174
+ exchange: res.exchange || 'CME',
175
+ status: res.rpCode?.[0] === '0' ? 2 : 5, // 2=Working, 5=Rejected
176
+ notifyType: res.rpCode?.[0] === '0' ? 1 : 0, // 1=Accepted
177
+ rpCode: res.rpCode,
178
+ userMsg: res.userMsg,
179
+ };
180
+ service.emit('orderNotification', order);
181
+ }
182
+
183
+ // Also emit specific event
184
+ service.emit('newOrderResponse', res);
185
+ } catch (e) {
186
+ debug('Error decoding ResponseNewOrder:', e.message);
187
+ }
188
+ };
189
+
157
190
  /**
158
191
  * Handle account PnL update
159
192
  */
@@ -58,7 +58,7 @@ const placeOrder = async (service, orderData) => {
58
58
  service.on('orderNotification', onNotification);
59
59
 
60
60
  try {
61
- service.orderConn.send('RequestNewOrder', {
61
+ const orderRequest = {
62
62
  templateId: REQ.NEW_ORDER,
63
63
  userMsg: [orderTag],
64
64
  fcmId: service.loginInfo.fcmId,
@@ -69,9 +69,16 @@ const placeOrder = async (service, orderData) => {
69
69
  quantity: orderData.size,
70
70
  transactionType: orderData.side === 0 ? 1 : 2, // 1=Buy, 2=Sell
71
71
  duration: 1, // DAY
72
- orderType: orderData.type === 2 ? 1 : 2, // 1=Market, 2=Limit
72
+ priceType: orderData.type === 2 ? 2 : 1, // 2=Market, 1=Limit
73
73
  price: orderData.price || 0,
74
- });
74
+ manualOrAuto: 2, // AUTO
75
+ };
76
+
77
+ if (DEBUG) {
78
+ console.log('[ORDER] Sending RequestNewOrder:', JSON.stringify(orderRequest));
79
+ }
80
+
81
+ service.orderConn.send('RequestNewOrder', orderRequest);
75
82
  } catch (error) {
76
83
  clearTimeout(timeout);
77
84
  service.removeListener('orderNotification', onNotification);