@tigeropenapi/tigeropen 0.1.0 → 0.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.
Files changed (129) hide show
  1. package/README.md +475 -104
  2. package/dist/cjs/client/api-request.js +16 -10
  3. package/dist/cjs/client/api-response.js +23 -3
  4. package/dist/cjs/client/case-convert.js +35 -0
  5. package/dist/cjs/client/http-client.js +46 -20
  6. package/dist/cjs/client/index.js +6 -2
  7. package/dist/cjs/config/client-config.js +130 -49
  8. package/dist/cjs/config/domain.js +21 -2
  9. package/dist/cjs/config/index.js +3 -1
  10. package/dist/cjs/index.js +1 -1
  11. package/dist/cjs/model/contract.js +1 -2
  12. package/dist/cjs/model/order-helpers.js +9 -9
  13. package/dist/cjs/model/order.js +5 -2
  14. package/dist/cjs/model/position.js +1 -2
  15. package/dist/cjs/model/quote.js +7 -0
  16. package/dist/cjs/model/trade.js +2 -0
  17. package/dist/cjs/push/index.js +6 -3
  18. package/dist/cjs/push/pb/AssetData.js +208 -0
  19. package/dist/cjs/push/pb/KlineData.js +184 -0
  20. package/dist/cjs/push/pb/OptionTopData.js +427 -0
  21. package/dist/cjs/push/pb/OrderStatusData.js +568 -0
  22. package/dist/cjs/push/pb/OrderTransactionData.js +256 -0
  23. package/dist/cjs/push/pb/PositionData.js +316 -0
  24. package/dist/cjs/push/pb/PushData.js +219 -0
  25. package/dist/cjs/push/pb/QuoteBBOData.js +160 -0
  26. package/dist/cjs/push/pb/QuoteBasicData.js +329 -0
  27. package/dist/cjs/push/pb/QuoteData.js +507 -0
  28. package/dist/cjs/push/pb/QuoteDepthData.js +220 -0
  29. package/dist/cjs/push/pb/Request.js +278 -0
  30. package/dist/cjs/push/pb/Response.js +97 -0
  31. package/dist/cjs/push/pb/SocketCommon.js +86 -0
  32. package/dist/cjs/push/pb/StockTopData.js +199 -0
  33. package/dist/cjs/push/pb/TickData.js +202 -0
  34. package/dist/cjs/push/pb/TradeTickData.js +308 -0
  35. package/dist/cjs/push/pb/index.js +49 -0
  36. package/dist/cjs/push/proto-message.js +129 -0
  37. package/dist/cjs/push/push-client.js +292 -164
  38. package/dist/cjs/push/push-message.js +4 -60
  39. package/dist/cjs/push/varint.js +76 -0
  40. package/dist/cjs/quote/index.js +3 -2
  41. package/dist/cjs/quote/quote-client.js +128 -94
  42. package/dist/cjs/signer/signer.js +10 -10
  43. package/dist/cjs/trade/trade-client.js +56 -62
  44. package/dist/esm/client/api-request.js +14 -8
  45. package/dist/esm/client/api-response.js +22 -3
  46. package/dist/esm/client/case-convert.js +31 -0
  47. package/dist/esm/client/http-client.js +47 -21
  48. package/dist/esm/client/index.js +3 -2
  49. package/dist/esm/config/client-config.js +131 -51
  50. package/dist/esm/config/domain.js +20 -2
  51. package/dist/esm/config/index.js +2 -2
  52. package/dist/esm/index.js +1 -1
  53. package/dist/esm/model/contract.js +1 -2
  54. package/dist/esm/model/order-helpers.js +9 -9
  55. package/dist/esm/model/order.js +5 -2
  56. package/dist/esm/model/position.js +1 -2
  57. package/dist/esm/model/quote.js +6 -0
  58. package/dist/esm/model/trade.js +1 -0
  59. package/dist/esm/push/index.js +4 -2
  60. package/dist/esm/push/pb/AssetData.js +205 -0
  61. package/dist/esm/push/pb/KlineData.js +181 -0
  62. package/dist/esm/push/pb/OptionTopData.js +424 -0
  63. package/dist/esm/push/pb/OrderStatusData.js +565 -0
  64. package/dist/esm/push/pb/OrderTransactionData.js +253 -0
  65. package/dist/esm/push/pb/PositionData.js +313 -0
  66. package/dist/esm/push/pb/PushData.js +216 -0
  67. package/dist/esm/push/pb/QuoteBBOData.js +157 -0
  68. package/dist/esm/push/pb/QuoteBasicData.js +326 -0
  69. package/dist/esm/push/pb/QuoteData.js +504 -0
  70. package/dist/esm/push/pb/QuoteDepthData.js +217 -0
  71. package/dist/esm/push/pb/Request.js +275 -0
  72. package/dist/esm/push/pb/Response.js +94 -0
  73. package/dist/esm/push/pb/SocketCommon.js +83 -0
  74. package/dist/esm/push/pb/StockTopData.js +196 -0
  75. package/dist/esm/push/pb/TickData.js +199 -0
  76. package/dist/esm/push/pb/TradeTickData.js +305 -0
  77. package/dist/esm/push/pb/index.js +25 -0
  78. package/dist/esm/push/proto-message.js +121 -0
  79. package/dist/esm/push/push-client.js +260 -165
  80. package/dist/esm/push/push-message.js +3 -56
  81. package/dist/esm/push/varint.js +72 -0
  82. package/dist/esm/quote/index.js +2 -2
  83. package/dist/esm/quote/quote-client.js +127 -94
  84. package/dist/esm/signer/signer.js +10 -10
  85. package/dist/esm/trade/trade-client.js +56 -62
  86. package/dist/types/client/api-request.d.ts +12 -11
  87. package/dist/types/client/api-response.d.ts +15 -7
  88. package/dist/types/client/case-convert.d.ts +16 -0
  89. package/dist/types/client/http-client.d.ts +26 -14
  90. package/dist/types/client/index.d.ts +3 -2
  91. package/dist/types/config/client-config.d.ts +29 -13
  92. package/dist/types/config/domain.d.ts +9 -0
  93. package/dist/types/config/index.d.ts +2 -2
  94. package/dist/types/index.d.ts +1 -1
  95. package/dist/types/model/contract.d.ts +13 -29
  96. package/dist/types/model/order-helpers.d.ts +21 -20
  97. package/dist/types/model/order.d.ts +101 -55
  98. package/dist/types/model/position.d.ts +26 -24
  99. package/dist/types/model/quote.d.ts +311 -0
  100. package/dist/types/model/trade.d.ts +113 -0
  101. package/dist/types/push/callbacks.d.ts +32 -51
  102. package/dist/types/push/index.d.ts +5 -3
  103. package/dist/types/push/pb/AssetData.d.ts +47 -0
  104. package/dist/types/push/pb/KlineData.d.ts +43 -0
  105. package/dist/types/push/pb/OptionTopData.d.ts +76 -0
  106. package/dist/types/push/pb/OrderStatusData.d.ts +96 -0
  107. package/dist/types/push/pb/OrderTransactionData.d.ts +51 -0
  108. package/dist/types/push/pb/PositionData.d.ts +63 -0
  109. package/dist/types/push/pb/PushData.d.ts +46 -0
  110. package/dist/types/push/pb/QuoteBBOData.d.ts +35 -0
  111. package/dist/types/push/pb/QuoteBasicData.d.ts +66 -0
  112. package/dist/types/push/pb/QuoteData.d.ts +94 -0
  113. package/dist/types/push/pb/QuoteDepthData.d.ts +37 -0
  114. package/dist/types/push/pb/Request.d.ts +44 -0
  115. package/dist/types/push/pb/Response.d.ts +30 -0
  116. package/dist/types/push/pb/SocketCommon.d.ts +64 -0
  117. package/dist/types/push/pb/StockTopData.d.ts +37 -0
  118. package/dist/types/push/pb/TickData.d.ts +44 -0
  119. package/dist/types/push/pb/TradeTickData.d.ts +53 -0
  120. package/dist/types/push/pb/index.d.ts +39 -0
  121. package/dist/types/push/proto-message.d.ts +33 -0
  122. package/dist/types/push/push-client.d.ts +69 -68
  123. package/dist/types/push/push-message.d.ts +3 -147
  124. package/dist/types/push/varint.d.ts +23 -0
  125. package/dist/types/quote/index.d.ts +2 -2
  126. package/dist/types/quote/quote-client.d.ts +41 -47
  127. package/dist/types/signer/signer.d.ts +6 -6
  128. package/dist/types/trade/trade-client.d.ts +34 -38
  129. package/package.json +11 -6
