@tigeropenapi/tigeropen 0.3.0 → 0.4.5

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 (64) hide show
  1. package/dist/cjs/client/case-convert.js +4 -3
  2. package/dist/cjs/client/http-client.js +123 -6
  3. package/dist/cjs/config/client-config.js +56 -12
  4. package/dist/cjs/config/index.js +3 -1
  5. package/dist/cjs/config/token-manager.js +54 -4
  6. package/dist/cjs/index.js +51 -2
  7. package/dist/cjs/model/enums.js +89 -7
  8. package/dist/cjs/model/order-status.js +46 -0
  9. package/dist/cjs/model/quote-requests.js +11 -0
  10. package/dist/cjs/model/trade-requests.js +13 -0
  11. package/dist/cjs/push/pb/OrderStatusData.js +24 -0
  12. package/dist/cjs/push/proto-message.js +6 -0
  13. package/dist/cjs/push/push-client.js +111 -16
  14. package/dist/cjs/push/push-message.js +4 -0
  15. package/dist/cjs/quote/quote-client.js +333 -9
  16. package/dist/cjs/trade/trade-client.js +204 -25
  17. package/dist/esm/client/api-request.js +1 -1
  18. package/dist/esm/client/api-response.js +1 -1
  19. package/dist/esm/client/case-convert.js +4 -3
  20. package/dist/esm/client/http-client.js +128 -11
  21. package/dist/esm/client/index.js +6 -6
  22. package/dist/esm/config/client-config.js +59 -15
  23. package/dist/esm/config/index.js +4 -3
  24. package/dist/esm/config/token-manager.js +55 -5
  25. package/dist/esm/index.js +15 -1
  26. package/dist/esm/logger/index.js +1 -1
  27. package/dist/esm/model/contract-helpers.js +1 -1
  28. package/dist/esm/model/enums.js +87 -6
  29. package/dist/esm/model/order-helpers.js +1 -1
  30. package/dist/esm/model/order-status.js +43 -0
  31. package/dist/esm/model/quote-requests.js +10 -0
  32. package/dist/esm/model/trade-requests.js +12 -0
  33. package/dist/esm/push/index.js +5 -5
  34. package/dist/esm/push/pb/OrderStatusData.js +24 -0
  35. package/dist/esm/push/pb/PushData.js +11 -11
  36. package/dist/esm/push/pb/QuoteBasicData.js +1 -1
  37. package/dist/esm/push/pb/Response.js +1 -1
  38. package/dist/esm/push/pb/index.js +17 -17
  39. package/dist/esm/push/proto-message.js +9 -3
  40. package/dist/esm/push/push-client.js +118 -23
  41. package/dist/esm/push/push-message.js +4 -0
  42. package/dist/esm/quote/index.js +1 -1
  43. package/dist/esm/quote/quote-client.js +335 -11
  44. package/dist/esm/signer/index.js +2 -2
  45. package/dist/esm/trade/index.js +1 -1
  46. package/dist/esm/trade/trade-client.js +206 -27
  47. package/dist/types/client/case-convert.d.ts +3 -1
  48. package/dist/types/client/http-client.d.ts +32 -1
  49. package/dist/types/config/client-config.d.ts +16 -1
  50. package/dist/types/config/index.d.ts +2 -0
  51. package/dist/types/config/token-manager.d.ts +27 -3
  52. package/dist/types/index.d.ts +22 -1
  53. package/dist/types/model/enums.d.ts +60 -6
  54. package/dist/types/model/order-status.d.ts +14 -0
  55. package/dist/types/model/quote-requests.d.ts +344 -0
  56. package/dist/types/model/quote.d.ts +261 -0
  57. package/dist/types/model/trade-requests.d.ts +260 -0
  58. package/dist/types/model/trade.d.ts +214 -1
  59. package/dist/types/push/pb/OrderStatusData.d.ts +4 -0
  60. package/dist/types/push/push-client.d.ts +36 -3
  61. package/dist/types/push/push-message.d.ts +4 -0
  62. package/dist/types/quote/quote-client.d.ts +121 -6
  63. package/dist/types/trade/trade-client.d.ts +95 -12
  64. package/package.json +2 -2
