@huskly/ibkr-client 1.2.1 → 1.3.0
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 +14 -6
- package/dist/ibkr/ibkrClient.d.ts +22 -0
- package/dist/ibkr/ibkrClient.d.ts.map +1 -1
- package/dist/ibkr/ibkrClient.js +126 -42
- package/dist/ibkr/ibkrClient.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -81,7 +81,14 @@ validated at runtime. Its broker-neutral account API includes:
|
|
|
81
81
|
change. Without history, `reference.description`, `quote.lastPrice`, `quote.highPrice`,
|
|
82
82
|
`quote.lowPrice`, `quote.netChange`, `quote.netPercentChange`, and `quote.totalVolume` are present
|
|
83
83
|
only if contract or snapshot data supplies them. `quote.closePrice` and `quote.openPrice` are not
|
|
84
|
-
present.
|
|
84
|
+
present. A symbol request resolves the contract from `iserver/secdef/search`, and it selects the
|
|
85
|
+
one contract of that exact symbol which lists options on SMART. This is the same rule the
|
|
86
|
+
price-history path uses, so an index root such as `SPX` reads the CBOE index. `trsrv/stocks` is
|
|
87
|
+
equity-only and answers index roots with unrelated foreign stocks that share the ticker, so stock
|
|
88
|
+
search serves only symbols with no SMART options, and only if it names exactly one contract.
|
|
89
|
+
Non-stock roots without SMART options, such as futures roots, use the same
|
|
90
|
+
`iserver/secdef/search` result. A symbol that stays ambiguous gets no contract, and `getQuotes()`
|
|
91
|
+
omits it instead of reporting a wrong price under the requested symbol.
|
|
85
92
|
That search validates the HTTP payload at one shared boundary. A success array continues. An IBKR
|
|
86
93
|
error object throws `IbkrBrokerResponseError` and keeps the broker detail. Any other shape fails
|
|
87
94
|
closed as a malformed response. An error object is never an empty successful search.
|
|
@@ -94,15 +101,16 @@ validated at runtime. Its broker-neutral account API includes:
|
|
|
94
101
|
The reusable `IbkrClient` also exposes typed, read-only strategy data:
|
|
95
102
|
|
|
96
103
|
- `getPriceHistory(...)` returns normalized OHLCV bars and the validated IBKR contract context.
|
|
97
|
-
A symbol-only request
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
104
|
+
A symbol-only request selects the only exact `STK` or `IND` contract that also has `SMART` option
|
|
105
|
+
routing. It rejects the result when this rule does not identify one contract. Use `contract.conid`
|
|
106
|
+
for an exceptional explicit selection.
|
|
107
|
+
You can also set `contract.assetClass` and `contract.exchange` as validation constraints. The
|
|
108
|
+
history request includes the validated exchange. IBKR uses the primary exchange when the exchange
|
|
109
|
+
parameter is absent.
|
|
101
110
|
|
|
102
111
|
```ts
|
|
103
112
|
const history = await client.getPriceHistory({
|
|
104
113
|
symbol: "SPX",
|
|
105
|
-
contract: { conid: 416904, assetClass: "IND", exchange: "CBOE" },
|
|
106
114
|
days: 220,
|
|
107
115
|
});
|
|
108
116
|
console.log(history.contract, history.request, history.bars);
|
|
@@ -69,6 +69,7 @@ export declare class IbkrClient implements BrokerClient, DerivativeDiscoveryClie
|
|
|
69
69
|
private accountIdPromise?;
|
|
70
70
|
private readonly optionDiscovery;
|
|
71
71
|
private readonly optionContractResolution;
|
|
72
|
+
private readonly priceHistoryContractResolution;
|
|
72
73
|
private readonly derivativeDiscovery;
|
|
73
74
|
private readonly requestScheduler;
|
|
74
75
|
private readonly requestNow;
|
|
@@ -230,9 +231,30 @@ export declare class IbkrClient implements BrokerClient, DerivativeDiscoveryClie
|
|
|
230
231
|
private prepareBrokerageAccount;
|
|
231
232
|
private normalizeStockListing;
|
|
232
233
|
private normalizeStockContract;
|
|
234
|
+
/**
|
|
235
|
+
* Resolve a plain symbol to the one contract its quote may describe.
|
|
236
|
+
*
|
|
237
|
+
* The tradable underlying is the contract that lists options on SMART - the same evidence the
|
|
238
|
+
* price-history path uses - so an index root such as `SPX` resolves to the CBOE index. The
|
|
239
|
+
* first `trsrv/stocks` row is not authoritative: that endpoint is equity-only and returns
|
|
240
|
+
* foreign listings that share the ticker (`SPX` matches an Australian mining stock), and a
|
|
241
|
+
* snapshot taken from one of them reports a wrong price under the requested symbol. Stock
|
|
242
|
+
* search therefore serves only symbols that list no SMART options, and only when it names
|
|
243
|
+
* exactly one contract.
|
|
244
|
+
*
|
|
245
|
+
* A symbol that stays ambiguous resolves to no contract, so `getQuotes` omits it instead of
|
|
246
|
+
* reporting a plausible wrong price.
|
|
247
|
+
*/
|
|
233
248
|
private resolveQuoteContract;
|
|
249
|
+
/** Distinct conids that the security-definition search reports for one exact symbol. */
|
|
250
|
+
private quoteContractConids;
|
|
251
|
+
/** The one `trsrv/stocks` contract for a symbol, or nothing when the search is ambiguous. */
|
|
252
|
+
private uniqueStockQuoteContract;
|
|
253
|
+
/** A positive IBKR contract id, or nothing when the provider value is not usable. */
|
|
254
|
+
private quoteConid;
|
|
234
255
|
/** Return complete daily history with the exact validated IBKR request context. */
|
|
235
256
|
getPriceHistory(input: PriceHistoryRequest): Promise<PriceHistoryResult>;
|
|
257
|
+
private resolveSymbolPriceHistoryContract;
|
|
236
258
|
private resolvePriceHistoryContract;
|
|
237
259
|
private validatePriceHistoryContract;
|
|
238
260
|
/** Discover listed derivative series over an inclusive calendar range. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ibkrClient.d.ts","sourceRoot":"","sources":["../../src/ibkr/ibkrClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ibkrClient.d.ts","sourceRoot":"","sources":["../../src/ibkr/ibkrClient.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EAGrB,UAAU,EACV,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,gCAAgC,EAGhC,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAElB,wBAAwB,EACxB,iBAAiB,EAEjB,kBAAkB,EAClB,uBAAuB,EACvB,+BAA+B,EAC/B,6BAA6B,EAC7B,oCAAoC,EACpC,6BAA6B,EAC7B,4BAA4B,EAC5B,qCAAqC,EAErC,sCAAsC,EACtC,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,wBAAwB,EAGxB,0BAA0B,EAE1B,0BAA0B,EAE1B,2BAA2B,EAC3B,0BAA0B,EAC1B,uCAAuC,EACvC,iCAAiC,EACjC,4BAA4B,EAC5B,wBAAwB,EACxB,qBAAqB,EAErB,+BAA+B,EAC/B,4BAA4B,EAE5B,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EAInB,cAAc,EACd,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EAIX,6BAA6B,EAC7B,mBAAmB,EAEnB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAmCrB,OAAO,EAIL,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AA6Q/B,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAID,+DAA+D;AAC/D,MAAM,WAAW,sBAAsB;IACrC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,IAAI,CAAC,2BAA2B,EAAE,eAAe,GAAG,aAAa,CAAC,CAAC;IACtF,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC3D,oFAAoF;IACpF,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjE,0EAA0E;IAC1E,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;CACxE;AAED,qFAAqF;AACrF,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,oDAAoD;AACpD,qBAAa,aAAc,SAAQ,KAAK;IAKpC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,QAAQ,EAAE,qBAAqB;IAL1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAG1B,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,qBAAqB,EACxC,OAAO,CAAC,EAAE,YAAY;CAMzB;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAG9C,QAAQ,CAAC,MAAM,EAAE,iBAAiB;gBADlC,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,iBAAiB,EAClC,OAAO,CAAC,EAAE,YAAY;CAKzB;AAED,sFAAsF;AACtF,qBAAa,6BAA8B,SAAQ,KAAK;IAGpD,QAAQ,CAAC,IAAI,EACX,oBAAoB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB;IACxF,QAAQ,CAAC,UAAU,EAAE,SAAS,6BAA6B,EAAE;gBAH7D,OAAO,EAAE,MAAM,EACN,IAAI,EACX,oBAAoB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB,EAC/E,UAAU,GAAE,SAAS,6BAA6B,EAAO;CAKrE;AAED,yFAAyF;AACzF,qBAAa,4BAA6B,SAAQ,KAAK;IAEnD,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;gBAJ3B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,EACpC,OAAO,CAAC,EAAE,YAAY;CAKzB;AAED;;;;;GAKG;AACH,qBAAa,UACX,YACE,YAAY,EACZ,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB;IAE3B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,WAAW,CAAC,CAAgB;IACpC,OAAO,CAAC,gBAAgB,CAAC,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqD;IACrF,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAqD;IAC9F,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAG3C;IACJ,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAoD;IACxF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuB;IACxD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,OAAO,CAAC,iBAAiB,CAAoC;IAC7D,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAyC;IACjF,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAA+C;IAC1F,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwC;gBAE/D,MAAM,EAAE,gBAAgB,EAAE,OAAO,GAAE,iBAAsB;IAmBrE,6EAA6E;IAC7E,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAaf,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAWpC,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAwBrE,sBAAsB,CAC1B,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,4BAA4B,CAAC;IAsBlC,qBAAqB,CACzB,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,+BAA+B,CAAC;IAgCrC,2BAA2B,CAC/B,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,+BAA+B,CAAC;IA2BrC,gCAAgC,CAAC,OAAO,EAAE;QAC9C,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,sCAAsC,CAAC;QAC/C,KAAK,EAAE,qCAAqC,CAAC;KAC9C,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAgDjC,0BAA0B,CAC9B,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC;IAiBhC,sCAAsC,CAAC,KAAK,EAAE;QAClD,YAAY,EAAE,uCAAuC,CAAC;QACtD,SAAS,EAAE,IAAI,CAAC;KACjB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAyBjC,2BAA2B,CAC/B,KAAK,EAAE,0BAA0B,EACjC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC;IAmLtC,OAAO,CAAC,6BAA6B;IAiCrC,OAAO,CAAC,uBAAuB;YAYjB,mCAAmC;IAsQjD,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,kCAAkC;IAW1C,OAAO,CAAC,+BAA+B;IAmBvC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,yBAAyB;IA4CjC,OAAO,CAAC,kCAAkC;IAe1C,OAAO,CAAC,0BAA0B;IAyBlC,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,0BAA0B;IAMlC,OAAO,CAAC,8BAA8B;IAoEtC,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,iCAAiC;IAQzC,OAAO,CAAC,2BAA2B;IAUnC,OAAO,CAAC,6BAA6B;IA6B/B,uBAAuB,CAAC,KAAK,EAAE;QACnC,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,IAAI,CAAC;KACjB,GAAG,OAAO,CAAC,+BAA+B,CAAC;IAYtC,iCAAiC,CAAC,KAAK,EAAE;QAC7C,YAAY,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,mBAAmB,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/D,SAAS,EAAE,IAAI,CAAC;KACjB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAqBjC,wBAAwB,CAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IAqB9B,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAwBpF,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAyD/E,uBAAuB,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IA+BxF,iCAAiC,CACrC,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,6BAA6B,CAAC;IA0BnC,qBAAqB,CACzB,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,iCAAiC,CAAC;IAmBvC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAY/B,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IAmD9C,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAwB9D,yEAAyE;YAC3D,iBAAiB;IAc/B,kFAAkF;YACpE,WAAW;IAqBzB,OAAO,CAAC,iBAAiB;IA0BnB,SAAS,CACb,QAAQ,EAAE,SAAS,kBAAkB,EAAE,EACvC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAkCzB,WAAW;IAuCzB,uEAAuE;IACjE,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,gCAAkD,GAC7D,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAiBxB,uBAAuB,CAC3B,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,GACZ,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAoChC,WAAW,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IA2B/E,OAAO,CAAC,oBAAoB;IA4C5B,OAAO,CAAC,kBAAkB;IAoC1B,OAAO,CAAC,uBAAuB;IAkB/B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,gBAAgB;IAiCxB,OAAO,CAAC,yBAAyB;IA2EjC,OAAO,CAAC,6BAA6B;IAYrC,OAAO,CAAC,iCAAiC;IAczC,OAAO,CAAC,6BAA6B;IAqBrC,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,yBAAyB;IA+BjC,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,wBAAwB;IAkDhC,OAAO,CAAC,mBAAmB;IAuD3B,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,6BAA6B;IAuIrC,OAAO,CAAC,6BAA6B;IAyErC,OAAO,CAAC,2BAA2B;IA+CnC,OAAO,CAAC,qBAAqB;IA0G7B,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,wBAAwB;IAsChC,OAAO,CAAC,oBAAoB;IA+B5B;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAqBjC,gGAAgG;IAChG,OAAO,CAAC,iBAAiB;IASzB,0EAA0E;IAC1E,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,uBAAuB;IA4B/B,OAAO,CAAC,iCAAiC;IA4DzC,OAAO,CAAC,4BAA4B;IAuCpC,OAAO,CAAC,8BAA8B;IA+EtC,OAAO,CAAC,6BAA6B;IAiGrC,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,4BAA4B;IAsCpC,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,uBAAuB;IAgB/B,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,6BAA6B;IAwBrC,OAAO,CAAC,gCAAgC;IA+IxC,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,0BAA0B;IAIlC,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,8BAA8B;IAetC,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,qBAAqB;IA8B7B,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,YAAY;YAQN,uBAAuB;IAkBrC,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,sBAAsB;IAe9B;;;;;;;;;;;;;OAaG;YACW,oBAAoB;IAkDlC,wFAAwF;IACxF,OAAO,CAAC,mBAAmB;IAmB3B,6FAA6F;IAC7F,OAAO,CAAC,wBAAwB;IAkBhC,qFAAqF;IACrF,OAAO,CAAC,UAAU;IAMlB,mFAAmF;IAC7E,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkC9E,OAAO,CAAC,iCAAiC;YAa3B,2BAA2B;YAsG3B,4BAA4B;IA4D1C,0EAA0E;IACpE,qBAAqB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAgDtF,wFAAwF;IAClF,sBAAsB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAoB3F,sFAAsF;IAChF,yBAAyB,CAC7B,KAAK,EAAE,uBAAuB,GAAG;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GACtE,OAAO,CAAC,kBAAkB,CAAC;IAkB9B,mFAAmF;IAC7E,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAgBpF,sFAAsF;IAChF,2BAA2B,CAC/B,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAAC,wBAAwB,CAAC;IAkDpC,mFAAmF;IAC7E,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,MAAM,EAAE,CAAC;IAoBpB,2FAA2F;IACrF,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,WAAW,EACnB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAqB/B,gGAAgG;IAC1F,sBAAsB,CAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,mBAAmB,CAAC;IAgB/B,2EAA2E;IACrE,cAAc,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAMlF,2EAA2E;IACrE,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA2BtE,OAAO,CAAC,qBAAqB;IAqB7B,yFAAyF;IACzF,OAAO,CAAC,uBAAuB;YAOjB,6BAA6B;IAyE3C,OAAO,CAAC,uBAAuB;IAkC/B,OAAO,CAAC,uBAAuB;YAoBjB,6BAA6B;YAyG7B,qBAAqB;IA2CnC,OAAO,CAAC,eAAe;YAiCT,oBAAoB;YAkDpB,mBAAmB;YAqJnB,wBAAwB;YAmCxB,yBAAyB;YA+DzB,iBAAiB;IA0C/B,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,4BAA4B;YAYtB,mBAAmB;YA4BnB,mBAAmB;IAmFjC,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,wBAAwB;IA+BhC,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,6BAA6B;IAuBrC,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,sBAAsB;YAgDhB,iBAAiB;IA0C/B,OAAO,CAAC,oBAAoB;IA2C5B,OAAO,CAAC,cAAc;IAsDtB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,8BAA8B;IAOtC,OAAO,CAAC,oBAAoB;IAmC5B,OAAO,CAAC,cAAc;IAUtB,6EAA6E;IAC7E,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,yEAAyE;IACzE,SAAS,CAAC,GAAG,IAAI,MAAM;IAIvB,2EAA2E;IAC3E,SAAS,CAAC,MAAM,IAAI,MAAM;IAI1B,OAAO,CAAC,cAAc;IAsDtB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,cAAc;IAmBtB,iEAAiE;cACjD,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;IAQnE,SAAS,CAAC,GAAG,CAAC,CAAC,EACb,KAAK,EAAE,gBAAgB,EACvB,MAAM,CAAC,EAAE,WAAW,EACpB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAC3C,OAAO,CAAC,CAAC,CAAC;IAIb,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,2BAA2B;IAKnC,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,WAAW;CAuBpB"}
|
package/dist/ibkr/ibkrClient.js
CHANGED
|
@@ -99,6 +99,20 @@ function parseRetryAfter(raw, now) {
|
|
|
99
99
|
function isUnknownRecord(input) {
|
|
100
100
|
return typeof input === "object" && input !== null && !Array.isArray(input);
|
|
101
101
|
}
|
|
102
|
+
function supportsSmartOptions(sections) {
|
|
103
|
+
if (!Array.isArray(sections))
|
|
104
|
+
return false;
|
|
105
|
+
return sections.some((section) => {
|
|
106
|
+
if (!isUnknownRecord(section))
|
|
107
|
+
return false;
|
|
108
|
+
const securityType = section["secType"];
|
|
109
|
+
const exchange = section["exchange"];
|
|
110
|
+
return (typeof securityType === "string" &&
|
|
111
|
+
securityType.trim().toUpperCase() === "OPT" &&
|
|
112
|
+
typeof exchange === "string" &&
|
|
113
|
+
exchange.split(";").some((name) => name.trim().toUpperCase() === "SMART"));
|
|
114
|
+
});
|
|
115
|
+
}
|
|
102
116
|
const PRICE_HISTORY_SECURITY_TYPES = new Set([
|
|
103
117
|
"STK",
|
|
104
118
|
"IND",
|
|
@@ -253,6 +267,7 @@ export class IbkrClient {
|
|
|
253
267
|
accountIdPromise;
|
|
254
268
|
optionDiscovery = new Map();
|
|
255
269
|
optionContractResolution = new Map();
|
|
270
|
+
priceHistoryContractResolution = new Map();
|
|
256
271
|
derivativeDiscovery = new Map();
|
|
257
272
|
requestScheduler;
|
|
258
273
|
requestNow;
|
|
@@ -2986,6 +3001,20 @@ export class IbkrClient {
|
|
|
2986
3001
|
...(contract.conid !== undefined ? { brokerId: String(contract.conid) } : {}),
|
|
2987
3002
|
};
|
|
2988
3003
|
}
|
|
3004
|
+
/**
|
|
3005
|
+
* Resolve a plain symbol to the one contract its quote may describe.
|
|
3006
|
+
*
|
|
3007
|
+
* The tradable underlying is the contract that lists options on SMART - the same evidence the
|
|
3008
|
+
* price-history path uses - so an index root such as `SPX` resolves to the CBOE index. The
|
|
3009
|
+
* first `trsrv/stocks` row is not authoritative: that endpoint is equity-only and returns
|
|
3010
|
+
* foreign listings that share the ticker (`SPX` matches an Australian mining stock), and a
|
|
3011
|
+
* snapshot taken from one of them reports a wrong price under the requested symbol. Stock
|
|
3012
|
+
* search therefore serves only symbols that list no SMART options, and only when it names
|
|
3013
|
+
* exactly one contract.
|
|
3014
|
+
*
|
|
3015
|
+
* A symbol that stays ambiguous resolves to no contract, so `getQuotes` omits it instead of
|
|
3016
|
+
* reporting a plausible wrong price.
|
|
3017
|
+
*/
|
|
2989
3018
|
async resolveQuoteContract(symbol) {
|
|
2990
3019
|
const osi = parseOsiOptionSymbol(symbol);
|
|
2991
3020
|
if (osi) {
|
|
@@ -3003,39 +3032,72 @@ export class IbkrClient {
|
|
|
3003
3032
|
}
|
|
3004
3033
|
: undefined;
|
|
3005
3034
|
}
|
|
3006
|
-
const
|
|
3007
|
-
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
if (
|
|
3035
|
+
const requestedSymbol = symbol.trim().toUpperCase();
|
|
3036
|
+
if (!requestedSymbol)
|
|
3037
|
+
return undefined;
|
|
3038
|
+
const search = await this.searchSecdef({ symbol: requestedSymbol });
|
|
3039
|
+
const optionable = this.quoteContractConids(requestedSymbol, search, (item) => supportsSmartOptions(item.sections));
|
|
3040
|
+
if (optionable.length > 1)
|
|
3041
|
+
return undefined;
|
|
3042
|
+
const [optionableConid] = optionable;
|
|
3043
|
+
if (optionableConid !== undefined) {
|
|
3044
|
+
return { requestedSymbol: symbol, symbol: requestedSymbol, conid: optionableConid };
|
|
3045
|
+
}
|
|
3046
|
+
// `trsrv/stocks` is equity/ETF-only, so a symbol with no SMART options can still be a plain
|
|
3047
|
+
// stock or ETF that the security-definition search does not describe as optionable.
|
|
3048
|
+
const stock = this.uniqueStockQuoteContract(symbol, await this.searchInstruments(symbol));
|
|
3049
|
+
if (stock !== undefined)
|
|
3050
|
+
return stock;
|
|
3051
|
+
// Non-stock roots without listed SMART options (indexes, futures) keep resolving from the
|
|
3052
|
+
// security-definition search that is already in hand.
|
|
3053
|
+
const nonStock = this.quoteContractConids(requestedSymbol, search, (item) => (item.sections ?? []).some((section) => {
|
|
3054
|
+
const secType = section.secType?.trim().toUpperCase();
|
|
3055
|
+
return secType !== undefined && secType !== "" && secType !== "STK";
|
|
3056
|
+
}));
|
|
3057
|
+
if (nonStock.length !== 1)
|
|
3058
|
+
return undefined;
|
|
3059
|
+
const [fallbackConid] = nonStock;
|
|
3060
|
+
if (fallbackConid === undefined)
|
|
3061
|
+
return undefined;
|
|
3062
|
+
return { requestedSymbol: symbol, symbol: requestedSymbol, conid: fallbackConid };
|
|
3063
|
+
}
|
|
3064
|
+
/** Distinct conids that the security-definition search reports for one exact symbol. */
|
|
3065
|
+
quoteContractConids(requestedSymbol, search, matches) {
|
|
3066
|
+
return [
|
|
3067
|
+
...new Set(search.flatMap((item) => {
|
|
3068
|
+
const conid = this.quoteConid(item.conid);
|
|
3069
|
+
return item.symbol?.trim().toUpperCase() === requestedSymbol &&
|
|
3070
|
+
conid !== undefined &&
|
|
3071
|
+
matches(item)
|
|
3072
|
+
? [conid]
|
|
3073
|
+
: [];
|
|
3074
|
+
})),
|
|
3075
|
+
];
|
|
3076
|
+
}
|
|
3077
|
+
/** The one `trsrv/stocks` contract for a symbol, or nothing when the search is ambiguous. */
|
|
3078
|
+
uniqueStockQuoteContract(symbol, instruments) {
|
|
3079
|
+
const listed = instruments.filter((item) => this.quoteConid(item.brokerId) !== undefined);
|
|
3080
|
+
if (new Set(listed.map((item) => item.brokerId)).size !== 1)
|
|
3029
3081
|
return undefined;
|
|
3030
|
-
const
|
|
3031
|
-
|
|
3082
|
+
const instrument = listed[0];
|
|
3083
|
+
const conid = this.quoteConid(instrument?.brokerId);
|
|
3084
|
+
if (instrument === undefined || conid === undefined)
|
|
3032
3085
|
return undefined;
|
|
3033
3086
|
return {
|
|
3034
3087
|
requestedSymbol: symbol,
|
|
3035
|
-
symbol:
|
|
3036
|
-
conid
|
|
3088
|
+
symbol: instrument.symbol ?? symbol.trim().toUpperCase(),
|
|
3089
|
+
conid,
|
|
3090
|
+
...(instrument.description !== undefined ? { description: instrument.description } : {}),
|
|
3091
|
+
...(instrument.exchange !== undefined ? { exchange: instrument.exchange } : {}),
|
|
3037
3092
|
};
|
|
3038
3093
|
}
|
|
3094
|
+
/** A positive IBKR contract id, or nothing when the provider value is not usable. */
|
|
3095
|
+
quoteConid(value) {
|
|
3096
|
+
if (typeof value !== "number" && typeof value !== "string")
|
|
3097
|
+
return undefined;
|
|
3098
|
+
const conid = Number(value);
|
|
3099
|
+
return Number.isSafeInteger(conid) && conid > 0 ? conid : undefined;
|
|
3100
|
+
}
|
|
3039
3101
|
/** Return complete daily history with the exact validated IBKR request context. */
|
|
3040
3102
|
async getPriceHistory(input) {
|
|
3041
3103
|
const requestedSymbol = input.symbol.trim().toUpperCase();
|
|
@@ -3044,7 +3106,9 @@ export class IbkrClient {
|
|
|
3044
3106
|
}
|
|
3045
3107
|
const interval = this.historyInterval(input);
|
|
3046
3108
|
const period = `${String(interval.days)}d`;
|
|
3047
|
-
const contract =
|
|
3109
|
+
const contract = input.contract === undefined
|
|
3110
|
+
? await this.resolveSymbolPriceHistoryContract(requestedSymbol)
|
|
3111
|
+
: await this.resolvePriceHistoryContract(requestedSymbol, input.contract);
|
|
3048
3112
|
const request = {
|
|
3049
3113
|
period,
|
|
3050
3114
|
...(input.endDate === undefined ? {} : { startTime: this.historyStartTime(interval.end) }),
|
|
@@ -3066,6 +3130,19 @@ export class IbkrClient {
|
|
|
3066
3130
|
request: { requestedSymbol, period, barSize: "1d" },
|
|
3067
3131
|
};
|
|
3068
3132
|
}
|
|
3133
|
+
resolveSymbolPriceHistoryContract(symbol) {
|
|
3134
|
+
const cached = this.priceHistoryContractResolution.get(symbol);
|
|
3135
|
+
if (cached !== undefined)
|
|
3136
|
+
return cached;
|
|
3137
|
+
const pending = this.resolvePriceHistoryContract(symbol, undefined).catch((error) => {
|
|
3138
|
+
if (this.priceHistoryContractResolution.get(symbol) === pending) {
|
|
3139
|
+
this.priceHistoryContractResolution.delete(symbol);
|
|
3140
|
+
}
|
|
3141
|
+
throw error;
|
|
3142
|
+
});
|
|
3143
|
+
this.priceHistoryContractResolution.set(symbol, pending);
|
|
3144
|
+
return pending;
|
|
3145
|
+
}
|
|
3069
3146
|
async resolvePriceHistoryContract(requestedSymbol, selector) {
|
|
3070
3147
|
if (selector !== undefined) {
|
|
3071
3148
|
if (!Number.isSafeInteger(selector.conid) || selector.conid <= 0) {
|
|
@@ -3083,6 +3160,16 @@ export class IbkrClient {
|
|
|
3083
3160
|
});
|
|
3084
3161
|
}
|
|
3085
3162
|
const search = await this.searchSecdef({ symbol: requestedSymbol });
|
|
3163
|
+
const smartOptionConids = new Set(search.flatMap((item) => {
|
|
3164
|
+
const symbol = item.symbol?.trim().toUpperCase();
|
|
3165
|
+
const conid = Number(item.conid);
|
|
3166
|
+
return symbol === requestedSymbol &&
|
|
3167
|
+
Number.isSafeInteger(conid) &&
|
|
3168
|
+
conid > 0 &&
|
|
3169
|
+
supportsSmartOptions(item.sections)
|
|
3170
|
+
? [conid]
|
|
3171
|
+
: [];
|
|
3172
|
+
}));
|
|
3086
3173
|
const candidates = search.flatMap((item) => {
|
|
3087
3174
|
const symbol = item.symbol?.trim().toUpperCase();
|
|
3088
3175
|
const conid = Number(item.conid);
|
|
@@ -3103,6 +3190,7 @@ export class IbkrClient {
|
|
|
3103
3190
|
symbol,
|
|
3104
3191
|
securityType,
|
|
3105
3192
|
...(exchange ? { exchange } : {}),
|
|
3193
|
+
supportsSmartOptions: smartOptionConids.has(conid),
|
|
3106
3194
|
},
|
|
3107
3195
|
];
|
|
3108
3196
|
});
|
|
@@ -3115,16 +3203,18 @@ export class IbkrClient {
|
|
|
3115
3203
|
if (uniqueCandidates.length === 0) {
|
|
3116
3204
|
throw new IbkrPriceHistoryContractError(`IBKR returned no STK or IND contract for ${requestedSymbol}`, "CONTRACT_NOT_FOUND");
|
|
3117
3205
|
}
|
|
3118
|
-
|
|
3206
|
+
const smartCandidates = uniqueCandidates.filter((candidate) => candidate.supportsSmartOptions);
|
|
3207
|
+
if (smartCandidates.length !== 1) {
|
|
3119
3208
|
const safeCandidates = uniqueCandidates.map((candidate) => ({
|
|
3120
3209
|
conid: candidate.conid,
|
|
3121
3210
|
symbol: candidate.symbol,
|
|
3122
3211
|
securityType: candidate.securityType,
|
|
3123
3212
|
exchange: candidate.exchange ?? null,
|
|
3124
3213
|
}));
|
|
3125
|
-
|
|
3214
|
+
const isMissing = smartCandidates.length === 0;
|
|
3215
|
+
throw new IbkrPriceHistoryContractError(`IBKR price-history SMART option underlying is ${isMissing ? "missing" : "ambiguous"} for ${requestedSymbol}; specify contract.conid`, isMissing ? "CONTRACT_NOT_FOUND" : "CONTRACT_AMBIGUOUS", safeCandidates);
|
|
3126
3216
|
}
|
|
3127
|
-
const candidate =
|
|
3217
|
+
const candidate = smartCandidates[0];
|
|
3128
3218
|
if (candidate === undefined) {
|
|
3129
3219
|
throw new Error("IBKR price-history resolution lost its selected contract");
|
|
3130
3220
|
}
|
|
@@ -3619,18 +3709,12 @@ export class IbkrClient {
|
|
|
3619
3709
|
const sections = item["sections"];
|
|
3620
3710
|
if (!Array.isArray(sections))
|
|
3621
3711
|
return [];
|
|
3622
|
-
const
|
|
3623
|
-
|
|
3624
|
-
|
|
3625
|
-
|
|
3626
|
-
if (typeof secType !== "string" || secType.trim().toUpperCase() !== "OPT")
|
|
3627
|
-
return [];
|
|
3628
|
-
const exchange = section["exchange"];
|
|
3629
|
-
return [{ exchange: typeof exchange === "string" ? exchange : null }];
|
|
3630
|
-
});
|
|
3631
|
-
if (!optionSections.length)
|
|
3712
|
+
const hasOptions = sections.some((section) => isUnknownRecord(section) &&
|
|
3713
|
+
typeof section["secType"] === "string" &&
|
|
3714
|
+
section["secType"].trim().toUpperCase() === "OPT");
|
|
3715
|
+
if (!hasOptions)
|
|
3632
3716
|
return [];
|
|
3633
|
-
const supportsSmart =
|
|
3717
|
+
const supportsSmart = supportsSmartOptions(sections);
|
|
3634
3718
|
const conid = Number(item["conid"]);
|
|
3635
3719
|
return Number.isSafeInteger(conid) && conid > 0 ? [{ conid, symbol, supportsSmart }] : [];
|
|
3636
3720
|
});
|