@@ -0,0 +1,311 @@
1
+ /**
2
+ * Quote response & request models.
3
+ * All field names are camelCase (TypeScript idiom); request fields are
4
+ * converted to snake_case on the wire by the client layer.
5
+ */
6
+ export interface MarketState {
7
+ market: string;
8
+ marketStatus: string;
9
+ status: string;
10
+ openTime?: string;
11
+ }
12
+ export interface Brief {
13
+ symbol: string;
14
+ open?: number;
15
+ high?: number;
16
+ low?: number;
17
+ close?: number;
18
+ preClose?: number;
19
+ latestPrice?: number;
20
+ latestTime?: number;
21
+ askPrice?: number;
22
+ askSize?: number;
23
+ bidPrice?: number;
24
+ bidSize?: number;
25
+ volume?: number;
26
+ status?: string;
27
+ adjPreClose?: number;
28
+ change?: number;
29
+ changeRate?: number;
30
+ amplitude?: number;
31
+ expiry?: string;
32
+ strike?: string;
33
+ right?: string;
34
+ multiplier?: number;
35
+ openInterest?: number;
36
+ }
37
+ export interface KlineItem {
38
+ time: number;
39
+ volume: number;
40
+ open: number;
41
+ close: number;
42
+ high: number;
43
+ low: number;
44
+ amount?: number;
45
+ }
46
+ export interface Kline {
47
+ symbol: string;
48
+ period?: string;
49
+ nextPageToken?: string;
50
+ items: KlineItem[];
51
+ }
52
+ export interface TimelineItem {
53
+ time: number;
54
+ volume: number;
55
+ price: number;
56
+ avgPrice: number;
57
+ }
58
+ export interface TimelineBucket {
59
+ items: TimelineItem[];
60
+ }
61
+ export interface Timeline {
62
+ symbol: string;
63
+ period: string;
64
+ preClose: number;
65
+ intraday?: TimelineBucket;
66
+ preHours?: TimelineBucket;
67
+ afterHours?: TimelineBucket;
68
+ }
69
+ export interface TradeTickItem {
70
+ time: number;
71
+ volume: number;
72
+ price: number;
73
+ type: string;
74
+ }
75
+ export interface TradeTick {
76
+ symbol: string;
77
+ beginIndex: number;
78
+ endIndex: number;
79
+ items: TradeTickItem[];
80
+ }
81
+ export interface DepthLevel {
82
+ price: number;
83
+ count: number;
84
+ volume: number;
85
+ }
86
+ export interface Depth {
87
+ symbol: string;
88
+ asks: DepthLevel[];
89
+ bids: DepthLevel[];
90
+ }
91
+ export interface OptionExpiration {
92
+ symbol: string;
93
+ optionSymbols?: string[];
94
+ dates: string[];
95
+ timestamps: number[];
96
+ periods?: string[];
97
+ counts?: number[];
98
+ }
99
+ export interface OptionLeg {
100
+ identifier: string;
101
+ strike: string;
102
+ right: string;
103
+ bidPrice?: number;
104
+ bidSize?: number;
105
+ askPrice?: number;
106
+ askSize?: number;
107
+ volume?: number;
108
+ latestPrice?: number;
109
+ preClose?: number;
110
+ openInterest?: number;
111
+ multiplier?: number;
112
+ lastTimestamp?: number;
113
+ impliedVol?: number;
114
+ delta?: number;
115
+ gamma?: number;
116
+ theta?: number;
117
+ vega?: number;
118
+ rho?: number;
119
+ }
120
+ export interface OptionChainRow {
121
+ put?: OptionLeg;
122
+ call?: OptionLeg;
123
+ }
124
+ export interface OptionChain {
125
+ symbol: string;
126
+ expiry: number;
127
+ items: OptionChainRow[];
128
+ }
129
+ export interface FutureExchange {
130
+ code: string;
131
+ name: string;
132
+ zoneId?: string;
133
+ }
134
+ export interface FutureContractInfo {
135
+ continuous?: boolean;
136
+ trade?: boolean;
137
+ type: string;
138
+ contractCode: string;
139
+ ibCode?: string;
140
+ name?: string;
141
+ contractMonth?: string;
142
+ lastTradingDate?: string;
143
+ firstNoticeDate?: string;
144
+ lastBiddingCloseTime?: number;
145
+ currency?: string;
146
+ exchangeCode?: string;
147
+ multiplier?: number;
148
+ minTick?: number;
149
+ displayMultiplier?: number;
150
+ exchange?: string;
151
+ productWorth?: string;
152
+ deliveryMode?: string;
153
+ productType?: string;
154
+ productScale?: string;
155
+ lastTradingTimestamp?: number;
156
+ }
157
+ export interface FutureQuote {
158
+ contractCode: string;
159
+ latestPrice?: number;
160
+ latestSize?: number;
161
+ latestTime?: number;
162
+ bidPrice?: number;
163
+ askPrice?: number;
164
+ bidSize?: number;
165
+ askSize?: number;
166
+ openInterest?: number;
167
+ openInterestChange?: number;
168
+ volume?: number;
169
+ open?: number;
170
+ high?: number;
171
+ low?: number;
172
+ settlement?: number;
173
+ limitUp?: number;
174
+ limitDown?: number;
175
+ avgPrice?: number;
176
+ }
177
+ export interface FutureKlineItem {
178
+ time: number;
179
+ volume: number;
180
+ open: number;
181
+ close: number;
182
+ high: number;
183
+ low: number;
184
+ lastTime?: number;
185
+ openInterest?: number;
186
+ settlement?: number;
187
+ }
188
+ export interface FutureKline {
189
+ nextPageToken?: string;
190
+ items: FutureKlineItem[];
191
+ }
192
+ export interface FinancialDailyItem {
193
+ symbol: string;
194
+ field: string;
195
+ date?: number;
196
+ value?: number;
197
+ }
198
+ export interface FinancialReportItem {
199
+ symbol: string;
200
+ currency?: string;
201
+ field: string;
202
+ value?: string;
203
+ filingDate?: string;
204
+ periodEndDate?: string;
205
+ }
206
+ export interface CorporateAction {
207
+ symbol: string;
208
+ market?: string;
209
+ exchange?: string;
210
+ executeDate?: string;
211
+ actionType?: string;
212
+ recordDate?: string;
213
+ announcedDate?: string;
214
+ payDate?: string;
215
+ amount?: number;
216
+ currency?: string;
217
+ fromFactor?: number;
218
+ toFactor?: number;
219
+ }
220
+ export interface CapitalFlowItem {
221
+ time: string;
222
+ timestamp: number;
223
+ netInflow: number;
224
+ }
225
+ export interface CapitalFlow {
226
+ symbol: string;
227
+ period?: string;
228
+ items: CapitalFlowItem[];
229
+ }
230
+ export interface CapitalDistribution {
231
+ symbol: string;
232
+ netInflow: number;
233
+ inAll: number;
234
+ inBig: number;
235
+ inMid: number;
236
+ inSmall: number;
237
+ outAll: number;
238
+ outBig: number;
239
+ outMid: number;
240
+ outSmall: number;
241
+ }
242
+ export interface ScannerDataRow {
243
+ index: number;
244
+ name: string;
245
+ value?: string;
246
+ data?: number;
247
+ }
248
+ export interface ScannerResultItem {
249
+ symbol: string;
250
+ market: string;
251
+ baseDataList?: ScannerDataRow[];
252
+ accumulateDataList?: ScannerDataRow[];
253
+ financialDataList?: ScannerDataRow[];
254
+ multiTagDataList?: ScannerDataRow[];
255
+ }
256
+ export interface ScannerResult {
257
+ page: number;
258
+ totalPage: number;
259
+ totalCount: number;
260
+ pageSize: number;
261
+ cursorId?: string;
262
+ items: ScannerResultItem[];
263
+ }
264
+ export interface QuotePermission {
265
+ name: string;
266
+ expireAt: number;
267
+ }
268
+ export interface FinancialDailyRequest {
269
+ symbols: string[];
270
+ market: string;
271
+ fields: string[];
272
+ beginDate: string;
273
+ endDate: string;
274
+ }
275
+ export interface FinancialReportRequest {
276
+ symbols: string[];
277
+ market: string;
278
+ fields: string[];
279
+ periodType: string;
280
+ beginDate?: string;
281
+ endDate?: string;
282
+ }
283
+ export interface CorporateActionRequest {
284
+ symbols: string[];
285
+ market: string;
286
+ actionType: string;
287
+ beginDate?: string;
288
+ endDate?: string;
289
+ }
290
+ export interface FutureKlineRequest {
291
+ contractCodes: string[];
292
+ period: string;
293
+ /** Use -1 for unbounded */
294
+ beginTime: number;
295
+ /** Use -1 for unbounded */
296
+ endTime: number;
297
+ limit?: number;
298
+ pageToken?: string;
299
+ }
300
+ export interface MarketScannerRequest {
301
+ market: string;
302
+ page?: number;
303
+ pageSize?: number;
304
+ cursorId?: string;
305
+ baseFilterList?: Array<Record<string, unknown>>;
306
+ accumulateFilterList?: Array<Record<string, unknown>>;
307
+ financialFilterList?: Array<Record<string, unknown>>;
308
+ multiTagsFilterList?: Array<Record<string, unknown>>;
309
+ sortFieldData?: Record<string, unknown>;
310
+ multiTagsFields?: string[];
311
+ }
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Trade response models (Asset / PrimeAsset / order result / transaction).
3
+ */
4
+ import type { Order } from './order';
5
+ export interface AssetSegment {
6
+ account?: string;
7
+ category?: string;
8
+ title?: string;
9
+ netLiquidation?: number;
10
+ cashValue?: number;
11
+ availableFunds?: number;
12
+ equityWithLoan?: number;
13
+ excessLiquidity?: number;
14
+ accruedCash?: number;
15
+ accruedDividend?: number;
16
+ initMarginReq?: number;
17
+ maintMarginReq?: number;
18
+ grossPositionValue?: number;
19
+ leverage?: number;
20
+ }
21
+ export interface Asset {
22
+ account?: string;
23
+ capability?: string;
24
+ currency?: string;
25
+ buyingPower?: number;
26
+ cashValue?: number;
27
+ netLiquidation?: number;
28
+ realizedPnL?: number;
29
+ unrealizedPnL?: number;
30
+ segments?: AssetSegment[];
31
+ }
32
+ export interface CurrencyAsset {
33
+ currency?: string;
34
+ cashBalance?: number;
35
+ cashAvailableForTrade?: number;
36
+ forexRate?: number;
37
+ }
38
+ export interface PrimeAssetSegment {
39
+ capability?: string;
40
+ category?: string;
41
+ currency?: string;
42
+ cashBalance?: number;
43
+ cashAvailableForTrade?: number;
44
+ grossPositionValue?: number;
45
+ equityWithLoan?: number;
46
+ netLiquidation?: number;
47
+ initMargin?: number;
48
+ maintainMargin?: number;
49
+ overnightMargin?: number;
50
+ unrealizedPL?: number;
51
+ unrealizedPLByCostOfCarry?: number;
52
+ realizedPL?: number;
53
+ totalTodayPL?: number;
54
+ excessLiquidation?: number;
55
+ overnightLiquidation?: number;
56
+ buyingPower?: number;
57
+ lockedFunds?: number;
58
+ leverage?: number;
59
+ uncollected?: number;
60
+ currencyAssets?: CurrencyAsset[];
61
+ consolidatedSegTypes?: string[];
62
+ }
63
+ export interface PrimeAsset {
64
+ accountId: string;
65
+ updateTimestamp?: number;
66
+ segments: PrimeAssetSegment[];
67
+ }
68
+ export interface PreviewResult {
69
+ account?: string;
70
+ isPass: boolean;
71
+ commission?: number;
72
+ commissionCurrency?: string;
73
+ marginCurrency?: string;
74
+ initMargin?: number;
75
+ initMarginBefore?: number;
76
+ maintMargin?: number;
77
+ maintMarginBefore?: number;
78
+ equityWithLoan?: number;
79
+ equityWithLoanBefore?: number;
80
+ availableEE?: number;
81
+ excessLiquidity?: number;
82
+ overnightLiquidation?: number;
83
+ gst?: number;
84
+ message?: string;
85
+ }
86
+ export interface PlaceOrderResult {
87
+ id: number;
88
+ /** Account-level order ID; the server returns snake_case `order_id` */
89
+ order_id?: number;
90
+ subIds?: number[];
91
+ orders?: Order[];
92
+ }
93
+ export interface OrderIdResult {
94
+ id: number;
95
+ }
96
+ export interface Transaction {
97
+ id?: number;
98
+ orderId?: number;
99
+ account?: string;
100
+ symbol?: string;
101
+ secType?: string;
102
+ market?: string;
103
+ currency?: string;
104
+ identifier?: string;
105
+ action?: string;
106
+ price?: number;
107
+ quantity?: number;
108
+ filledQuantity?: number;
109
+ amount?: number;
110
+ commission?: number;
111
+ transactedAt?: number;
112
+ time?: number;
113
+ }
@@ -1,57 +1,38 @@
1
1
  /**
2
- * 推送回调函数类型定义
2
+ * 推送回调函数类型定义(Protobuf 协议)
3
3
  *
4
- * 每种推送类型独立回调,连接状态回调独立管理。
4
+ * 每种推送类型独立回调,参数类型为 Protobuf 生成的类型。
5
+ * 连接状态回调独立管理。
5
6
  */
