@123456btc/123456btc-cli 1.0.5 → 1.0.7

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 (116) hide show
  1. package/dist/api/client.d.ts.map +1 -1
  2. package/dist/api/client.js +27 -9
  3. package/dist/api/client.js.map +1 -1
  4. package/dist/api/signals.d.ts +3 -3
  5. package/dist/api/signals.d.ts.map +1 -1
  6. package/dist/api/signals.js +3 -3
  7. package/dist/api/signals.js.map +1 -1
  8. package/dist/api/strategy-stream.d.ts +4 -9
  9. package/dist/api/strategy-stream.d.ts.map +1 -1
  10. package/dist/api/strategy-stream.js +14 -13
  11. package/dist/api/strategy-stream.js.map +1 -1
  12. package/dist/api/strategy.d.ts +3 -1
  13. package/dist/api/strategy.d.ts.map +1 -1
  14. package/dist/api/strategy.js +3 -1
  15. package/dist/api/strategy.js.map +1 -1
  16. package/dist/cli.js +2 -0
  17. package/dist/cli.js.map +1 -1
  18. package/dist/commands/auth.js +1 -1
  19. package/dist/commands/auth.js.map +1 -1
  20. package/dist/commands/exchange.d.ts +8 -0
  21. package/dist/commands/exchange.d.ts.map +1 -0
  22. package/dist/commands/exchange.js +146 -0
  23. package/dist/commands/exchange.js.map +1 -0
  24. package/dist/commands/gas.js +1 -1
  25. package/dist/commands/gas.js.map +1 -1
  26. package/dist/commands/install.js +1 -1
  27. package/dist/commands/install.js.map +1 -1
  28. package/dist/commands/provider.js +1 -1
  29. package/dist/commands/provider.js.map +1 -1
  30. package/dist/commands/signals.js +8 -8
  31. package/dist/commands/signals.js.map +1 -1
  32. package/dist/commands/strategy.d.ts.map +1 -1
  33. package/dist/commands/strategy.js +182 -9
  34. package/dist/commands/strategy.js.map +1 -1
  35. package/dist/commands/tier.js +1 -1
  36. package/dist/commands/tier.js.map +1 -1
  37. package/dist/commands/vault.d.ts.map +1 -1
  38. package/dist/commands/vault.js +37 -4
  39. package/dist/commands/vault.js.map +1 -1
  40. package/dist/commands/wallet.js +1 -1
  41. package/dist/commands/wallet.js.map +1 -1
  42. package/dist/config/strategy-exchange.d.ts +30 -0
  43. package/dist/config/strategy-exchange.d.ts.map +1 -0
  44. package/dist/config/strategy-exchange.js +130 -0
  45. package/dist/config/strategy-exchange.js.map +1 -0
  46. package/dist/exchange/index.d.ts +106 -0
  47. package/dist/exchange/index.d.ts.map +1 -0
  48. package/dist/exchange/index.js +43 -0
  49. package/dist/exchange/index.js.map +1 -0
  50. package/dist/exchange/v2/adapters/base.d.ts +130 -0
  51. package/dist/exchange/v2/adapters/base.d.ts.map +1 -0
  52. package/dist/exchange/v2/adapters/base.js +296 -0
  53. package/dist/exchange/v2/adapters/base.js.map +1 -0
  54. package/dist/exchange/v2/adapters/binance.d.ts +51 -0
  55. package/dist/exchange/v2/adapters/binance.d.ts.map +1 -0
  56. package/dist/exchange/v2/adapters/binance.js +549 -0
  57. package/dist/exchange/v2/adapters/binance.js.map +1 -0
  58. package/dist/exchange/v2/adapters/bitget.d.ts +43 -0
  59. package/dist/exchange/v2/adapters/bitget.d.ts.map +1 -0
  60. package/dist/exchange/v2/adapters/bitget.js +524 -0
  61. package/dist/exchange/v2/adapters/bitget.js.map +1 -0
  62. package/dist/exchange/v2/adapters/hyperliquid.d.ts +102 -0
  63. package/dist/exchange/v2/adapters/hyperliquid.d.ts.map +1 -0
  64. package/dist/exchange/v2/adapters/hyperliquid.js +536 -0
  65. package/dist/exchange/v2/adapters/hyperliquid.js.map +1 -0
  66. package/dist/exchange/v2/adapters/okx.d.ts +38 -0
  67. package/dist/exchange/v2/adapters/okx.d.ts.map +1 -0
  68. package/dist/exchange/v2/adapters/okx.js +437 -0
  69. package/dist/exchange/v2/adapters/okx.js.map +1 -0
  70. package/dist/exchange/v2/algorithms/index.d.ts +78 -0
  71. package/dist/exchange/v2/algorithms/index.d.ts.map +1 -0
  72. package/dist/exchange/v2/algorithms/index.js +441 -0
  73. package/dist/exchange/v2/algorithms/index.js.map +1 -0
  74. package/dist/exchange/v2/executor/circuit-breaker.d.ts +44 -0
  75. package/dist/exchange/v2/executor/circuit-breaker.d.ts.map +1 -0
  76. package/dist/exchange/v2/executor/circuit-breaker.js +90 -0
  77. package/dist/exchange/v2/executor/circuit-breaker.js.map +1 -0
  78. package/dist/exchange/v2/executor/core.d.ts +64 -0
  79. package/dist/exchange/v2/executor/core.d.ts.map +1 -0
  80. package/dist/exchange/v2/executor/core.js +458 -0
  81. package/dist/exchange/v2/executor/core.js.map +1 -0
  82. package/dist/exchange/v2/executor/risk.d.ts +29 -0
  83. package/dist/exchange/v2/executor/risk.d.ts.map +1 -0
  84. package/dist/exchange/v2/executor/risk.js +144 -0
  85. package/dist/exchange/v2/executor/risk.js.map +1 -0
  86. package/dist/exchange/v2/executor/state.d.ts +29 -0
  87. package/dist/exchange/v2/executor/state.d.ts.map +1 -0
  88. package/dist/exchange/v2/executor/state.js +171 -0
  89. package/dist/exchange/v2/executor/state.js.map +1 -0
  90. package/dist/exchange/v2/index.d.ts +50 -0
  91. package/dist/exchange/v2/index.d.ts.map +1 -0
  92. package/dist/exchange/v2/index.js +82 -0
  93. package/dist/exchange/v2/index.js.map +1 -0
  94. package/dist/exchange/v2/registry.d.ts +50 -0
  95. package/dist/exchange/v2/registry.d.ts.map +1 -0
  96. package/dist/exchange/v2/registry.js +101 -0
  97. package/dist/exchange/v2/registry.js.map +1 -0
  98. package/dist/exchange/v2/types.d.ts +413 -0
  99. package/dist/exchange/v2/types.d.ts.map +1 -0
  100. package/dist/exchange/v2/types.js +3 -0
  101. package/dist/exchange/v2/types.js.map +1 -0
  102. package/dist/index.d.ts +105 -22
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +40 -37
  105. package/dist/index.js.map +1 -1
  106. package/dist/types/financial.d.ts +14 -0
  107. package/dist/types/financial.d.ts.map +1 -0
  108. package/dist/types/financial.js +6 -0
  109. package/dist/types/financial.js.map +1 -0
  110. package/dist/vault/crypto.js +3 -3
  111. package/dist/vault/crypto.js.map +1 -1
  112. package/dist/vault/index.d.ts +28 -0
  113. package/dist/vault/index.d.ts.map +1 -1
  114. package/dist/vault/index.js +70 -0
  115. package/dist/vault/index.js.map +1 -1
  116. package/package.json +3 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyperliquid.js","sourceRoot":"","sources":["../../../../src/exchange/v2/adapters/hyperliquid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * OKX Exchange Adapter — Institutional v2
