@stoqey/ib 1.3.8 → 1.3.10
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/README.md +3 -3
- package/dist/api/api.d.ts +58 -55
- package/dist/api/api.js +50 -44
- package/dist/api/api.js.map +1 -1
- package/dist/api/contract/contract.d.ts +4 -0
- package/dist/api/contract/forex.js.map +1 -1
- package/dist/api/contract/wsh.d.ts +15 -0
- package/dist/api/contract/wsh.js +21 -0
- package/dist/api/contract/wsh.js.map +1 -0
- package/dist/api/data/enum/duration-unit.js +1 -1
- package/dist/api/data/enum/duration-unit.js.map +1 -1
- package/dist/api/data/enum/event-name.js +1 -1
- package/dist/api/data/enum/event-name.js.map +1 -1
- package/dist/api/data/enum/fad-data-type.d.ts +2 -1
- package/dist/api/data/enum/fad-data-type.js +3 -2
- package/dist/api/data/enum/fad-data-type.js.map +1 -1
- package/dist/api/data/enum/log-level.js +1 -1
- package/dist/api/data/enum/log-level.js.map +1 -1
- package/dist/api/data/enum/min-server-version.d.ts +3 -1
- package/dist/api/data/enum/min-server-version.js +3 -1
- package/dist/api/data/enum/min-server-version.js.map +1 -1
- package/dist/api/data/enum/option-exercise-action.js +1 -1
- package/dist/api/data/enum/option-exercise-action.js.map +1 -1
- package/dist/api/data/enum/option-type.js +1 -1
- package/dist/api/data/enum/option-type.js.map +1 -1
- package/dist/api/data/enum/sec-type.d.ts +22 -13
- package/dist/api/data/enum/sec-type.js +24 -15
- package/dist/api/data/enum/sec-type.js.map +1 -1
- package/dist/api/historical/bar-size-setting.js +1 -1
- package/dist/api/historical/bar-size-setting.js.map +1 -1
- package/dist/api/historical/what-to-show.d.ts +21 -0
- package/dist/api/historical/what-to-show.js +25 -0
- package/dist/api/historical/what-to-show.js.map +1 -0
- package/dist/api/market/tickByTickDataType.js +1 -1
- package/dist/api/market/tickByTickDataType.js.map +1 -1
- package/dist/api/market/tickType.d.ts +12 -0
- package/dist/api/market/tickType.js +13 -1
- package/dist/api/market/tickType.js.map +1 -1
- package/dist/api/order/enum/conjunction-connection.js +1 -1
- package/dist/api/order/enum/conjunction-connection.js.map +1 -1
- package/dist/api/order/enum/order-action.js +1 -1
- package/dist/api/order/enum/order-action.js.map +1 -1
- package/dist/api/order/enum/order-condition-type.js +1 -1
- package/dist/api/order/enum/order-condition-type.js.map +1 -1
- package/dist/api/order/enum/order-status.js +1 -1
- package/dist/api/order/enum/order-status.js.map +1 -1
- package/dist/api/order/enum/orderType.d.ts +4 -0
- package/dist/api/order/enum/orderType.js +24 -2
- package/dist/api/order/enum/orderType.js.map +1 -1
- package/dist/api/order/enum/tif.d.ts +30 -0
- package/dist/api/order/enum/tif.js +33 -0
- package/dist/api/order/enum/tif.js.map +1 -0
- package/dist/api/order/enum/trigger-method.js +1 -1
- package/dist/api/order/enum/trigger-method.js.map +1 -1
- package/dist/api/order/execution.d.ts +1 -0
- package/dist/api/order/order.d.ts +21 -6
- package/dist/api/order/order.js +2 -0
- package/dist/api/order/order.js.map +1 -1
- package/dist/api/order/stop.d.ts +3 -2
- package/dist/api/order/stop.js +2 -1
- package/dist/api/order/stop.js.map +1 -1
- package/dist/api/order/stopLimit.d.ts +3 -2
- package/dist/api/order/stopLimit.js +2 -1
- package/dist/api/order/stopLimit.js.map +1 -1
- package/dist/api/order/trailingStop.d.ts +4 -3
- package/dist/api/order/trailingStop.js +2 -1
- package/dist/api/order/trailingStop.js.map +1 -1
- package/dist/api-next/api-next.d.ts +19 -8
- package/dist/api-next/api-next.js +91 -35
- package/dist/api-next/api-next.js.map +1 -1
- package/dist/api-next/common/connection-state.js +1 -1
- package/dist/api-next/common/connection-state.js.map +1 -1
- package/dist/api-next/common/item-list-update.d.ts +0 -2
- package/dist/api-next/market/market-data-type.js +1 -1
- package/dist/api-next/market/market-data-type.js.map +1 -1
- package/dist/api-next/market/tick-type.js +1 -1
- package/dist/api-next/market/tick-type.js.map +1 -1
- package/dist/api-next/market-scanner/market-scanner.d.ts +0 -5
- package/dist/api-next/market-scanner/market-scanner.js +8 -8
- package/dist/api-next/market-scanner/market-scanner.js.map +1 -1
- package/dist/common/errorCode.d.ts +4 -1
- package/dist/common/errorCode.js +5 -1
- package/dist/common/errorCode.js.map +1 -1
- package/dist/core/api-next/item-list-update.d.ts +1 -2
- package/dist/core/api-next/item-list-update.js +1 -2
- package/dist/core/api-next/item-list-update.js.map +1 -1
- package/dist/core/api-next/subscription.d.ts +7 -7
- package/dist/core/api-next/subscription.js +16 -16
- package/dist/core/api-next/subscription.js.map +1 -1
- package/dist/core/io/controller.js +9 -0
- package/dist/core/io/controller.js.map +1 -1
- package/dist/core/io/decoder.d.ts +12 -6
- package/dist/core/io/decoder.js +79 -57
- package/dist/core/io/decoder.js.map +1 -1
- package/dist/core/io/encoder.d.ts +9 -7
- package/dist/core/io/encoder.js +99 -14
- package/dist/core/io/encoder.js.map +1 -1
- package/dist/core/io/enum/in-msg-id.js +1 -1
- package/dist/core/io/enum/in-msg-id.js.map +1 -1
- package/dist/core/io/socket.d.ts +4 -0
- package/dist/core/io/socket.js +5 -5
- package/dist/core/io/socket.js.map +1 -1
- package/dist/index.d.ts +8 -6
- package/dist/index.js +12 -7
- package/dist/index.js.map +1 -1
- package/dist/tests/unit/api/api.test.js +22 -22
- package/dist/tests/unit/api/api.test.js.map +1 -1
- package/dist/tests/unit/api/connect.test.js +11 -9
- package/dist/tests/unit/api/connect.test.js.map +1 -1
- package/dist/tests/unit/api/contract-details.test.d.ts +1 -0
- package/dist/tests/unit/api/contract-details.test.js +114 -0
- package/dist/tests/unit/api/contract-details.test.js.map +1 -0
- package/dist/tests/unit/api/market-data.test.js +16 -13
- package/dist/tests/unit/api/market-data.test.js.map +1 -1
- package/dist/tests/unit/api/market-scanner.test.d.ts +1 -0
- package/dist/tests/unit/api/market-scanner.test.js +71 -0
- package/dist/tests/unit/api/market-scanner.test.js.map +1 -0
- package/dist/tests/unit/api/matching-symbols.test.d.ts +1 -0
- package/dist/tests/unit/api/matching-symbols.test.js +84 -0
- package/dist/tests/unit/api/matching-symbols.test.js.map +1 -0
- package/dist/tests/unit/api/order/cancelOrder.test.d.ts +1 -0
- package/dist/tests/unit/api/order/cancelOrder.test.js +86 -0
- package/dist/tests/unit/api/order/cancelOrder.test.js.map +1 -0
- package/dist/tests/unit/api/order/placeOrder.test.js +69 -92
- package/dist/tests/unit/api/order/placeOrder.test.js.map +1 -1
- package/dist/tests/unit/api/order/reqAllOpenOrders.test.js +27 -26
- package/dist/tests/unit/api/order/reqAllOpenOrders.test.js.map +1 -1
- package/dist/tests/unit/api/wsh-event-data.test.d.ts +1 -0
- package/dist/tests/unit/api/wsh-event-data.test.js +113 -0
- package/dist/tests/unit/api/wsh-event-data.test.js.map +1 -0
- package/dist/tests/unit/api-next/get-account-summary.test.js +17 -6
- package/dist/tests/unit/api-next/get-account-summary.test.js.map +1 -1
- package/dist/tests/unit/api-next/get-all-open-orders.test.js +1 -2
- package/dist/tests/unit/api-next/get-all-open-orders.test.js.map +1 -1
- package/dist/tests/unit/api-next/get-head-timestamp.test.js +1 -1
- package/dist/tests/unit/api-next/get-head-timestamp.test.js.map +1 -1
- package/dist/tests/unit/api-next/get-historical-data-updates.test.js +1 -1
- package/dist/tests/unit/api-next/get-historical-data-updates.test.js.map +1 -1
- package/dist/tests/unit/api-next/get-historical-data.test.js +2 -2
- package/dist/tests/unit/api-next/get-historical-data.test.js.map +1 -1
- package/dist/tests/unit/api-next/{search-contracts.test.js → get-matching-symbols.js} +3 -3
- package/dist/tests/unit/api-next/get-matching-symbols.js.map +1 -0
- package/dist/tests/unit/api-next/get-positions.test.js +3 -0
- package/dist/tests/unit/api-next/get-positions.test.js.map +1 -1
- package/dist/tools/account-summary.js +1 -7
- package/dist/tools/account-summary.js.map +1 -1
- package/dist/tools/commission-reports.d.ts +3 -0
- package/dist/tools/commission-reports.js +2 -8
- package/dist/tools/commission-reports.js.map +1 -1
- package/dist/tools/common/ib-api-next-app.d.ts +2 -0
- package/dist/tools/common/ib-api-next-app.js +8 -0
- package/dist/tools/common/ib-api-next-app.js.map +1 -1
- package/dist/tools/contract-details.js +1 -7
- package/dist/tools/contract-details.js.map +1 -1
- package/dist/tools/current-time.js +1 -7
- package/dist/tools/current-time.js.map +1 -1
- package/dist/tools/execution-details.d.ts +3 -0
- package/dist/tools/execution-details.js +2 -8
- package/dist/tools/execution-details.js.map +1 -1
- package/dist/tools/get-head-timestamp.js +3 -8
- package/dist/tools/get-head-timestamp.js.map +1 -1
- package/dist/tools/histogram-data.d.ts +3 -0
- package/dist/tools/histogram-data.js +4 -7
- package/dist/tools/histogram-data.js.map +1 -1
- package/dist/tools/historical-data-updates.js +3 -11
- package/dist/tools/historical-data-updates.js.map +1 -1
- package/dist/tools/historical-data.d.ts +3 -0
- package/dist/tools/historical-data.js +4 -9
- package/dist/tools/historical-data.js.map +1 -1
- package/dist/tools/historical-ticks-bid-ask.js +1 -7
- package/dist/tools/historical-ticks-bid-ask.js.map +1 -1
- package/dist/tools/historical-ticks-last.js +1 -7
- package/dist/tools/historical-ticks-last.js.map +1 -1
- package/dist/tools/historical-ticks-mid.js +1 -7
- package/dist/tools/historical-ticks-mid.js.map +1 -1
- package/dist/tools/managed-accts.js +1 -7
- package/dist/tools/managed-accts.js.map +1 -1
- package/dist/tools/market-data-snapshot.js +1 -8
- package/dist/tools/market-data-snapshot.js.map +1 -1
- package/dist/tools/market-data.js +1 -8
- package/dist/tools/market-data.js.map +1 -1
- package/dist/tools/market-depth-exchanges.js +1 -7
- package/dist/tools/market-depth-exchanges.js.map +1 -1
- package/dist/tools/market-depth.js +1 -7
- package/dist/tools/market-depth.js.map +1 -1
- package/dist/tools/market-scanner.js +1 -7
- package/dist/tools/market-scanner.js.map +1 -1
- package/dist/tools/modify-order.js +1 -4
- package/dist/tools/modify-order.js.map +1 -1
- package/dist/tools/next-valid-order-id.js +1 -7
- package/dist/tools/next-valid-order-id.js.map +1 -1
- package/dist/tools/open-orders-auto.js +1 -7
- package/dist/tools/open-orders-auto.js.map +1 -1
- package/dist/tools/open-orders.js +1 -7
- package/dist/tools/open-orders.js.map +1 -1
- package/dist/tools/place-new-order.js +1 -4
- package/dist/tools/place-new-order.js.map +1 -1
- package/dist/tools/place-order.js +1 -2
- package/dist/tools/place-order.js.map +1 -1
- package/dist/tools/pnl-single.js +1 -10
- package/dist/tools/pnl-single.js.map +1 -1
- package/dist/tools/pnl.js +1 -10
- package/dist/tools/pnl.js.map +1 -1
- package/dist/tools/positions.js +1 -7
- package/dist/tools/positions.js.map +1 -1
- package/dist/tools/search-contracts.js +2 -8
- package/dist/tools/search-contracts.js.map +1 -1
- package/dist/tools/sec-def-opt-params.js +1 -7
- package/dist/tools/sec-def-opt-params.js.map +1 -1
- package/dist/tools/user-info.js +1 -7
- package/dist/tools/user-info.js.map +1 -1
- package/package.json +6 -6
- package/dist/tests/unit/api-next/search-contracts.test.js.map +0 -1
- /package/dist/tests/unit/api-next/{search-contracts.test.d.ts → get-matching-symbols.d.ts} +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import OrderAction from "./enum/order-action";
|
|
1
|
+
import { OrderAction } from "./enum/order-action";
|
|
2
2
|
import { OrderType } from "./enum/orderType";
|
|
3
|
+
import { TimeInForce } from "./enum/tif";
|
|
3
4
|
/**
|
|
4
5
|
* Represents a trailing-stop order.
|
|
5
6
|
*/
|
|
@@ -10,7 +11,7 @@ export declare class TrailingStopOrder {
|
|
|
10
11
|
trailingPercent?: number;
|
|
11
12
|
transmit?: boolean;
|
|
12
13
|
parentId?: number;
|
|
13
|
-
tif?:
|
|
14
|
+
tif?: TimeInForce;
|
|
14
15
|
/**
|
|
15
16
|
* Create a trailing-stop order.
|
|
16
17
|
*
|
|
@@ -31,7 +32,7 @@ export declare class TrailingStopOrder {
|
|
|
31
32
|
* - DAY - Valid for the day only.
|
|
32
33
|
* - GTC - Good until canceled.
|
|
33
34
|
*/
|
|
34
|
-
constructor(action: OrderAction, totalQuantity: number, auxPrice?: number, trailingPercent?: number, transmit?: boolean, parentId?: number, tif?:
|
|
35
|
+
constructor(action: OrderAction, totalQuantity: number, auxPrice?: number, trailingPercent?: number, transmit?: boolean, parentId?: number, tif?: TimeInForce);
|
|
35
36
|
/** The order's type (must be [[OrderType.TRAIL]]). */
|
|
36
37
|
readonly orderType = OrderType.TRAIL;
|
|
37
38
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TrailingStopOrder = void 0;
|
|
4
4
|
const orderType_1 = require("./enum/orderType");
|
|
5
|
+
const tif_1 = require("./enum/tif");
|
|
5
6
|
/**
|
|
6
7
|
* Represents a trailing-stop order.
|
|
7
8
|
*/
|
|
@@ -38,7 +39,7 @@ class TrailingStopOrder {
|
|
|
38
39
|
this.orderType = orderType_1.OrderType.TRAIL;
|
|
39
40
|
this.transmit = this.transmit ?? true;
|
|
40
41
|
this.parentId = this.parentId ?? 0;
|
|
41
|
-
this.tif = this.tif ??
|
|
42
|
+
this.tif = this.tif ?? tif_1.TimeInForce.DAY;
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
exports.TrailingStopOrder = TrailingStopOrder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trailingStop.js","sourceRoot":"","sources":["../../../src/api/order/trailingStop.ts"],"names":[],"mappings":";;;AACA,gDAA6C;
|
|
1
|
+
{"version":3,"file":"trailingStop.js","sourceRoot":"","sources":["../../../src/api/order/trailingStop.ts"],"names":[],"mappings":";;;AACA,gDAA6C;AAC7C,oCAAyC;AAEzC;;GAEG;AACH,MAAa,iBAAiB;IAC5B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YACS,MAAmB,EACnB,aAAqB,EACrB,QAAiB,EACjB,eAAwB,EACxB,QAAkB,EAClB,QAAiB,EACjB,GAAiB;QANjB,WAAM,GAAN,MAAM,CAAa;QACnB,kBAAa,GAAb,aAAa,CAAQ;QACrB,aAAQ,GAAR,QAAQ,CAAS;QACjB,oBAAe,GAAf,eAAe,CAAS;QACxB,aAAQ,GAAR,QAAQ,CAAU;QAClB,aAAQ,GAAR,QAAQ,CAAS;QACjB,QAAG,GAAH,GAAG,CAAc;QAO1B,sDAAsD;QACtC,cAAS,GAAG,qBAAS,CAAC,KAAK,CAAC;QAN1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,iBAAW,CAAC,GAAG,CAAC;IACzC,CAAC;CAIF;AArCD,8CAqCC;AAED,kBAAe,iBAAiB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Observable, Subject } from "rxjs";
|
|
2
|
-
import { Bar, BarSizeSetting, CommissionReport, Contract, ContractDescription, ContractDetails, DepthMktDataDescription, DurationUnit, ExecutionDetail, ExecutionFilter, HistogramEntry, HistoricalTick, HistoricalTickBidAsk, HistoricalTickLast, OpenOrder, Order, OrderBookUpdate, ScannerSubscription, SecType, TagValue } from "../";
|
|
2
|
+
import { Bar, BarSizeSetting, CommissionReport, Contract, ContractDescription, ContractDetails, DepthMktDataDescription, DurationUnit, ExecutionDetail, ExecutionFilter, HistogramEntry, HistoricalTick, HistoricalTickBidAsk, HistoricalTickLast, OpenOrder, Order, OrderBookUpdate, ScannerSubscription, SecType, TagValue, WhatToShow } from "../";
|
|
3
3
|
import LogLevel from "../api/data/enum/log-level";
|
|
4
4
|
import { MutableMarketData } from "../core/api-next/api/market/mutable-market-data";
|
|
5
5
|
import { IBApiNextLogger } from "../core/api-next/logger";
|
|
@@ -150,6 +150,8 @@ export declare class IBApiNext {
|
|
|
150
150
|
getManagedAccounts(): Promise<string[]>;
|
|
151
151
|
/** accountSummary event handler */
|
|
152
152
|
private readonly onAccountSummary;
|
|
153
|
+
/** accountSummaryEnd event handler */
|
|
154
|
+
private readonly onAccountSummaryEnd;
|
|
153
155
|
/**
|
|
154
156
|
* Create subscription to receive the account summaries of all linked accounts as presented in the TWS' Account Summary tab.
|
|
155
157
|
*
|
|
@@ -170,7 +172,7 @@ export declare class IBApiNext {
|
|
|
170
172
|
* - AccruedCash — Total accrued cash value of stock, commodities and securities
|
|
171
173
|
* - BuyingPower — Buying power serves as a measurement of the dollar value of securities that one may purchase in a securities account without depositing additional funds
|
|
172
174
|
* - EquityWithLoanValue — Forms the basis for determining whether a client has the necessary assets to either initiate or maintain security positions. Cash + stocks + bonds + mutual funds
|
|
173
|
-
* -
|
|
175
|
+
* - PreviousDayEquityWithLoanValue — Marginable Equity with Loan value as of 16:00 ET the previous day
|
|
174
176
|
* - GrossPositionValue — The sum of the absolute value of all stock and equity option positions
|
|
175
177
|
* - RegTEquity — Regulation T equity for universal account
|
|
176
178
|
* - RegTMargin — Regulation T margin for universal account
|
|
@@ -256,6 +258,8 @@ export declare class IBApiNext {
|
|
|
256
258
|
getAccountUpdates(acctCode?: string): Observable<AccountUpdatesUpdate>;
|
|
257
259
|
/** position event handler */
|
|
258
260
|
private readonly onPosition;
|
|
261
|
+
/** position end enumeration event handler */
|
|
262
|
+
private readonly onPositionEnd;
|
|
259
263
|
/**
|
|
260
264
|
* Create subscription to receive the positions on all accessible accounts.
|
|
261
265
|
*/
|
|
@@ -391,7 +395,7 @@ export declare class IBApiNext {
|
|
|
391
395
|
* @param useRTH Use regular trading hours only, `true` for yes or `false` for no.
|
|
392
396
|
* @param formatDate Set to 1 to obtain the bars' time as yyyyMMdd HH:mm:ss, set to 2 to obtain it like system time format in seconds.
|
|
393
397
|
*/
|
|
394
|
-
getHeadTimestamp(contract: Contract, whatToShow:
|
|
398
|
+
getHeadTimestamp(contract: Contract, whatToShow: WhatToShow, useRTH: boolean, formatDate: number): Promise<string>;
|
|
395
399
|
/** historicalData event handler */
|
|
396
400
|
private readonly onHistoricalData;
|
|
397
401
|
/**
|
|
@@ -442,7 +446,7 @@ export declare class IBApiNext {
|
|
|
442
446
|
* @param useRTH Set to 0 to obtain the data which was also generated outside of the Regular Trading Hours, set to 1 to obtain only the RTH data
|
|
443
447
|
* @param formatDate Set to 1 to obtain the bars' time as yyyyMMdd HH:mm:ss, set to 2 to obtain it like system time format in seconds
|
|
444
448
|
*/
|
|
445
|
-
getHistoricalData(contract: Contract, endDateTime: string | undefined, durationStr: string, barSizeSetting: BarSizeSetting, whatToShow:
|
|
449
|
+
getHistoricalData(contract: Contract, endDateTime: string | undefined, durationStr: string, barSizeSetting: BarSizeSetting, whatToShow: WhatToShow, useRTH: number, formatDate: number): Promise<Bar[]>;
|
|
446
450
|
/** historicalDataUpdate event handler */
|
|
447
451
|
private readonly onHistoricalDataUpdate;
|
|
448
452
|
/**
|
|
@@ -479,7 +483,7 @@ export declare class IBApiNext {
|
|
|
479
483
|
* - REBATE_RATE
|
|
480
484
|
* @param formatDate Set to 1 to obtain the bars' time as yyyyMMdd HH:mm:ss, set to 2 to obtain it like system time format in seconds
|
|
481
485
|
*/
|
|
482
|
-
getHistoricalDataUpdates(contract: Contract, barSizeSetting: BarSizeSetting, whatToShow:
|
|
486
|
+
getHistoricalDataUpdates(contract: Contract, barSizeSetting: BarSizeSetting, whatToShow: WhatToShow, formatDate: number): Observable<Bar>;
|
|
483
487
|
/** historicalTicks event handler */
|
|
484
488
|
private readonly onHistoricalTicks;
|
|
485
489
|
/**
|
|
@@ -608,10 +612,10 @@ export declare class IBApiNext {
|
|
|
608
612
|
*/
|
|
609
613
|
private readonly onOpenOrder;
|
|
610
614
|
/**
|
|
611
|
-
* Ends the
|
|
615
|
+
* Ends the subscription once all openOrders are recieved
|
|
612
616
|
* @param subscriptions: listeners
|
|
613
617
|
*/
|
|
614
|
-
private readonly
|
|
618
|
+
private readonly onOpenOrderComplete;
|
|
615
619
|
/**
|
|
616
620
|
* Response to API bind order control message.
|
|
617
621
|
*
|
|
@@ -641,6 +645,11 @@ export declare class IBApiNext {
|
|
|
641
645
|
* @see [[reqOpenOrders]]
|
|
642
646
|
*/
|
|
643
647
|
private readonly onOrderStatus;
|
|
648
|
+
/**
|
|
649
|
+
* Ends the subscription once all openOrders are recieved
|
|
650
|
+
* @param subscriptions: listeners
|
|
651
|
+
*/
|
|
652
|
+
private readonly onOpenOrderEnd;
|
|
644
653
|
/**
|
|
645
654
|
* Requests all current open orders in associated accounts at the current moment.
|
|
646
655
|
*/
|
|
@@ -739,7 +748,9 @@ export declare class IBApiNext {
|
|
|
739
748
|
*
|
|
740
749
|
* @param pattern Either start of ticker symbol or (for larger strings) company name.
|
|
741
750
|
*/
|
|
742
|
-
|
|
751
|
+
getMatchingSymbols(pattern: string): Promise<ContractDescription[]>;
|
|
752
|
+
/** @deprecated use getMatchingSymbols instead */
|
|
753
|
+
searchContracts: (pattern: string) => Promise<ContractDescription[]>;
|
|
743
754
|
/** userInfo event handler. */
|
|
744
755
|
private readonly onUserInfo;
|
|
745
756
|
/**
|
|
@@ -108,7 +108,10 @@ class IBApiNext {
|
|
|
108
108
|
]),
|
|
109
109
|
],
|
|
110
110
|
]);
|
|
111
|
-
if (
|
|
111
|
+
if (!subscription.endEventReceived) {
|
|
112
|
+
subscription.lastAllValue = cached;
|
|
113
|
+
}
|
|
114
|
+
else if (hasChanged) {
|
|
112
115
|
subscription.next({
|
|
113
116
|
all: cached,
|
|
114
117
|
changed: accountSummaryUpdate,
|
|
@@ -121,6 +124,19 @@ class IBApiNext {
|
|
|
121
124
|
});
|
|
122
125
|
}
|
|
123
126
|
};
|
|
127
|
+
/** accountSummaryEnd event handler */
|
|
128
|
+
this.onAccountSummaryEnd = (subscriptions, reqId) => {
|
|
129
|
+
// get the subscription
|
|
130
|
+
const subscription = subscriptions.get(reqId);
|
|
131
|
+
if (!subscription) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
// get latest value on cache
|
|
135
|
+
const cached = subscription.lastAllValue ?? new mutable_account_summary_1.MutableAccountSummaries();
|
|
136
|
+
// sent data to subscribers
|
|
137
|
+
subscription.endEventReceived = true;
|
|
138
|
+
subscription.next({ all: cached });
|
|
139
|
+
};
|
|
124
140
|
/**
|
|
125
141
|
* Response to API updateAccountValue control message.
|
|
126
142
|
*
|
|
@@ -286,7 +302,12 @@ class IBApiNext {
|
|
|
286
302
|
*/
|
|
287
303
|
this.onAccountDownloadEnd = (subscriptions, accountName) => {
|
|
288
304
|
this.logger.debug(LOG_TAG, `onAccountDownloadEnd(${accountName})`);
|
|
289
|
-
//
|
|
305
|
+
// notify all subscribers
|
|
306
|
+
subscriptions.forEach((subscription) => {
|
|
307
|
+
const all = subscription.lastAllValue ?? {};
|
|
308
|
+
subscription.endEventReceived = true;
|
|
309
|
+
subscription.next({ all });
|
|
310
|
+
});
|
|
290
311
|
};
|
|
291
312
|
/** position event handler */
|
|
292
313
|
this.onPosition = (subscriptions, account, contract, pos, avgCost) => {
|
|
@@ -315,7 +336,10 @@ class IBApiNext {
|
|
|
315
336
|
accountPositions[changePositionIndex] = updatedPosition;
|
|
316
337
|
}
|
|
317
338
|
}
|
|
318
|
-
if (
|
|
339
|
+
if (!subscription.endEventReceived) {
|
|
340
|
+
subscription.lastAllValue = cached;
|
|
341
|
+
}
|
|
342
|
+
else if (hasAdded) {
|
|
319
343
|
subscription.next({
|
|
320
344
|
all: cached,
|
|
321
345
|
added: new mutable_account_positions_update_1.MutableAccountPositions([[account, [updatedPosition]]]),
|
|
@@ -335,6 +359,15 @@ class IBApiNext {
|
|
|
335
359
|
}
|
|
336
360
|
});
|
|
337
361
|
};
|
|
362
|
+
/** position end enumeration event handler */
|
|
363
|
+
this.onPositionEnd = (subscriptions) => {
|
|
364
|
+
// notify all subscribers
|
|
365
|
+
subscriptions.forEach((subscription) => {
|
|
366
|
+
const lastAllValue = subscription.lastAllValue ?? new mutable_account_positions_update_1.MutableAccountPositions();
|
|
367
|
+
subscription.endEventReceived = true;
|
|
368
|
+
subscription.next({ all: lastAllValue });
|
|
369
|
+
});
|
|
370
|
+
};
|
|
338
371
|
/** contractDetails event handler */
|
|
339
372
|
this.onContractDetails = (subscriptions, reqId, details) => {
|
|
340
373
|
// get the subscription
|
|
@@ -914,25 +947,22 @@ class IBApiNext {
|
|
|
914
947
|
legStr,
|
|
915
948
|
};
|
|
916
949
|
// console.log("onScannerData", item);
|
|
917
|
-
const
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
lastValue.all.set(rank, item);
|
|
923
|
-
if (lastValue.allset) {
|
|
950
|
+
const lastAllValue = subscription.lastAllValue ??
|
|
951
|
+
new Map();
|
|
952
|
+
const existing = lastAllValue.get(rank) != undefined;
|
|
953
|
+
lastAllValue.set(rank, item);
|
|
954
|
+
if (subscription.endEventReceived) {
|
|
924
955
|
const updated = new Map();
|
|
925
956
|
updated.set(rank, item);
|
|
926
957
|
subscription.next({
|
|
927
|
-
all:
|
|
928
|
-
allset: lastValue.allset,
|
|
958
|
+
all: lastAllValue,
|
|
929
959
|
changed: existing ? updated : undefined,
|
|
930
960
|
added: existing ? undefined : updated,
|
|
931
961
|
});
|
|
932
962
|
}
|
|
933
963
|
else {
|
|
934
964
|
// console.log("saving for future use", lastValue);
|
|
935
|
-
subscription.
|
|
965
|
+
subscription.lastAllValue = lastAllValue;
|
|
936
966
|
}
|
|
937
967
|
};
|
|
938
968
|
/**
|
|
@@ -946,16 +976,12 @@ class IBApiNext {
|
|
|
946
976
|
if (!subscription) {
|
|
947
977
|
return;
|
|
948
978
|
}
|
|
949
|
-
const
|
|
950
|
-
|
|
951
|
-
};
|
|
979
|
+
const lastAllValue = subscription.lastAllValue ??
|
|
980
|
+
new Map();
|
|
952
981
|
const updated = {
|
|
953
|
-
all:
|
|
954
|
-
allset: true,
|
|
955
|
-
added: lastValue.all,
|
|
982
|
+
all: lastAllValue,
|
|
956
983
|
};
|
|
957
|
-
|
|
958
|
-
// subscription.next(updated);
|
|
984
|
+
subscription.endEventReceived = true;
|
|
959
985
|
subscription.next(updated);
|
|
960
986
|
};
|
|
961
987
|
/** histogramData event handler */
|
|
@@ -994,10 +1020,15 @@ class IBApiNext {
|
|
|
994
1020
|
orderStatus: undefined,
|
|
995
1021
|
};
|
|
996
1022
|
allOrders.push(addedOrder);
|
|
997
|
-
sub.
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1023
|
+
if (sub.endEventReceived) {
|
|
1024
|
+
sub.next({
|
|
1025
|
+
all: allOrders,
|
|
1026
|
+
added: [addedOrder],
|
|
1027
|
+
});
|
|
1028
|
+
}
|
|
1029
|
+
else {
|
|
1030
|
+
sub.lastAllValue = allOrders;
|
|
1031
|
+
}
|
|
1001
1032
|
}
|
|
1002
1033
|
else {
|
|
1003
1034
|
// update
|
|
@@ -1019,11 +1050,14 @@ class IBApiNext {
|
|
|
1019
1050
|
});
|
|
1020
1051
|
};
|
|
1021
1052
|
/**
|
|
1022
|
-
* Ends the
|
|
1053
|
+
* Ends the subscription once all openOrders are recieved
|
|
1023
1054
|
* @param subscriptions: listeners
|
|
1024
1055
|
*/
|
|
1025
|
-
this.
|
|
1056
|
+
this.onOpenOrderComplete = (subscriptions) => {
|
|
1026
1057
|
subscriptions.forEach((sub) => {
|
|
1058
|
+
const allOrders = sub.lastAllValue ?? [];
|
|
1059
|
+
sub.endEventReceived = true;
|
|
1060
|
+
sub.next({ all: allOrders });
|
|
1027
1061
|
sub.complete();
|
|
1028
1062
|
});
|
|
1029
1063
|
};
|
|
@@ -1104,6 +1138,18 @@ class IBApiNext {
|
|
|
1104
1138
|
}
|
|
1105
1139
|
});
|
|
1106
1140
|
};
|
|
1141
|
+
/**
|
|
1142
|
+
* Ends the subscription once all openOrders are recieved
|
|
1143
|
+
* @param subscriptions: listeners
|
|
1144
|
+
*/
|
|
1145
|
+
this.onOpenOrderEnd = (subscriptions) => {
|
|
1146
|
+
// notify all subscribers
|
|
1147
|
+
subscriptions.forEach((subscription) => {
|
|
1148
|
+
const lastAllValue = subscription.lastAllValue ?? [];
|
|
1149
|
+
subscription.endEventReceived = true;
|
|
1150
|
+
subscription.next({ all: lastAllValue });
|
|
1151
|
+
});
|
|
1152
|
+
};
|
|
1107
1153
|
/** nextValidId event handler */
|
|
1108
1154
|
this.onNextValidId = (subscriptions, orderId) => {
|
|
1109
1155
|
// this is special to other one-shot callbacks:
|
|
@@ -1166,6 +1212,8 @@ class IBApiNext {
|
|
|
1166
1212
|
});
|
|
1167
1213
|
sub?.complete();
|
|
1168
1214
|
};
|
|
1215
|
+
/** @deprecated use getMatchingSymbols instead */
|
|
1216
|
+
this.searchContracts = this.getMatchingSymbols;
|
|
1169
1217
|
/** userInfo event handler. */
|
|
1170
1218
|
this.onUserInfo = (subscriptions, reqId, whiteBrandingId) => {
|
|
1171
1219
|
const sub = subscriptions.get(reqId);
|
|
@@ -1316,7 +1364,7 @@ class IBApiNext {
|
|
|
1316
1364
|
* - AccruedCash — Total accrued cash value of stock, commodities and securities
|
|
1317
1365
|
* - BuyingPower — Buying power serves as a measurement of the dollar value of securities that one may purchase in a securities account without depositing additional funds
|
|
1318
1366
|
* - EquityWithLoanValue — Forms the basis for determining whether a client has the necessary assets to either initiate or maintain security positions. Cash + stocks + bonds + mutual funds
|
|
1319
|
-
* -
|
|
1367
|
+
* - PreviousDayEquityWithLoanValue — Marginable Equity with Loan value as of 16:00 ET the previous day
|
|
1320
1368
|
* - GrossPositionValue — The sum of the absolute value of all stock and equity option positions
|
|
1321
1369
|
* - RegTEquity — Regulation T equity for universal account
|
|
1322
1370
|
* - RegTMargin — Regulation T margin for universal account
|
|
@@ -1347,7 +1395,10 @@ class IBApiNext {
|
|
|
1347
1395
|
this.api.reqAccountSummary(reqId, group, tags);
|
|
1348
1396
|
}, (reqId) => {
|
|
1349
1397
|
this.api.cancelAccountSummary(reqId);
|
|
1350
|
-
}, [
|
|
1398
|
+
}, [
|
|
1399
|
+
[__1.EventName.accountSummary, this.onAccountSummary],
|
|
1400
|
+
[__1.EventName.accountSummaryEnd, this.onAccountSummaryEnd],
|
|
1401
|
+
], `${group}:${tags}`);
|
|
1351
1402
|
}
|
|
1352
1403
|
/**
|
|
1353
1404
|
* The getAccountUpdates function creates a subscription to the TWS through which account and portfolio information is delivered.
|
|
@@ -1380,7 +1431,10 @@ class IBApiNext {
|
|
|
1380
1431
|
this.api.reqPositions();
|
|
1381
1432
|
}, () => {
|
|
1382
1433
|
this.api.cancelPositions();
|
|
1383
|
-
}, [
|
|
1434
|
+
}, [
|
|
1435
|
+
[__1.EventName.position, this.onPosition],
|
|
1436
|
+
[__1.EventName.positionEnd, this.onPositionEnd],
|
|
1437
|
+
], "getPositions");
|
|
1384
1438
|
}
|
|
1385
1439
|
/**
|
|
1386
1440
|
* Request contract information from TWS.
|
|
@@ -1682,7 +1736,7 @@ class IBApiNext {
|
|
|
1682
1736
|
getHistoricalTicksMid(contract, startDateTime, endDateTime, numberOfTicks, useRTH) {
|
|
1683
1737
|
return this.subscriptions
|
|
1684
1738
|
.register((reqId) => {
|
|
1685
|
-
this.api.reqHistoricalTicks(reqId, contract, startDateTime, endDateTime, numberOfTicks,
|
|
1739
|
+
this.api.reqHistoricalTicks(reqId, contract, startDateTime, endDateTime, numberOfTicks, __1.WhatToShow.MIDPOINT, useRTH, false);
|
|
1686
1740
|
}, undefined, [[__1.EventName.historicalTicks, this.onHistoricalTicks]], undefined)
|
|
1687
1741
|
.pipe((0, operators_1.map)((v) => v.all));
|
|
1688
1742
|
}
|
|
@@ -1702,7 +1756,7 @@ class IBApiNext {
|
|
|
1702
1756
|
getHistoricalTicksBidAsk(contract, startDateTime, endDateTime, numberOfTicks, useRTH, ignoreSize) {
|
|
1703
1757
|
return this.subscriptions
|
|
1704
1758
|
.register((reqId) => {
|
|
1705
|
-
this.api.reqHistoricalTicks(reqId, contract, startDateTime, endDateTime, numberOfTicks,
|
|
1759
|
+
this.api.reqHistoricalTicks(reqId, contract, startDateTime, endDateTime, numberOfTicks, __1.WhatToShow.BID_ASK, useRTH, ignoreSize);
|
|
1706
1760
|
}, undefined, [[__1.EventName.historicalTicksBidAsk, this.onHistoricalTicksBidAsk]], undefined)
|
|
1707
1761
|
.pipe((0, operators_1.map)((v) => v.all));
|
|
1708
1762
|
}
|
|
@@ -1721,7 +1775,7 @@ class IBApiNext {
|
|
|
1721
1775
|
getHistoricalTicksLast(contract, startDateTime, endDateTime, numberOfTicks, useRTH) {
|
|
1722
1776
|
return this.subscriptions
|
|
1723
1777
|
.register((reqId) => {
|
|
1724
|
-
this.api.reqHistoricalTicks(reqId, contract, startDateTime, endDateTime, numberOfTicks,
|
|
1778
|
+
this.api.reqHistoricalTicks(reqId, contract, startDateTime, endDateTime, numberOfTicks, __1.WhatToShow.TRADES, useRTH, false);
|
|
1725
1779
|
}, undefined, [[__1.EventName.historicalTicksLast, this.onHistoricalTicksLast]], undefined)
|
|
1726
1780
|
.pipe((0, operators_1.map)((v) => v.all));
|
|
1727
1781
|
}
|
|
@@ -1827,7 +1881,7 @@ class IBApiNext {
|
|
|
1827
1881
|
[__1.EventName.openOrder, this.onOpenOrder],
|
|
1828
1882
|
[__1.EventName.orderStatus, this.onOrderStatus],
|
|
1829
1883
|
[__1.EventName.orderBound, this.onOrderBound],
|
|
1830
|
-
[__1.EventName.openOrderEnd, this.
|
|
1884
|
+
[__1.EventName.openOrderEnd, this.onOpenOrderComplete],
|
|
1831
1885
|
], "getAllOpenOrders")
|
|
1832
1886
|
.pipe((0, operators_1.map)((v) => v.all)), {
|
|
1833
1887
|
defaultValue: [],
|
|
@@ -1844,6 +1898,7 @@ class IBApiNext {
|
|
|
1844
1898
|
[__1.EventName.openOrder, this.onOpenOrder],
|
|
1845
1899
|
[__1.EventName.orderStatus, this.onOrderStatus],
|
|
1846
1900
|
[__1.EventName.orderBound, this.onOrderBound],
|
|
1901
|
+
[__1.EventName.openOrderEnd, this.onOpenOrderEnd],
|
|
1847
1902
|
], "getOpenOrders");
|
|
1848
1903
|
}
|
|
1849
1904
|
/**
|
|
@@ -1861,6 +1916,7 @@ class IBApiNext {
|
|
|
1861
1916
|
[__1.EventName.openOrder, this.onOpenOrder],
|
|
1862
1917
|
[__1.EventName.orderStatus, this.onOrderStatus],
|
|
1863
1918
|
[__1.EventName.orderBound, this.onOrderBound],
|
|
1919
|
+
[__1.EventName.openOrderEnd, this.onOpenOrderEnd],
|
|
1864
1920
|
], "getAutoOpenOrders");
|
|
1865
1921
|
}
|
|
1866
1922
|
/**
|
|
@@ -1966,7 +2022,7 @@ class IBApiNext {
|
|
|
1966
2022
|
*
|
|
1967
2023
|
* @param pattern Either start of ticker symbol or (for larger strings) company name.
|
|
1968
2024
|
*/
|
|
1969
|
-
|
|
2025
|
+
getMatchingSymbols(pattern) {
|
|
1970
2026
|
return (0, rxjs_1.lastValueFrom)(this.subscriptions
|
|
1971
2027
|
.register((reqId) => {
|
|
1972
2028
|
this.api.reqMatchingSymbols(reqId, pattern);
|