@aalis/plugin-okx-trading 0.1.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 (42) hide show
  1. package/README.md +21 -0
  2. package/dist/client.d.ts +194 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +371 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/index.d.ts +22 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +128 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/tools/_shared.d.ts +15 -0
  11. package/dist/tools/_shared.d.ts.map +1 -0
  12. package/dist/tools/_shared.js +17 -0
  13. package/dist/tools/_shared.js.map +1 -0
  14. package/dist/tools/account.d.ts +4 -0
  15. package/dist/tools/account.d.ts.map +1 -0
  16. package/dist/tools/account.js +364 -0
  17. package/dist/tools/account.js.map +1 -0
  18. package/dist/tools/algo.d.ts +4 -0
  19. package/dist/tools/algo.d.ts.map +1 -0
  20. package/dist/tools/algo.js +138 -0
  21. package/dist/tools/algo.js.map +1 -0
  22. package/dist/tools/market.d.ts +4 -0
  23. package/dist/tools/market.d.ts.map +1 -0
  24. package/dist/tools/market.js +422 -0
  25. package/dist/tools/market.js.map +1 -0
  26. package/dist/tools/orders.d.ts +4 -0
  27. package/dist/tools/orders.d.ts.map +1 -0
  28. package/dist/tools/orders.js +91 -0
  29. package/dist/tools/orders.js.map +1 -0
  30. package/dist/tools/rubik.d.ts +4 -0
  31. package/dist/tools/rubik.d.ts.map +1 -0
  32. package/dist/tools/rubik.js +86 -0
  33. package/dist/tools/rubik.js.map +1 -0
  34. package/dist/tools/trade.d.ts +4 -0
  35. package/dist/tools/trade.d.ts.map +1 -0
  36. package/dist/tools/trade.js +357 -0
  37. package/dist/tools/trade.js.map +1 -0
  38. package/dist/tools/transfer.d.ts +4 -0
  39. package/dist/tools/transfer.d.ts.map +1 -0
  40. package/dist/tools/transfer.js +160 -0
  41. package/dist/tools/transfer.js.map +1 -0
  42. package/package.json +36 -0
