@stoqey/ib 1.3.29 → 1.3.30

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.
Files changed (32) hide show
  1. package/README.md +1 -1
  2. package/dist/api/api.d.ts +2 -2
  3. package/dist/api/api.js +22 -3
  4. package/dist/api/api.js.map +1 -1
  5. package/dist/api/order/orderCancel.d.ts +1 -1
  6. package/dist/api-next/api-next.d.ts +2 -2
  7. package/dist/api-next/api-next.js +3 -8
  8. package/dist/api-next/api-next.js.map +1 -1
  9. package/dist/core/io/decoder.js +1 -1
  10. package/dist/core/io/decoder.js.map +1 -1
  11. package/dist/core/io/encoder.d.ts +2 -2
  12. package/dist/core/io/encoder.js +9 -9
  13. package/dist/core/io/encoder.js.map +1 -1
  14. package/dist/tests/unit/api/market-data.test.js +1 -1
  15. package/dist/tests/unit/api/market-data.test.js.map +1 -1
  16. package/dist/tests/unit/api/order/cancelOrder.test.js +131 -16
  17. package/dist/tests/unit/api/order/cancelOrder.test.js.map +1 -1
  18. package/dist/tests/unit/api/order/placeConditionalOrder.test.js +117 -179
  19. package/dist/tests/unit/api/order/placeConditionalOrder.test.js.map +1 -1
  20. package/dist/tests/unit/api/order/placeOrder.test.js +68 -92
  21. package/dist/tests/unit/api/order/placeOrder.test.js.map +1 -1
  22. package/dist/tests/unit/api-next-live/get-contract-details.test.js +35 -30
  23. package/dist/tests/unit/api-next-live/get-contract-details.test.js.map +1 -1
  24. package/dist/tests/unit/api-next-live/subscription-registry.test.js +1 -1
  25. package/dist/tests/unit/sample-data/contracts.js +2 -2
  26. package/dist/tests/unit/sample-data/orders.d.ts +2 -0
  27. package/dist/tests/unit/sample-data/orders.js +16 -0
  28. package/dist/tests/unit/sample-data/orders.js.map +1 -0
  29. package/package.json +1 -1
  30. package/dist/tests/unit/api/order/issue203.test.d.ts +0 -1
  31. package/dist/tests/unit/api/order/issue203.test.js +0 -137
  32. package/dist/tests/unit/api/order/issue203.test.js.map +0 -1
@@ -10,6 +10,9 @@ const __1 = require("../../../..");
10
10
  const configuration_1 = __importDefault(require("../../../../common/configuration"));
11
11
  const logger_1 = __importDefault(require("../../../../common/logger"));
12
12
  const contracts_1 = require("../../sample-data/contracts");
13
+ const orders_1 = require("../../sample-data/orders");
14
+ const refContract = contracts_1.sample_stock;
15
+ const refOrder = orders_1.sample_order;
13
16
  const sample_price_condition = new __1.PriceCondition(29, __1.TriggerMethod.Default, contracts_1.aapl_contract.conId, contracts_1.aapl_contract.exchange, true, __1.ConjunctionConnection.OR);
14
17
  const sample_execution_condition = new __1.ExecutionCondition(contracts_1.sample_stock.exchange, contracts_1.sample_stock.secType, contracts_1.sample_stock.symbol, __1.ConjunctionConnection.OR);
15
18
  const sample_margin_condition = new __1.MarginCondition(10, false, __1.ConjunctionConnection.OR);
@@ -35,34 +38,30 @@ describe("Place Conditional Orders", () => {
35
38
  });