@@ -96,6 +96,8 @@ export interface OrderIdResult {
96
96
  export interface Transaction {
97
97
  id?: number;
98
98
  orderId?: number;
99
+ /** Numeric account ID (wire: accountId). */
100
+ accountId?: number;
99
101
  account?: string;
100
102
  symbol?: string;
101
103
  secType?: string;
@@ -103,11 +105,222 @@ export interface Transaction {
103
105
  currency?: string;
104
106
  identifier?: string;
105
107
  action?: string;
108
+ /** Order/commission price. */
106
109
  price?: number;
110
+ /** Fill price (wire: filledPrice). */
111
+ filledPrice?: number;
107
112
  quantity?: number;
108
113
  filledQuantity?: number;
114
+ /** Scale for filledQuantity (wire: filledQuantityScale). */
115
+ filledQuantityScale?: number;
116
+ /** Order amount. */
109
117
  amount?: number;
118
+ /** Fill amount (wire: filledAmount). */
119
+ filledAmount?: number;
110
120
  commission?: number;
111
- transactedAt?: number;
121
+ /** Fill timestamp string, format "YYYY-MM-DD HH:MM:SS" (server returns string, not number). */
122
+ transactedAt?: string;
123
+ /** Fill time as Unix millisecond timestamp (wire: transactionTime). */
124
+ transactionTime?: number;
125
+ /** Legacy time field. */
112
126
  time?: number;
113
127
  }
128
+ export interface ManagedAccount {
129
+ account?: string;
130
+ accountType?: string;
131
+ capability?: string;
132
+ status?: string;
133
+ }
134
+ export interface AnalyticsAsset {
135
+ date?: string;
136
+ holdingValue?: number;
137
+ cashBalance?: number;
138
+ pnl?: number;
139
+ pnlRate?: number;
140
+ netValueIndex?: number;
141
+ currency?: string;
142
+ segType?: string;
143
+ }
144
+ export interface AggregateAssets {
145
+ accountId?: string;
146
+ netLiquidation?: number;
147
+ grossPositionValue?: number;
148
+ cashBalance?: number;
149
+ baseCurrency?: string;
150
+ currencyAssets?: CurrencyAsset[];
151
+ }
152
+ export interface EstimateTradableQuantity {
153
+ tradableQuantity?: number;
154
+ maxCashBuyQuantity?: number;
155
+ maxMarginBuyQuantity?: number;
156
+ maxShortSellQuantity?: number;
157
+ maxPositionSellQuantity?: number;
158
+ cashBuyingPower?: number;
159
+ currency?: string;
160
+ }
161
+ export interface ForexOrderResult {
162
+ id?: string;
163
+ status?: string;
164
+ sourceCurrency?: string;
165
+ targetCurrency?: string;
166
+ sourceAmount?: number;
167
+ targetAmount?: number;
168
+ rate?: number;
169
+ submitTime?: number;
170
+ }
171
+ /** Segment fund available item (segment_fund_available response). */
172
+ export interface SegmentFundAvailableItem {
173
+ fromSegment?: string;
174
+ currency?: string;
175
+ amount?: number;
176
+ }
177
+ /** Segment fund transfer/cancel response. */
178
+ export interface SegmentFund {
179
+ id?: string | number;
180
+ fromSegment?: string;
181
+ toSegment?: string;
182
+ currency?: string;
183
+ amount?: number;
184
+ status?: string;
185
+ statusDesc?: string;
186
+ message?: string;
187
+ settledAt?: number;
188
+ createdAt?: number;
189
+ updatedAt?: number;
190
+ }
191
+ export interface SegmentFundHistoryItem {
192
+ id?: number;
193
+ fromSegment?: string;
194
+ toSegment?: string;
195
+ currency?: string;
196
+ amount?: number;
197
+ status?: string;
198
+ statusDesc?: string;
199
+ settledAt?: number;
200
+ createdAt?: number;
201
+ updatedAt?: number;
202
+ }
203
+ export interface FundDetails {
204
+ id?: number;
205
+ account?: string;
206
+ segType?: string;
207
+ fundType?: string;
208
+ currency?: string;
209
+ amount?: number;
210
+ balance?: number;
211
+ occurTime?: number;
212
+ remark?: string;
213
+ externalId?: string;
214
+ }
215
+ export interface FundingHistoryItem {
216
+ id?: number;
217
+ refId?: string;
218
+ type?: number;
219
+ typeDesc?: string;
220
+ currency?: string;
221
+ amount?: number;
222
+ businessDate?: string;
223
+ status?: string;
224
+ statusDesc?: string;
225
+ completedStatus?: boolean;
226
+ createdAt?: number;
227
+ updatedAt?: number;
228
+ }
229
+ export interface TransferItem {
230
+ symbol?: string;
231
+ quantity?: number;
232
+ expiry?: string;
233
+ strike?: string;
234
+ right?: string;
235
+ secType?: string;
236
+ }
237
+ export interface PositionTransferRecord {
238
+ id?: string;
239
+ fromAccount?: string;
240
+ toAccount?: string;
241
+ market?: string;
242
+ status?: string;
243
+ submitTime?: number;
244
+ transfers?: TransferItem[];
245
+ }
246
+ export interface PositionTransferDetail {
247
+ id?: string;
248
+ fromAccount?: string;
249
+ toAccount?: string;
250
+ market?: string;
251
+ status?: string;
252
+ submitTime?: number;
253
+ updateTime?: number;
254
+ transfers?: TransferItem[];
255
+ remark?: string;
256
+ }
257
+ export interface PositionTransferExternalRecord {
258
+ id?: string;
259
+ market?: string;
260
+ symbol?: string;
261
+ quantity?: number;
262
+ direction?: string;
263
+ status?: string;
264
+ submitTime?: number;
265
+ updateTime?: number;
266
+ }
267
+ /** 行权检验结果 */
268
+ export interface OptionExerciseCheckResult {
269
+ availableQuantity: number;
270
+ position: number;
271
+ stkPosition: number;
272
+ stkPositionChange: number;
273
+ stkPositionBefore: number;
274
+ stkPositionAfter: number;
275
+ symbol?: string;
276
+ }
277
+ /** 可行权期权持仓条目 */
278
+ export interface OptionExercisePosition {
279
+ contractId?: number;
280
+ symbol?: string;
281
+ stkSymbol?: string;
282
+ expireDate?: string;
283
+ strike?: string;
284
+ callPut?: string;
285
+ market?: string;
286
+ accountId?: number;
287
+ position: number;
288
+ availableQuantity: number;
289
+ }
290
+ /** 可行权持仓分页结果 */
291
+ export interface OptionExercisePositionPageResult {
292
+ pageNum: number;
293
+ pageSize: number;
294
+ itemCount: number;
295
+ pageCount: number;
296
+ items?: OptionExercisePosition[];
297
+ }
298
+ /** 行权申请记录条目 */
299
+ export interface OptionExerciseRecord {
300
+ id?: number;
301
+ contractId?: number;
302
+ symbol?: string;
303
+ stkSymbol?: string;
304
+ expireDate?: string;
305
+ strike?: string;
306
+ callPut?: string;
307
+ /** Exercise | Expire */
308
+ type?: string;
309
+ requestQuantity: number;
310
+ quantity: number;
311
+ /** New | Cancel | Success | Fail */
312
+ status?: string;
313
+ executingDate?: string;
314
+ itmRate: number;
315
+ isForce: boolean;
316
+ reason?: string;
317
+ accountId?: number;
318
+ }
319
+ /** 行权记录分页结果 */
320
+ export interface OptionExerciseRecordPageResult {
321
+ pageNum: number;
322
+ pageSize: number;
323
+ itemCount: number;
324
+ pageCount: number;
325
+ items?: OptionExerciseRecord[];
326
+ }
@@ -75,6 +75,10 @@ export interface OrderStatusData {
75
75
  gst: number;
76
76
  attrList: string[];
77
77
  timeInForce: string;
78
+ /** timestamp (ms) of order info update */
79
+ updateTime: number;
80
+ /** timestamp (ms) of order status update */
81
+ latestTime: number;
78
82
  }
79
83
  export declare const OrderStatusData: MessageFns<OrderStatusData>;
80
84
  type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
@@ -44,10 +44,12 @@ export declare class PushClient {
44
44
  private useFullTick;
45
45
  private socket;
46
46
  private _state;
47
+ /** Whether this connect attempt already fell back to unverified TLS */
48
+ private tlsFallback;
47
49
  private callbacks;
48
50
  /** Subscription state: subject -> Set<symbol> */
49
51
  private subscriptions;
50
- /** Account-level subscriptions */
52
+ /** Account-level subscriptions: subject -> account string used at subscribe time */
51
53
  private accountSubs;
52
54
  private heartbeatTimer;
53
55
  private reconnectTimer;
@@ -117,6 +119,37 @@ export declare class PushClient {
117
119
  subscribeKline(symbols: string[]): void;
118
120
  /** Unsubscribe from kline data */
119
121
  unsubscribeKline(symbols?: string[]): void;
122
+ /**
123
+ * Subscribe to stock top rankings (v0.4.0).
124
+ * @param market US / HK / CN
125
+ * @param indicators LATEST_PRICE / HIGHER / LOWER / VOLUME / AMOUNT / AMPLITUDE / TURNOVER_RATE
126
+ */
127
+ subscribeStockTop(market: string, indicators: string[]): void;
128
+ /** Unsubscribe from stock top rankings (v0.4.0). */
129
+ unsubscribeStockTop(market: string, indicators: string[]): void;
130
+ /**
131
+ * Subscribe to option top rankings (v0.4.0).
132
+ * @param market US / HK / CN
133
+ */
134
+ subscribeOptionTop(market: string, indicators: string[]): void;
135
+ /** Unsubscribe from option top rankings (v0.4.0). */
136
+ unsubscribeOptionTop(market: string, indicators: string[]): void;
137
+ /**
138
+ * Subscribe to crypto realtime quotes (v0.4.0).
139
+ * Data is delivered via the `onQuote` callback (same QuoteData body).
140
+ * @param symbols e.g. ["BTCUSD", "ETHUSD"]
141
+ */
142
+ subscribeCc(symbols: string[]): void;
143
+ /** Unsubscribe from crypto realtime quotes (v0.4.0). */
144
+ unsubscribeCc(symbols?: string[]): void;
145
+ /**
146
+ * Subscribe to market status updates (v0.4.0).
147
+ * Protocol uses dataType=Quote with only the `market` field set.
148
+ * Data is delivered via the `onQuote` callback.
149
+ */
150
+ subscribeMarket(market: string): void;
151
+ /** Unsubscribe from market status (v0.4.0). */
152
+ unsubscribeMarket(market: string): void;
120
153
  /** Subscribe to asset changes */
121
154
  subscribeAsset(account?: string): void;
122
155
  /** Unsubscribe from asset changes */
@@ -135,6 +168,6 @@ export declare class PushClient {
135
168
  unsubscribeTransaction(): void;
136
169
  /** Get current market data subscriptions */
137
170
  getSubscriptions(): Map<SubjectType, string[]>;
138
- /** Get account-level subscriptions */
139
- getAccountSubscriptions(): SubjectType[];
171
+ /** Get account-level subscriptions: subject -> account */
172
+ getAccountSubscriptions(): Map<SubjectType, string>;
140
173
  }
@@ -16,6 +16,10 @@ export declare enum SubjectType {
16
16
  OptionTop = "option_top",
17
17
  FullTick = "full_tick",
18
18
  QuoteBBO = "quote_bbo",
19
+ /** 加密货币实时行情 (v0.4.0) */
20
+ Cc = "cc",
21
+ /** 市场状态 (v0.4.0) */
22
+ Market = "market",
19
23
  Asset = "asset",
20
24
  Position = "position",
21
25
  Order = "order",
@@ -6,7 +6,8 @@
6
6
  * converted to snake_case on the wire automatically.
7
7
  */
8
8
  import type { HttpClient } from '../client/http-client';
9
- import type { MarketState, Brief, Kline, Timeline, TradeTick, Depth, OptionExpiration, OptionChain, FutureExchange, FutureContractInfo, FutureQuote, FutureKline, FinancialDailyItem, FinancialReportItem, CorporateAction, CapitalFlow, CapitalDistribution, ScannerResult, QuotePermission, FinancialDailyRequest, FinancialReportRequest, CorporateActionRequest, FutureKlineRequest, MarketScannerRequest } from '../model/quote';
9
+ import type { MarketState, Brief, Kline, KlineItem, Timeline, TradeTick, Depth, OptionExpiration, OptionChain, FutureExchange, FutureContractInfo, FutureQuote, FutureKline, FutureKlineItem, FinancialDailyItem, FinancialReportItem, CorporateAction, CapitalFlow, CapitalDistribution, ScannerResult, QuotePermission, FinancialDailyRequest, FinancialReportRequest, CorporateActionRequest, FutureKlineRequest, MarketScannerRequest, SymbolName, TradeMeta, StockDetail, StockBroker, StockIndustry, TradeRankItem, ShortInterest, KlineQuota, OptionAnalysis, OptionSymbol, FutureMainContractHistory, FutureTradingTime, FutureTradeTickItem, FutureDepth, WarrantBrief, WarrantFilterResult, IndustryItem, IndustryStock, TradingCalendarItem, ExchangeRate, FinancialCurrency, QuoteOvernight, MarketScannerTags, FundContractInfo, FundQuote, FundHistoryQuote } from '../model/quote';
10
+ import type { BriefRequest, DepthQuoteRequest, TradeTickRequest, FutureBriefRequest, SymbolsRequest, TradeMetasRequest, StockDetailsRequest, StockDelayBriefsRequest, BarsRequest, BarsByPageRequest, TimelineHistoryRequest, TradeRankRequest, ShortInterestRequest, StockBrokerRequest, StockFundamentalRequest, StockIndustryRequest, KlineQuotaRequest, QuotePermissionRequest, OptionBarsRequest, OptionTradeTicksRequest, OptionTimelineRequest, OptionDepthRequest, OptionSymbolsRequest, OptionAnalysisRequest, FutureContractSingleRequest, AllFutureContractsRequest, FutureContinuousContractsRequest, FutureHistoryMainContractRequest, FutureBarsRequest, FutureBarsByPageRequest, FutureTradeTicksRequest, FutureDepthRequest, FutureTradingTimesRequest, FundSymbolsRequest, FundContractsRequest, FundQuoteRequest, FundHistoryQuoteRequest, WarrantBriefsRequest, WarrantFilterRequest, IndustryListRequest, IndustryStocksRequest, TradingCalendarRequest, FinancialExchangeRateRequest, FinancialCurrencyRequest, MarketScannerTagsRequest, QuoteOvernightRequest } from '../model/quote-requests';
10
11
  /**
11
12
  * Parse an OCC-style option identifier like "AAPL 260619C00150000"
12
13
  * into its component parts.
@@ -22,13 +23,23 @@ export declare class QuoteClient {
22
23
  private httpClient;
23
24
  constructor(httpClient: HttpClient);
24
25
  private callInto;
26
+ /**
27
+ * Some endpoints return either a list or a single object depending on the
28
+ * server response shape (future_contract_by_contract_code /
29
+ * future_continuous_contracts). Unify into an array.
30
+ */
31
+ private callIntoListOrObject;
32
+ /** Unwrap server {"items":[...]} envelope. */
33
+ private callIntoItems;
25
34
  getMarketState(market: string): Promise<MarketState[]>;
26
- getBrief(symbols: string[]): Promise<Brief[]>;
35
+ /** Real-time stock briefs. wire: quote_real_time */
36
+ getBrief(req: BriefRequest): Promise<Brief[]>;
27
37
  getKline(symbol: string, period: string): Promise<Kline[]>;
28
38
  getTimeline(symbols: string[]): Promise<Timeline[]>;
29
- getTradeTick(symbols: string[]): Promise<TradeTick[]>;
30
- /** Depth snapshot. market is required (US / HK supported). */
31
- getQuoteDepth(symbol: string, market: string): Promise<Depth[]>;
39
+ /** Tick-by-tick trades. wire: trade_tick */
40
+ getTradeTick(req: TradeTickRequest): Promise<TradeTick[]>;
41
+ /** Depth snapshot. wire: quote_depth */
42
+ getQuoteDepth(req: DepthQuoteRequest): Promise<Depth[]>;
32
43
  getOptionExpiration(symbol: string): Promise<OptionExpiration[]>;
33
44
  /** Option chain; `expiry` is "YYYY-MM-DD". */
34
45
  getOptionChain(symbol: string, expiry: string): Promise<OptionChain[]>;
@@ -36,7 +47,8 @@ export declare class QuoteClient {
36
47
  getOptionKline(identifier: string, period: string): Promise<Kline[]>;
37
48
  getFutureExchange(): Promise<FutureExchange[]>;
38
49
  getFutureContracts(exchange: string): Promise<FutureContractInfo[]>;
39
- getFutureRealTimeQuote(contractCodes: string[]): Promise<FutureQuote[]>;
50
+ /** Real-time futures quotes. wire: future_real_time_quote */
51
+ getFutureRealTimeQuote(req: FutureBriefRequest): Promise<FutureQuote[]>;
40
52
  /** Futures K-line; use -1 for unbounded beginTime / endTime. */
41
53
  getFutureKline(req: FutureKlineRequest): Promise<FutureKline[]>;
42
54
  getFinancialDaily(req: FinancialDailyRequest): Promise<FinancialDailyItem[]>;
@@ -49,4 +61,107 @@ export declare class QuoteClient {
49
61
  getCapitalDistribution(symbol: string, market: string): Promise<CapitalDistribution | undefined>;
50
62
  marketScanner(req: MarketScannerRequest): Promise<ScannerResult | undefined>;
51
63
  grabQuotePermission(): Promise<QuotePermission[]>;
64
+ /** All symbol codes (string list). wire: all_symbols */
65
+ getSymbols(req: SymbolsRequest): Promise<string[]>;
66
+ /** All symbols with names. wire: all_symbol_names */
67
+ getSymbolNames(req: SymbolsRequest): Promise<SymbolName[]>;
68
+ /** Trade meta (lot size / tick size). wire: quote_stock_trade */
69
+ getTradeMetas(req: TradeMetasRequest): Promise<TradeMeta[]>;
70
+ /** Stock details. wire: stock_detail. Server returns {items:[...]}. */
71
+ getStockDetails(req: StockDetailsRequest): Promise<StockDetail[]>;
72
+ /** Delayed stock briefs. wire: quote_delay */
73
+ getStockDelayBriefs(req: StockDelayBriefsRequest): Promise<Brief[]>;
74
+ /** K-line bars (full request). wire: kline */
75
+ getBars(req: BarsRequest): Promise<Kline[]>;
76
+ /**
77
+ * Client-side paginated K-line fetch — loops over getBars until TotalSize
78
+ * bars are collected. Items are returned oldest-first, matching
79
+ * Python/Go get_bars_by_page behaviour.
80
+ */
81
+ getBarsByPage(req: BarsByPageRequest): Promise<KlineItem[]>;
82
+ /** Historical intraday timeline. wire: history_timeline */
83
+ getTimelineHistory(req: TimelineHistoryRequest): Promise<Timeline[]>;
84
+ /** Trade rank (top movers / volume). wire: trade_rank */
85
+ getTradeRank(req: TradeRankRequest): Promise<TradeRankItem[]>;
86
+ /** Short interest / shortable. wire: quote_shortable_stocks */
87
+ getShortInterest(req: ShortInterestRequest): Promise<ShortInterest[]>;
88
+ /** Broker queue. wire: stock_broker */
89
+ getStockBroker(req: StockBrokerRequest): Promise<StockBroker | undefined>;
90
+ /** Stock fundamentals (server returns grouped map). wire: stock_fundamental */
91
+ getStockFundamental(req: StockFundamentalRequest): Promise<Record<string, unknown>>;
92
+ /** Stock industry classification (array). wire: stock_industry */
93
+ getStockIndustry(req: StockIndustryRequest): Promise<StockIndustry[]>;
94
+ /** Quote permission detail. wire: get_quote_permission */
95
+ getQuotePermission(req: QuotePermissionRequest): Promise<QuotePermission[]>;
96
+ /** K-line quota usage. wire: kline_quota */
97
+ getKlineQuota(req: KlineQuotaRequest): Promise<KlineQuota[]>;
98
+ /** Option K-line. wire: option_kline (v2.0) */
99
+ getOptionBars(req: OptionBarsRequest): Promise<Kline[]>;
100
+ /** Option tick trades. wire: option_trade_tick */
101
+ getOptionTradeTicks(req: OptionTradeTicksRequest): Promise<TradeTick[]>;
102
+ /** Option intraday timeline. wire: option_timeline */
103
+ getOptionTimeline(req: OptionTimelineRequest): Promise<Timeline[]>;
104
+ /** Option depth. wire: option_depth */
105
+ getOptionDepth(req: OptionDepthRequest): Promise<Depth[]>;
106
+ /** Available option symbols. wire: option_symbol */
107
+ getOptionSymbols(req: OptionSymbolsRequest): Promise<OptionSymbol[]>;
108
+ /** Option analysis (volatility). wire: option_analysis */
109
+ getOptionAnalysis(req: OptionAnalysisRequest): Promise<OptionAnalysis[]>;
110
+ /** Single futures contract by code. wire: future_contract_by_contract_code */
111
+ getFutureContract(req: FutureContractSingleRequest): Promise<FutureContractInfo[]>;
112
+ /** All futures contracts. wire: future_contracts */
113
+ getAllFutureContracts(req: AllFutureContractsRequest): Promise<FutureContractInfo[]>;
114
+ /** Current main contract. wire: future_current_contract */
115
+ getCurrentFutureContract(req: FutureContractSingleRequest): Promise<FutureContractInfo | undefined>;
116
+ /** Continuous main contracts. wire: future_continuous_contracts */
117
+ getFutureContinuousContracts(req: FutureContinuousContractsRequest): Promise<FutureContractInfo[]>;
118
+ /** Historical main contracts. wire: future_main_contract */
119
+ getFutureHistoryMainContract(req: FutureHistoryMainContractRequest): Promise<FutureMainContractHistory[]>;
120
+ /**
121
+ * Futures K-line (full request with index pagination). wire: future_kline
122
+ * begin_time / end_time default to -1 when unset (server requires them present).
123
+ */
124
+ getFutureBars(req: FutureBarsRequest): Promise<FutureKline[]>;
125
+ /** Client-side paginated futures K-line fetch. */
126
+ getFutureBarsByPage(req: FutureBarsByPageRequest): Promise<FutureKlineItem[]>;
127
+ /** Futures tick trades. wire: future_tick (API v3.0)
128
+ * Server returns {contractCode, items:[...]}; unwrap items and backfill contractCode.
129
+ * endIndex defaults to 30 when not set (consistent with Python/Go SDK). */
130
+ getFutureTradeTicks(req: FutureTradeTicksRequest): Promise<FutureTradeTickItem[]>;
131
+ /** Futures depth. wire: future_depth */
132
+ getFutureDepth(req: FutureDepthRequest): Promise<FutureDepth[]>;
133
+ /** Futures trading times (single-object response). wire: future_trading_date */
134
+ getFutureTradingTimes(req: FutureTradingTimesRequest): Promise<FutureTradingTime | undefined>;
135
+ /** Fund symbols. wire: fund_all_symbols */
136
+ getFundSymbols(req: FundSymbolsRequest): Promise<string[]>;
137
+ /** Fund contracts. wire: fund_contracts */
138
+ getFundContracts(req: FundContractsRequest): Promise<FundContractInfo[]>;
139
+ /** Fund real-time NAV. wire: fund_quote */
140
+ getFundQuote(req: FundQuoteRequest): Promise<FundQuote[]>;
141
+ /** Fund historical NAV. wire: fund_history_quote */
142
+ getFundHistoryQuote(req: FundHistoryQuoteRequest): Promise<FundHistoryQuote[]>;
143
+ /** Warrant briefs. wire: warrant_briefs */
144
+ getWarrantBriefs(req: WarrantBriefsRequest): Promise<WarrantBrief[]>;
145
+ /** Warrant filter (paged). wire: warrant_filter */
146
+ getWarrantFilter(req: WarrantFilterRequest): Promise<WarrantFilterResult | undefined>;
147
+ /** Industry list. wire: industry_list */
148
+ getIndustryList(req: IndustryListRequest): Promise<IndustryItem[]>;
149
+ /** Stocks inside an industry. wire: industry_stock_list */
150
+ getIndustryStocks(req: IndustryStocksRequest): Promise<IndustryStock[]>;
151
+ /** Corporate split (flattened). wire: corporate_action (action_type=split) */
152
+ getCorporateSplit(req: CorporateActionRequest): Promise<CorporateAction[]>;
153
+ /** Corporate dividend (flattened). wire: corporate_action (action_type=dividend) */
154
+ getCorporateDividend(req: CorporateActionRequest): Promise<CorporateAction[]>;
155
+ /** Corporate earnings calendar (flattened). wire: corporate_action (action_type=earning) */
156
+ getCorporateEarningsCalendar(req: CorporateActionRequest): Promise<CorporateAction[]>;
157
+ /** Financial currency per symbol. wire: financial_currency */
158
+ getFinancialCurrency(req: FinancialCurrencyRequest): Promise<FinancialCurrency[]>;
159
+ /** FX rates. wire: financial_exchange_rate */
160
+ getFinancialExchangeRate(req: FinancialExchangeRateRequest): Promise<ExchangeRate[]>;
161
+ /** Trading calendar. wire: trading_calendar */
162
+ getTradingCalendar(req: TradingCalendarRequest): Promise<TradingCalendarItem[]>;
163
+ /** Available market-scanner tags. wire: market_scanner_tags */
164
+ getMarketScannerTags(req: MarketScannerTagsRequest): Promise<MarketScannerTags | undefined>;
165
+ /** Overnight quote. wire: quote_overnight */
166
+ getQuoteOvernight(req: QuoteOvernightRequest): Promise<QuoteOvernight[]>;
52
167
  }
@@ -3,12 +3,16 @@
3
3
  *
4
4
  * All methods return strongly-typed responses; request parameters are
5
5
  * written in camelCase in TypeScript and converted to snake_case on the wire.
6
+ *
7
+ * v0.4.0: 所有查询类方法改为 Request 对象签名(OrdersRequest 等),补齐 17
8
+ * 个新方法(账户管理 / 资产分析 / 资金调拨 / 持仓划转等)。
6
9
  */
7
10
  import type { HttpClient } from '../client/http-client';
8
11
  import type { OrderRequest, Order } from '../model/order';
9
12
  import type { Contract } from '../model/contract';
10
13
  import type { Position } from '../model/position';
11
- import type { Asset, PrimeAsset, PreviewResult, PlaceOrderResult, OrderIdResult, Transaction } from '../model/trade';
14
+ import type { Asset, PrimeAsset, PreviewResult, PlaceOrderResult, OrderIdResult, Transaction, ManagedAccount, AnalyticsAsset, AggregateAssets, EstimateTradableQuantity, ForexOrderResult, SegmentFund, SegmentFundAvailableItem, SegmentFundHistoryItem, FundDetails, FundingHistoryItem, PositionTransferRecord, PositionTransferDetail, PositionTransferExternalRecord, OptionExerciseCheckResult, OptionExercisePositionPageResult, OptionExerciseRecordPageResult } from '../model/trade';
15
+ import type { OrdersRequest, GetOrderRequest, OrderTransactionsRequest, PositionsRequest, AssetsRequest, ManagedAccountsRequest, DerivativeContractsRequest, AnalyticsAssetRequest, AggregateAssetsRequest, EstimateTradableQuantityRequest, ForexOrderRequest, SegmentFundRequest, FundDetailsRequest, FundingHistoryRequest, PositionTransferRequest, PositionTransferRecordsRequest, PositionTransferDetailRequest, PositionTransferExternalRecordsRequest, OptionExerciseCheckRequest, OptionExercisePositionRequest, OptionExerciseSubmitRequest, OptionExerciseRecordsRequest, OptionExerciseCancelRequest } from '../model/trade-requests';
12
16
  /** Trading client wrapping all trade-related APIs. */
13
17
  export declare class TradeClient {
14
18
  private httpClient;
@@ -28,17 +32,96 @@ export declare class TradeClient {
28
32
  previewOrder(order: OrderRequest): Promise<PreviewResult | undefined>;
29
33
  modifyOrder(id: number, order: OrderRequest): Promise<OrderIdResult | undefined>;
30
34
  cancelOrder(id: number): Promise<OrderIdResult | undefined>;
31
- getOrders(): Promise<Order[]>;
32
- getActiveOrders(): Promise<Order[]>;
33
- getInactiveOrders(): Promise<Order[]>;
34
35
  /**
35
- * Filled orders in a time range (ms timestamps required by the server).
36
- * Use `Date.now() - 30*24*3600*1000` for "last 30 days".
36
+ * Query all historical orders. v0.4.0: optional OrdersRequest for filtering.
37
+ *
38
+ * @example
39
+ * // Default (unfiltered)
40
+ * await tc.getOrders();
41
+ * // Filter by status
42
+ * await tc.getOrders({ states: ['Filled'], limit: 100 });
43
+ */
44
+ getOrders(req?: OrdersRequest): Promise<Order[]>;
45
+ /** Query active (open) orders. v0.4.0: supports ParentId to filter attached legs. */
46
+ getActiveOrders(req?: OrdersRequest): Promise<Order[]>;
47
+ /** Query inactive/cancelled orders. */
48
+ getInactiveOrders(req?: OrdersRequest): Promise<Order[]>;
49
+ /**
50
+ * Query filled orders. v0.4.0 BREAKING: signature changed from positional
51
+ * (startDateMs, endDateMs) to OrdersRequest object.
52
+ *
53
+ * @example
54
+ * // Last 30 days
55
+ * const now = Date.now();
56
+ * await tc.getFilledOrders({ startDate: now - 30*24*3600*1000, endDate: now });
57
+ */
58
+ getFilledOrders(req?: OrdersRequest): Promise<Order[]>;
59
+ /**
60
+ * Get a single order by ID (v0.4.0 new).
61
+ * Wire method: `orders` with id/order_id param; server returns a single Order object
62
+ * (not `{items:[]}` envelope).
63
+ *
64
+ * Returns `undefined` if no match.
65
+ */
66
+ getOrder(req: GetOrderRequest): Promise<Order | undefined>;
67
+ /**
68
+ * Query order transaction details. v0.4.0 BREAKING: all fields now optional
69
+ * (previously symbol/secType required).
70
+ */
71
+ getOrderTransactions(req: OrderTransactionsRequest): Promise<Transaction[]>;
72
+ /** Query positions. v0.4.0: supports Symbol / SecType / Currency / Market filters. */
73
+ getPositions(req?: PositionsRequest): Promise<Position[]>;
74
+ /** Query assets. v0.4.0: supports sub-account list and aggregation options. */
75
+ getAssets(req?: AssetsRequest): Promise<Asset[]>;
76
+ /** Query prime assets. v0.4.0: takes AssetsRequest for filters. */
77
+ getPrimeAssets(req?: AssetsRequest): Promise<PrimeAsset | undefined>;
78
+ /** Query managed sub-accounts (institutional). */
79
+ getManagedAccounts(req?: ManagedAccountsRequest): Promise<ManagedAccount[]>;
80
+ /**
81
+ * Query derivative contracts list. Same wire as getQuoteContract but accepts
82
+ * full request struct. Python: `get_derivative_contracts`.
83
+ */
84
+ getDerivativeContracts(req: DerivativeContractsRequest): Promise<Contract[]>;
85
+ /** Daily P&L / net-value / holding-value analytics. */
86
+ getAnalyticsAsset(req: AnalyticsAssetRequest): Promise<AnalyticsAsset[]>;
87
+ /** Aggregate assets (prime) by base currency. */
88
+ getAggregateAssets(req?: AggregateAssetsRequest): Promise<AggregateAssets | undefined>;
89
+ /** Estimate tradable quantity given order parameters. */
90
+ getEstimateTradableQuantity(req: EstimateTradableQuantityRequest): Promise<EstimateTradableQuantity | undefined>;
91
+ /** Place forex order (sub-account base-currency swap). */
92
+ placeForexOrder(req: ForexOrderRequest): Promise<ForexOrderResult | undefined>;
93
+ /** Query amount available for inter-segment transfer. Returns array. */
94
+ getSegmentFundAvailable(req: SegmentFundRequest): Promise<SegmentFundAvailableItem[]>;
95
+ /** Query segment fund transfer history. Server returns plain array (no items wrapper). */
96
+ getSegmentFundHistory(req: SegmentFundRequest): Promise<SegmentFundHistoryItem[]>;
97
+ /** Execute an inter-segment fund transfer. */
98
+ transferSegmentFund(req: SegmentFundRequest): Promise<SegmentFund | undefined>;
99
+ /** Cancel a pending inter-segment transfer. */
100
+ cancelSegmentFund(req: SegmentFundRequest): Promise<SegmentFund | undefined>;
101
+ /** Fund-movement details (by segment / currency / fund-type). */
102
+ getFundDetails(req: FundDetailsRequest): Promise<FundDetails[]>;
103
+ /** Funding history (wire method: `transfer_fund`).
104
+ * Server returns bare list (no items wrapper). */
105
+ getFundingHistory(req: FundingHistoryRequest): Promise<FundingHistoryItem[]>;
106
+ /**
107
+ * Internal position transfer (cross sub-account).
108
+ * @note Uses `fromAccount` / `toAccount` (not `account`).
37
109
  */
38
- getFilledOrders(startDateMs: number, endDateMs: number): Promise<Order[]>;
39
- /** Transactions for a specific order; `symbol` and `secType` are required. */
40
- getOrderTransactions(id: number, symbol: string, secType: string): Promise<Transaction[]>;
41
- getPositions(): Promise<Position[]>;
42
- getAssets(): Promise<Asset[]>;
43
- getPrimeAssets(): Promise<PrimeAsset | undefined>;
110
+ transferPosition(req: PositionTransferRequest): Promise<PositionTransferRecord | undefined>;
111
+ /** Query internal position transfer records. Uses `accountId` (wire: `account_id`). */
112
+ getPositionTransferRecords(req: PositionTransferRecordsRequest): Promise<PositionTransferRecord[]>;
113
+ /** Query single internal position transfer detail by ID. */
114
+ getPositionTransferDetail(req: PositionTransferDetailRequest): Promise<PositionTransferDetail | undefined>;
115
+ /** Query external position transfer records (DWAC / FOP / etc.). */
116
+ getPositionTransferExternalRecords(req: PositionTransferExternalRecordsRequest): Promise<PositionTransferExternalRecord[]>;
117
+ /** 行权检验:预估行权/作废后正股持仓变化 (wire: option_exercise_check) */
118
+ checkOptionExercise(req: OptionExerciseCheckRequest): Promise<OptionExerciseCheckResult | undefined>;
119
+ /** 查询可行权持仓列表 (wire: option_exercise_position) */
120
+ getOptionExercisePositions(req: OptionExercisePositionRequest): Promise<OptionExercisePositionPageResult | undefined>;
121
+ /** 提交行权/作废申请 (wire: option_exercise_submit) */
122
+ submitOptionExercise(req: OptionExerciseSubmitRequest): Promise<boolean>;
123
+ /** 分页查询行权记录 (wire: option_exercise_record) */
124
+ getOptionExerciseRecords(req: OptionExerciseRecordsRequest): Promise<OptionExerciseRecordPageResult | undefined>;
125
+ /** 撤销行权申请 (wire: option_exercise_cancel) */
126
+ cancelOptionExercise(req: OptionExerciseCancelRequest): Promise<boolean>;
44
127
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tigeropenapi/tigeropen",
3
- "version": "0.3.0",
3
+ "version": "0.4.5",
4
4
  "description": "Tiger Brokers OpenAPI TypeScript SDK for market data, trading, and real-time push",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -24,7 +24,7 @@
24
24
  "url": "https://github.com/tigerfintech/openapi-typescript-sdk/issues"
25
25
  },
26
26
  "scripts": {
27
- "build": "tsc -p tsconfig.json && tsc -p tsconfig.cjs.json",
27
+ "build": "tsc -p tsconfig.json && tsc -p tsconfig.cjs.json && node scripts/fix-esm-imports.mjs",
28
28
  "build:esm": "tsc -p tsconfig.json",
29
29
  "build:cjs": "tsc -p tsconfig.cjs.json",
30
30
  "prepublishOnly": "npm run build",