package/dist/index.js ADDED
@@ -0,0 +1,128 @@
1
+ import { useToolService } from '@aalis/plugin-tools-api';
2
+ import { OkxClient } from './client.js';
3
+ import { registerAccountTools } from './tools/account.js';
4
+ import { registerAlgoTools } from './tools/algo.js';
5
+ import { registerMarketTools } from './tools/market.js';
6
+ import { registerOrderQueryTools } from './tools/orders.js';
7
+ import { registerRubikTools } from './tools/rubik.js';
8
+ import { registerTradeTools } from './tools/trade.js';
9
+ import { registerTransferTools } from './tools/transfer.js';
10
+ import '@aalis/plugin-tools-api';
11
+ // ===== 插件元数据 =====
12
+ export const name = '@aalis/plugin-okx-trading';
13
+ export const displayName = 'OKX 交易';
14
+ export const subsystem = 'external';
15
+ export const inject = { optional: ['tools'] };
16
+ export const configSchema = {
17
+ apiKey: {
18
+ type: 'string',
19
+ label: 'API Key',
20
+ required: true,
21
+ secret: true,
22
+ description: '在 OKX 设置中创建的 API Key',
23
+ },
24
+ secretKey: { type: 'string', label: 'Secret Key', required: true, secret: true },
25
+ passphrase: {
26
+ type: 'string',
27
+ label: 'Passphrase',
28
+ required: true,
29
+ secret: true,
30
+ description: '创建 API 时设定的口令',
31
+ },
32
+ baseUrl: {
33
+ type: 'string',
34
+ label: 'API 地址',
35
+ default: 'https://www.okx.com',
36
+ description: '默认实盘地址,可改为自定义域名',
37
+ },
38
+ demo: {
39
+ type: 'boolean',
40
+ label: '模拟盘',
41
+ default: true,
42
+ description: '启用后将使用模拟交易环境,强烈建议先在模拟盘测试',
43
+ },
44
+ timeoutMs: { type: 'number', label: '请求超时 (ms)', default: 15000 },
45
+ enableTrading: {
46
+ type: 'boolean',
47
+ label: '启用交易工具',
48
+ default: true,
49
+ description: '关闭后仅保留查询类工具,不暴露下单/撤单操作',
50
+ },
51
+ enableAlgo: { type: 'boolean', label: '启用策略委托', default: false, description: '启用止盈止损 / 计划委托工具' },
52
+ enableTransfer: { type: 'boolean', label: '启用资金划转', default: false, description: '启用资金账户划转工具' },
53
+ defaultPageLimit: {
54
+ type: 'number',
55
+ label: '分页查询默认条数',
56
+ default: 20,
57
+ description: '查询订单/账单/成交明细等接口,LLM 未传 limit 时使用。',
58
+ },
59
+ maxPageLimit: {
60
+ type: 'number',
61
+ label: '分页查询最大条数',
62
+ default: 100,
63
+ description: 'LLM 传入的 limit 会被 cap 到该值。OKX API 本身单页一般最多 100(个别接口 300)。',
64
+ },
65
+ };
66
+ export const defaultConfig = {
67
+ apiKey: '',
68
+ secretKey: '',
69
+ passphrase: '',
70
+ baseUrl: 'https://www.okx.com',
71
+ demo: true,
72
+ timeoutMs: 15000,
73
+ enableTrading: true,
74
+ enableAlgo: false,
75
+ enableTransfer: false,
76
+ };
77
+ function resolveConfig(config) {
78
+ const maxPageLimit = Math.max(1, Math.min(1000, Number(config.maxPageLimit) || 100));
79
+ const defaultPageLimitRaw = Math.max(1, Math.floor(Number(config.defaultPageLimit) || 20));
80
+ return {
81
+ apiKey: config.apiKey ?? '',
82
+ secretKey: config.secretKey ?? '',
83
+ passphrase: config.passphrase ?? '',
84
+ baseUrl: config.baseUrl ?? 'https://www.okx.com',
85
+ demo: config.demo ?? true,
86
+ timeoutMs: config.timeoutMs ?? 15000,
87
+ enableTrading: config.enableTrading ?? true,
88
+ enableAlgo: config.enableAlgo ?? false,
89
+ enableTransfer: config.enableTransfer ?? false,
90
+ defaultPageLimit: Math.min(defaultPageLimitRaw, maxPageLimit),
91
+ maxPageLimit,
92
+ };
93
+ }
94
+ // ===== 插件入口 =====
95
+ export function apply(ctx, config) {
96
+ const cfg = resolveConfig(config);
97
+ if (!cfg.apiKey || !cfg.secretKey || !cfg.passphrase) {
98
+ ctx.logger.warn('OKX 交易插件缺少 API 凭证,已跳过初始化');
99
+ return;
100
+ }
101
+ const client = new OkxClient({
102
+ credentials: { apiKey: cfg.apiKey, secretKey: cfg.secretKey, passphrase: cfg.passphrase },
103
+ baseUrl: cfg.baseUrl,
104
+ demo: cfg.demo,
105
+ timeoutMs: cfg.timeoutMs,
106
+ });
107
+ const modeLabel = cfg.demo ? '模拟盘' : '实盘';
108
+ ctx.logger.info(`OKX 交易插件已初始化 (${modeLabel})`);
109
+ const baseTools = useToolService(ctx);
110
+ baseTools.registerGroup({
111
+ name: 'okx',
112
+ label: 'OKX 交易',
113
+ description: `OKX 虚拟币交易工具集 (${modeLabel}),提供行情查询、账户管理、下单交易等功能`,
114
+ });
115
+ // 工具代理:自动注入 groups
116
+ const reg = tool => baseTools.register({ ...tool, groups: ['okx'] });
117
+ registerMarketTools(reg, client);
118
+ registerRubikTools(reg, client);
119
+ registerAccountTools(reg, client, { defaultLimit: cfg.defaultPageLimit, maxLimit: cfg.maxPageLimit });
120
+ registerOrderQueryTools(reg, client, { defaultLimit: cfg.defaultPageLimit, maxLimit: cfg.maxPageLimit });
121
+ if (cfg.enableTrading)
122
+ registerTradeTools(reg, client, modeLabel);
123
+ if (cfg.enableAlgo)
124
+ registerAlgoTools(reg, client, modeLabel);
125
+ if (cfg.enableTransfer)
126
+ registerTransferTools(reg, client);
127
+ }
128
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { ScopedToolService } from '@aalis/plugin-tools-api';
2
+ export type RegFn = ScopedToolService['register'];
3
+ /** 分页 limit 参数的 default 与硬上限(OKX API 单页一般 100,个别 300)。 */
4
+ export interface PageLimitCfg {
5
+ defaultLimit: number;
6
+ maxLimit: number;
7
+ }
8
+ /** 从 args.limit 中读取并按 cfg cap。未传或非法值时走 default。 */
9
+ export declare function pickLimit(args: {
10
+ limit?: unknown;
11
+ }, cfg: PageLimitCfg): number;
12
+ /** 安全截断工具结果,避免长数据撑爆上下文 */
13
+ export declare function truncate(data: unknown, maxItems?: number): unknown;
14
+ export declare function errJson(e: unknown): string;
15
+ //# sourceMappingURL=_shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../src/tools/_shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,MAAM,KAAK,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;AAElD,0DAA0D;AAC1D,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,mDAAmD;AACnD,wBAAgB,SAAS,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,CAI9E;AAED,0BAA0B;AAC1B,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,SAAK,GAAG,OAAO,CAK9D;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAE1C"}
@@ -0,0 +1,17 @@
1
+ /** 从 args.limit 中读取并按 cfg cap。未传或非法值时走 default。 */
2
+ export function pickLimit(args, cfg) {
3
+ const raw = Number(args.limit);
4
+ const v = Number.isFinite(raw) && raw > 0 ? Math.floor(raw) : cfg.defaultLimit;
5
+ return Math.max(1, Math.min(cfg.maxLimit, v));
6
+ }
7
+ /** 安全截断工具结果,避免长数据撑爆上下文 */
8
+ export function truncate(data, maxItems = 20) {
9
+ if (Array.isArray(data) && data.length > maxItems) {
10
+ return [...data.slice(0, maxItems), `...(共 ${data.length} 条,已截断)`];
11
+ }
12
+ return data;
13
+ }
14
+ export function errJson(e) {
15
+ return JSON.stringify({ error: e instanceof Error ? e.message : String(e) });
16
+ }
17
+ //# sourceMappingURL=_shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../src/tools/_shared.ts"],"names":[],"mappings":"AAUA,mDAAmD;AACnD,MAAM,UAAU,SAAS,CAAC,IAAyB,EAAE,GAAiB;IACpE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;IAC/E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,0BAA0B;AAC1B,MAAM,UAAU,QAAQ,CAAC,IAAa,EAAE,QAAQ,GAAG,EAAE;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAClD,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAU;IAChC,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/E,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { OkxClient } from '../client.js';
2
+ import { type PageLimitCfg, type RegFn } from './_shared.js';
3
+ export declare function registerAccountTools(reg: RegFn, client: OkxClient, pageLimit: PageLimitCfg): void;
4
+ //# sourceMappingURL=account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/tools/account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAW,KAAK,YAAY,EAAa,KAAK,KAAK,EAAY,MAAM,cAAc,CAAC;AAE3F,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,GAAG,IAAI,CA0XjG"}
@@ -0,0 +1,364 @@
1
+ import { errJson, pickLimit, truncate } from './_shared.js';
2
+ export function registerAccountTools(reg, client, pageLimit) {
3
+ reg({
4
+ definition: {
5
+ type: 'function',
6
+ function: {
7
+ name: 'okx_get_balance',
8
+ description: '查询交易账户余额。可指定币种,不指定则返回全部',
9
+ parameters: {
10
+ type: 'object',
11
+ properties: { ccy: { type: 'string', description: '币种,如 USDT, BTC。留空查全部' } },
12
+ additionalProperties: false,
13
+ },
14
+ },
15
+ },
16
+ handler: async (args) => {
17
+ try {
18
+ const r = await client.getBalance(args.ccy);
19
+ return JSON.stringify(r.data);
20
+ }
21
+ catch (e) {
22
+ return errJson(e);
23
+ }
24
+ },
25
+ });
26
+ reg({
27
+ definition: {
28
+ type: 'function',
29
+ function: {
30
+ name: 'okx_get_positions',
31
+ description: '查询当前持仓。可按产品类型或产品 ID 过滤',
32
+ parameters: {
33
+ type: 'object',
34
+ properties: {
35
+ instType: { type: 'string', description: '产品类型: SPOT / SWAP / FUTURES / OPTION / MARGIN' },
36
+ instId: { type: 'string', description: '可选,特定产品 ID' },
37
+ },
38
+ additionalProperties: false,
39
+ },
40
+ },
41
+ },
42
+ handler: async (args) => {
43
+ try {
44
+ const r = await client.getPositions(args.instType, args.instId);
45
+ return JSON.stringify(r.data);
46
+ }
47
+ catch (e) {
48
+ return errJson(e);
49
+ }
50
+ },
51
+ });
52
+ reg({
53
+ definition: {
54
+ type: 'function',
55
+ function: {
56
+ name: 'okx_get_account_config',
57
+ description: '查询账户配置(账户模式、持仓模式、交易手续费等级等)',
58
+ parameters: { type: 'object', properties: {}, additionalProperties: false },
59
+ },
60
+ },
61
+ handler: async () => {
62
+ try {
63
+ const r = await client.getAccountConfig();
64
+ return JSON.stringify(r.data);
65
+ }
66
+ catch (e) {
67
+ return errJson(e);
68
+ }
69
+ },
70
+ });
71
+ reg({
72
+ definition: {
73
+ type: 'function',
74
+ function: {
75
+ name: 'okx_get_asset_balances',
76
+ description: '查询资金账户余额(非交易账户),如充值到账但未划转的资产',
77
+ parameters: {
78
+ type: 'object',
79
+ properties: { ccy: { type: 'string', description: '币种,留空查全部' } },
80
+ additionalProperties: false,
81
+ },
82
+ },
83
+ },
84
+ handler: async (args) => {
85
+ try {
86
+ const r = await client.getAssetBalances(args.ccy);
87
+ return JSON.stringify(r.data);
88
+ }
89
+ catch (e) {
90
+ return errJson(e);
91
+ }
92
+ },
93
+ });
94
+ reg({
95
+ definition: {
96
+ type: 'function',
97
+ function: {
98
+ name: 'okx_get_leverage_info',
99
+ description: '查询某个产品当前设置的杠杆倍数',
100
+ parameters: {
101
+ type: 'object',
102
+ properties: {
103
+ instId: { type: 'string', description: '产品 ID' },
104
+ mgnMode: { type: 'string', description: '保证金模式: cross / isolated' },
105
+ },
106
+ required: ['instId', 'mgnMode'],
107
+ additionalProperties: false,
108
+ },
109
+ },
110
+ },
111
+ handler: async (args) => {
112
+ try {
113
+ const r = await client.getLeverageInfo(args.instId, args.mgnMode);
114
+ return JSON.stringify(r.data);
115
+ }
116
+ catch (e) {
117
+ return errJson(e);
118
+ }
119
+ },
120
+ });
121
+ reg({
122
+ definition: {
123
+ type: 'function',
124
+ function: {
125
+ name: 'okx_get_max_size',
126
+ description: '查询某个产品最大可交易数量(考虑余额、杠杆、保证金等),下单前推荐先查询',
127
+ parameters: {
128
+ type: 'object',
129
+ properties: {
130
+ instId: { type: 'string', description: '产品 ID' },
131
+ tdMode: { type: 'string', description: '交易模式: cash / cross / isolated' },
132
+ px: { type: 'string', description: '可选,委托价格(用于计算限价单最大量)' },
133
+ },
134
+ required: ['instId', 'tdMode'],
135
+ additionalProperties: false,
136
+ },
137
+ },
138
+ },
139
+ handler: async (args) => {
140
+ try {
141
+ const r = await client.getMaxSize(args.instId, args.tdMode, args.px);
142
+ return JSON.stringify(r.data);
143
+ }
144
+ catch (e) {
145
+ return errJson(e);
146
+ }
147
+ },
148
+ });
149
+ reg({
150
+ definition: {
151
+ type: 'function',
152
+ function: {
153
+ name: 'okx_get_max_avail_size',
154
+ description: '查询某个产品最大可用余额(可开仓量)',
155
+ parameters: {
156
+ type: 'object',
157
+ properties: {
158
+ instId: { type: 'string', description: '产品 ID' },
159
+ tdMode: { type: 'string', description: '交易模式: cash / cross / isolated' },
160
+ },
161
+ required: ['instId', 'tdMode'],
162
+ additionalProperties: false,
163
+ },
164
+ },
165
+ },
166
+ handler: async (args) => {
167
+ try {
168
+ const r = await client.getMaxAvailSize(args.instId, args.tdMode);
169
+ return JSON.stringify(r.data);
170
+ }
171
+ catch (e) {
172
+ return errJson(e);
173
+ }
174
+ },
175
+ });
176
+ reg({
177
+ definition: {
178
+ type: 'function',
179
+ function: {
180
+ name: 'okx_get_risk_state',
181
+ description: '查询账户风险状态(保证金率、风险等级等),判断是否接近强平',
182
+ parameters: { type: 'object', properties: {}, additionalProperties: false },
183
+ },
184
+ },
185
+ handler: async () => {
186
+ try {
187
+ const r = await client.getRiskState();
188
+ return JSON.stringify(r.data);
189
+ }
190
+ catch (e) {
191
+ return errJson(e);
192
+ }
193
+ },
194
+ });
195
+ reg({
196
+ definition: {
197
+ type: 'function',
198
+ function: {
199
+ name: 'okx_get_bills',
200
+ description: '查询交易账户近 7 天账单流水(盈亏、手续费、资金费明细)',
201
+ parameters: {
202
+ type: 'object',
203
+ properties: {
204
+ instType: { type: 'string', description: '产品类型' },
205
+ ccy: { type: 'string', description: '币种' },
206
+ type: { type: 'string', description: '账单类型: 1=划转 2=交易 3=交割 4=强平 5=保证金划转 等' },
207
+ limit: {
208
+ type: 'number',
209
+ description: `条数,默认 ${pageLimit.defaultLimit},最多 ${pageLimit.maxLimit}`,
210
+ },
211
+ },
212
+ additionalProperties: false,
213
+ },
214
+ },
215
+ },
216
+ handler: async (args) => {
217
+ try {
218
+ const r = await client.getBills(args.instType, args.ccy, args.type, pickLimit(args, pageLimit));
219
+ return JSON.stringify(truncate(r.data));
220
+ }
221
+ catch (e) {
222
+ return errJson(e);
223
+ }
224
+ },
225
+ });
226
+ reg({
227
+ definition: {
228
+ type: 'function',
229
+ function: {
230
+ name: 'okx_get_bills_archive',
231
+ description: '查询交易账户近 3 个月账单流水(更长周期的盈亏回顾)',
232
+ parameters: {
233
+ type: 'object',
234
+ properties: {
235
+ instType: { type: 'string', description: '产品类型' },
236
+ ccy: { type: 'string', description: '币种' },
237
+ type: { type: 'string', description: '账单类型' },
238
+ limit: {
239
+ type: 'number',
240
+ description: `条数,默认 ${pageLimit.defaultLimit},最多 ${pageLimit.maxLimit}`,
241
+ },
242
+ },
243
+ additionalProperties: false,
244
+ },
245
+ },
246
+ },
247
+ handler: async (args) => {
248
+ try {
249
+ const r = await client.getBillsArchive(args.instType, args.ccy, args.type, pickLimit(args, pageLimit));
250
+ return JSON.stringify(truncate(r.data));
251
+ }
252
+ catch (e) {
253
+ return errJson(e);
254
+ }
255
+ },
256
+ });
257
+ reg({
258
+ definition: {
259
+ type: 'function',
260
+ function: {
261
+ name: 'okx_get_trade_fee',
262
+ description: '查询当前手续费费率(maker/taker),辅助计算交易成本',
263
+ parameters: {
264
+ type: 'object',
265
+ properties: {
266
+ instType: { type: 'string', description: '产品类型: SPOT / SWAP / FUTURES / OPTION' },
267
+ instId: { type: 'string', description: '可选,查询特定产品费率' },
268
+ },
269
+ required: ['instType'],
270
+ additionalProperties: false,
271
+ },
272
+ },
273
+ },
274
+ handler: async (args) => {
275
+ try {
276
+ const r = await client.getTradeFee(args.instType, args.instId);
277
+ return JSON.stringify(r.data);
278
+ }
279
+ catch (e) {
280
+ return errJson(e);
281
+ }
282
+ },
283
+ });
284
+ reg({
285
+ definition: {
286
+ type: 'function',
287
+ function: {
288
+ name: 'okx_get_positions_history',
289
+ description: '查询已平仓的持仓历史(含盈亏统计),复盘交易表现',
290
+ parameters: {
291
+ type: 'object',
292
+ properties: {
293
+ instType: { type: 'string', description: '产品类型' },
294
+ instId: { type: 'string', description: '产品 ID' },
295
+ limit: {
296
+ type: 'number',
297
+ description: `条数,默认 ${pageLimit.defaultLimit},最多 ${pageLimit.maxLimit}`,
298
+ },
299
+ },
300
+ additionalProperties: false,
301
+ },
302
+ },
303
+ },
304
+ handler: async (args) => {
305
+ try {
306
+ const r = await client.getPositionsHistory(args.instType, args.instId, pickLimit(args, pageLimit));
307
+ return JSON.stringify(truncate(r.data));
308
+ }
309
+ catch (e) {
310
+ return errJson(e);
311
+ }
312
+ },
313
+ });
314
+ reg({
315
+ definition: {
316
+ type: 'function',
317
+ function: {
318
+ name: 'okx_get_interest_accrued',
319
+ description: '查询利息累计数据(借币利息),管理资金成本',
320
+ parameters: {
321
+ type: 'object',
322
+ properties: {
323
+ instId: { type: 'string', description: '产品 ID' },
324
+ ccy: { type: 'string', description: '币种' },
325
+ limit: {
326
+ type: 'number',
327
+ description: `条数,默认 ${pageLimit.defaultLimit},最多 ${pageLimit.maxLimit}`,
328
+ },
329
+ },
330
+ additionalProperties: false,
331
+ },
332
+ },
333
+ },
334
+ handler: async (args) => {
335
+ try {
336
+ const r = await client.getInterestAccrued(args.instId, args.ccy, pickLimit(args, pageLimit));
337
+ return JSON.stringify(truncate(r.data));
338
+ }
339
+ catch (e) {
340
+ return errJson(e);
341
+ }
342
+ },
343
+ });
344
+ reg({
345
+ definition: {
346
+ type: 'function',
347
+ function: {
348
+ name: 'okx_get_currencies',
349
+ description: '获取 OKX 支持的全部币种列表及其充提配置',
350
+ parameters: { type: 'object', properties: {}, additionalProperties: false },
351
+ },
352
+ },
353
+ handler: async () => {
354
+ try {
355
+ const r = await client.getCurrencies();
356
+ return JSON.stringify(truncate(r.data, 50));
357
+ }
358
+ catch (e) {
359
+ return errJson(e);
360
+ }
361
+ },
362
+ });
363
+ }
364
+ //# sourceMappingURL=account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/tools/account.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { OkxClient } from '../client.js';
2
+ import { type RegFn } from './_shared.js';
3
+ export declare function registerAlgoTools(reg: RegFn, client: OkxClient, modeLabel: string): void;
4
+ //# sourceMappingURL=algo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"algo.d.ts","sourceRoot":"","sources":["../../src/tools/algo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAW,KAAK,KAAK,EAAY,MAAM,cAAc,CAAC;AAE7D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CA+IxF"}