6
- import type { QuoteData, TickData, DepthData, KlineData, AssetData, PositionData, OrderData, TransactionData, SubjectType } from './push-message';
7
- /** 行情推送回调 */
8
- export type QuoteCallback = (data: QuoteData) => void;
9
- /** 逐笔成交推送回调 */
10
- export type TickCallback = (data: TickData) => void;
11
- /** 深度行情推送回调 */
12
- export type DepthCallback = (data: DepthData) => void;
13
- /** K 线推送回调 */
14
- export type KlineCallback = (data: KlineData) => void;
15
- /** 资产变动推送回调 */
16
- export type AssetCallback = (data: AssetData) => void;
17
- /** 持仓变动推送回调 */
18
- export type PositionCallback = (data: PositionData) => void;
19
- /** 订单状态推送回调 */
20
- export type OrderCallback = (data: OrderData) => void;
21
- /** 成交明细推送回调 */
22
- export type TransactionCallback = (data: TransactionData) => void;
23
- /** 连接成功回调 */
24
- export type ConnectCallback = () => void;
25
- /** 断开连接回调 */
26
- export type DisconnectCallback = () => void;
27
- /** 错误回调 */
28
- export type ErrorCallback = (err: Error) => void;
29
- /** 被踢出回调 */
30
- export type KickoutCallback = (message: string) => void;
31
- /** 订阅成功回调 */
32
- export type SubscribeCallback = (subject: SubjectType, symbols: string[]) => void;
33
- /** 退订成功回调 */
34
- export type UnsubscribeCallback = (subject: SubjectType, symbols: string[]) => void;
7
+ import type { QuoteData } from './pb/QuoteData';
8
+ import type { QuoteDepthData } from './pb/QuoteDepthData';
9
+ import type { TradeTickData } from './pb/TradeTickData';
10
+ import type { TickData } from './pb/TickData';
11
+ import type { AssetData } from './pb/AssetData';
12
+ import type { PositionData } from './pb/PositionData';
13
+ import type { OrderStatusData } from './pb/OrderStatusData';
14
+ import type { OrderTransactionData } from './pb/OrderTransactionData';
15
+ import type { StockTopData } from './pb/StockTopData';
16
+ import type { OptionTopData } from './pb/OptionTopData';
17
+ import type { KlineData } from './pb/KlineData';
35
18
  /** 所有回调函数的集合 */
