@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.
Files changed (214) hide show
  1. package/README.md +3 -3
  2. package/dist/api/api.d.ts +58 -55
  3. package/dist/api/api.js +50 -44
  4. package/dist/api/api.js.map +1 -1
  5. package/dist/api/contract/contract.d.ts +4 -0
  6. package/dist/api/contract/forex.js.map +1 -1
  7. package/dist/api/contract/wsh.d.ts +15 -0
  8. package/dist/api/contract/wsh.js +21 -0
  9. package/dist/api/contract/wsh.js.map +1 -0
  10. package/dist/api/data/enum/duration-unit.js +1 -1
  11. package/dist/api/data/enum/duration-unit.js.map +1 -1
  12. package/dist/api/data/enum/event-name.js +1 -1
  13. package/dist/api/data/enum/event-name.js.map +1 -1
  14. package/dist/api/data/enum/fad-data-type.d.ts +2 -1
  15. package/dist/api/data/enum/fad-data-type.js +3 -2
  16. package/dist/api/data/enum/fad-data-type.js.map +1 -1
  17. package/dist/api/data/enum/log-level.js +1 -1
  18. package/dist/api/data/enum/log-level.js.map +1 -1
  19. package/dist/api/data/enum/min-server-version.d.ts +3 -1
  20. package/dist/api/data/enum/min-server-version.js +3 -1
  21. package/dist/api/data/enum/min-server-version.js.map +1 -1
  22. package/dist/api/data/enum/option-exercise-action.js +1 -1
  23. package/dist/api/data/enum/option-exercise-action.js.map +1 -1
  24. package/dist/api/data/enum/option-type.js +1 -1
  25. package/dist/api/data/enum/option-type.js.map +1 -1
  26. package/dist/api/data/enum/sec-type.d.ts +22 -13
  27. package/dist/api/data/enum/sec-type.js +24 -15
  28. package/dist/api/data/enum/sec-type.js.map +1 -1
  29. package/dist/api/historical/bar-size-setting.js +1 -1
  30. package/dist/api/historical/bar-size-setting.js.map +1 -1
  31. package/dist/api/historical/what-to-show.d.ts +21 -0
  32. package/dist/api/historical/what-to-show.js +25 -0
  33. package/dist/api/historical/what-to-show.js.map +1 -0
  34. package/dist/api/market/tickByTickDataType.js +1 -1
  35. package/dist/api/market/tickByTickDataType.js.map +1 -1
  36. package/dist/api/market/tickType.d.ts +12 -0
  37. package/dist/api/market/tickType.js +13 -1
  38. package/dist/api/market/tickType.js.map +1 -1
  39. package/dist/api/order/enum/conjunction-connection.js +1 -1
  40. package/dist/api/order/enum/conjunction-connection.js.map +1 -1
  41. package/dist/api/order/enum/order-action.js +1 -1
  42. package/dist/api/order/enum/order-action.js.map +1 -1
  43. package/dist/api/order/enum/order-condition-type.js +1 -1
  44. package/dist/api/order/enum/order-condition-type.js.map +1 -1
  45. package/dist/api/order/enum/order-status.js +1 -1
  46. package/dist/api/order/enum/order-status.js.map +1 -1
  47. package/dist/api/order/enum/orderType.d.ts +4 -0
  48. package/dist/api/order/enum/orderType.js +24 -2
  49. package/dist/api/order/enum/orderType.js.map +1 -1
  50. package/dist/api/order/enum/tif.d.ts +30 -0
  51. package/dist/api/order/enum/tif.js +33 -0
  52. package/dist/api/order/enum/tif.js.map +1 -0
  53. package/dist/api/order/enum/trigger-method.js +1 -1
  54. package/dist/api/order/enum/trigger-method.js.map +1 -1
  55. package/dist/api/order/execution.d.ts +1 -0
  56. package/dist/api/order/order.d.ts +21 -6
  57. package/dist/api/order/order.js +2 -0
  58. package/dist/api/order/order.js.map +1 -1
  59. package/dist/api/order/stop.d.ts +3 -2
  60. package/dist/api/order/stop.js +2 -1
  61. package/dist/api/order/stop.js.map +1 -1
  62. package/dist/api/order/stopLimit.d.ts +3 -2
  63. package/dist/api/order/stopLimit.js +2 -1
  64. package/dist/api/order/stopLimit.js.map +1 -1
  65. package/dist/api/order/trailingStop.d.ts +4 -3
  66. package/dist/api/order/trailingStop.js +2 -1
  67. package/dist/api/order/trailingStop.js.map +1 -1
  68. package/dist/api-next/api-next.d.ts +19 -8
  69. package/dist/api-next/api-next.js +91 -35
  70. package/dist/api-next/api-next.js.map +1 -1
  71. package/dist/api-next/common/connection-state.js +1 -1
  72. package/dist/api-next/common/connection-state.js.map +1 -1
  73. package/dist/api-next/common/item-list-update.d.ts +0 -2
  74. package/dist/api-next/market/market-data-type.js +1 -1
  75. package/dist/api-next/market/market-data-type.js.map +1 -1
  76. package/dist/api-next/market/tick-type.js +1 -1
  77. package/dist/api-next/market/tick-type.js.map +1 -1
  78. package/dist/api-next/market-scanner/market-scanner.d.ts +0 -5
  79. package/dist/api-next/market-scanner/market-scanner.js +8 -8
  80. package/dist/api-next/market-scanner/market-scanner.js.map +1 -1
  81. package/dist/common/errorCode.d.ts +4 -1
  82. package/dist/common/errorCode.js +5 -1
  83. package/dist/common/errorCode.js.map +1 -1
  84. package/dist/core/api-next/item-list-update.d.ts +1 -2
  85. package/dist/core/api-next/item-list-update.js +1 -2
  86. package/dist/core/api-next/item-list-update.js.map +1 -1
  87. package/dist/core/api-next/subscription.d.ts +7 -7
  88. package/dist/core/api-next/subscription.js +16 -16
  89. package/dist/core/api-next/subscription.js.map +1 -1
  90. package/dist/core/io/controller.js +9 -0
  91. package/dist/core/io/controller.js.map +1 -1
  92. package/dist/core/io/decoder.d.ts +12 -6
  93. package/dist/core/io/decoder.js +79 -57
  94. package/dist/core/io/decoder.js.map +1 -1
  95. package/dist/core/io/encoder.d.ts +9 -7
  96. package/dist/core/io/encoder.js +99 -14
  97. package/dist/core/io/encoder.js.map +1 -1
  98. package/dist/core/io/enum/in-msg-id.js +1 -1
  99. package/dist/core/io/enum/in-msg-id.js.map +1 -1
  100. package/dist/core/io/socket.d.ts +4 -0
  101. package/dist/core/io/socket.js +5 -5
  102. package/dist/core/io/socket.js.map +1 -1
  103. package/dist/index.d.ts +8 -6
  104. package/dist/index.js +12 -7
  105. package/dist/index.js.map +1 -1
  106. package/dist/tests/unit/api/api.test.js +22 -22
  107. package/dist/tests/unit/api/api.test.js.map +1 -1
  108. package/dist/tests/unit/api/connect.test.js +11 -9
  109. package/dist/tests/unit/api/connect.test.js.map +1 -1
  110. package/dist/tests/unit/api/contract-details.test.d.ts +1 -0
  111. package/dist/tests/unit/api/contract-details.test.js +114 -0
  112. package/dist/tests/unit/api/contract-details.test.js.map +1 -0
  113. package/dist/tests/unit/api/market-data.test.js +16 -13
  114. package/dist/tests/unit/api/market-data.test.js.map +1 -1
  115. package/dist/tests/unit/api/market-scanner.test.d.ts +1 -0
  116. package/dist/tests/unit/api/market-scanner.test.js +71 -0
  117. package/dist/tests/unit/api/market-scanner.test.js.map +1 -0
  118. package/dist/tests/unit/api/matching-symbols.test.d.ts +1 -0
  119. package/dist/tests/unit/api/matching-symbols.test.js +84 -0
  120. package/dist/tests/unit/api/matching-symbols.test.js.map +1 -0
  121. package/dist/tests/unit/api/order/cancelOrder.test.d.ts +1 -0
  122. package/dist/tests/unit/api/order/cancelOrder.test.js +86 -0
  123. package/dist/tests/unit/api/order/cancelOrder.test.js.map +1 -0
  124. package/dist/tests/unit/api/order/placeOrder.test.js +69 -92
  125. package/dist/tests/unit/api/order/placeOrder.test.js.map +1 -1
  126. package/dist/tests/unit/api/order/reqAllOpenOrders.test.js +27 -26
  127. package/dist/tests/unit/api/order/reqAllOpenOrders.test.js.map +1 -1
  128. package/dist/tests/unit/api/wsh-event-data.test.d.ts +1 -0
  129. package/dist/tests/unit/api/wsh-event-data.test.js +113 -0
  130. package/dist/tests/unit/api/wsh-event-data.test.js.map +1 -0
  131. package/dist/tests/unit/api-next/get-account-summary.test.js +17 -6
  132. package/dist/tests/unit/api-next/get-account-summary.test.js.map +1 -1
  133. package/dist/tests/unit/api-next/get-all-open-orders.test.js +1 -2
  134. package/dist/tests/unit/api-next/get-all-open-orders.test.js.map +1 -1
  135. package/dist/tests/unit/api-next/get-head-timestamp.test.js +1 -1
  136. package/dist/tests/unit/api-next/get-head-timestamp.test.js.map +1 -1
  137. package/dist/tests/unit/api-next/get-historical-data-updates.test.js +1 -1
  138. package/dist/tests/unit/api-next/get-historical-data-updates.test.js.map +1 -1
  139. package/dist/tests/unit/api-next/get-historical-data.test.js +2 -2
  140. package/dist/tests/unit/api-next/get-historical-data.test.js.map +1 -1
  141. package/dist/tests/unit/api-next/{search-contracts.test.js → get-matching-symbols.js} +3 -3
  142. package/dist/tests/unit/api-next/get-matching-symbols.js.map +1 -0
  143. package/dist/tests/unit/api-next/get-positions.test.js +3 -0
  144. package/dist/tests/unit/api-next/get-positions.test.js.map +1 -1
  145. package/dist/tools/account-summary.js +1 -7
  146. package/dist/tools/account-summary.js.map +1 -1
  147. package/dist/tools/commission-reports.d.ts +3 -0
  148. package/dist/tools/commission-reports.js +2 -8
  149. package/dist/tools/commission-reports.js.map +1 -1
  150. package/dist/tools/common/ib-api-next-app.d.ts +2 -0
  151. package/dist/tools/common/ib-api-next-app.js +8 -0
  152. package/dist/tools/common/ib-api-next-app.js.map +1 -1
  153. package/dist/tools/contract-details.js +1 -7
  154. package/dist/tools/contract-details.js.map +1 -1
  155. package/dist/tools/current-time.js +1 -7
  156. package/dist/tools/current-time.js.map +1 -1
  157. package/dist/tools/execution-details.d.ts +3 -0
  158. package/dist/tools/execution-details.js +2 -8
  159. package/dist/tools/execution-details.js.map +1 -1
  160. package/dist/tools/get-head-timestamp.js +3 -8
  161. package/dist/tools/get-head-timestamp.js.map +1 -1
  162. package/dist/tools/histogram-data.d.ts +3 -0
  163. package/dist/tools/histogram-data.js +4 -7
  164. package/dist/tools/histogram-data.js.map +1 -1
  165. package/dist/tools/historical-data-updates.js +3 -11
  166. package/dist/tools/historical-data-updates.js.map +1 -1
  167. package/dist/tools/historical-data.d.ts +3 -0
  168. package/dist/tools/historical-data.js +4 -9
  169. package/dist/tools/historical-data.js.map +1 -1
  170. package/dist/tools/historical-ticks-bid-ask.js +1 -7
  171. package/dist/tools/historical-ticks-bid-ask.js.map +1 -1
  172. package/dist/tools/historical-ticks-last.js +1 -7
  173. package/dist/tools/historical-ticks-last.js.map +1 -1
  174. package/dist/tools/historical-ticks-mid.js +1 -7
  175. package/dist/tools/historical-ticks-mid.js.map +1 -1
  176. package/dist/tools/managed-accts.js +1 -7
  177. package/dist/tools/managed-accts.js.map +1 -1
  178. package/dist/tools/market-data-snapshot.js +1 -8
  179. package/dist/tools/market-data-snapshot.js.map +1 -1
  180. package/dist/tools/market-data.js +1 -8
  181. package/dist/tools/market-data.js.map +1 -1
  182. package/dist/tools/market-depth-exchanges.js +1 -7
  183. package/dist/tools/market-depth-exchanges.js.map +1 -1
  184. package/dist/tools/market-depth.js +1 -7
  185. package/dist/tools/market-depth.js.map +1 -1
  186. package/dist/tools/market-scanner.js +1 -7
  187. package/dist/tools/market-scanner.js.map +1 -1
  188. package/dist/tools/modify-order.js +1 -4
  189. package/dist/tools/modify-order.js.map +1 -1
  190. package/dist/tools/next-valid-order-id.js +1 -7
  191. package/dist/tools/next-valid-order-id.js.map +1 -1
  192. package/dist/tools/open-orders-auto.js +1 -7
  193. package/dist/tools/open-orders-auto.js.map +1 -1
  194. package/dist/tools/open-orders.js +1 -7
  195. package/dist/tools/open-orders.js.map +1 -1
  196. package/dist/tools/place-new-order.js +1 -4
  197. package/dist/tools/place-new-order.js.map +1 -1
  198. package/dist/tools/place-order.js +1 -2
  199. package/dist/tools/place-order.js.map +1 -1
  200. package/dist/tools/pnl-single.js +1 -10
  201. package/dist/tools/pnl-single.js.map +1 -1
  202. package/dist/tools/pnl.js +1 -10
  203. package/dist/tools/pnl.js.map +1 -1
  204. package/dist/tools/positions.js +1 -7
  205. package/dist/tools/positions.js.map +1 -1
  206. package/dist/tools/search-contracts.js +2 -8
  207. package/dist/tools/search-contracts.js.map +1 -1
  208. package/dist/tools/sec-def-opt-params.js +1 -7
  209. package/dist/tools/sec-def-opt-params.js.map +1 -1
  210. package/dist/tools/user-info.js +1 -7
  211. package/dist/tools/user-info.js.map +1 -1
  212. package/package.json +6 -6
  213. package/dist/tests/unit/api-next/search-contracts.test.js.map +0 -1
  214. /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?: string;
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?: string);
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 ?? "DAY";
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;AAE7C;;GAEG;AACH,MAAa,iBAAiB;IAC5B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YACS,MAAmB,EACnB,aAAqB,EACrB,QAAiB,EACjB,eAAwB,EACxB,QAAkB,EAClB,QAAiB,EACjB,GAAY;QANZ,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,CAAS;QAOrB,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,KAAK,CAAC;IAC/B,CAAC;CAIF;AArCD,8CAqCC;AAED,kBAAe,iBAAiB,CAAC"}
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
- * - PreviousEquityWithLoanValue — Marginable Equity with Loan value as of 16:00 ET the previous day
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: string, useRTH: boolean, formatDate: number): Promise<string>;
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: string, useRTH: number, formatDate: number): Promise<Bar[]>;
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: string, formatDate: number): Observable<Bar>;
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 subscrition once all openOrders are recieved
615
+ * Ends the subscription once all openOrders are recieved
612
616
  * @param subscriptions: listeners
