@tigeropenapi/tigeropen 0.1.0 → 0.4.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 (141) 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 +47 -21
  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/enums.js +89 -7
  13. package/dist/cjs/model/order-helpers.js +9 -9
  14. package/dist/cjs/model/order-status.js +46 -0
  15. package/dist/cjs/model/order.js +5 -2
  16. package/dist/cjs/model/position.js +1 -2
  17. package/dist/cjs/model/quote-requests.js +11 -0
  18. package/dist/cjs/model/quote.js +7 -0
  19. package/dist/cjs/model/trade-requests.js +13 -0
  20. package/dist/cjs/model/trade.js +2 -0
  21. package/dist/cjs/push/index.js +6 -3
  22. package/dist/cjs/push/pb/AssetData.js +208 -0
  23. package/dist/cjs/push/pb/KlineData.js +184 -0
  24. package/dist/cjs/push/pb/OptionTopData.js +427 -0
  25. package/dist/cjs/push/pb/OrderStatusData.js +592 -0
  26. package/dist/cjs/push/pb/OrderTransactionData.js +256 -0
  27. package/dist/cjs/push/pb/PositionData.js +316 -0
  28. package/dist/cjs/push/pb/PushData.js +219 -0
  29. package/dist/cjs/push/pb/QuoteBBOData.js +160 -0
  30. package/dist/cjs/push/pb/QuoteBasicData.js +329 -0
  31. package/dist/cjs/push/pb/QuoteData.js +507 -0
  32. package/dist/cjs/push/pb/QuoteDepthData.js +220 -0
  33. package/dist/cjs/push/pb/Request.js +278 -0
  34. package/dist/cjs/push/pb/Response.js +97 -0
  35. package/dist/cjs/push/pb/SocketCommon.js +86 -0
  36. package/dist/cjs/push/pb/StockTopData.js +199 -0
  37. package/dist/cjs/push/pb/TickData.js +202 -0
  38. package/dist/cjs/push/pb/TradeTickData.js +308 -0
  39. package/dist/cjs/push/pb/index.js +49 -0
  40. package/dist/cjs/push/proto-message.js +135 -0
  41. package/dist/cjs/push/push-client.js +361 -163
  42. package/dist/cjs/push/push-message.js +8 -60
  43. package/dist/cjs/push/varint.js +76 -0
  44. package/dist/cjs/quote/index.js +3 -2
  45. package/dist/cjs/quote/quote-client.js +440 -94
  46. package/dist/cjs/signer/signer.js +10 -10
  47. package/dist/cjs/trade/trade-client.js +197 -62
  48. package/dist/esm/client/api-request.js +14 -8
  49. package/dist/esm/client/api-response.js +22 -3
  50. package/dist/esm/client/case-convert.js +31 -0
  51. package/dist/esm/client/http-client.js +48 -22
  52. package/dist/esm/client/index.js +3 -2
  53. package/dist/esm/config/client-config.js +131 -51
  54. package/dist/esm/config/domain.js +20 -2
  55. package/dist/esm/config/index.js +2 -2
  56. package/dist/esm/index.js +1 -1
  57. package/dist/esm/model/contract.js +1 -2
  58. package/dist/esm/model/enums.js +87 -6
  59. package/dist/esm/model/order-helpers.js +9 -9
  60. package/dist/esm/model/order-status.js +43 -0
  61. package/dist/esm/model/order.js +5 -2
  62. package/dist/esm/model/position.js +1 -2
  63. package/dist/esm/model/quote-requests.js +10 -0
  64. package/dist/esm/model/quote.js +6 -0
  65. package/dist/esm/model/trade-requests.js +12 -0
  66. package/dist/esm/model/trade.js +1 -0
  67. package/dist/esm/push/index.js +4 -2
  68. package/dist/esm/push/pb/AssetData.js +205 -0
  69. package/dist/esm/push/pb/KlineData.js +181 -0
  70. package/dist/esm/push/pb/OptionTopData.js +424 -0
  71. package/dist/esm/push/pb/OrderStatusData.js +589 -0
  72. package/dist/esm/push/pb/OrderTransactionData.js +253 -0
  73. package/dist/esm/push/pb/PositionData.js +313 -0
  74. package/dist/esm/push/pb/PushData.js +216 -0
  75. package/dist/esm/push/pb/QuoteBBOData.js +157 -0
  76. package/dist/esm/push/pb/QuoteBasicData.js +326 -0
  77. package/dist/esm/push/pb/QuoteData.js +504 -0
  78. package/dist/esm/push/pb/QuoteDepthData.js +217 -0
  79. package/dist/esm/push/pb/Request.js +275 -0
  80. package/dist/esm/push/pb/Response.js +94 -0
  81. package/dist/esm/push/pb/SocketCommon.js +83 -0
  82. package/dist/esm/push/pb/StockTopData.js +196 -0
  83. package/dist/esm/push/pb/TickData.js +199 -0
  84. package/dist/esm/push/pb/TradeTickData.js +305 -0
  85. package/dist/esm/push/pb/index.js +25 -0
  86. package/dist/esm/push/proto-message.js +127 -0
  87. package/dist/esm/push/push-client.js +329 -164
  88. package/dist/esm/push/push-message.js +7 -56
  89. package/dist/esm/push/varint.js +72 -0
  90. package/dist/esm/quote/index.js +2 -2
  91. package/dist/esm/quote/quote-client.js +439 -94
  92. package/dist/esm/signer/signer.js +10 -10
  93. package/dist/esm/trade/trade-client.js +197 -62
  94. package/dist/types/client/api-request.d.ts +12 -11
  95. package/dist/types/client/api-response.d.ts +15 -7
  96. package/dist/types/client/case-convert.d.ts +16 -0
  97. package/dist/types/client/http-client.d.ts +26 -14
  98. package/dist/types/client/index.d.ts +3 -2
  99. package/dist/types/config/client-config.d.ts +29 -13
  100. package/dist/types/config/domain.d.ts +9 -0
  101. package/dist/types/config/index.d.ts +2 -2
  102. package/dist/types/index.d.ts +1 -1
  103. package/dist/types/model/contract.d.ts +13 -29
  104. package/dist/types/model/enums.d.ts +60 -6
  105. package/dist/types/model/order-helpers.d.ts +21 -20
  106. package/dist/types/model/order-status.d.ts +14 -0
  107. package/dist/types/model/order.d.ts +101 -55
  108. package/dist/types/model/position.d.ts +26 -24
  109. package/dist/types/model/quote-requests.d.ts +344 -0
  110. package/dist/types/model/quote.d.ts +572 -0
  111. package/dist/types/model/trade-requests.d.ts +195 -0
  112. package/dist/types/model/trade.d.ts +235 -0
  113. package/dist/types/push/callbacks.d.ts +32 -51
  114. package/dist/types/push/index.d.ts +5 -3
  115. package/dist/types/push/pb/AssetData.d.ts +47 -0
  116. package/dist/types/push/pb/KlineData.d.ts +43 -0
  117. package/dist/types/push/pb/OptionTopData.d.ts +76 -0
  118. package/dist/types/push/pb/OrderStatusData.d.ts +100 -0
  119. package/dist/types/push/pb/OrderTransactionData.d.ts +51 -0
  120. package/dist/types/push/pb/PositionData.d.ts +63 -0
  121. package/dist/types/push/pb/PushData.d.ts +46 -0
  122. package/dist/types/push/pb/QuoteBBOData.d.ts +35 -0
  123. package/dist/types/push/pb/QuoteBasicData.d.ts +66 -0
  124. package/dist/types/push/pb/QuoteData.d.ts +94 -0
  125. package/dist/types/push/pb/QuoteDepthData.d.ts +37 -0
  126. package/dist/types/push/pb/Request.d.ts +44 -0
  127. package/dist/types/push/pb/Response.d.ts +30 -0
  128. package/dist/types/push/pb/SocketCommon.d.ts +64 -0
  129. package/dist/types/push/pb/StockTopData.d.ts +37 -0
  130. package/dist/types/push/pb/TickData.d.ts +44 -0
  131. package/dist/types/push/pb/TradeTickData.d.ts +53 -0
  132. package/dist/types/push/pb/index.d.ts +39 -0
  133. package/dist/types/push/proto-message.d.ts +33 -0
  134. package/dist/types/push/push-client.d.ts +100 -68
  135. package/dist/types/push/push-message.d.ts +7 -147
  136. package/dist/types/push/varint.d.ts +23 -0
  137. package/dist/types/quote/index.d.ts +2 -2
  138. package/dist/types/quote/quote-client.d.ts +154 -47
  139. package/dist/types/signer/signer.d.ts +6 -6
  140. package/dist/types/trade/trade-client.d.ts +106 -38
  141. package/package.json +11 -6
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Trade request interfaces (v0.4.0).
3
+ *
4
+ * 所有字段可选(用户调用时传一个空对象即可);字段名用 camelCase,
5
+ * client 层通过 keysToSnakeCase 转成服务端 wire 真名的 snake_case。
6
+ * **字段名设计规则:camelCase → snake_case 后必须等于服务端 wire 真名。**
7
+ * 比如 Trade 用 `startDate`/`endDate`(wire `start_date`/`end_date`),
8
+ * 不用 `startTime`/`endTime`(会被转成 `start_time`/`end_time`,与 wire 不符)。
9
+ *
10
+ * 参考 Go SDK model/trade_requests.go。
11
+ */
12
+ export interface OrdersRequest {
13
+ account?: string;
14
+ secType?: string;
15
+ market?: string;
16
+ symbol?: string;
17
+ /** 毫秒时间戳 (wire: start_date) */
18
+ startDate?: number;
19
+ /** 毫秒时间戳 (wire: end_date) */
20
+ endDate?: number;
21
+ limit?: number;
22
+ isBrief?: boolean;
23
+ /** 订单状态过滤: Invalid / Initial / PendingCancel / Cancelled / Submitted / Filled / Inactive / PendingSubmit */
24
+ states?: string[];
25
+ /** LATEST_CREATED / LATEST_STATUS_UPDATED */
26
+ sortBy?: string;
27
+ segType?: string;
28
+ lang?: string;
29
+ pageToken?: string;
30
+ /** 仅 ActiveOrders 使用,按父订单 ID 过滤附加订单 */
31
+ parentId?: number;
32
+ }
33
+ export interface GetOrderRequest {
34
+ account?: string;
35
+ id?: number;
36
+ orderId?: number;
37
+ isBrief?: boolean;
38
+ showCharges?: boolean;
39
+ lang?: string;
40
+ }
41
+ export interface OrderTransactionsRequest {
42
+ account?: string;
43
+ orderId?: number;
44
+ symbol?: string;
45
+ secType?: string;
46
+ /** 毫秒时间戳 */
47
+ startDate?: number;
48
+ /** 毫秒时间戳 */
49
+ endDate?: number;
50
+ limit?: number;
51
+ expiry?: string;
52
+ strike?: number;
53
+ putCall?: string;
54
+ lang?: string;
55
+ pageToken?: string;
56
+ }
57
+ export interface PositionsRequest {
58
+ account?: string;
59
+ secType?: string;
60
+ currency?: string;
61
+ market?: string;
62
+ symbol?: string;
63
+ subAccounts?: string[];
64
+ expiry?: string;
65
+ strike?: string;
66
+ right?: string;
67
+ assetQuoteType?: string;
68
+ lang?: string;
69
+ }
70
+ export interface AssetsRequest {
71
+ account?: string;
72
+ subAccounts?: string[];
73
+ segment?: boolean;
74
+ marketValue?: boolean;
75
+ lang?: string;
76
+ }
77
+ export interface ManagedAccountsRequest {
78
+ account?: string;
79
+ lang?: string;
80
+ }
81
+ export interface DerivativeContractsRequest {
82
+ account?: string;
83
+ symbols: string[];
84
+ secType: string;
85
+ expiry?: string;
86
+ lang?: string;
87
+ }
88
+ export interface AnalyticsAssetRequest {
89
+ account?: string;
90
+ segType?: string;
91
+ /** 格式 "YYYY-MM-DD" */
92
+ startDate?: string;
93
+ endDate?: string;
94
+ lang?: string;
95
+ }
96
+ export interface AggregateAssetsRequest {
97
+ account?: string;
98
+ baseCurrency?: string;
99
+ segType?: string;
100
+ lang?: string;
101
+ }
102
+ export interface EstimateTradableQuantityRequest {
103
+ account?: string;
104
+ symbol: string;
105
+ secType: string;
106
+ action: string;
107
+ orderType?: string;
108
+ limitPrice?: number;
109
+ market?: string;
110
+ currency?: string;
111
+ expiry?: string;
112
+ strike?: string;
113
+ right?: string;
114
+ lang?: string;
115
+ }
116
+ export interface ForexOrderRequest {
117
+ account?: string;
118
+ segType?: string;
119
+ sourceCurrency: string;
120
+ targetCurrency: string;
121
+ sourceAmount?: number;
122
+ targetAmount?: number;
123
+ orderType?: string;
124
+ lang?: string;
125
+ }
126
+ export interface SegmentFundRequest {
127
+ account?: string;
128
+ id?: string;
129
+ fromSegment?: string;
130
+ toSegment?: string;
131
+ currency?: string;
132
+ amount?: number;
133
+ limit?: number;
134
+ lang?: string;
135
+ }
136
+ export interface FundDetailsRequest {
137
+ account?: string;
138
+ segTypes?: string[];
139
+ fundType?: string;
140
+ currency?: string;
141
+ /** 毫秒时间戳 */
142
+ startDate?: number;
143
+ /** 毫秒时间戳 */
144
+ endDate?: number;
145
+ limit?: number;
146
+ pageToken?: string;
147
+ lang?: string;
148
+ }
149
+ export interface FundingHistoryRequest {
150
+ account?: string;
151
+ segType?: string;
152
+ currency?: string;
153
+ /** 毫秒时间戳 */
154
+ startDate?: number;
155
+ /** 毫秒时间戳 */
156
+ endDate?: number;
157
+ limit?: number;
158
+ lang?: string;
159
+ }
160
+ export interface PositionTransferRequest {
161
+ fromAccount?: string;
162
+ toAccount: string;
163
+ market?: string;
164
+ transfers: Array<{
165
+ symbol?: string;
166
+ quantity?: number;
167
+ expiry?: string;
168
+ strike?: string;
169
+ right?: string;
170
+ secType?: string;
171
+ }>;
172
+ lang?: string;
173
+ }
174
+ export interface PositionTransferRecordsRequest {
175
+ /** wire: account_id */
176
+ accountId?: string;
177
+ sinceDate?: string;
178
+ toDate?: string;
179
+ market?: string;
180
+ limit?: number;
181
+ lang?: string;
182
+ }
183
+ export interface PositionTransferDetailRequest {
184
+ accountId?: string;
185
+ id: string;
186
+ lang?: string;
187
+ }
188
+ export interface PositionTransferExternalRecordsRequest {
189
+ accountId?: string;
190
+ sinceDate?: string;
191
+ toDate?: string;
192
+ market?: string;
193
+ limit?: number;
194
+ lang?: string;
195
+ }
@@ -0,0 +1,235 @@
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
+ }
114
+ export interface ManagedAccount {
115
+ account?: string;
116
+ accountType?: string;
117
+ capability?: string;
118
+ status?: string;
119
+ }
120
+ export interface AnalyticsAsset {
121
+ date?: string;
122
+ holdingValue?: number;
123
+ cashBalance?: number;
124
+ pnl?: number;
125
+ pnlRate?: number;
126
+ netValueIndex?: number;
127
+ currency?: string;
128
+ segType?: string;
129
+ }
130
+ export interface AggregateAssets {
131
+ accountId?: string;
132
+ netLiquidation?: number;
133
+ grossPositionValue?: number;
134
+ cashBalance?: number;
135
+ baseCurrency?: string;
136
+ currencyAssets?: CurrencyAsset[];
137
+ }
138
+ export interface EstimateTradableQuantity {
139
+ tradableQuantity?: number;
140
+ maxCashBuyQuantity?: number;
141
+ maxMarginBuyQuantity?: number;
142
+ maxShortSellQuantity?: number;
143
+ maxPositionSellQuantity?: number;
144
+ cashBuyingPower?: number;
145
+ currency?: string;
146
+ }
147
+ export interface ForexOrderResult {
148
+ id?: string;
149
+ status?: string;
150
+ sourceCurrency?: string;
151
+ targetCurrency?: string;
152
+ sourceAmount?: number;
153
+ targetAmount?: number;
154
+ rate?: number;
155
+ submitTime?: number;
156
+ }
157
+ export interface SegmentFund {
158
+ id?: string;
159
+ status?: string;
160
+ fromSegment?: string;
161
+ toSegment?: string;
162
+ currency?: string;
163
+ amount?: number;
164
+ availableAmount?: number;
165
+ submitTime?: number;
166
+ }
167
+ export interface SegmentFundHistoryItem {
168
+ id?: number;
169
+ fromSegment?: string;
170
+ toSegment?: string;
171
+ currency?: string;
172
+ amount?: number;
173
+ status?: string;
174
+ submitTime?: number;
175
+ updateTime?: number;
176
+ }
177
+ export interface FundDetails {
178
+ id?: number;
179
+ account?: string;
180
+ segType?: string;
181
+ fundType?: string;
182
+ currency?: string;
183
+ amount?: number;
184
+ balance?: number;
185
+ occurTime?: number;
186
+ remark?: string;
187
+ externalId?: string;
188
+ }
189
+ export interface FundingHistoryItem {
190
+ id?: string;
191
+ segType?: string;
192
+ currency?: string;
193
+ amount?: number;
194
+ status?: string;
195
+ submitTime?: number;
196
+ updateTime?: number;
197
+ }
198
+ export interface TransferItem {
199
+ symbol?: string;
200
+ quantity?: number;
201
+ expiry?: string;
202
+ strike?: string;
203
+ right?: string;
204
+ secType?: string;
205
+ }
206
+ export interface PositionTransferRecord {
207
+ id?: string;
208
+ fromAccount?: string;
209
+ toAccount?: string;
210
+ market?: string;
211
+ status?: string;
212
+ submitTime?: number;
213
+ transfers?: TransferItem[];
214
+ }
215
+ export interface PositionTransferDetail {
216
+ id?: string;
217
+ fromAccount?: string;
218
+ toAccount?: string;
219
+ market?: string;
220
+ status?: string;
221
+ submitTime?: number;
222
+ updateTime?: number;
223
+ transfers?: TransferItem[];
224
+ remark?: string;
225
+ }
226
+ export interface PositionTransferExternalRecord {
227
+ id?: string;
228
+ market?: string;
229
+ symbol?: string;
230
+ quantity?: number;
231
+ direction?: string;
232
+ status?: string;
233
+ submitTime?: number;
234
+ updateTime?: number;
235
+ }
@@ -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 {};