36
39
  test("placeOrder with PriceCondition", (done) => {
37
40
  let refId;
38
- const refContract = contracts_1.sample_stock;
39
- const refOrder = {
40
- orderType: __1.OrderType.LMT,
41
- action: __1.OrderAction.BUY,
42
- lmtPrice: 0.01,
43
- totalQuantity: 1,
44
- conditionsIgnoreRth: true,
45
- conditionsCancelOrder: false,
46
- conditions: [sample_price_condition],
47
- tif: __1.TimeInForce.DAY,
48
- transmit: true,
49
- };
50
- let isDone = false;
41
+ refOrder.conditions = [sample_price_condition];
42
+ let isSuccess = false;
51
43
  ib.once(__1.EventName.nextValidId, (orderId) => {
52
44
  refId = orderId;
53
- ib.placeOrder(refId, refContract, refOrder).reqOpenOrders();
45
+ ib.reqOpenOrders().placeOrder(refId, refContract, refOrder);
54
46
  })
55
47
  .on(__1.EventName.openOrder, (orderId, contract, order, _orderState) => {
56
- if (orderId == refId && !isDone) {
57
- isDone = true;
48
+ if (orderId == refId) {
58
49
  expect(contract.symbol).toEqual(refContract.symbol);
59
50
  expect(order.totalQuantity).toEqual(refOrder.totalQuantity);
60
- done();
61
51
  }
62
52
  })
63
- .on(__1.EventName.error, (error, code, reqId, _advancedOrderReject) => {
64
- if (reqId === -1) {
65
- logger_1.default.info(error.message);
53
+ .on(__1.EventName.orderStatus, (orderId, _status, filled, remaining) => {
54
+ if (!isSuccess && orderId == refId) {
55
+ expect(filled).toEqual(0);
56
+ expect(remaining).toEqual(refOrder.totalQuantity);
57
+ isSuccess = true;
58
+ ib.cancelOrder(orderId);
59
+ done();
60
+ }
61
+ });
62
+ ib.connect().on(__1.EventName.error, (error, code, reqId) => {
63
+ if (reqId === __1.ErrorCode.NO_VALID_ID) {
64
+ done(error.message);
66
65
  }
67
66
  else {
68
67
  const msg = `[${reqId}] ${error.message} (Error #${code})`;
@@ -76,38 +75,33 @@ describe("Place Conditional Orders", () => {
76
75
  }
77
76
  }
78
77
  });
79
- ib.connect();
80
78
  });
81
79
  test("placeOrder with ExecutionCondition", (done) => {
82
80
  let refId;
83
- const refContract = contracts_1.sample_stock;
84
- const refOrder = {
85
- orderType: __1.OrderType.LMT,
86
- action: __1.OrderAction.BUY,
87
- lmtPrice: 0.01,
88
- totalQuantity: 1,
89
- conditionsIgnoreRth: true,
90
- conditionsCancelOrder: false,
91
- conditions: [sample_execution_condition],
92
- tif: __1.TimeInForce.DAY,
93
- transmit: true,
94
- };
95
- let isDone = false;
81
+ refOrder.conditions = [sample_execution_condition];
82
+ let isSuccess = false;
96
83
  ib.once(__1.EventName.nextValidId, (orderId) => {
97
84
  refId = orderId;
98
- ib.placeOrder(refId, refContract, refOrder).reqOpenOrders();
85
+ ib.reqOpenOrders().placeOrder(refId, refContract, refOrder);
99
86
  })
100
87
  .on(__1.EventName.openOrder, (orderId, contract, order, _orderState) => {
101
- if (orderId == refId && !isDone) {
102
- isDone = true;
88
+ if (orderId == refId) {
103
89
  expect(contract.symbol).toEqual(refContract.symbol);
104
90
  expect(order.totalQuantity).toEqual(refOrder.totalQuantity);
105
- done();
106
91
  }
107
92
  })
108
- .on(__1.EventName.error, (error, code, reqId, _advancedOrderReject) => {
109
- if (reqId === -1) {
110
- logger_1.default.info(error.message);
93
+ .on(__1.EventName.orderStatus, (orderId, _status, filled, remaining) => {
94
+ if (!isSuccess && orderId == refId) {
95
+ expect(filled).toEqual(0);
96
+ expect(remaining).toEqual(refOrder.totalQuantity);
97
+ isSuccess = true;
98
+ ib.cancelOrder(orderId);
99
+ done();
100
+ }
101
+ });
102
+ ib.connect().on(__1.EventName.error, (error, code, reqId) => {
103
+ if (reqId === __1.ErrorCode.NO_VALID_ID) {
104
+ done(error.message);
111
105
  }
112
106
  else {
113
107
  const msg = `[${reqId}] ${error.message} (Error #${code})`;
@@ -121,38 +115,33 @@ describe("Place Conditional Orders", () => {
121
115
  }
122
116
  }
123
117
  });
124
- ib.connect();
125
118
  });
126
119
  test("placeOrder with MarginCondition", (done) => {
127
120
  let refId;
128
- const refContract = contracts_1.sample_stock;
129
- const refOrder = {
130
- orderType: __1.OrderType.LMT,
131
- action: __1.OrderAction.BUY,
132
- lmtPrice: 0.01,
133
- totalQuantity: 1,
134
- conditionsIgnoreRth: true,
135
- conditionsCancelOrder: false,
136
- conditions: [sample_margin_condition],
137
- tif: __1.TimeInForce.DAY,
138
- transmit: true,
139
- };
140
- let isDone = false;
121
+ refOrder.conditions = [sample_margin_condition];
122
+ let isSuccess = false;
141
123
  ib.once(__1.EventName.nextValidId, (orderId) => {
142
124
  refId = orderId;
143
- ib.placeOrder(refId, refContract, refOrder).reqOpenOrders();
125
+ ib.reqOpenOrders().placeOrder(refId, refContract, refOrder);
144
126
  })
145
127
  .on(__1.EventName.openOrder, (orderId, contract, order, _orderState) => {
146
- if (orderId == refId && !isDone) {
147
- isDone = true;
128
+ if (orderId == refId) {
148
129
  expect(contract.symbol).toEqual(refContract.symbol);
149
130
  expect(order.totalQuantity).toEqual(refOrder.totalQuantity);
150
- done();
151
131
  }
152
132
  })
153
- .on(__1.EventName.error, (error, code, reqId, _advancedOrderReject) => {
154
- if (reqId === -1) {
155
- logger_1.default.info(error.message);
133
+ .on(__1.EventName.orderStatus, (orderId, _status, filled, remaining) => {
134
+ if (!isSuccess && orderId == refId) {
135
+ expect(filled).toEqual(0);
136
+ expect(remaining).toEqual(refOrder.totalQuantity);
137
+ isSuccess = true;
138
+ ib.cancelOrder(orderId);
139
+ done();
140
+ }
141
+ });
142
+ ib.connect().on(__1.EventName.error, (error, code, reqId) => {
143
+ if (reqId === __1.ErrorCode.NO_VALID_ID) {
144
+ done(error.message);
156
145
  }
157
146
  else {
158
147
  const msg = `[${reqId}] ${error.message} (Error #${code})`;
@@ -166,38 +155,33 @@ describe("Place Conditional Orders", () => {
166
155
  }
167
156
  }
168
157
  });
169
- ib.connect();
170
158
  });
171
159
  test("placeOrder with PercentChangeCondition", (done) => {
172
160
  let refId;
173
- const refContract = contracts_1.sample_stock;
174
- const refOrder = {
175
- orderType: __1.OrderType.LMT,
176
- action: __1.OrderAction.BUY,
177
- lmtPrice: 0.01,
178
- totalQuantity: 1,
179
- conditionsIgnoreRth: true,
180
- conditionsCancelOrder: false,
181
- conditions: [sample_percent_condition],
182
- tif: __1.TimeInForce.DAY,
183
- transmit: true,
184
- };
185
- let isDone = false;
161
+ refOrder.conditions = [sample_percent_condition];
162
+ let isSuccess = false;
186
163
  ib.once(__1.EventName.nextValidId, (orderId) => {
187
164
  refId = orderId;
188
- ib.placeOrder(refId, refContract, refOrder).reqOpenOrders();
165
+ ib.reqOpenOrders().placeOrder(refId, refContract, refOrder);
189
166
  })
190
167
  .on(__1.EventName.openOrder, (orderId, contract, order, _orderState) => {
191
- if (orderId == refId && !isDone) {
192
- isDone = true;
168
+ if (orderId == refId) {
193
169
  expect(contract.symbol).toEqual(refContract.symbol);
194
170
  expect(order.totalQuantity).toEqual(refOrder.totalQuantity);
195
- done();
196
171
  }
197
172
  })
198
- .on(__1.EventName.error, (error, code, reqId, _advancedOrderReject) => {
199
- if (reqId === -1) {
200
- logger_1.default.info(error.message);
173
+ .on(__1.EventName.orderStatus, (orderId, _status, filled, remaining) => {
174
+ if (!isSuccess && orderId == refId) {
175
+ expect(filled).toEqual(0);
176
+ expect(remaining).toEqual(refOrder.totalQuantity);
177
+ isSuccess = true;
178
+ ib.cancelOrder(orderId);
179
+ done();
180
+ }
181
+ });
182
+ ib.connect().on(__1.EventName.error, (error, code, reqId) => {
183
+ if (reqId === __1.ErrorCode.NO_VALID_ID) {
184
+ done(error.message);
201
185
  }
202
186
  else {
203
187
  const msg = `[${reqId}] ${error.message} (Error #${code})`;
@@ -211,50 +195,33 @@ describe("Place Conditional Orders", () => {
211
195
  }
212
196
  }
213
197
  });
214
- ib.connect();
215
198
  });
216
199
  test("placeOrder with TimeCondition", (done) => {
217
200
  let refId;
218
- const refContract = contracts_1.sample_stock;
219
- const refOrder = {
220
- orderType: __1.OrderType.LMT,
221
- action: __1.OrderAction.BUY,
222
- lmtPrice: 0.01,
223
- totalQuantity: 1,
224
- conditionsIgnoreRth: true,
225
- conditionsCancelOrder: false,
226
- conditions: [sample_time_condition],
227
- tif: __1.TimeInForce.DAY,
228
- transmit: true,
229
- };
230
- let isDone = false;
201
+ refOrder.conditions = [sample_time_condition];
202
+ let isSuccess = false;
231
203
  ib.once(__1.EventName.nextValidId, (orderId) => {
232
204
  refId = orderId;
233
- ib.placeOrder(refId, refContract, refOrder).reqOpenOrders();
205
+ ib.reqOpenOrders().placeOrder(refId, refContract, refOrder);
234
206
  })
235
207
  .on(__1.EventName.openOrder, (orderId, contract, order, _orderState) => {
236
208
  if (orderId == refId) {
237
- isDone = true;
238
209
  expect(contract.symbol).toEqual(refContract.symbol);
239
210
  expect(order.totalQuantity).toEqual(refOrder.totalQuantity);
240
211
  }
241
212
  })
242
- .on(__1.EventName.openOrderEnd, () => {
243
- if (isDone)
244
- done();
245
- })
246
- .on(__1.EventName.orderStatus, (orderId, status, filled, remaining, _avgFillPrice, _permId, _parentId, _lastFillPrice, _clientId, _whyHeld, _mktCapPrice) => {
247
- if (!isDone && orderId == refId) {
248
- isDone = true;
249
- expect(status).toMatch(/Pending/);
213
+ .on(__1.EventName.orderStatus, (orderId, _status, filled, remaining) => {
214
+ if (!isSuccess && orderId == refId) {
250
215
  expect(filled).toEqual(0);
251
216
  expect(remaining).toEqual(refOrder.totalQuantity);
217
+ isSuccess = true;
218
+ ib.cancelOrder(orderId);
252
219
  done();
253
220
  }
254
- })
255
- .on(__1.EventName.error, (error, code, reqId, _advancedOrderReject) => {
256
- if (reqId === -1) {
257
- logger_1.default.info(error.message);
221
+ });
222
+ ib.connect().on(__1.EventName.error, (error, code, reqId) => {
223
+ if (reqId === __1.ErrorCode.NO_VALID_ID) {
224
+ done(error.message);
258
225
  }
259
226
  else {
260
227
  const msg = `[${reqId}] ${error.message} (Error #${code})`;
@@ -268,56 +235,33 @@ describe("Place Conditional Orders", () => {
268
235
  }
269
236
  }
270
237
  });
271
- ib.connect()
272
- .on(__1.EventName.error, (error, code, reqId) => {
273
- if (reqId > 0) {
274
- const msg = `[${reqId}] ${error.message} (Error #${code})`;
275
- if (error.message.includes("Warning:") ||
276
- error.message.includes("Order Message:")) {
277
- logger_1.default.warn(msg);
278
- }
279
- else {
280
- ib.disconnect();
281
- done(msg);
282
- }
283
- }
284
- else {
285
- console.error("ERROR", error.message, code, reqId);
286
- }
287
- })
288
- .on(__1.EventName.info, (msg, code) => console.info("INFO", code, msg))
289
- .on(__1.EventName.disconnected, () => done());
290
238
  });
291
239
  test("placeOrder with VolumeCondition", (done) => {
292
240
  let refId;
293
- const refContract = contracts_1.sample_stock;
294
- const refOrder = {
295
- orderType: __1.OrderType.LMT,
296
- action: __1.OrderAction.BUY,
297
- lmtPrice: 0.01,
298
- totalQuantity: 1,
299
- conditionsIgnoreRth: true,
300
- conditionsCancelOrder: false,
301
- conditions: [sample_volume_condition],
302
- tif: __1.TimeInForce.DAY,
303
- transmit: true,
304
- };
305
- let isDone = false;
241
+ refOrder.conditions = [sample_volume_condition];
242
+ let isSuccess = false;
306
243
  ib.once(__1.EventName.nextValidId, (orderId) => {
307
244
  refId = orderId;
308
- ib.placeOrder(refId, refContract, refOrder).reqOpenOrders();
245
+ ib.reqOpenOrders().placeOrder(refId, refContract, refOrder);
309
246
  })
310
247
  .on(__1.EventName.openOrder, (orderId, contract, order, _orderState) => {
311
- if (orderId == refId && !isDone) {
312
- isDone = true;
248
+ if (orderId == refId) {
313
249
  expect(contract.symbol).toEqual(refContract.symbol);
314
250
  expect(order.totalQuantity).toEqual(refOrder.totalQuantity);
315
- done();
316
251
  }
317
252
  })
318
- .on(__1.EventName.error, (error, code, reqId, _advancedOrderReject) => {
319
- if (reqId === -1) {
320
- logger_1.default.info(error.message);
253
+ .on(__1.EventName.orderStatus, (orderId, _status, filled, remaining) => {
254
+ if (!isSuccess && orderId == refId) {
255
+ expect(filled).toEqual(0);
256
+ expect(remaining).toEqual(refOrder.totalQuantity);
257
+ isSuccess = true;
258
+ ib.cancelOrder(orderId);
259
+ done();
260
+ }
261
+ });
262
+ ib.connect().on(__1.EventName.error, (error, code, reqId) => {
263
+ if (reqId === __1.ErrorCode.NO_VALID_ID) {
264
+ done(error.message);
321
265
  }
322
266
  else {
323
267
  const msg = `[${reqId}] ${error.message} (Error #${code})`;
@@ -331,45 +275,40 @@ describe("Place Conditional Orders", () => {
331
275
  }
332
276
  }
333
277
  });
334
- ib.connect();
335
278
  });
336
279
  test("placeOrder with all conditions", (done) => {
337
280
  let refId;
338
- const refContract = contracts_1.sample_stock;
339
- const refOrder = {
340
- orderType: __1.OrderType.LMT,
341
- action: __1.OrderAction.BUY,
342
- lmtPrice: 0.01,
343
- totalQuantity: 1,
344
- conditionsIgnoreRth: true,
345
- conditionsCancelOrder: false,
346
- conditions: [
347
- sample_price_condition,
348
- sample_execution_condition,
349
- sample_margin_condition,
350
- sample_percent_condition,
351
- sample_time_condition,
352
- sample_volume_condition,
353
- ],
354
- tif: __1.TimeInForce.DAY,
355
- transmit: true,
356
- };
357
- let isDone = false;
281
+ refOrder.conditions = [
282
+ sample_price_condition,
283
+ sample_execution_condition,
284
+ sample_margin_condition,
285
+ sample_percent_condition,
286
+ sample_time_condition,
287
+ sample_volume_condition,
288
+ ];
289
+ let isSuccess = false;
358
290
  ib.once(__1.EventName.nextValidId, (orderId) => {
359
291
  refId = orderId;
360
- ib.placeOrder(refId, refContract, refOrder).reqOpenOrders();
292
+ ib.reqOpenOrders().placeOrder(refId, refContract, refOrder);
361
293
  })
362
294
  .on(__1.EventName.openOrder, (orderId, contract, order, _orderState) => {
363
- if (orderId == refId && !isDone) {
364
- isDone = true;
295
+ if (orderId == refId) {
365
296
  expect(contract.symbol).toEqual(refContract.symbol);
366
297
  expect(order.totalQuantity).toEqual(refOrder.totalQuantity);
367
- done();
368
298
  }
369
299
  })
370
- .on(__1.EventName.error, (error, code, reqId, _advancedOrderReject) => {
371
- if (reqId === -1) {
372
- logger_1.default.info(error.message);
300
+ .on(__1.EventName.orderStatus, (orderId, _status, filled, remaining) => {
301
+ if (!isSuccess && orderId == refId) {
302
+ expect(filled).toEqual(0);
303
+ expect(remaining).toEqual(refOrder.totalQuantity);
304
+ isSuccess = true;
305
+ ib.cancelOrder(orderId);
306
+ done();
307
+ }
308
+ });
309
+ ib.connect().on(__1.EventName.error, (error, code, reqId) => {
310
+ if (reqId === __1.ErrorCode.NO_VALID_ID) {
311
+ done(error.message);
373
312
  }
374
313
  else {
375
314
  const msg = `[${reqId}] ${error.message} (Error #${code})`;
@@ -383,7 +322,6 @@ describe("Place Conditional Orders", () => {
383
322
  }
384
323
  }
385
324
  });
386
- ib.connect();
387
325
  });
388
326
  });
389
327
  //# sourceMappingURL=placeConditionalOrder.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"placeConditionalOrder.test.js","sourceRoot":"","sources":["../../../../../src/tests/unit/api/order/placeConditionalOrder.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"placeConditionalOrder.test.js","sourceRoot":"","sources":["../../../../../src/tests/unit/api/order/placeConditionalOrder.test.ts"],"names":[],"mappings":"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"}