36
19
  export interface Callbacks {
37
- onQuote?: QuoteCallback;
38
- onTick?: TickCallback;
39
- onDepth?: DepthCallback;
40
- onOption?: QuoteCallback;
41
- onFuture?: QuoteCallback;
42
- onKline?: KlineCallback;
43
- onStockTop?: QuoteCallback;
44
- onOptionTop?: QuoteCallback;
45
- onFullTick?: TickCallback;
46
- onQuoteBBO?: QuoteCallback;
47
- onAsset?: AssetCallback;
48
- onPosition?: PositionCallback;
49
- onOrder?: OrderCallback;
50
- onTransaction?: TransactionCallback;
51
- onConnect?: ConnectCallback;
52
- onDisconnect?: DisconnectCallback;
53
- onError?: ErrorCallback;
54
- onKickout?: KickoutCallback;
55
- onSubscribe?: SubscribeCallback;
56
- onUnsubscribe?: UnsubscribeCallback;
20
+ onQuote?: (data: QuoteData) => void;
21
+ onTick?: (data: TradeTickData) => void;
22
+ onDepth?: (data: QuoteDepthData) => void;
23
+ onOption?: (data: QuoteData) => void;
24
+ onFuture?: (data: QuoteData) => void;
25
+ onKline?: (data: KlineData) => void;
26
+ onStockTop?: (data: StockTopData) => void;
27
+ onOptionTop?: (data: OptionTopData) => void;
28
+ onFullTick?: (data: TickData) => void;
29
+ onQuoteBBO?: (data: QuoteData) => void;
30
+ onAsset?: (data: AssetData) => void;
31
+ onPosition?: (data: PositionData) => void;
32
+ onOrder?: (data: OrderStatusData) => void;
33
+ onTransaction?: (data: OrderTransactionData) => void;
34
+ onConnect?: () => void;
35
+ onDisconnect?: () => void;
36
+ onError?: (err: Error) => void;
37
+ onKickout?: (message: string) => void;
57
38
  }