3
+ * Supports: spot, swap (USDT-M perpetuals), futures
4
+ * Auth: HMAC-SHA256 base64, per-request headers
5
+ * Features: market/limit/stop/TP/SL/trailing/bracket/OCO, leverage, margin mode
6
+ */
7
+ import { BaseExchangeAdapter } from './base';
8
+ import type { ExchangeId, MarketType, TickerInfo, SymbolInfo, OHLCVBar, OrderBook, FundingInfo, AccountSnapshot, PositionInfo, OrderResponse, RawOrderParams, ExchangeCredentials } from '../types';
9
+ export declare class OKXAdapter extends BaseExchangeAdapter {
10
+ readonly exchangeId: ExchangeId;
11
+ constructor(creds: ExchangeCredentials);
12
+ private authHeaders;
13
+ protected unwrapResponse<T>(json: unknown): T;
14
+ private get;
15
+ private post;
16
+ /** Determine trading mode from symbol: contains '-SWAP' → cross swap; has expiry → futures; else spot */
17
+ private tdMode;
18
+ private mapStatus;
19
+ private mapOrderResponse;
20
+ getTicker(symbol: string): Promise<TickerInfo>;
21
+ getSymbolInfo(symbol: string): Promise<SymbolInfo>;
22
+ getOHLCV(symbol: string, timeframe: string, limit?: number): Promise<OHLCVBar[]>;
23
+ getOrderBook(symbol: string, depth?: number): Promise<OrderBook>;
24
+ getFundingInfo(symbol: string): Promise<FundingInfo | null>;
25
+ listSymbols(marketType: MarketType): Promise<string[]>;
26
+ getAccount(): Promise<AccountSnapshot>;
27
+ getPositions(symbol?: string): Promise<PositionInfo[]>;
28
+ setLeverage(symbol: string, leverage: number, marginMode?: 'cross' | 'isolated'): Promise<void>;
29
+ placeOrder(params: RawOrderParams): Promise<OrderResponse>;
30
+ private placeRegularOrder;
31
+ private placeAlgoOrder;
32
+ cancelOrder(orderId: string, symbol: string): Promise<boolean>;
33
+ getOrderStatus(orderId: string, symbol: string): Promise<OrderResponse>;
34
+ getOpenOrders(symbol?: string): Promise<OrderResponse[]>;
35
+ getOrderHistory(query: import('../types').OrderHistoryQuery): Promise<import('../types').OrderHistoryResponse>;
36
+ getFills(query: import('../types').TradeHistoryQuery): Promise<import('../types').TradeHistoryResponse>;
37
+ }
38
+ //# sourceMappingURL=okx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"okx.d.ts","sourceRoot":"","sources":["../../../../src/exchange/v2/adapters/okx.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACN,mBAAmB,EASnB,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EACX,UAAU,EACV,UAAU,EAGV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,eAAe,EACf,YAAY,EACZ,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,MAAM,UAAU,CAAC;AAKlB,qBAAa,UAAW,SAAQ,mBAAmB;IAClD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAS;gBAE5B,KAAK,EAAE,mBAAmB;YAUxB,WAAW;cAqBN,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC;YAoBxC,GAAG;YAQH,IAAI;IAOlB,yGAAyG;IACzG,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,gBAAgB;IAuBlB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAc9C,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAsBlD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAgB7E,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,SAAS,CAAC;IAa5D,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAqB3D,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAUtD,UAAU,IAAI,OAAO,CAAC,eAAe,CAAC;IAiBtC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA2BtD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,OAAO,GAAG,UAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxG,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;YAUlD,iBAAiB;YA2BjB,cAAc;IAgEtB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAa9D,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAOvE,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAOxD,eAAe,CAAC,KAAK,EAAE,OAAO,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,UAAU,EAAE,oBAAoB,CAAC;IAmB9G,QAAQ,CAAC,KAAK,EAAE,OAAO,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,UAAU,EAAE,oBAAoB,CAAC;CA+B7G"}
@@ -0,0 +1,437 @@
1
+ "use strict";
2
+ /**
3
+ * OKX Exchange Adapter — Institutional v2
4
+ * Supports: spot, swap (USDT-M perpetuals), futures
5
+ * Auth: HMAC-SHA256 base64, per-request headers
6
+ * Features: market/limit/stop/TP/SL/trailing/bracket/OCO, leverage, margin mode
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.OKXAdapter = void 0;
10
+ const base_1 = require("./base");
11
+ const OKX_BASE = 'https://www.okx.com';
12
+ const OKX_TESTNET = 'https://www.okx.com'; // OKX uses same domain + header for demo
13
+ class OKXAdapter extends base_1.BaseExchangeAdapter {
14
+ exchangeId = 'okx';
15
+ constructor(creds) {
16
+ super({
17
+ credentials: creds,
18
+ baseUrl: OKX_BASE,
19
+ testnetUrl: OKX_TESTNET,
20
+ });
21
+ }
22
+ // ─── Auth Headers ────────────────────────────────────────────────────────
23
+ async authHeaders(method, path, body) {
24
+ const timestamp = new Date().toISOString();
25
+ const bodyStr = body ? JSON.stringify(body) : '';
26
+ const prehash = `${timestamp}${method}${path}${bodyStr}`;
27
+ const sign = await (0, base_1.hmacSha256Base64)(this.creds.apiSecret, prehash);
28
+ const headers = {
29
+ 'OK-ACCESS-KEY': this.creds.apiKey,
30
+ 'OK-ACCESS-SIGN': sign,
31
+ 'OK-ACCESS-TIMESTAMP': timestamp,
32
+ 'OK-ACCESS-PASSPHRASE': this.creds.passphrase ?? '',
33
+ 'Content-Type': 'application/json',
34
+ };
35
+ if (this.testnet)
36
+ headers['x-simulated-trading'] = '1';
37
+ return headers;
38
+ }
39
+ unwrapResponse(json) {
40
+ const obj = json;
41
+ if (obj?.code && obj.code !== '0') {
42
+ const msg = obj.msg
43
+ ? obj.msg
44
+ : `OKX API 错误 (code: ${obj.code})`;
45
+ // 限流错误:50102=请求太频繁, 50103=IP限流, 1015=Cloudflare CDN限流
46
+ if (['50102', '50103', '50011', '1015'].includes(String(obj.code))) {
47
+ throw new base_1.RateLimitError(`OKX 请求频率超限 (code: ${obj.code})。请降低 Bot 运行频率或等待片刻再试。`, 'okx', obj.code);
48
+ }
49
+ if (obj.code === '51001')
50
+ throw new base_1.InvalidSymbolError(msg, 'okx', obj.code);
51
+ if (obj.code === '54000')
52
+ throw new base_1.InsufficientFundsError(msg, 'okx', obj.code);
53
+ throw new base_1.ExchangeError(msg, 'okx', obj.code, json);
54
+ }
55
+ return (obj?.data ?? json);
56
+ }
57
+ async get(path, query) {
58
+ const qs = query && Object.keys(query).length > 0
59
+ ? '?' + Object.entries(query).filter(([, v]) => v !== undefined).map(([k, v]) => `${k}=${v}`).join('&')
60
+ : '';
61
+ const headers = await this.authHeaders('GET', path + qs);
62
+ return this.request({ method: 'GET', path, query, headers });
63
+ }
64
+ async post(path, body) {
65
+ const headers = await this.authHeaders('POST', path, body);
66
+ return this.request({ method: 'POST', path, body, headers });
67
+ }
68
+ // ─── Helpers ─────────────────────────────────────────────────────────────
69
+ /** Determine trading mode from symbol: contains '-SWAP' → cross swap; has expiry → futures; else spot */
70
+ tdMode(symbol, override) {
71
+ if (override)
72
+ return override;
73
+ if (symbol.includes('-SWAP') || /\d{6}$/.test(symbol))
74
+ return 'cross';
75
+ return 'cash';
76
+ }
77
+ mapStatus(raw) {
78
+ const m = {
79
+ live: 'open', partially_filled: 'partially_filled', filled: 'filled',
80
+ cancelled: 'cancelled', canceled: 'cancelled',
81
+ };
82
+ return m[raw.toLowerCase()] ?? this.normaliseStatus(raw);
83
+ }
84
+ mapOrderResponse(o) {
85
+ return {
86
+ orderId: o.ordId ?? o.clOrdId ?? '',
87
+ clientOrderId: o.clOrdId,
88
+ symbol: o.instId,
89
+ side: o.side ?? 'buy',
90
+ type: this.normaliseStatus(o.ordType) ?? 'limit',
91
+ quantity: parseFloat(o.sz ?? '0'),
92
+ price: o.px ? parseFloat(o.px) : undefined,
93
+ stopPrice: o.slTriggerPx ? parseFloat(o.slTriggerPx) : undefined,
94
+ status: this.mapStatus(o.state ?? o.sCode ?? ''),
95
+ filledQuantity: parseFloat(o.fillSz ?? o.accFillSz ?? '0'),
96
+ avgFillPrice: o.avgPx ? parseFloat(o.avgPx) : undefined,
97
+ fee: o.fee ? Math.abs(parseFloat(o.fee)) : undefined,
98
+ feeCurrency: o.feeCcy,
99
+ createdAt: parseInt(o.cTime ?? o.uTime ?? `${Date.now()}`),
100
+ updatedAt: o.uTime ? parseInt(o.uTime) : undefined,
101
+ raw: o,
102
+ };
103
+ }
104
+ // ─── Market Data ─────────────────────────────────────────────────────────
105
+ async getTicker(symbol) {
106
+ const data = await this.get('/api/v5/market/ticker', { instId: symbol });
107
+ const t = data[0] ?? {};
108
+ return {
109
+ symbol,
110
+ bid: parseFloat(t.bidPx ?? '0'),
111
+ ask: parseFloat(t.askPx ?? '0'),
112
+ last: parseFloat(t.last ?? '0'),
113
+ volume24h: parseFloat(t.vol24h ?? '0'),
114
+ openInterest: t.oi ? parseFloat(t.oi) : undefined,
115
+ markPrice: t.markPx ? parseFloat(t.markPx) : undefined,
116
+ };
117
+ }
118
+ async getSymbolInfo(symbol) {
119
+ const instType = symbol.includes('-SWAP') ? 'SWAP'
120
+ : /\d{6}$/.test(symbol) ? 'FUTURES' : 'SPOT';
121
+ const data = await this.get('/api/v5/public/instruments', {
122
+ instType, instId: symbol,
123
+ });
124
+ const i = data[0] ?? {};
125
+ return {
126
+ symbol,
127
+ base: i.baseCcy ?? symbol.split('-')[0],
128
+ quote: i.quoteCcy ?? 'USDT',
129
+ marketType: instType.toLowerCase(),
130
+ minQty: parseFloat(i.minSz ?? '0'),
131
+ maxQty: parseFloat(i.maxIcebergSz ?? '99999999'),
132
+ stepSize: parseFloat(i.lotSz ?? '0.001'),
133
+ tickSize: parseFloat(i.tickSz ?? '0.01'),
134
+ minNotional: parseFloat(i.minSz ?? '0') * parseFloat(i.tickSz ?? '1'),
135
+ maxLeverage: i.lever ? parseFloat(i.lever) : undefined,
136
+ settleCurrency: i.settleCcy,
137
+ };
138
+ }
139
+ async getOHLCV(symbol, timeframe, limit = 100) {
140
+ const bar = timeframe === '1d' ? '1D' : timeframe === '1w' ? '1W' : timeframe;
141
+ const data = await this.get('/api/v5/market/candles', {
142
+ instId: symbol, bar, limit,
143
+ });
144
+ return data.map(c => ({
145
+ timestamp: parseInt(c[0]),
146
+ open: parseFloat(c[1]),
147
+ high: parseFloat(c[2]),
148
+ low: parseFloat(c[3]),
149
+ close: parseFloat(c[4]),
150
+ volume: parseFloat(c[5]),
151
+ turnover: parseFloat(c[7] ?? '0'),
152
+ })).reverse();
153
+ }
154
+ async getOrderBook(symbol, depth = 20) {
155
+ const data = await this.get('/api/v5/market/books', {
156
+ instId: symbol, sz: depth,
157
+ });
158
+ const book = data[0] ?? { bids: [], asks: [], ts: `${Date.now()}` };
159
+ return {
160
+ symbol,
161
+ bids: book.bids.map(([p, q]) => ({ price: parseFloat(p), quantity: parseFloat(q) })),
162
+ asks: book.asks.map(([p, q]) => ({ price: parseFloat(p), quantity: parseFloat(q) })),
163
+ timestamp: parseInt(book.ts),
164
+ };
165
+ }
166
+ async getFundingInfo(symbol) {
167
+ if (!symbol.includes('-SWAP'))
168
+ return null;
169
+ try {
170
+ const [cur, hist] = await Promise.all([
171
+ this.get('/api/v5/public/funding-rate', { instId: symbol }),
172
+ this.get('/api/v5/public/funding-rate-history', { instId: symbol, limit: 7 }),
173
+ ]);
174
+ const c = cur[0] ?? {};
175
+ return {
176
+ symbol,
177
+ fundingRate: parseFloat(c.fundingRate ?? '0'),
178
+ nextFundingTime: parseInt(c.nextFundingTime ?? '0'),
179
+ openInterest: 0,
180
+ historyRates: hist.map(h => ({
181
+ rate: parseFloat(h.fundingRate ?? '0'),
182
+ timestamp: parseInt(h.fundingTime ?? '0'),
183
+ })),
184
+ };
185
+ }
186
+ catch {
187
+ return null;
188
+ }
189
+ }
190
+ async listSymbols(marketType) {
191
+ const typeMap = { spot: 'SPOT', futures: 'FUTURES', swap: 'SWAP', option: 'OPTION' };
192
+ const data = await this.get('/api/v5/public/instruments', {
193
+ instType: typeMap[marketType] ?? 'SPOT',
194
+ });
195
+ return data.map(i => i.instId);
196
+ }
197
+ // ─── Account ─────────────────────────────────────────────────────────────
198
+ async getAccount() {
199
+ const data = await this.get('/api/v5/account/balance');
200
+ const acc = (data[0] ?? {});
201
+ const details = acc.details ?? [];
202
+ return {
203
+ balances: details.map(d => ({
204
+ asset: d.ccy,
205
+ free: parseFloat(d.availBal ?? '0'),
206
+ locked: parseFloat(d.frozenBal ?? '0'),
207
+ total: parseFloat(d.eq ?? '0'),
208
+ })),
209
+ totalEquity: parseFloat(acc.totalEq ?? '0'),
210
+ availableMargin: parseFloat(acc.adjEq ?? '0'),
211
+ unrealizedPnl: parseFloat(acc.upl ?? '0'),
212
+ };
213
+ }
214
+ async getPositions(symbol) {
215
+ const query = {};
216
+ if (symbol)
217
+ query.instId = symbol;
218
+ const data = await this.get('/api/v5/account/positions', query);
219
+ return data
220
+ .filter(p => parseFloat(p.pos ?? '0') !== 0)
221
+ .map(p => ({
222
+ symbol: p.instId,
223
+ side: p.posSide === 'net'
224
+ ? (parseFloat(p.pos) > 0 ? 'long' : 'short')
225
+ : p.posSide,
226
+ size: Math.abs(parseFloat(p.pos ?? '0')),
227
+ entryPrice: parseFloat(p.avgPx ?? '0'),
228
+ markPrice: parseFloat(p.markPx ?? '0'),
229
+ notional: parseFloat(p.notionalUsd ?? '0'),
230
+ leverage: parseFloat(p.lever ?? '1'),
231
+ marginMode: p.mgnMode,
232
+ unrealizedPnl: parseFloat(p.upl ?? '0'),
233
+ realizedPnl: parseFloat(p.realizedPnl ?? '0'),
234
+ liquidationPrice: p.liqPx ? parseFloat(p.liqPx) : undefined,
235
+ margin: parseFloat(p.imr ?? p.margin ?? '0'),
236
+ openedAt: parseInt(p.cTime ?? `${Date.now()}`),
237
+ }));
238
+ }
239
+ // ─── Order Placement ──────────────────────────────────────────────────────
240
+ async setLeverage(symbol, leverage, marginMode = 'cross') {
241
+ const instType = symbol.includes('-SWAP') ? 'SWAP' : 'FUTURES';
242
+ await this.post('/api/v5/account/set-leverage', {
243
+ instId: symbol,
244
+ instType,
245
+ lever: leverage.toString(),
246
+ mgnMode: marginMode,
247
+ });
248
+ }
249
+ async placeOrder(params) {
250
+ const isAlgo = params.type === 'conditional' || params.type === 'algo'
251
+ || params.type === 'stop_market' || params.type === 'stop_limit'
252
+ || params.type === 'take_profit_market' || params.type === 'take_profit_limit'
253
+ || params.type === 'trailing_stop' || params.type === 'bracket' || params.type === 'oco';
254
+ if (isAlgo)
255
+ return this.placeAlgoOrder(params);
256
+ return this.placeRegularOrder(params);
257
+ }
258
+ async placeRegularOrder(params) {
259
+ const mode = this.tdMode(params.symbol, params.extra?.mgnMode);
260
+ const body = {
261
+ instId: params.symbol,
262
+ tdMode: mode,
263
+ side: params.side,
264
+ ordType: params.type === 'market' ? 'market' : 'limit',
265
+ sz: params.quantity?.toString(),
266
+ px: params.price?.toString(),
267
+ clOrdId: params.clientOrderId ?? (0, base_1.genClientOrderId)('okx'),
268
+ reduceOnly: params.reduceOnly ? 'true' : undefined,
269
+ tgtCcy: params.quoteQuantity ? 'quote_ccy' : undefined,
270
+ ...params.extra,
271
+ };
272
+ if (params.timeInForce) {
273
+ const tifMap = { GTC: 'gtc', IOC: 'ioc', FOK: 'fok', PO: 'post_only' };
274
+ body.ordType = tifMap[params.timeInForce] === 'post_only' ? 'post_only' : body.ordType;
275
+ }
276
+ const data = await this.post('/api/v5/trade/order', body);
277
+ const r = data[0] ?? {};
278
+ if (r.sCode && r.sCode !== '0')
279
+ throw new base_1.ExchangeError(r.sMsg ?? r.sCode, 'okx', r.sCode);
280
+ // Fetch full status
281
+ return this.getOrderStatus(r.ordId, params.symbol);
282
+ }
283
+ async placeAlgoOrder(params) {
284
+ const mode = this.tdMode(params.symbol);
285
+ const body = {
286
+ instId: params.symbol,
287
+ tdMode: mode,
288
+ side: params.side,
289
+ sz: params.quantity?.toString(),
290
+ algoClOrdId: params.clientOrderId ?? (0, base_1.genClientOrderId)('okxalgo'),
291
+ };
292
+ const t = params.type;
293
+ if (t === 'stop_market' || t === 'stop_limit') {
294
+ body.ordType = 'conditional';
295
+ body.slTriggerPx = params.stopPrice?.toString();
296
+ body.slOrdPx = t === 'stop_limit' ? params.price?.toString() : '-1'; // -1 = market
297
+ }
298
+ else if (t === 'take_profit_market' || t === 'take_profit_limit') {
299
+ body.ordType = 'conditional';
300
+ body.tpTriggerPx = params.stopPrice?.toString();
301
+ body.tpOrdPx = t === 'take_profit_limit' ? params.price?.toString() : '-1';
302
+ }
303
+ else if (t === 'trailing_stop') {
304
+ body.ordType = 'move_order_stop';
305
+ body.callbackRatio = params.extra?.callbackRate?.toString();
306
+ body.callbackSpread = params.extra?.callbackValue?.toString();
307
+ body.activePx = params.extra?.activationPrice?.toString();
308
+ }
309
+ else if (t === 'bracket') {
310
+ body.ordType = 'conditional';
311
+ body.tpTriggerPx = params.extra?.takeProfitPrice?.toString();
312
+ body.tpOrdPx = '-1';
313
+ body.slTriggerPx = params.extra?.stopLossPrice?.toString();
314
+ body.slOrdPx = '-1';
315
+ // Place entry separately if limit
316
+ if (params.extra?.entryType === 'limit' && params.price) {
317
+ const entry = await this.placeRegularOrder({ ...params, type: 'limit' });
318
+ body.attachAlgoOrds = [{ tpTriggerPx: body.tpTriggerPx, tpOrdPx: '-1', slTriggerPx: body.slTriggerPx, slOrdPx: '-1' }];
319
+ return entry;
320
+ }
321
+ }
322
+ else if (t === 'oco') {
323
+ body.ordType = 'oco';
324
+ body.tpTriggerPx = params.price?.toString();
325
+ body.tpOrdPx = params.price?.toString();
326
+ body.slTriggerPx = params.stopPrice?.toString();
327
+ body.slOrdPx = '-1';
328
+ }
329
+ const data = await this.post('/api/v5/trade/order-algo', body);
330
+ const r = data[0] ?? {};
331
+ if (r.sCode && r.sCode !== '0')
332
+ throw new base_1.ExchangeError(r.sMsg ?? r.sCode, 'okx', r.sCode);
333
+ return {
334
+ orderId: r.algoId ?? r.algoClOrdId ?? '',
335
+ clientOrderId: r.algoClOrdId,
336
+ symbol: params.symbol,
337
+ side: params.side,
338
+ type: params.type,
339
+ quantity: params.quantity ?? 0,
340
+ price: params.price,
341
+ stopPrice: params.stopPrice,
342
+ status: 'open',
343
+ filledQuantity: 0,
344
+ createdAt: Date.now(),
345
+ raw: r,
346
+ };
347
+ }
348
+ async cancelOrder(orderId, symbol) {
349
+ try {
350
+ await this.post('/api/v5/trade/cancel-order', { instId: symbol, ordId: orderId });
351
+ return true;
352
+ }
353
+ catch {
354
+ // Try algo cancel
355
+ try {
356
+ await this.post('/api/v5/trade/cancel-algos', { algoId: orderId, instId: symbol });
357
+ return true;
358
+ }
359
+ catch {
360
+ return false;
361
+ }
362
+ }
363
+ }
364
+ async getOrderStatus(orderId, symbol) {
365
+ const data = await this.get('/api/v5/trade/order', {
366
+ instId: symbol, ordId: orderId,
367
+ });
368
+ return this.mapOrderResponse(data[0] ?? {});
369
+ }
370
+ async getOpenOrders(symbol) {
371
+ const query = {};
372
+ if (symbol)
373
+ query.instId = symbol;
374
+ const data = await this.get('/api/v5/trade/orders-pending', query);
375
+ return data.map(o => this.mapOrderResponse(o));
376
+ }
377
+ async getOrderHistory(query) {
378
+ const q = {};
379
+ if (query.symbol) {
380
+ q.instId = query.symbol;
381
+ q.instType = query.symbol.includes('-SWAP') ? 'SWAP' : /\d{6}$/.test(query.symbol) ? 'FUTURES' : 'SPOT';
382
+ }
383
+ if (query.limit)
384
+ q.limit = String(query.limit);
385
+ if (query.startTime)
386
+ q.begin = String(query.startTime);
387
+ if (query.endTime)
388
+ q.end = String(query.endTime);
389
+ if (query.nextCursor)
390
+ q.after = query.nextCursor;
391
+ const data = await this.get('/api/v5/trade/orders-history', q);
392
+ const orders = data.map(o => this.mapOrderResponse(o));
393
+ return {
394
+ orders,
395
+ nextCursor: data.length > 0 ? data[data.length - 1].ordId : undefined,
396
+ hasMore: data.length >= (query.limit ?? 100),
397
+ };
398
+ }
399
+ async getFills(query) {
400
+ const q = {};
401
+ if (query.symbol) {
402
+ q.instId = query.symbol;
403
+ q.instType = query.symbol.includes('-SWAP') ? 'SWAP' : /\d{6}$/.test(query.symbol) ? 'FUTURES' : 'SPOT';
404
+ }
405
+ if (query.orderId)
406
+ q.ordId = query.orderId;
407
+ if (query.limit)
408
+ q.limit = String(query.limit);
409
+ if (query.startTime)
410
+ q.begin = String(query.startTime);
411
+ if (query.endTime)
412
+ q.end = String(query.endTime);
413
+ if (query.nextCursor)
414
+ q.after = query.nextCursor;
415
+ const data = await this.get('/api/v5/trade/fills', q);
416
+ const fills = data.map(f => ({
417
+ fillId: f.tradeId ?? f.fillId ?? '',
418
+ orderId: f.ordId ?? '',
419
+ symbol: f.instId ?? query.symbol ?? '',
420
+ side: f.side ?? 'buy',
421
+ quantity: parseFloat(f.fillSz ?? '0'),
422
+ price: parseFloat(f.fillPx ?? '0'),
423
+ fee: parseFloat(f.fee ?? '0'),
424
+ feeCurrency: f.feeCcy ?? '',
425
+ liquidity: (f.execType === 'M' ? 'maker' : 'taker'),
426
+ timestamp: parseInt(f.ts ?? `${Date.now()}`),
427
+ raw: f,
428
+ }));
429
+ return {
430
+ fills,
431
+ nextCursor: data.length > 0 ? data[data.length - 1].tradeId : undefined,
432
+ hasMore: data.length >= (query.limit ?? 100),
433
+ };
434
+ }
435
+ }
436
+ exports.OKXAdapter = OKXAdapter;
437
+ //# sourceMappingURL=okx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"okx.js","sourceRoot":"","sources":["../../../../src/exchange/v2/adapters/okx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Institutional Algorithm Execution Layer
3
+ * Provides: TWAP, VWAP, Iceberg, Trailing Stop, Bracket
4
+ * All algorithms are exchange-agnostic — they call the IExchangeAdapter interface.
5
+ */
6
+ import type { IExchangeAdapter } from '../adapters/base';
7
+ import type { OrderSide, AlgoOrderResult, TwapParams, VwapParams, IcebergParams } from '../types';
8
+ import type { Quantity, Pnl, Price } from '../../../types/financial';
9
+ export declare class TWAPExecutor {
10
+ private adapter;
11
+ constructor(adapter: IExchangeAdapter);
12
+ execute(params: TwapParams): Promise<AlgoOrderResult>;
13
+ }
14
+ export declare class VWAPExecutor {
15
+ private adapter;
16
+ constructor(adapter: IExchangeAdapter);
17
+ execute(params: VwapParams): Promise<AlgoOrderResult>;
18
+ }
19
+ export declare class IcebergExecutor {
20
+ private adapter;
21
+ constructor(adapter: IExchangeAdapter);
22
+ execute(params: IcebergParams): Promise<AlgoOrderResult>;
23
+ }
24
+ export interface TrailingStopState {
25
+ symbol: string;
26
+ side: OrderSide;
27
+ quantity: Quantity;
28
+ callbackRate: number;
29
+ activationPrice?: Price;
30
+ peakPrice: Price;
31
+ stopPrice: Price;
32
+ activated: boolean;
33
+ orderId?: string;
34
+ status: 'watching' | 'activated' | 'triggered' | 'cancelled';
35
+ }
36
+ export declare class TrailingStopMonitor {
37
+ private adapter;
38
+ constructor(adapter: IExchangeAdapter);
39
+ /**
40
+ * Monitors price and triggers a market order when trailing stop fires.
41
+ * Returns when the stop is triggered or cancelled.
42
+ * Poll interval: tickMs (default 1000ms)
43
+ */
44
+ monitor(params: {
45
+ symbol: string;
46
+ side: OrderSide;
47
+ quantity: Quantity;
48
+ callbackRate: number;
49
+ activationPrice?: Price;
50
+ tickMs?: number;
51
+ maxDurationMs?: number;
52
+ }): Promise<TrailingStopState>;
53
+ }
54
+ export interface BracketResult {
55
+ entryOrderId: string;
56
+ takeProfitOrderId?: string;
57
+ stopLossOrderId?: string;
58
+ status: 'open' | 'tp_hit' | 'sl_hit' | 'cancelled' | 'error';
59
+ pnl?: Pnl;
60
+ error?: string;
61
+ }
62
+ export declare class BracketOrchestrator {
63
+ private adapter;
64
+ constructor(adapter: IExchangeAdapter);
65
+ execute(params: {
66
+ symbol: string;
67
+ side: OrderSide;
68
+ quantity: Quantity;
69
+ entryType: 'market' | 'limit';
70
+ entryPrice?: Price;
71
+ takeProfitPrice: Price;
72
+ stopLossPrice: Price;
73
+ timeInForce?: string;
74
+ }): Promise<BracketResult>;
75
+ /** Monitor a bracket for completion (TP or SL hit), then cancel the other leg */
76
+ monitor(result: BracketResult, symbol: string, tickMs?: number, maxDurationMs?: number): Promise<BracketResult>;
77
+ }
78
+ //# sourceMappingURL=index.d.ts.map