hvip-mcp-server 0.2.22 → 0.2.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +316 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -21320,7 +21320,29 @@ var privateApi = {
|
|
|
21320
21320
|
createRfq: (auth, body) => request("POST", "/api/v5/rfq/create-rfq", { body, auth }),
|
|
21321
21321
|
executeRfqQuote: (auth, body) => request("POST", "/api/v5/rfq/execute-quote", { body, auth }),
|
|
21322
21322
|
getRfqs: (auth, state) => request("GET", "/api/v5/rfq/rfqs", { params: { state }, auth }),
|
|
21323
|
-
getRfqQuotes: (auth, rfqId) => request("GET", "/api/v5/rfq/quotes", { params: { rfqId }, auth })
|
|
21323
|
+
getRfqQuotes: (auth, rfqId) => request("GET", "/api/v5/rfq/quotes", { params: { rfqId }, auth }),
|
|
21324
|
+
// ── 交易收尾(第十三批新增) ──────────────────────────────────────────
|
|
21325
|
+
getMmpConfig: (auth) => request("GET", "/api/v5/account/mmp-config", { auth }),
|
|
21326
|
+
setMmpConfig: (auth, body) => request("POST", "/api/v5/account/mmp-config", { body, auth }),
|
|
21327
|
+
getOrderAlgo: (auth, algoId) => request("GET", "/api/v5/trade/order-algo", { params: { algoId }, auth }),
|
|
21328
|
+
// ── 网格操作(第十四批新增) ──────────────────────────────────────────
|
|
21329
|
+
createGridAlgo: (auth, body) => request("POST", "/api/v5/tradingBot/grid/order-algo", { body, auth }),
|
|
21330
|
+
stopGridAlgo: (auth, body) => request("POST", "/api/v5/tradingBot/grid/stop-order-algo", { body, auth }),
|
|
21331
|
+
closeGridPosition: (auth, body) => request("POST", "/api/v5/tradingBot/grid/close-position", { body, auth }),
|
|
21332
|
+
getGridPositions: (auth, algoId) => request("GET", "/api/v5/tradingBot/grid/positions", { params: { algoId }, auth }),
|
|
21333
|
+
// ── 信号操作(第十五批新增 — 路径经 curl 修正) ─────────────────────────────────
|
|
21334
|
+
createSignal: (auth, body) => request("POST", "/api/v5/tradingBot/signal/create-signal", { body, auth }),
|
|
21335
|
+
stopSignal: (auth, body) => request("POST", "/api/v5/tradingBot/signal/stop-order-algo", { body, auth }),
|
|
21336
|
+
getSignalOrdersDetail: (auth, algoId) => request("GET", "/api/v5/tradingBot/signal/orders-algo-details", { params: { algoId, algoOrdType: "contract" }, auth }),
|
|
21337
|
+
getSignalSubscriptions: (auth) => request("GET", "/api/v5/tradingBot/signal/signals", { auth }),
|
|
21338
|
+
// ── 价差操作(第十六批新增) ──────────────────────────────────────────
|
|
21339
|
+
placeSpreadOrder: (auth, body) => request("POST", "/api/v5/sprd/order", { body, auth }),
|
|
21340
|
+
cancelSpreadOrder: (auth, body) => request("POST", "/api/v5/sprd/cancel-order", { body, auth }),
|
|
21341
|
+
getSpreadOrdersPending: (auth, sprdId) => request("GET", "/api/v5/sprd/orders-pending", { params: { sprdId }, auth }),
|
|
21342
|
+
// ── 资金收尾(第十七批新增) ──────────────────────────────────────────
|
|
21343
|
+
getDepositLightning: (auth, ccy) => request("GET", "/api/v5/asset/deposit-lightning", { params: { ccy }, auth }),
|
|
21344
|
+
withdrawalLightning: (auth, body) => request("POST", "/api/v5/asset/withdrawal-lightning", { body, auth }),
|
|
21345
|
+
getTransferState: (auth, transferId) => request("GET", "/api/v5/asset/transfer-state", { params: { transferId }, auth })
|
|
21324
21346
|
};
|
|
21325
21347
|
|
|
21326
21348
|
// src/adapters/hrails.ts
|
|
@@ -22950,6 +22972,55 @@ function registerTradingTools(server, auth) {
|
|
|
22950
22972
|
}
|
|
22951
22973
|
}
|
|
22952
22974
|
);
|
|
22975
|
+
server.tool(
|
|
22976
|
+
"okx_get_mmp_config",
|
|
22977
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2MMP\uFF08\u505A\u5E02\u5546\u4FDD\u62A4\uFF09\u914D\u7F6E\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5F53\u524D\u505A\u5E02\u5546\u4FDD\u62A4\u53C2\u6570\u3001\u786E\u8BA4\u98CE\u63A7\u8BBE\u7F6E\n## \u5173\u952E\u8BCD\uFF1A\u505A\u5E02\u5546\u4FDD\u62A4, MMP, mmp config, \u505A\u5E02\u5546\u98CE\u63A7, \u5E02\u573A\u4FDD\u62A4\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u914D\u7F6E \u2192 okx_set_mmp_config \u4FEE\u6539",
|
|
22978
|
+
{},
|
|
22979
|
+
async () => {
|
|
22980
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
22981
|
+
try {
|
|
22982
|
+
const data = await privateApi.getMmpConfig(auth);
|
|
22983
|
+
return toResult(data);
|
|
22984
|
+
} catch (e) {
|
|
22985
|
+
return toError(e);
|
|
22986
|
+
}
|
|
22987
|
+
}
|
|
22988
|
+
);
|
|
22989
|
+
server.tool(
|
|
22990
|
+
"okx_set_mmp_config",
|
|
22991
|
+
"## \u529F\u80FD\uFF1A\u8BBE\u7F6EMMP\uFF08\u505A\u5E02\u5546\u4FDD\u62A4\uFF09\u53C2\u6570\n## \u573A\u666F\uFF1A\u7528\u4E8E\u914D\u7F6E\u505A\u5E02\u5546\u98CE\u63A7\u53C2\u6570\u3001\u4FDD\u62A4\u505A\u5E02\u7B56\u7565\n## \u53C2\u6570\uFF1A\n## - instFamily: \u4EA7\u54C1\u65CF\uFF0C\u5982 BTC-USD\u3002\u5FC5\u586B\n## - timeInterval: \u65F6\u95F4\u7A97\u53E3\uFF08\u6BEB\u79D2\uFF09\u3002\u5FC5\u586B\n## - frozenInterval: \u51BB\u7ED3\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09\u3002\u5FC5\u586B\n## - limit: \u9650\u5236\u91CF\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u4FEE\u6539MMP\u53C2\u6570\u5F71\u54CD\u505A\u5E02\u7B56\u7565\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AADMIN \u2014 \u4FEE\u6539\u98CE\u63A7\u914D\u7F6E\u53EF\u80FD\u5F71\u54CD\u4EA4\u6613\u6267\u884C\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_mmp_config \u67E5\u770B\u5F53\u524D \u2192 \u672C\u5DE5\u5177\u4FEE\u6539 \u2192 \u751F\u6548",
|
|
22992
|
+
{
|
|
22993
|
+
instFamily: external_exports.string().describe("\u4EA7\u54C1\u65CF\uFF0C\u5982 BTC-USD\u3002\u5FC5\u586B"),
|
|
22994
|
+
timeInterval: external_exports.string().describe("\u65F6\u95F4\u7A97\u53E3\uFF08\u6BEB\u79D2\uFF09\u3002\u5FC5\u586B"),
|
|
22995
|
+
frozenInterval: external_exports.string().describe("\u51BB\u7ED3\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09\u3002\u5FC5\u586B"),
|
|
22996
|
+
limit: external_exports.string().describe("\u9650\u5236\u91CF\u3002\u5FC5\u586B")
|
|
22997
|
+
},
|
|
22998
|
+
async ({ instFamily, timeInterval, frozenInterval, limit }) => {
|
|
22999
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23000
|
+
try {
|
|
23001
|
+
const data = await privateApi.setMmpConfig(auth, { instFamily, timeInterval, frozenInterval, limit });
|
|
23002
|
+
return toResult(data);
|
|
23003
|
+
} catch (e) {
|
|
23004
|
+
return toError(e);
|
|
23005
|
+
}
|
|
23006
|
+
}
|
|
23007
|
+
);
|
|
23008
|
+
server.tool(
|
|
23009
|
+
"okx_get_order_algo",
|
|
23010
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6307\u5B9A\u7B56\u7565\u59D4\u6258\u7684\u8BE6\u60C5\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8FFD\u8E2A\u7B56\u7565\u59D4\u6258\u72B6\u6001\u3001\u67E5\u770B\u89E6\u53D1\u6761\u4EF6\u548C\u6267\u884C\u7ED3\u679C\n## \u5173\u952E\u8BCD\uFF1A\u7B56\u7565\u59D4\u6258\u8BE6\u60C5, order algo, \u7B56\u7565\u5355\u67E5\u8BE2, \u6761\u4EF6\u5355\u8BE6\u60C5\n## \u53C2\u6570\uFF1A\n## - algoId: \u7B56\u7565\u59D4\u6258ID\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1Aokx_get_orders_algo_pending \u67E5\u770B\u7B56\u7565\u5217\u8868 \u2192 \u672C\u5DE5\u5177\u67E5\u8BE6\u60C5",
|
|
23011
|
+
{
|
|
23012
|
+
algoId: external_exports.string().optional().describe("\u7B56\u7565\u59D4\u6258ID")
|
|
23013
|
+
},
|
|
23014
|
+
async ({ algoId }) => {
|
|
23015
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23016
|
+
try {
|
|
23017
|
+
const data = await privateApi.getOrderAlgo(auth, algoId);
|
|
23018
|
+
return toResult(data);
|
|
23019
|
+
} catch (e) {
|
|
23020
|
+
return toError(e);
|
|
23021
|
+
}
|
|
23022
|
+
}
|
|
23023
|
+
);
|
|
22953
23024
|
}
|
|
22954
23025
|
|
|
22955
23026
|
// src/tools/algo.ts
|
|
@@ -23181,6 +23252,56 @@ function registerFundingTools(server, auth) {
|
|
|
23181
23252
|
}
|
|
23182
23253
|
}
|
|
23183
23254
|
);
|
|
23255
|
+
server.tool(
|
|
23256
|
+
"okx_get_deposit_lightning",
|
|
23257
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u95EA\u7535\u5145\u503C\u5730\u5740\uFF08\u83B7\u53D6\u4E34\u65F6\u5145\u503C\u5730\u5740\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5FEB\u901F\u751F\u6210\u5145\u503C\u5730\u5740\u63A5\u6536\u8D44\u91D1\u3001\u83B7\u53D6\u672C\u5730\u8D27\u5E01\u652F\u4ED8\u65B9\u5F0F\u7684\u5145\u503C\u4FE1\u606F\n## \u5173\u952E\u8BCD\uFF1A\u95EA\u7535\u5145\u503C, lightning deposit, \u5FEB\u901F\u5145\u503C, \u5145\u503C\u5730\u5740, \u95EA\u7535\u5165\u91D1\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 USDT\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\uFF08\u5730\u5740\u6709\u6548\u671F\u5185\u53EF\u91CD\u590D\u4F7F\u7528\uFF09\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u83B7\u53D6\u95EA\u7535\u5730\u5740 \u2192 \u7528\u6237\u5145\u503C \u2192 okx_get_deposit_history \u8FFD\u8E2A\u5230\u8D26",
|
|
23258
|
+
{
|
|
23259
|
+
ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 USDT\u3002\u5FC5\u586B")
|
|
23260
|
+
},
|
|
23261
|
+
async ({ ccy }) => {
|
|
23262
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23263
|
+
try {
|
|
23264
|
+
const data = await privateApi.getDepositLightning(auth, ccy);
|
|
23265
|
+
return toResult(data);
|
|
23266
|
+
} catch (e) {
|
|
23267
|
+
return toError(e);
|
|
23268
|
+
}
|
|
23269
|
+
}
|
|
23270
|
+
);
|
|
23271
|
+
server.tool(
|
|
23272
|
+
"okx_withdrawal_lightning",
|
|
23273
|
+
"## \u529F\u80FD\uFF1A\u95EA\u7535\u63D0\u73B0\uFF08\u5FEB\u901F\u63D0\u73B0\u5230\u672C\u5730\u652F\u4ED8\u65B9\u5F0F\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5FEB\u901F\u63D0\u73B0\u5230\u7B2C\u4E09\u65B9\u652F\u4ED8\u6E20\u9053\u3001\u5C0F\u989D\u5FEB\u901F\u51FA\u91D1\n## \u5173\u952E\u8BCD\uFF1A\u95EA\u7535\u63D0\u73B0, lightning withdrawal, \u5FEB\u901F\u63D0\u73B0, \u95EA\u7535\u51FA\u91D1\n## \u53C2\u6570\uFF1A\n## - ccy: \u63D0\u73B0\u5E01\u79CD\u3002\u5FC5\u586B\n## - amt: \u63D0\u73B0\u6570\u91CF\u3002\u5FC5\u586B\n## - to: \u63D0\u73B0\u53BB\u5411\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u63D0\u73B0\uFF09- \u5C06\u63D0\u73B0\u8D44\u91D1\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u4E8C\u6B21\u786E\u8BA4\n## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u63D0\u73B0\u64CD\u4F5C\u76F4\u63A5\u8F6C\u51FA\u8D44\u91D1\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u4E8C\u6B21\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u95EA\u7535\u63D0\u73B0 \u2192 okx_get_withdrawal_history \u8FFD\u8E2A\u63D0\u73B0\u72B6\u6001",
|
|
23274
|
+
{
|
|
23275
|
+
ccy: external_exports.string().describe("\u63D0\u73B0\u5E01\u79CD\u3002\u5FC5\u586B"),
|
|
23276
|
+
amt: external_exports.string().describe("\u63D0\u73B0\u6570\u91CF\u3002\u5FC5\u586B"),
|
|
23277
|
+
to: external_exports.string().describe("\u63D0\u73B0\u53BB\u5411\u3002\u5FC5\u586B")
|
|
23278
|
+
},
|
|
23279
|
+
async ({ ccy, amt, to }) => {
|
|
23280
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23281
|
+
try {
|
|
23282
|
+
const data = await privateApi.withdrawalLightning(auth, { ccy, amt, to });
|
|
23283
|
+
return toResult(data);
|
|
23284
|
+
} catch (e) {
|
|
23285
|
+
return toError(e);
|
|
23286
|
+
}
|
|
23287
|
+
}
|
|
23288
|
+
);
|
|
23289
|
+
server.tool(
|
|
23290
|
+
"okx_get_transfer_state",
|
|
23291
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u8D44\u91D1\u5212\u8F6C\u72B6\u6001\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8FFD\u8E2A\u8DE8\u8D26\u6237\u5212\u8F6C\u662F\u5426\u5230\u8D26\u3001\u786E\u8BA4\u5212\u8F6C\u6210\u529F\n## \u5173\u952E\u8BCD\uFF1A\u5212\u8F6C\u72B6\u6001, transfer state, \u8D44\u91D1\u5212\u8F6C, \u8F6C\u8D26\u72B6\u6001, \u5212\u8F6C\u67E5\u8BE2\n## \u53C2\u6570\uFF1A\n## - transferId: \u5212\u8F6CID\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_transfer \u5212\u8F6C \u2192 \u672C\u5DE5\u5177\u8FFD\u8E2A\u72B6\u6001 \u2192 \u786E\u8BA4\u5230\u8D26",
|
|
23292
|
+
{
|
|
23293
|
+
transferId: external_exports.string().describe("\u5212\u8F6CID\uFF08\u4ECE okx_transfer \u8FD4\u56DE\u83B7\u53D6\uFF09\u3002\u5FC5\u586B")
|
|
23294
|
+
},
|
|
23295
|
+
async ({ transferId }) => {
|
|
23296
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23297
|
+
try {
|
|
23298
|
+
const data = await privateApi.getTransferState(auth, transferId);
|
|
23299
|
+
return toResult(data);
|
|
23300
|
+
} catch (e) {
|
|
23301
|
+
return toError(e);
|
|
23302
|
+
}
|
|
23303
|
+
}
|
|
23304
|
+
);
|
|
23184
23305
|
}
|
|
23185
23306
|
|
|
23186
23307
|
// src/tools/stats.ts
|
|
@@ -24157,10 +24278,84 @@ function registerBotTools(server, auth) {
|
|
|
24157
24278
|
}
|
|
24158
24279
|
}
|
|
24159
24280
|
);
|
|
24281
|
+
server.tool(
|
|
24282
|
+
"okx_create_grid_order",
|
|
24283
|
+
"## \u529F\u80FD\uFF1A\u521B\u5EFA\u7F51\u683C\u4EA4\u6613\u8BA2\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BBE\u7F6E\u73B0\u8D27\u7F51\u683C/\u5408\u7EA6\u7F51\u683C/\u5929\u5730\u7F51\u683C\u7B56\u7565\n## \u5173\u952E\u8BCD\uFF1A\u521B\u5EFA\u7F51\u683C, create grid, \u7F51\u683C\u4EA4\u6613, \u73B0\u8D27\u7F51\u683C, \u5408\u7EA6\u7F51\u683C, \u5929\u5730\u7F51\u683C\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\u3002\u5FC5\u586B\n## - algoOrdType: \u7F51\u683C\u7C7B\u578B\u3002grid=\u73B0\u8D27\u7F51\u683C, contract_grid=\u5408\u7EA6\u7F51\u683C, moon_grid=\u5929\u5730\u7F51\u683C\u3002\u5FC5\u586B\n## - maxPx: \u4EF7\u683C\u4E0A\u9650\u3002\u5FC5\u586B\n## - minPx: \u4EF7\u683C\u4E0B\u9650\u3002\u5FC5\u586B\n## - gridNum: \u7F51\u683C\u6570\u91CF\u3002\u5FC5\u586B\n## - direction: \u5408\u7EA6\u7F51\u683C\u65B9\u5411\u3002long=\u505A\u591A, short=\u505A\u7A7A, neutral=\u4E2D\u6027\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u521B\u5EFA\u7F51\u683C\u7B56\u7565\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u7F51\u683C\u4EA4\u6613\u4F1A\u81EA\u52A8\u4E0B\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u521B\u5EFA \u2192 okx_get_grid_orders_pending \u67E5\u770B \u2192 okx_stop_grid_order \u505C\u6B62",
|
|
24284
|
+
{
|
|
24285
|
+
instId: external_exports.string().describe("\u4EA7\u54C1ID\u3002\u5FC5\u586B"),
|
|
24286
|
+
algoOrdType: external_exports.enum(["grid", "contract_grid", "moon_grid"]).describe("\u7F51\u683C\u7C7B\u578B\u3002grid=\u73B0\u8D27\u7F51\u683C, contract_grid=\u5408\u7EA6\u7F51\u683C, moon_grid=\u5929\u5730\u7F51\u683C"),
|
|
24287
|
+
maxPx: external_exports.string().describe("\u4EF7\u683C\u4E0A\u9650\u3002\u5FC5\u586B"),
|
|
24288
|
+
minPx: external_exports.string().describe("\u4EF7\u683C\u4E0B\u9650\u3002\u5FC5\u586B"),
|
|
24289
|
+
gridNum: external_exports.string().describe("\u7F51\u683C\u6570\u91CF\u3002\u5FC5\u586B"),
|
|
24290
|
+
direction: external_exports.enum(["long", "short", "neutral"]).optional().describe("\u5408\u7EA6\u7F51\u683C\u65B9\u5411\u3002long=\u505A\u591A, short=\u505A\u7A7A, neutral=\u4E2D\u6027")
|
|
24291
|
+
},
|
|
24292
|
+
async ({ instId, algoOrdType, maxPx, minPx, gridNum, direction }) => {
|
|
24293
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
24294
|
+
try {
|
|
24295
|
+
const body = { instId, algoOrdType, maxPx, minPx, gridNum };
|
|
24296
|
+
if (direction) body.direction = direction;
|
|
24297
|
+
const data = await privateApi.createGridAlgo(auth, body);
|
|
24298
|
+
return toResult(data);
|
|
24299
|
+
} catch (e) {
|
|
24300
|
+
return toError(e);
|
|
24301
|
+
}
|
|
24302
|
+
}
|
|
24303
|
+
);
|
|
24304
|
+
server.tool(
|
|
24305
|
+
"okx_stop_grid_order",
|
|
24306
|
+
"## \u529F\u80FD\uFF1A\u505C\u6B62\u7F51\u683C\u4EA4\u6613\u8BA2\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u7EC8\u6B62\u8FD0\u884C\u4E2D\u7684\u7F51\u683C\u7B56\u7565\u3001\u6E05\u7A7A\u7F51\u683C\u4ED3\u4F4D\n## \u5173\u952E\u8BCD\uFF1A\u505C\u6B62\u7F51\u683C, stop grid, \u7F51\u683C\u505C\u6B62, \u7EC8\u6B62\u7F51\u683C\n## \u53C2\u6570\uFF1A\n## - algoId: \u7F51\u683C\u7B56\u7565ID\u3002\u5FC5\u586B\n## - instId: \u4EA7\u54C1ID\u3002\u5FC5\u586B\n## - algoOrdType: \u7F51\u683C\u7C7B\u578B\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u505C\u6B62\u7F51\u683C\u7B56\u7565\u5E73\u4ED3\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u505C\u6B62\u7F51\u683C\u5C06\u6E05\u7A7A\u6240\u6709\u7F51\u683C\u8BA2\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_grid_orders_pending \u67E5\u770B\u8FD0\u884C\u4E2D \u2192 \u672C\u5DE5\u5177\u505C\u6B62 \u2192 \u786E\u8BA4\u5DF2\u505C\u6B62",
|
|
24307
|
+
{
|
|
24308
|
+
algoId: external_exports.string().describe("\u7F51\u683C\u7B56\u7565ID\u3002\u5FC5\u586B"),
|
|
24309
|
+
instId: external_exports.string().describe("\u4EA7\u54C1ID\u3002\u5FC5\u586B"),
|
|
24310
|
+
algoOrdType: external_exports.enum(["grid", "contract_grid", "moon_grid"]).describe("\u7F51\u683C\u7C7B\u578B\u3002grid=\u73B0\u8D27\u7F51\u683C, contract_grid=\u5408\u7EA6\u7F51\u683C, moon_grid=\u5929\u5730\u7F51\u683C")
|
|
24311
|
+
},
|
|
24312
|
+
async ({ algoId, instId, algoOrdType }) => {
|
|
24313
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
24314
|
+
try {
|
|
24315
|
+
const data = await privateApi.stopGridAlgo(auth, { algoId, instId, algoOrdType });
|
|
24316
|
+
return toResult(data);
|
|
24317
|
+
} catch (e) {
|
|
24318
|
+
return toError(e);
|
|
24319
|
+
}
|
|
24320
|
+
}
|
|
24321
|
+
);
|
|
24322
|
+
server.tool(
|
|
24323
|
+
"okx_close_grid_position",
|
|
24324
|
+
"## \u529F\u80FD\uFF1A\u5E73\u4ED3\u7F51\u683C\u7B56\u7565\u7684\u6301\u4ED3\n## \u573A\u666F\uFF1A\u7528\u4E8E\u624B\u52A8\u5E73\u6389\u7F51\u683C\u7B56\u7565\u7684\u5F53\u524D\u6301\u4ED3\u3001\u90E8\u5206\u6216\u5168\u90E8\u5E73\u4ED3\n## \u5173\u952E\u8BCD\uFF1A\u7F51\u683C\u5E73\u4ED3, close grid position, \u7F51\u683C\u6301\u4ED3\u5E73\u4ED3\n## \u53C2\u6570\uFF1A\n## - algoId: \u7F51\u683C\u7B56\u7565ID\u3002\u5FC5\u586B\n## - algoOrdType: \u7F51\u683C\u7C7B\u578B\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u5E73\u6389\u7F51\u683C\u6301\u4ED3\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u5E73\u4ED3\u64CD\u4F5C\u5F71\u54CD\u6301\u4ED3\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_grid_positions \u67E5\u770B\u7F51\u683C\u6301\u4ED3 \u2192 \u672C\u5DE5\u5177\u5E73\u4ED3",
|
|
24325
|
+
{
|
|
24326
|
+
algoId: external_exports.string().describe("\u7F51\u683C\u7B56\u7565ID\u3002\u5FC5\u586B"),
|
|
24327
|
+
algoOrdType: external_exports.enum(["grid", "contract_grid", "moon_grid"]).describe("\u7F51\u683C\u7C7B\u578B")
|
|
24328
|
+
},
|
|
24329
|
+
async ({ algoId, algoOrdType }) => {
|
|
24330
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
24331
|
+
try {
|
|
24332
|
+
const data = await privateApi.closeGridPosition(auth, { algoId, algoOrdType });
|
|
24333
|
+
return toResult(data);
|
|
24334
|
+
} catch (e) {
|
|
24335
|
+
return toError(e);
|
|
24336
|
+
}
|
|
24337
|
+
}
|
|
24338
|
+
);
|
|
24339
|
+
server.tool(
|
|
24340
|
+
"okx_get_grid_positions",
|
|
24341
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u7F51\u683C\u7B56\u7565\u7684\u6301\u4ED3\u8BE6\u60C5\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u7F51\u683C\u6301\u4ED3\u65B9\u5411\u3001\u6570\u91CF\u548C\u76C8\u4E8F\n## \u5173\u952E\u8BCD\uFF1A\u7F51\u683C\u6301\u4ED3, grid positions, \u7F51\u683C\u4ED3\u4F4D, \u7F51\u683C\u76C8\u4E8F\n## \u53C2\u6570\uFF1A\n## - algoId: \u7F51\u683C\u7B56\u7565ID\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1Aokx_get_grid_orders_pending \u67E5\u770B\u7B56\u7565 \u2192 \u672C\u5DE5\u5177\u770B\u6301\u4ED3 \u2192 \u51B3\u5B9A\u662F\u5426\u5E73\u4ED3",
|
|
24342
|
+
{
|
|
24343
|
+
algoId: external_exports.string().describe("\u7F51\u683C\u7B56\u7565ID\u3002\u5FC5\u586B")
|
|
24344
|
+
},
|
|
24345
|
+
async ({ algoId }) => {
|
|
24346
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
24347
|
+
try {
|
|
24348
|
+
const data = await privateApi.getGridPositions(auth, algoId);
|
|
24349
|
+
return toResult(data);
|
|
24350
|
+
} catch (e) {
|
|
24351
|
+
return toError(e);
|
|
24352
|
+
}
|
|
24353
|
+
}
|
|
24354
|
+
);
|
|
24160
24355
|
}
|
|
24161
24356
|
|
|
24162
24357
|
// src/tools/spread.ts
|
|
24163
|
-
function registerSpreadTools(server) {
|
|
24358
|
+
function registerSpreadTools(server, auth) {
|
|
24164
24359
|
server.tool(
|
|
24165
24360
|
"okx_get_spreads",
|
|
24166
24361
|
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6\u4EA7\u54C1\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8DE8\u671F\u5957\u5229\u7B56\u7565\u8BBE\u8BA1\u3001\u53D1\u73B0\u53EF\u4EA4\u6613\u4EF7\u5DEE\u5408\u7EA6\u3001\u7B5B\u9009\u7279\u5B9A\u671F\u9650\u7684\u4EF7\u5DEE\u54C1\u79CD\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u5408\u7EA6, spreads, \u8DE8\u671F\u5957\u5229, \u4EF7\u5DEE\u5217\u8868, \u671F\u9650\u5957\u5229\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\uFF0C\u5982 BTC-USDT_BTC-USDT-SWAP\n## - baseCcy: \u6807\u7684\u5E01\u79CD\uFF0C\u5982 BTC\n## - instId: \u817F\u5408\u7EA6\u4EA7\u54C1ID\uFF0C\u7CBE\u786E\u7B5B\u9009\n## - state: \u5408\u7EA6\u72B6\u6001\u3002live=\u6D3B\u8DC3, expired=\u5DF2\u5230\u671F, suspend=\u6682\u505C\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~3KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6\u5217\u8868 \u2192 okx_get_spread_ticker \u67E5\u884C\u60C5 \u2192 okx_get_spread_candles \u5206\u6790\u8D70\u52BF",
|
|
@@ -24268,6 +24463,61 @@ function registerSpreadTools(server) {
|
|
|
24268
24463
|
}
|
|
24269
24464
|
}
|
|
24270
24465
|
);
|
|
24466
|
+
server.tool(
|
|
24467
|
+
"okx_place_spread_order",
|
|
24468
|
+
"## \u529F\u80FD\uFF1A\u4E0B\u4EF7\u5DEE\u5408\u7EA6\u8BA2\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6267\u884C\u4EF7\u5DEE\u5957\u5229\u4EA4\u6613\u3001\u4E0B\u8DE8\u671F\u5957\u5229\u5355\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u4E0B\u5355, spread order, \u4EF7\u5DEE\u4EA4\u6613, \u8DE8\u671F\u5957\u5229, \u4EF7\u5DEE\u5957\u5229\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B\n## - side: \u4E70\u5356\u65B9\u5411\u3002buy=\u4E70\u5165, sell=\u5356\u51FA\u3002\u5FC5\u586B\n## - ordType: \u8BA2\u5355\u7C7B\u578B\u3002market=\u5E02\u4EF7, limit=\u9650\u4EF7\u3002\u5FC5\u586B\n## - sz: \u6570\u91CF\u3002\u5FC5\u586B\n## - px: \u4EF7\u683C\uFF08\u9650\u4EF7\u5355\u5FC5\u586B\uFF09\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u63D0\u4EA4\u4EF7\u5DEE\u8BA2\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u4E0B\u5355\u64CD\u4F5C\u76F4\u63A5\u5F71\u54CD\u4EF7\u5DEE\u6301\u4ED3\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_spread_ticker \u770B\u884C\u60C5 \u2192 \u672C\u5DE5\u5177\u4E0B\u5355 \u2192 okx_get_spread_orders \u67E5\u8BA2\u5355",
|
|
24469
|
+
{
|
|
24470
|
+
sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B"),
|
|
24471
|
+
side: external_exports.enum(["buy", "sell"]).describe("\u4E70\u5356\u65B9\u5411\u3002buy=\u4E70\u5165, sell=\u5356\u51FA"),
|
|
24472
|
+
ordType: external_exports.enum(["market", "limit", "post_only", "fok", "ioc"]).describe("\u8BA2\u5355\u7C7B\u578B\u3002market=\u5E02\u4EF7, limit=\u9650\u4EF7"),
|
|
24473
|
+
sz: external_exports.string().describe("\u6570\u91CF\u3002\u5FC5\u586B"),
|
|
24474
|
+
px: external_exports.string().optional().describe("\u4EF7\u683C\uFF08\u9650\u4EF7\u5355\u5FC5\u586B\uFF09")
|
|
24475
|
+
},
|
|
24476
|
+
async ({ sprdId, side, ordType, sz, px }) => {
|
|
24477
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
24478
|
+
try {
|
|
24479
|
+
const body = { sprdId, side, ordType, sz };
|
|
24480
|
+
if (px) body.px = px;
|
|
24481
|
+
const data = await privateApi.placeSpreadOrder(auth, body);
|
|
24482
|
+
return toResult(data);
|
|
24483
|
+
} catch (e) {
|
|
24484
|
+
return toError(e);
|
|
24485
|
+
}
|
|
24486
|
+
}
|
|
24487
|
+
);
|
|
24488
|
+
server.tool(
|
|
24489
|
+
"okx_cancel_spread_order",
|
|
24490
|
+
"## \u529F\u80FD\uFF1A\u64A4\u9500\u4EF7\u5DEE\u5408\u7EA6\u8BA2\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u53D6\u6D88\u672A\u6210\u4EA4\u7684\u4EF7\u5DEE\u6302\u5355\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u64A4\u5355, cancel spread, \u53D6\u6D88\u4EF7\u5DEE, \u64A4\u5355\u4EF7\u5DEE\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B\n## - ordId: \u8BA2\u5355ID\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u64A4\u9500\u4EF7\u5DEE\u8BA2\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u64A4\u5355\u64CD\u4F5C\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_get_spread_orders \u67E5\u770B\u6302\u5355 \u2192 \u672C\u5DE5\u5177\u64A4\u9500 \u2192 \u786E\u8BA4\u64A4\u9500\u6210\u529F",
|
|
24491
|
+
{
|
|
24492
|
+
sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B"),
|
|
24493
|
+
ordId: external_exports.string().describe("\u8BA2\u5355ID\u3002\u5FC5\u586B")
|
|
24494
|
+
},
|
|
24495
|
+
async ({ sprdId, ordId }) => {
|
|
24496
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
24497
|
+
try {
|
|
24498
|
+
const data = await privateApi.cancelSpreadOrder(auth, { sprdId, ordId });
|
|
24499
|
+
return toResult(data);
|
|
24500
|
+
} catch (e) {
|
|
24501
|
+
return toError(e);
|
|
24502
|
+
}
|
|
24503
|
+
}
|
|
24504
|
+
);
|
|
24505
|
+
server.tool(
|
|
24506
|
+
"okx_get_spread_orders",
|
|
24507
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4EF7\u5DEE\u5408\u7EA6\u5F53\u524D\u6302\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u4EF7\u5DEE\u5408\u7EA6\u7684\u672A\u6210\u4EA4\u8BA2\u5355\u5217\u8868\u3001\u76D1\u63A7\u6302\u5355\u72B6\u6001\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u6302\u5355, spread orders, \u4EF7\u5DEE\u59D4\u6258, \u4EF7\u5DEE\u672A\u6210\u4EA4\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1Aokx_place_spread_order \u4E0B\u5355 \u2192 \u672C\u5DE5\u5177\u67E5\u770B \u2192 okx_cancel_spread_order \u64A4\u9500",
|
|
24508
|
+
{
|
|
24509
|
+
sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID")
|
|
24510
|
+
},
|
|
24511
|
+
async ({ sprdId }) => {
|
|
24512
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
24513
|
+
try {
|
|
24514
|
+
const data = await privateApi.getSpreadOrdersPending(auth, sprdId);
|
|
24515
|
+
return toResult(data);
|
|
24516
|
+
} catch (e) {
|
|
24517
|
+
return toError(e);
|
|
24518
|
+
}
|
|
24519
|
+
}
|
|
24520
|
+
);
|
|
24271
24521
|
}
|
|
24272
24522
|
|
|
24273
24523
|
// src/tools/copy.ts
|
|
@@ -24587,6 +24837,69 @@ function registerSignalTools(server, auth) {
|
|
|
24587
24837
|
}
|
|
24588
24838
|
}
|
|
24589
24839
|
);
|
|
24840
|
+
server.tool(
|
|
24841
|
+
"okx_create_signal_bot",
|
|
24842
|
+
"## \u529F\u80FD\uFF1A\u521B\u5EFA\u4FE1\u53F7\u4EA4\u6613\u673A\u5668\u4EBA\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BA2\u9605\u5916\u90E8\u4FE1\u53F7\u6E90\u3001\u81EA\u52A8\u8DDF\u968F\u4FE1\u53F7\u5F00\u5E73\u4ED3\n## \u5173\u952E\u8BCD\uFF1A\u521B\u5EFA\u4FE1\u53F7, create signal, \u4FE1\u53F7\u673A\u5668\u4EBA, \u4FE1\u53F7\u4EA4\u6613\n## \u53C2\u6570\uFF1A\n## - channel: \u4FE1\u53F7\u6E20\u9053\u3002\u5FC5\u586B\n## - signalName: \u4FE1\u53F7\u540D\u79F0\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u521B\u5EFA\u4FE1\u53F7\u673A\u5668\u4EBA\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u4FE1\u53F7\u673A\u5668\u4EBA\u4F1A\u81EA\u52A8\u6267\u884C\u4EA4\u6613\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u521B\u5EFA \u2192 okx_get_signal_bots_pending \u67E5\u770B\u72B6\u6001 \u2192 okx_stop_signal_bot \u505C\u6B62",
|
|
24843
|
+
{
|
|
24844
|
+
channel: external_exports.string().describe("\u4FE1\u53F7\u6E20\u9053\u3002\u5FC5\u586B"),
|
|
24845
|
+
signalName: external_exports.string().describe("\u4FE1\u53F7\u540D\u79F0\u3002\u5FC5\u586B")
|
|
24846
|
+
},
|
|
24847
|
+
async ({ channel, signalName }) => {
|
|
24848
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
24849
|
+
try {
|
|
24850
|
+
const data = await privateApi.createSignal(auth, { channel, signalName });
|
|
24851
|
+
return toResult(data);
|
|
24852
|
+
} catch (e) {
|
|
24853
|
+
return toError(e);
|
|
24854
|
+
}
|
|
24855
|
+
}
|
|
24856
|
+
);
|
|
24857
|
+
server.tool(
|
|
24858
|
+
"okx_stop_signal_bot",
|
|
24859
|
+
"## \u529F\u80FD\uFF1A\u505C\u6B62\u4FE1\u53F7\u4EA4\u6613\u673A\u5668\u4EBA\n## \u573A\u666F\uFF1A\u7528\u4E8E\u7EC8\u6B62\u8FD0\u884C\u4E2D\u7684\u4FE1\u53F7\u7B56\u7565\u3001\u5E73\u6389\u6240\u6709\u4FE1\u53F7\u6301\u4ED3\n## \u5173\u952E\u8BCD\uFF1A\u505C\u6B62\u4FE1\u53F7, stop signal, \u4FE1\u53F7\u505C\u6B62, \u5173\u95ED\u4FE1\u53F7\u673A\u5668\u4EBA\n## \u53C2\u6570\uFF1A\n## - algoId: \u4FE1\u53F7\u673A\u5668\u4EBAID\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u505C\u6B62\u4FE1\u53F7\u5E76\u5E73\u4ED3\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u505C\u6B62\u4FE1\u53F7\u4F1A\u5E73\u6389\u6240\u6709\u6301\u4ED3\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_signal_bots_pending \u67E5\u770B\u8FD0\u884C\u4E2D \u2192 \u672C\u5DE5\u5177\u505C\u6B62",
|
|
24860
|
+
{
|
|
24861
|
+
algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID\u3002\u5FC5\u586B")
|
|
24862
|
+
},
|
|
24863
|
+
async ({ algoId }) => {
|
|
24864
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
24865
|
+
try {
|
|
24866
|
+
const data = await privateApi.stopSignal(auth, { algoId, algoOrdType: "contract" });
|
|
24867
|
+
return toResult(data);
|
|
24868
|
+
} catch (e) {
|
|
24869
|
+
return toError(e);
|
|
24870
|
+
}
|
|
24871
|
+
}
|
|
24872
|
+
);
|
|
24873
|
+
server.tool(
|
|
24874
|
+
"okx_get_signal_orders",
|
|
24875
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4FE1\u53F7\u673A\u5668\u4EBA\u8BA2\u5355\u8BE6\u60C5\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u4FE1\u53F7\u7B56\u7565\u7684\u89E6\u53D1\u8BA2\u5355\u5217\u8868\u548C\u6210\u4EA4\u8BB0\u5F55\n## \u5173\u952E\u8BCD\uFF1A\u4FE1\u53F7\u8BA2\u5355, signal orders, \u4FE1\u53F7\u59D4\u6258, \u4FE1\u53F7\u6210\u4EA4\n## \u53C2\u6570\uFF1A\n## - algoId: \u4FE1\u53F7\u673A\u5668\u4EBAID\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_signal_bots_pending \u67E5\u770B\u673A\u5668\u4EBA \u2192 \u672C\u5DE5\u5177\u67E5\u8BA2\u5355 \u2192 \u5206\u6790\u8868\u73B0",
|
|
24876
|
+
{
|
|
24877
|
+
algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID\u3002\u5FC5\u586B")
|
|
24878
|
+
},
|
|
24879
|
+
async ({ algoId }) => {
|
|
24880
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
24881
|
+
try {
|
|
24882
|
+
const data = await privateApi.getSignalOrdersDetail(auth, algoId);
|
|
24883
|
+
return toResult(data);
|
|
24884
|
+
} catch (e) {
|
|
24885
|
+
return toError(e);
|
|
24886
|
+
}
|
|
24887
|
+
}
|
|
24888
|
+
);
|
|
24889
|
+
server.tool(
|
|
24890
|
+
"okx_get_signal_subscriptions",
|
|
24891
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5DF2\u8BA2\u9605\u7684\u4FE1\u53F7\u6E90\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5F53\u524D\u8BA2\u9605\u4E86\u54EA\u4E9B\u4FE1\u53F7\u3001\u4FE1\u53F7\u6E90\u4FE1\u606F\u548C\u72B6\u6001\n## \u5173\u952E\u8BCD\uFF1A\u4FE1\u53F7\u8BA2\u9605, signal subscriptions, \u4FE1\u53F7\u6E90, \u8BA2\u9605\u5217\u8868\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u5DF2\u8BA2\u9605\u4FE1\u53F7 \u2192 okx_create_signal_bot \u521B\u5EFA\u65B0\u7684\u4FE1\u53F7\u673A\u5668\u4EBA",
|
|
24892
|
+
{},
|
|
24893
|
+
async () => {
|
|
24894
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
24895
|
+
try {
|
|
24896
|
+
const data = await privateApi.getSignalSubscriptions(auth);
|
|
24897
|
+
return toResult(data);
|
|
24898
|
+
} catch (e) {
|
|
24899
|
+
return toError(e);
|
|
24900
|
+
}
|
|
24901
|
+
}
|
|
24902
|
+
);
|
|
24590
24903
|
}
|
|
24591
24904
|
|
|
24592
24905
|
// src/tools/rfq.ts
|
|
@@ -24710,7 +25023,7 @@ async function main() {
|
|
|
24710
25023
|
registerMarketTools(server);
|
|
24711
25024
|
registerPublicTools(server, auth);
|
|
24712
25025
|
registerStatsTools(server);
|
|
24713
|
-
registerSpreadTools(server);
|
|
25026
|
+
registerSpreadTools(server, auth);
|
|
24714
25027
|
registerOutcomesTools(server);
|
|
24715
25028
|
registerAccountTools(server, auth);
|
|
24716
25029
|
registerTradingTools(server, auth);
|