@@ -1,7 +1,9 @@
1
1
  /**
2
- * 推送模块导出
2
+ * Push module exports
3
3
  */
4
- export * from './push-message';
4
+ export { SubjectType } from './push-message';
5
5
  export * from './callbacks';
6
+ export * from './varint';
7
+ export * from './proto-message';
6
8
  export { PushClient, ConnectionState } from './push-client';
7
- export type { PushClientOptions, WebSocketLike, WebSocketFactory } from './push-client';
9
+ export type { PushClientOptions, TLSSocketLike, TLSSocketFactory } from './push-client';
@@ -0,0 +1,47 @@
1
+ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
+ export declare const protobufPackage = "com.tigerbrokers.stock.openapi.client.socket.data.pb";
3
+ export interface AssetData {
4
+ /** user account */
5
+ account: string;
6
+ /** currency. USD, HKD, etc. */
7
+ currency: string;
8
+ /** Securities Category C: (Commodities Futures), S: (Securities Stocks) */
9
+ segType: string;
10
+ /** available funds, overnight liquidity */
11
+ availableFunds: number;
12
+ /** excess liquidity, used to represent intraday risk value. */
13
+ excessLiquidity: number;
14
+ /** Total Assets (Net Liquidation Value) */
15
+ netLiquidation: number;
16
+ /** Equity with loan value (asset with loan value) - Securities Segment: Cash Value + Stock Value - Futures Segment: Cash Value - Maintenance Margin */
17
+ equityWithLoan: number;
18
+ /** buying power. An estimation of how many more dollars you can buy in stock assets. Only apply to stock segment */
19
+ buyingPower: number;
20
+ /** Cash amount. Sum of current cash balances in all currencies */
21
+ cashBalance: number;
22
+ /** total value of securities */
23
+ grossPositionValue: number;
24
+ /** initial margin requirement */
25
+ initMarginReq: number;
26
+ /** maintenance margin requirement */
27
+ maintMarginReq: number;
28
+ timestamp: number;
29
+ }
30
+ export declare const AssetData: MessageFns<AssetData>;
31
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
32
+ export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
33
+ [K in keyof T]?: DeepPartial<T[K]>;
34
+ } : Partial<T>;
35
+ type KeysOfUnion<T> = T extends T ? keyof T : never;
36
+ export type Exact<P, I extends P> = P extends Builtin ? P : P & {
37
+ [K in keyof P]: Exact<P[K], I[K]>;
38
+ } & {
39
+ [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
40
+ };
41
+ export interface MessageFns<T> {
42
+ encode(message: T, writer?: BinaryWriter): BinaryWriter;
43
+ decode(input: BinaryReader | Uint8Array, length?: number): T;
44
+ create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
45
+ fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
46
+ }
47
+ export {};
@@ -0,0 +1,43 @@
1
+ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
+ export declare const protobufPackage = "com.tigerbrokers.stock.openapi.client.socket.data.pb";
3
+ export interface KlineData {
4
+ /** bar timestamp. */
5
+ time: number;
6
+ /** The first transaction price of current minute. */
7
+ open: number;
8
+ /** The highest price of current minute. */
9
+ high: number;
10
+ /** The lowest price of current minute. */
11
+ low: number;
12
+ /** The last transaction price in the current minute */
13
+ close: number;
14
+ /** The average price of current minute. */
15
+ avg: number;
16
+ /** Cumulative trading volume in current minute. */
17
+ volume: number;
18
+ /** The number of transaction in current minute. */
19
+ count: number;
20
+ /** symbol */
21
+ symbol: string;
22
+ /** Cumulative turnover in current minute. */
23
+ amount: number;
24
+ serverTimestamp?: number | undefined;
25
+ }
26
+ export declare const KlineData: MessageFns<KlineData>;
27
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
28
+ export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
29
+ [K in keyof T]?: DeepPartial<T[K]>;
30
+ } : Partial<T>;
31
+ type KeysOfUnion<T> = T extends T ? keyof T : never;
32
+ export type Exact<P, I extends P> = P extends Builtin ? P : P & {
33
+ [K in keyof P]: Exact<P[K], I[K]>;
34
+ } & {
35
+ [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
36
+ };
37
+ export interface MessageFns<T> {
38
+ encode(message: T, writer?: BinaryWriter): BinaryWriter;
39
+ decode(input: BinaryReader | Uint8Array, length?: number): T;
40
+ create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
41
+ fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
42
+ }
43
+ export {};
@@ -0,0 +1,76 @@
1
+ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
+ export declare const protobufPackage = "com.tigerbrokers.stock.openapi.client.socket.data.pb";
3
+ export interface OptionTopData {
4
+ market: string;
5
+ timestamp: number;
6
+ topData: OptionTopData_TopData[];
7
+ }
8
+ export interface OptionTopData_TopData {
9
+ /** bigOrder, volume, amount, openInt */
10
+ targetName: string;
11
+ /** large order(bigOrder) */
12
+ bigOrder: OptionTopData_BigOrder[];
13
+ /** target value top list(volume, amount, openInt) */
14
+ item: OptionTopData_OptionItem[];
15
+ }
16
+ export interface OptionTopData_BigOrder {
17
+ symbol: string;
18
+ /** formate:yyyyMMdd */
19
+ expiry: string;
20
+ /** strike price */
21
+ strike: string;
22
+ /** CALL/PUT */
23
+ right: string;
24
+ /** BUY/SELL */
25
+ dir: string;
26
+ /** target value: volume > 1000 */
27
+ volume: number;
28
+ /** trade price */
29
+ price: number;
30
+ /** trade amount */
31
+ amount: number;
32
+ /** trade timestamp */
33
+ tradeTime: number;
34
+ }
35
+ export interface OptionTopData_OptionItem {
36
+ symbol: string;
37
+ /** formate:yyyyMMdd */
38
+ expiry: string;
39
+ /** strike price */
40
+ strike: string;
41
+ /** CALL/PUT */
42
+ right: string;
43
+ /** total trade amount */
44
+ totalAmount: number;
45
+ /** total trade volume */
46
+ totalVolume: number;
47
+ /** open interest */
48
+ totalOpenInt: number;
49
+ /** Volume to Open Interest */
50
+ volumeToOpenInt: number;
51
+ /** option latest price */
52
+ latestPrice: number;
53
+ /** uptate timestamp */
54
+ updateTime: number;
55
+ }
56
+ export declare const OptionTopData: MessageFns<OptionTopData>;
57
+ export declare const OptionTopData_TopData: MessageFns<OptionTopData_TopData>;
58
+ export declare const OptionTopData_BigOrder: MessageFns<OptionTopData_BigOrder>;
59
+ export declare const OptionTopData_OptionItem: MessageFns<OptionTopData_OptionItem>;
60
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
61
+ export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
62
+ [K in keyof T]?: DeepPartial<T[K]>;
63
+ } : Partial<T>;
64
+ type KeysOfUnion<T> = T extends T ? keyof T : never;
65
+ export type Exact<P, I extends P> = P extends Builtin ? P : P & {
66
+ [K in keyof P]: Exact<P[K], I[K]>;
67
+ } & {
68
+ [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
69
+ };
70
+ export interface MessageFns<T> {
71
+ encode(message: T, writer?: BinaryWriter): BinaryWriter;
72
+ decode(input: BinaryReader | Uint8Array, length?: number): T;
73
+ create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
74
+ fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
75
+ }
76
+ export {};