@stoqey/ib 1.3.5 → 1.3.7
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/dist/api/api.d.ts +16 -3
- package/dist/api/api.js +13 -2
- package/dist/api/api.js.map +1 -1
- package/dist/api/contract/cfd.js +2 -3
- package/dist/api/contract/cfd.js.map +1 -1
- package/dist/api/contract/combo.js +2 -3
- package/dist/api/contract/combo.js.map +1 -1
- package/dist/api/contract/fop.js +3 -4
- package/dist/api/contract/fop.js.map +1 -1
- package/dist/api/contract/ind.js +2 -3
- package/dist/api/contract/ind.js.map +1 -1
- package/dist/api/contract/option.js +2 -3
- package/dist/api/contract/option.js.map +1 -1
- package/dist/api/contract/stock.js +2 -3
- package/dist/api/contract/stock.js.map +1 -1
- package/dist/api/data/enum/event-name.d.ts +3 -1
- package/dist/api/data/enum/event-name.js +2 -0
- package/dist/api/data/enum/event-name.js.map +1 -1
- package/dist/api/data/enum/min-server-version.js +3 -2
- package/dist/api/data/enum/min-server-version.js.map +1 -1
- package/dist/api/order/market.js +3 -4
- package/dist/api/order/market.js.map +1 -1
- package/dist/api/order/stop.js +3 -4
- package/dist/api/order/stop.js.map +1 -1
- package/dist/api/order/stopLimit.js +3 -4
- package/dist/api/order/stopLimit.js.map +1 -1
- package/dist/api/order/trailingStop.js +3 -4
- package/dist/api/order/trailingStop.js.map +1 -1
- package/dist/api-next/account/account-summary.d.ts +5 -5
- package/dist/api-next/account/account-update.d.ts +1 -1
- package/dist/api-next/api-next.d.ts +8 -2
- package/dist/api-next/api-next.js +148 -113
- package/dist/api-next/api-next.js.map +1 -1
- package/dist/api-next/common/common-types.d.ts +3 -3
- package/dist/api-next/common/error.d.ts +2 -0
- package/dist/api-next/contract/contract-details-update.d.ts +1 -1
- package/dist/api-next/market/market-data.d.ts +2 -2
- package/dist/api-next/market-depth/order-book.d.ts +3 -3
- package/dist/api-next/order/open-order-update.d.ts +1 -1
- package/dist/api-next/order/open-order.d.ts +1 -1
- package/dist/api-next/position/position.d.ts +2 -2
- package/dist/common/configuration.js +10 -3
- package/dist/common/configuration.js.map +1 -1
- package/dist/common/errorCode.js +3 -2
- package/dist/common/errorCode.js.map +1 -1
- package/dist/common/logger.js +15 -8
- package/dist/common/logger.js.map +1 -1
- package/dist/core/api-next/auto-connection.js +7 -3
- package/dist/core/api-next/auto-connection.js.map +1 -1
- package/dist/core/api-next/console-logger.js +5 -1
- package/dist/core/api-next/console-logger.js.map +1 -1
- package/dist/core/api-next/subscription-registry.d.ts +2 -2
- package/dist/core/api-next/subscription-registry.js +1 -2
- package/dist/core/api-next/subscription-registry.js.map +1 -1
- package/dist/core/api-next/subscription.js +2 -3
- package/dist/core/api-next/subscription.js.map +1 -1
- package/dist/core/io/controller.js +5 -7
- package/dist/core/io/controller.js.map +1 -1
- package/dist/core/io/decoder.d.ts +9 -5
- package/dist/core/io/decoder.js +38 -22
- package/dist/core/io/decoder.js.map +1 -1
- package/dist/core/io/encoder.d.ts +1 -0
- package/dist/core/io/encoder.js +31 -27
- package/dist/core/io/encoder.js.map +1 -1
- package/dist/core/io/enum/in-msg-id.d.ts +2 -1
- package/dist/core/io/enum/in-msg-id.js +1 -0
- package/dist/core/io/enum/in-msg-id.js.map +1 -1
- package/dist/core/io/socket.js +15 -15
- package/dist/core/io/socket.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/tests/unit/api/api.test.js +31 -54
- package/dist/tests/unit/api/api.test.js.map +1 -1
- package/dist/tests/unit/api/connect.test.js +40 -14
- package/dist/tests/unit/api/connect.test.js.map +1 -1
- package/dist/tests/unit/api/market-data.test.d.ts +1 -0
- package/dist/tests/unit/api/market-data.test.js +84 -0
- package/dist/tests/unit/api/market-data.test.js.map +1 -0
- package/dist/tests/unit/api/order/placeOrder.test.js +91 -24
- package/dist/tests/unit/api/order/placeOrder.test.js.map +1 -1
- package/dist/tests/unit/api/order/reqAllOpenOrders.test.js +22 -23
- package/dist/tests/unit/api/order/reqAllOpenOrders.test.js.map +1 -1
- package/dist/tests/unit/api-next/get-account-summary.test.js +22 -25
- package/dist/tests/unit/api-next/get-account-summary.test.js.map +1 -1
- package/dist/tests/unit/api-next/get-contract-details.test.js +1 -1
- package/dist/tests/unit/api-next/get-contract-details.test.js.map +1 -1
- package/dist/tests/unit/api-next/get-market-data.test.js +2 -2
- package/dist/tests/unit/api-next/get-market-data.test.js.map +1 -1
- package/dist/tests/unit/api-next/get-positions.test.js +8 -9
- package/dist/tests/unit/api-next/get-positions.test.js.map +1 -1
- package/dist/tests/unit/api-next/place-order.test.js +3 -3
- package/dist/tests/unit/api-next/place-order.test.js.map +1 -1
- package/dist/tests/unit/api-next/search-contracts.test.js +2 -2
- package/dist/tests/unit/api-next/search-contracts.test.js.map +1 -1
- package/dist/tools/account-summary.js +2 -4
- package/dist/tools/account-summary.js.map +1 -1
- package/dist/tools/common/ib-api-next-app.d.ts +4 -0
- package/dist/tools/common/ib-api-next-app.js +43 -12
- package/dist/tools/common/ib-api-next-app.js.map +1 -1
- package/dist/tools/contract-details.js +2 -26
- package/dist/tools/contract-details.js.map +1 -1
- package/dist/tools/get-head-timestamp.js +2 -26
- package/dist/tools/get-head-timestamp.js.map +1 -1
- package/dist/tools/historical-data-updates.js +1 -2
- package/dist/tools/historical-data-updates.js.map +1 -1
- package/dist/tools/historical-ticks-bid-ask.js +2 -3
- package/dist/tools/historical-ticks-bid-ask.js.map +1 -1
- package/dist/tools/historical-ticks-last.js +3 -5
- package/dist/tools/historical-ticks-last.js.map +1 -1
- package/dist/tools/historical-ticks-mid.js +2 -3
- package/dist/tools/historical-ticks-mid.js.map +1 -1
- package/dist/tools/{market-data-single.js → market-data-snapshot.js} +9 -35
- package/dist/tools/market-data-snapshot.js.map +1 -0
- package/dist/tools/market-data.js +7 -40
- package/dist/tools/market-data.js.map +1 -1
- package/dist/tools/market-depth.js +2 -4
- package/dist/tools/market-depth.js.map +1 -1
- package/dist/tools/modify-order.js +1 -2
- package/dist/tools/modify-order.js.map +1 -1
- package/dist/tools/open-orders-auto.js +1 -2
- package/dist/tools/open-orders-auto.js.map +1 -1
- package/dist/tools/open-orders.js +4 -2
- package/dist/tools/open-orders.js.map +1 -1
- package/dist/tools/place-order.d.ts +1 -1
- package/dist/tools/place-order.js +23 -19
- package/dist/tools/place-order.js.map +1 -1
- package/dist/tools/pnl-single.js +1 -2
- package/dist/tools/pnl-single.js.map +1 -1
- package/dist/tools/pnl.js +1 -2
- package/dist/tools/pnl.js.map +1 -1
- package/dist/tools/positions.js +1 -2
- package/dist/tools/positions.js.map +1 -1
- package/dist/tools/sec-def-opt-params.js +1 -2
- package/dist/tools/sec-def-opt-params.js.map +1 -1
- package/dist/tools/user-info.d.ts +4 -0
- package/dist/tools/user-info.js +52 -0
- package/dist/tools/user-info.js.map +1 -0
- package/package.json +51 -53
- package/dist/tools/market-data-single.js.map +0 -1
- /package/dist/tools/{market-data-single.d.ts → market-data-snapshot.d.ts} +0 -0
package/dist/core/io/socket.js
CHANGED
|
@@ -43,7 +43,6 @@ class Socket {
|
|
|
43
43
|
* @param options The API creation options.
|
|
44
44
|
*/
|
|
45
45
|
constructor(controller, options = {}) {
|
|
46
|
-
var _a;
|
|
47
46
|
this.controller = controller;
|
|
48
47
|
this.options = options;
|
|
49
48
|
/** `true` if the TCP socket is connected and [[OUT_MSG_ID.START_API]] has been sent, `false` otherwise. */
|
|
@@ -62,7 +61,10 @@ class Socket {
|
|
|
62
61
|
this.useV100Plus = true;
|
|
63
62
|
/** Accumulation buffer for fragmented V100 messages */
|
|
64
63
|
this._v100MessageBuffer = Buffer.alloc(0);
|
|
65
|
-
this._clientId =
|
|
64
|
+
this._clientId =
|
|
65
|
+
this.options.clientId !== undefined
|
|
66
|
+
? Math.floor(this.options.clientId)
|
|
67
|
+
: configuration_1.default.default_client_id;
|
|
66
68
|
this.options.host = this.options.host;
|
|
67
69
|
this.options.port = this.options.port;
|
|
68
70
|
}
|
|
@@ -97,9 +99,8 @@ class Socket {
|
|
|
97
99
|
*/
|
|
98
100
|
connect(clientId) {
|
|
99
101
|
// update client id
|
|
100
|
-
var _a, _b;
|
|
101
102
|
if (clientId !== undefined) {
|
|
102
|
-
this._clientId = clientId;
|
|
103
|
+
this._clientId = Math.floor(clientId);
|
|
103
104
|
}
|
|
104
105
|
// pause controller while API startup sequence
|
|
105
106
|
this.controller.pause();
|
|
@@ -111,8 +112,8 @@ class Socket {
|
|
|
111
112
|
// create and connect TCP socket
|
|
112
113
|
this.client = net_1.default
|
|
113
114
|
.connect({
|
|
114
|
-
host:
|
|
115
|
-
port:
|
|
115
|
+
host: this.options.host ?? configuration_1.default.ib_host,
|
|
116
|
+
port: this.options.port ?? configuration_1.default.ib_port,
|
|
116
117
|
}, () => this.onConnect())
|
|
117
118
|
.on("data", (data) => this.onData(data))
|
|
118
119
|
.on("close", () => this.onEnd())
|
|
@@ -124,17 +125,15 @@ class Socket {
|
|
|
124
125
|
*/
|
|
125
126
|
disconnect() {
|
|
126
127
|
// pause controller while connection is down.
|
|
127
|
-
var _a;
|
|
128
128
|
this.controller.pause();
|
|
129
129
|
// disconnect TCP socket.
|
|
130
|
-
|
|
130
|
+
this.client?.end();
|
|
131
131
|
}
|
|
132
132
|
/**
|
|
133
133
|
* Send tokens to API server.
|
|
134
134
|
*/
|
|
135
135
|
send(tokens) {
|
|
136
136
|
// flatten arrays and convert boolean types to 0/1
|
|
137
|
-
var _a, _b;
|
|
138
137
|
tokens = this.flattenDeep(tokens);
|
|
139
138
|
tokens.forEach((value, i) => {
|
|
140
139
|
if (value === true || value === false || value instanceof Boolean) {
|
|
@@ -166,10 +165,10 @@ class Socket {
|
|
|
166
165
|
0,
|
|
167
166
|
];
|
|
168
167
|
}
|
|
169
|
-
|
|
168
|
+
this.client?.write(Buffer.from(new Uint8Array(utf8Data)));
|
|
170
169
|
}
|
|
171
170
|
else {
|
|
172
|
-
|
|
171
|
+
this.client?.write(stringData + EOL);
|
|
173
172
|
}
|
|
174
173
|
this.controller.emitEvent(event_name_1.EventName.sent, tokens, stringData);
|
|
175
174
|
}
|
|
@@ -300,7 +299,9 @@ class Socket {
|
|
|
300
299
|
}
|
|
301
300
|
}
|
|
302
301
|
// resume controller after CONNECT_DELAY, fix connect issue
|
|
303
|
-
setTimeout(() => {
|
|
302
|
+
setTimeout(() => {
|
|
303
|
+
this.controller.resume();
|
|
304
|
+
}, CONNECT_DELAY);
|
|
304
305
|
}
|
|
305
306
|
/**
|
|
306
307
|
* Called when TCP socket has been connected.
|
|
@@ -326,9 +327,8 @@ class Socket {
|
|
|
326
327
|
* Called when TCP socket connection has been closed.
|
|
327
328
|
*/
|
|
328
329
|
onEnd() {
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
if (wasConnected) {
|
|
330
|
+
if (this._connected) {
|
|
331
|
+
this._connected = false;
|
|
332
332
|
this.controller.emitEvent(event_name_1.EventName.disconnected);
|
|
333
333
|
}
|
|
334
334
|
this.controller.pause();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../src/core/io/socket.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AACtB,+BAAmC;AAEnC,uCAIuB;AACvB,+DAA2D;AAC3D,gGAAoE;AACpE,+EAAuD;AACvD,sDAAmD;AAEnD,uCAAuC;AAEvC;;;GAGG;AACH,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B;;;GAGG;AACH,MAAM,uBAAuB,GAAG,QAAQ,CAAC;AAEzC,cAAc;AACd,MAAM,GAAG,GAAG,IAAI,CAAC;AAEjB;;;GAGG;AACH,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B;;;;;GAKG;AACH,MAAa,MAAM;IACjB;;;;;OAKG;IACH,YACU,UAAsB,EACtB,UAAgC,EAAE
|
|
1
|
+
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../src/core/io/socket.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -94,4 +94,4 @@ export default IBApi;
|
|
|
94
94
|
export * from "./api-next";
|
|
95
95
|
import { IBApiNextTickType } from "./api-next";
|
|
96
96
|
/** Combination of IBApi and IBApiNext market data tick types. */
|
|
97
|
-
export
|
|
97
|
+
export type TickType = IBApiTickType | IBApiNextTickType;
|
package/dist/index.js
CHANGED
|
@@ -28,7 +28,11 @@
|
|
|
28
28
|
*/
|
|
29
29
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
30
30
|
if (k2 === undefined) k2 = k;
|
|
31
|
-
Object.
|
|
31
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
32
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
33
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
34
|
+
}
|
|
35
|
+
Object.defineProperty(o, k2, desc);
|
|
32
36
|
}) : (function(o, m, k, k2) {
|
|
33
37
|
if (k2 === undefined) k2 = k;
|
|
34
38
|
o[k2] = m[k];
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;;;;;;;;;;;;;;;AAEH,mCAAkC;AAElC,sDAAsD;AAEtD,iCAAwD;AAA/C,4FAAA,KAAK,OAAA;AAEd,gDAA+C;AAAtC,sGAAA,SAAS,OAAA;AAElB,wBAAwB;AAExB,0CAAyC;AAAhC,0FAAA,GAAG,OAAA;AACZ,8CAA6C;AAApC,8FAAA,KAAK,OAAA;AAMd,0CAAyC;AAAhC,0FAAA,GAAG,OAAA;AACZ,8CAA6C;AAApC,8FAAA,KAAK,OAAA;AACd,gDAA+C;AAAtC,gGAAA,MAAM,OAAA;AACf,0CAA2C;AAAlC,4FAAA,KAAK,OAAA;AACd,gDAA+C;AAAtC,gGAAA,MAAM,OAAA;AACf,8CAA6C;AAApC,8FAAA,KAAK,OAAA;AAUd,oBAAoB;AAEpB,+DAA2D;AAAlD,2GAAA,UAAU,OAAA;AACnB,uDAAqD;AAA5C,qGAAA,QAAQ,OAAA;AACjB,yEAAoE;AAA3D,oHAAA,cAAc,OAAA;AACvB,iFAA8E;AAArE,8HAAA,oBAAoB,OAAA;AAC7B,2DAAyD;AAAhD,yGAAA,UAAU,OAAA;AACnB,qDAAmD;AAA1C,mGAAA,OAAO,OAAA;AAChB,yDAAuD;AAA9C,uGAAA,SAAS,OAAA;AAKlB,sEAAmE;AAA1D,kHAAA,cAAc,OAAA;AAKvB,+DAA6D;AAApD,6GAAA,YAAY,OAAA;AAKrB,sEAAqE;AAA5D,wHAAA,kBAAkB,OAAA;AAM3B,iFAA+E;AAAtE,yHAAA,kBAAkB,OAAA;AAC3B,2EAAyE;AAAhE,mHAAA,eAAe,OAAA;AAGxB,2FAAwF;AAA/E,kIAAA,sBAAsB,OAAA;AAC/B,yEAAuE;AAA9D,iHAAA,cAAc,OAAA;AACvB,uEAAqE;AAA5D,+GAAA,aAAa,OAAA;AACtB,2EAAyE;AAAhE,mHAAA,eAAe,OAAA;AAExB,0BAA0B;AAE1B,kFAAgF;AAAvE,+HAAA,qBAAqB,OAAA;AAC9B,8DAA4D;AAAnD,2GAAA,WAAW,OAAA;AACpB,8EAA2E;AAAlE,0HAAA,kBAAkB,OAAA;AAC3B,wDAAuD;AAA9C,sGAAA,SAAS,OAAA;AAClB,kEAAgE;AAAvD,+GAAA,aAAa,OAAA;AACtB,8DAA4D;AAAnD,2GAAA,WAAW,OAAA;AAKpB,2CAA+C;AAAtC,mGAAA,UAAU,OAAA;AACnB,6CAAiD;AAAxC,qGAAA,WAAW,OAAA;AACpB,uDAA2D;AAAlD,+GAAA,gBAAgB,OAAA;AAIzB,yCAA6C;AAApC,iGAAA,SAAS,OAAA;AAClB,mDAAuD;AAA9C,2GAAA,cAAc,OAAA;AACvB,yDAA6D;AAApD,iHAAA,iBAAiB,OAAA;AAO1B,0BAA0B;AAE1B,kBAAe,WAAK,CAAC;AAErB,yBAAyB;AAEzB,6CAA2B"}
|
|
@@ -9,36 +9,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
const __1 = require("../../..");
|
|
10
10
|
const configuration_1 = __importDefault(require("../../../common/configuration"));
|
|
11
11
|
const logger_1 = __importDefault(require("../../../common/logger"));
|
|
12
|
-
const TEST_SERVER_HOST = configuration_1.default.ib_host;
|
|
13
|
-
const TEST_SERVER_POST = configuration_1.default.ib_port;
|
|
14
12
|
describe("IBApi Tests", () => {
|
|
15
|
-
jest.setTimeout(
|
|
16
|
-
let
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
host:
|
|
21
|
-
port:
|
|
13
|
+
jest.setTimeout(10000);
|
|
14
|
+
let ib;
|
|
15
|
+
const clientId = Math.floor(Math.random() * 32766) + 1; // ensure unique client
|
|
16
|
+
beforeEach(() => {
|
|
17
|
+
ib = new __1.IBApi({
|
|
18
|
+
host: configuration_1.default.ib_host,
|
|
19
|
+
port: configuration_1.default.ib_port,
|
|
20
|
+
clientId,
|
|
22
21
|
});
|
|
23
|
-
|
|
22
|
+
// logger.info("IBApi created");
|
|
23
|
+
});
|
|
24
|
+
afterEach(() => {
|
|
25
|
+
if (ib) {
|
|
24
26
|
ib.disconnect();
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
})
|
|
29
|
-
.on(__1.EventName.error, (err, code, id) => {
|
|
30
|
-
expect(`${err.message} - code: ${code} - id: ${id}`).toBeTruthy();
|
|
31
|
-
});
|
|
32
|
-
ib.connect();
|
|
27
|
+
ib = undefined;
|
|
28
|
+
}
|
|
29
|
+
// logger.info("IBApi disconnected");
|
|
33
30
|
});
|
|
34
31
|
let _account; // maintain account name for further tests
|
|
35
32
|
let _conId; // maintain for conId for further tests
|
|
36
33
|
it("Test reqPositions / cancelPositions", (done) => {
|
|
37
|
-
const ib = new __1.IBApi({
|
|
38
|
-
clientId: _clientId++,
|
|
39
|
-
host: TEST_SERVER_HOST,
|
|
40
|
-
port: TEST_SERVER_POST,
|
|
41
|
-
}).connect();
|
|
42
34
|
let positionsCount = 0;
|
|
43
35
|
ib.on(__1.EventName.error, (err, code, id) => {
|
|
44
36
|
expect(`${err.message} - code: ${code} - id: ${id}`).toBeFalsy();
|
|
@@ -47,13 +39,14 @@ describe("IBApi Tests", () => {
|
|
|
47
39
|
if (_account === undefined) {
|
|
48
40
|
_account = account;
|
|
49
41
|
}
|
|
50
|
-
if (_conId === undefined) {
|
|
42
|
+
if (_conId === undefined && pos) {
|
|
51
43
|
_conId = contract.conId;
|
|
52
44
|
}
|
|
53
45
|
expect(account).toBeTruthy();
|
|
54
46
|
expect(contract).toBeTruthy();
|
|
55
|
-
expect(pos).toBeTruthy();
|
|
56
|
-
|
|
47
|
+
// expect(pos).toBeTruthy(); pos can be 0 when it has been closed today
|
|
48
|
+
if (pos)
|
|
49
|
+
expect(avgCost).toBeTruthy();
|
|
57
50
|
positionsCount++;
|
|
58
51
|
})
|
|
59
52
|
.on(__1.EventName.positionEnd, () => {
|
|
@@ -65,18 +58,12 @@ describe("IBApi Tests", () => {
|
|
|
65
58
|
logger_1.default.error("No Positions received");
|
|
66
59
|
}
|
|
67
60
|
});
|
|
68
|
-
ib.reqPositions();
|
|
61
|
+
ib.connect().reqPositions();
|
|
69
62
|
});
|
|
70
|
-
it("Test reqPnL /
|
|
71
|
-
const ib = new __1.IBApi({
|
|
72
|
-
clientId: _clientId++,
|
|
73
|
-
host: TEST_SERVER_HOST,
|
|
74
|
-
port: TEST_SERVER_POST,
|
|
75
|
-
}).connect();
|
|
63
|
+
it("Test reqPnL / cancelPnL", (done) => {
|
|
76
64
|
let received = false;
|
|
77
65
|
ib.on(__1.EventName.error, (err, code, id) => {
|
|
78
|
-
|
|
79
|
-
expect(`${err.message} - code: ${code} - id: ${id}`).toBeTruthy();
|
|
66
|
+
expect(`${err.message} - code: ${code} - id: ${id}`).toBeFalsy();
|
|
80
67
|
}).on(__1.EventName.pnl, (reqId, pnl) => {
|
|
81
68
|
expect(reqId).toEqual(43);
|
|
82
69
|
expect(pnl).toBeTruthy();
|
|
@@ -87,23 +74,19 @@ describe("IBApi Tests", () => {
|
|
|
87
74
|
}
|
|
88
75
|
received = true;
|
|
89
76
|
});
|
|
90
|
-
ib.reqPnL(43, _account);
|
|
77
|
+
ib.connect().reqPnL(43, _account);
|
|
91
78
|
});
|
|
92
79
|
it("Test reqPnLSingle / cancelPnLSingle", (done) => {
|
|
93
|
-
const ib = new __1.IBApi({
|
|
94
|
-
clientId: _clientId++,
|
|
95
|
-
host: TEST_SERVER_HOST,
|
|
96
|
-
port: TEST_SERVER_POST,
|
|
97
|
-
}).connect();
|
|
98
80
|
let received = false;
|
|
99
81
|
ib.on(__1.EventName.error, (err, code, id) => {
|
|
100
|
-
expect(`${err.message} - code: ${code} - id: ${id}`).
|
|
82
|
+
expect(`${err.message} - code: ${code} - id: ${id}`).toBeFalsy();
|
|
83
|
+
done(`${err.message} - code: ${code} - id: ${id}`);
|
|
101
84
|
}).on(__1.EventName.pnlSingle, (reqId, pos, dailyPnL, unrealizedPnL, realizedPnL, value) => {
|
|
102
85
|
expect(reqId).toEqual(44);
|
|
103
86
|
expect(pos).toBeTruthy();
|
|
104
87
|
expect(dailyPnL).toBeTruthy();
|
|
105
88
|
expect(unrealizedPnL).toBeTruthy();
|
|
106
|
-
expect(realizedPnL).toBeTruthy();
|
|
89
|
+
// expect(realizedPnL).toBeTruthy(); We may have no realized PnL today
|
|
107
90
|
expect(value).toBeTruthy();
|
|
108
91
|
if (!received) {
|
|
109
92
|
ib.cancelPnLSingle(reqId);
|
|
@@ -112,17 +95,11 @@ describe("IBApi Tests", () => {
|
|
|
112
95
|
}
|
|
113
96
|
received = true;
|
|
114
97
|
});
|
|
115
|
-
ib.reqPnLSingle(44, _account, null, _conId);
|
|
98
|
+
ib.connect().reqPnLSingle(44, _account, null, _conId);
|
|
116
99
|
});
|
|
117
|
-
it("Test request tick history",
|
|
118
|
-
const ib = new __1.IBApi({
|
|
119
|
-
clientId: _clientId++,
|
|
120
|
-
host: TEST_SERVER_HOST,
|
|
121
|
-
port: TEST_SERVER_POST,
|
|
122
|
-
}).connect();
|
|
100
|
+
it("Test request tick history", (done) => {
|
|
123
101
|
let isConnected = false;
|
|
124
|
-
ib
|
|
125
|
-
.on(__1.EventName.connected, function onConnected() {
|
|
102
|
+
ib.on(__1.EventName.connected, function onConnected() {
|
|
126
103
|
isConnected = true;
|
|
127
104
|
})
|
|
128
105
|
.on(__1.EventName.error, function onError(err) {
|
|
@@ -142,9 +119,9 @@ describe("IBApi Tests", () => {
|
|
|
142
119
|
symbol: "SPY",
|
|
143
120
|
exchange: "SMART",
|
|
144
121
|
currency: "USD",
|
|
145
|
-
secType: __1.SecType.STK
|
|
122
|
+
secType: __1.SecType.STK,
|
|
146
123
|
};
|
|
147
|
-
ib.reqHistoricalTicks(45, contract, "20210101
|
|
124
|
+
ib.connect().reqHistoricalTicks(45, contract, "20210101-16:00:00", null, 1000, "TRADES", 0, true);
|
|
148
125
|
});
|
|
149
126
|
});
|
|
150
127
|
//# sourceMappingURL=api.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api/api.test.ts"],"names":[],"mappings":";;;;;AAAA;;GAEG;AACH,gCAA0E;AAC1E,kFAA0D;AAC1D,oEAA4C;AAE5C,
|
|
1
|
+
{"version":3,"file":"api.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api/api.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,34 +7,60 @@ const api_1 = require("../../../api/api");
|
|
|
7
7
|
const event_name_1 = require("../../../api/data/enum/event-name");
|
|
8
8
|
const configuration_1 = __importDefault(require("../../../common/configuration"));
|
|
9
9
|
const logger_1 = __importDefault(require("../../../common/logger"));
|
|
10
|
-
describe("IBApi Tests", () => {
|
|
11
|
-
jest.setTimeout(
|
|
12
|
-
let _clientId = 0; // ensure unique client
|
|
10
|
+
describe("IBApi connection Tests", () => {
|
|
11
|
+
jest.setTimeout(10000);
|
|
13
12
|
let ib;
|
|
14
|
-
|
|
13
|
+
const clientId = Math.floor(Math.random() * 32766) + 1; // ensure unique client
|
|
14
|
+
beforeEach(() => {
|
|
15
15
|
ib = new api_1.IBApi({
|
|
16
|
-
clientId: _clientId++,
|
|
17
16
|
host: configuration_1.default.ib_host,
|
|
18
17
|
port: configuration_1.default.ib_port,
|
|
18
|
+
clientId,
|
|
19
19
|
});
|
|
20
|
+
// logger.info("IBApi created");
|
|
20
21
|
});
|
|
21
|
-
afterEach(
|
|
22
|
+
afterEach(() => {
|
|
22
23
|
if (ib) {
|
|
23
24
|
ib.disconnect();
|
|
25
|
+
ib = undefined;
|
|
24
26
|
}
|
|
27
|
+
// logger.info("IBApi disconnected");
|
|
25
28
|
});
|
|
26
|
-
|
|
29
|
+
test("Connect", (done) => {
|
|
30
|
+
// logger.info("Starting Connect");
|
|
27
31
|
ib.on(event_name_1.EventName.connected, () => {
|
|
28
|
-
|
|
29
|
-
}).on(event_name_1.EventName.error, (err, code, id) => {
|
|
30
|
-
logger_1.default.error(err);
|
|
31
|
-
expect(`${err.message} - code: ${code} - id: ${id}`).toBeTruthy();
|
|
32
|
+
done();
|
|
32
33
|
});
|
|
33
34
|
ib.connect();
|
|
34
35
|
});
|
|
35
|
-
test("Disconnect", () => {
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
test("Disconnect", (done) => {
|
|
37
|
+
// logger.info("Starting Disconnect");
|
|
38
|
+
ib.on(event_name_1.EventName.connected, () => {
|
|
39
|
+
ib.disconnect();
|
|
40
|
+
ib = undefined;
|
|
41
|
+
}).on(event_name_1.EventName.disconnected, () => {
|
|
42
|
+
done();
|
|
43
|
+
});
|
|
44
|
+
ib.connect();
|
|
45
|
+
});
|
|
46
|
+
test("Connect / disconnect", (done) => {
|
|
47
|
+
// logger.info("Starting (Dis)Connect");
|
|
48
|
+
ib.on(event_name_1.EventName.connected, () => {
|
|
49
|
+
ib.reqCurrentTime();
|
|
50
|
+
})
|
|
51
|
+
.on(event_name_1.EventName.currentTime, (time) => {
|
|
52
|
+
expect(time).toBeTruthy();
|
|
53
|
+
ib.disconnect();
|
|
54
|
+
})
|
|
55
|
+
.on(event_name_1.EventName.disconnected, () => {
|
|
56
|
+
ib = undefined;
|
|
57
|
+
done();
|
|
58
|
+
})
|
|
59
|
+
.on(event_name_1.EventName.error, (err, code, _id) => {
|
|
60
|
+
const msg = `${err.message} (Error #${code})`;
|
|
61
|
+
logger_1.default.error(msg);
|
|
62
|
+
expect(msg).toBeFalsy();
|
|
63
|
+
ib.disconnect();
|
|
38
64
|
});
|
|
39
65
|
ib.connect();
|
|
40
66
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api/connect.test.ts"],"names":[],"mappings":";;;;;AAAA,0CAAyC;AACzC,kEAA8D;AAC9D,kFAA0D;AAC1D,oEAA4C;AAE5C,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"connect.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api/connect.test.ts"],"names":[],"mappings":";;;;;AAAA,0CAAyC;AACzC,kEAA8D;AAC9D,kFAA0D;AAC1D,oEAA4C;AAE5C,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAI,EAAS,CAAC;IACd,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,uBAAuB;IAE/E,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,GAAG,IAAI,WAAK,CAAC;YACb,IAAI,EAAE,uBAAa,CAAC,OAAO;YAC3B,IAAI,EAAE,uBAAa,CAAC,OAAO;YAC3B,QAAQ;SACT,CAAC,CAAC;QACH,gCAAgC;IAClC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,EAAE,EAAE;YACN,EAAE,CAAC,UAAU,EAAE,CAAC;YAChB,EAAE,GAAG,SAAS,CAAC;SAChB;QACD,qCAAqC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;QACvB,mCAAmC;QACnC,EAAE,CAAC,EAAE,CAAC,sBAAS,CAAC,SAAS,EAAE,GAAG,EAAE;YAC9B,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,OAAO,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;QAC1B,sCAAsC;QACtC,EAAE,CAAC,EAAE,CAAC,sBAAS,CAAC,SAAS,EAAE,GAAG,EAAE;YAC9B,EAAE,CAAC,UAAU,EAAE,CAAC;YAChB,EAAE,GAAG,SAAS,CAAC;QACjB,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAS,CAAC,YAAY,EAAE,GAAG,EAAE;YACjC,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,OAAO,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sBAAsB,EAAE,CAAC,IAAI,EAAE,EAAE;QACpC,wCAAwC;QACxC,EAAE,CAAC,EAAE,CAAC,sBAAS,CAAC,SAAS,EAAE,GAAG,EAAE;YAC9B,EAAE,CAAC,cAAc,EAAE,CAAC;QACtB,CAAC,CAAC;aACC,EAAE,CAAC,sBAAS,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;YAClC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YAC1B,EAAE,CAAC,UAAU,EAAE,CAAC;QAClB,CAAC,CAAC;aACD,EAAE,CAAC,sBAAS,CAAC,YAAY,EAAE,GAAG,EAAE;YAC/B,EAAE,GAAG,SAAS,CAAC;YACf,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;aACD,EAAE,CAAC,sBAAS,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YACtC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,YAAY,IAAI,GAAG,CAAC;YAC9C,gBAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClB,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;YACxB,EAAE,CAAC,UAAU,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QAEL,EAAE,CAAC,OAAO,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
/**
|
|
7
|
+
* This file implement test code for the public API interfaces.
|
|
8
|
+
*/
|
|
9
|
+
const __1 = require("../../..");
|
|
10
|
+
const configuration_1 = __importDefault(require("../../../common/configuration"));
|
|
11
|
+
describe("IBApi Market data Tests", () => {
|
|
12
|
+
jest.setTimeout(20000);
|
|
13
|
+
let ib;
|
|
14
|
+
const clientId = Math.floor(Math.random() * 32766) + 1; // ensure unique client
|
|
15
|
+
beforeEach(() => {
|
|
16
|
+
ib = new __1.IBApi({
|
|
17
|
+
host: configuration_1.default.ib_host,
|
|
18
|
+
port: configuration_1.default.ib_port,
|
|
19
|
+
clientId,
|
|
20
|
+
});
|
|
21
|
+
// logger.info("IBApi created");
|
|
22
|
+
});
|
|
23
|
+
afterEach(() => {
|
|
24
|
+
if (ib) {
|
|
25
|
+
ib.disconnect();
|
|
26
|
+
ib = undefined;
|
|
27
|
+
}
|
|
28
|
+
// logger.info("IBApi disconnected");
|
|
29
|
+
});
|
|
30
|
+
it("Stock market data", (done) => {
|
|
31
|
+
const refId = 46;
|
|
32
|
+
let received = false;
|
|
33
|
+
ib.on(__1.EventName.connected, () => {
|
|
34
|
+
const contract = { symbol: "SPY", currency: "USD", secType: __1.SecType.STK, exchange: "SMART" };
|
|
35
|
+
ib.reqMktData(refId, contract, "", true, false);
|
|
36
|
+
})
|
|
37
|
+
.on(__1.EventName.error, (err, code, id) => {
|
|
38
|
+
// should use expect(error).toEqual("<string message>")
|
|
39
|
+
expect(`${err.message} - code: ${code} - id: ${id}`).toBeFalsy();
|
|
40
|
+
ib.disconnect();
|
|
41
|
+
})
|
|
42
|
+
.on(__1.EventName.tickPrice, (reqId, _field, _value) => {
|
|
43
|
+
expect(reqId).toEqual(refId);
|
|
44
|
+
if (reqId == refId)
|
|
45
|
+
received = true;
|
|
46
|
+
// console.log(_field, _value);
|
|
47
|
+
})
|
|
48
|
+
.on(__1.EventName.tickSnapshotEnd, (reqId) => {
|
|
49
|
+
expect(reqId).toEqual(refId);
|
|
50
|
+
if (received)
|
|
51
|
+
done();
|
|
52
|
+
else
|
|
53
|
+
done("Didn't get any result");
|
|
54
|
+
});
|
|
55
|
+
ib.connect();
|
|
56
|
+
});
|
|
57
|
+
test("Option market data", (done) => {
|
|
58
|
+
const refId = 47;
|
|
59
|
+
let received = false;
|
|
60
|
+
ib.on(__1.EventName.connected, () => {
|
|
61
|
+
const contract = new __1.Option("AAPL", "20251219", 200, __1.OptionType.Put);
|
|
62
|
+
ib.reqMktData(refId, contract, "", true, false);
|
|
63
|
+
})
|
|
64
|
+
.on(__1.EventName.error, (err, code, id) => {
|
|
65
|
+
// should use expect(error).toEqual("<string message>")
|
|
66
|
+
expect(`${err.message} - code: ${code} - id: ${id}`).toBeFalsy();
|
|
67
|
+
ib.disconnect();
|
|
68
|
+
})
|
|
69
|
+
.on(__1.EventName.tickPrice, (reqId, _field, _value) => {
|
|
70
|
+
expect(reqId).toEqual(refId);
|
|
71
|
+
if (reqId == refId)
|
|
72
|
+
received = true;
|
|
73
|
+
})
|
|
74
|
+
.on(__1.EventName.tickSnapshotEnd, (reqId) => {
|
|
75
|
+
expect(reqId).toEqual(refId);
|
|
76
|
+
if (received)
|
|
77
|
+
done();
|
|
78
|
+
else
|
|
79
|
+
done("Didn't get any result");
|
|
80
|
+
});
|
|
81
|
+
ib.connect();
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
//# sourceMappingURL=market-data.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"market-data.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api/market-data.test.ts"],"names":[],"mappings":"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"}
|