613
617
  */
614
- private readonly onOpenOrderEnd;
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
- searchContracts(pattern: string): Promise<ContractDescription[]>;
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 (hasChanged) {
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
- // TODO finish implementation
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 (hasAdded) {
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 lastValue = subscription.lastValue ?? {
918
- all: new Map(),
919
- allset: false,
920
- };
921
- const existing = lastValue.all.get(rank) != undefined;
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: lastValue.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.lastValue = lastValue;
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 lastValue = subscription.lastValue ?? {
950
- all: new Map(),
951
- };
979
+ const lastAllValue = subscription.lastAllValue ??
980
+ new Map();
952
981
  const updated = {
953
- all: lastValue.all,
954
- allset: true,
955
- added: lastValue.all,
982
+ all: lastAllValue,
956
983
  };
957
- // console.log("onScannerDataEnd", updated);
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.next({
998
- all: allOrders,
999
- added: [addedOrder],
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 subscrition once all openOrders are recieved
1053
+ * Ends the subscription once all openOrders are recieved
1023
1054
  * @param subscriptions: listeners
1024
1055
  */
1025
- this.onOpenOrderEnd = (subscriptions) => {
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
- * - PreviousEquityWithLoanValue — Marginable Equity with Loan value as of 16:00 ET the previous day
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
- }, [[__1.EventName.accountSummary, this.onAccountSummary]], `${group}:${tags}`);
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
- }, [[__1.EventName.position, this.onPosition]], "getPositions");
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, "MIDPOINT", useRTH, false);
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, "BID_ASK", useRTH, ignoreSize);
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, "TRADES", useRTH, false);
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.onOpenOrderEnd],
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
- searchContracts(pattern) {
2025
+ getMatchingSymbols(pattern) {
1970
2026
  return (0, rxjs_1.lastValueFrom)(this.subscriptions
1971
2027
  .register((reqId) => {
1972
2028
  this.api.reqMatchingSymbols(reqId, pattern);