@tradejs/cli 2.0.6 → 2.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.
- package/dist/cli.js +2448 -1374
- package/dist/lib/aiExport.js +1822 -0
- package/dist/lib/binanceMarketContextBackfill.js +97 -88
- package/dist/lib/binanceMarketData.js +6 -3
- package/dist/lib/marketContextPrepare.js +97 -88
- package/dist/lib/runEnvironment.js +48 -18
- package/dist/lib/runtimeLineage.js +255 -0
- package/dist/lib/runtimeParityDetails.js +24 -1
- package/dist/lib/runtimeSignalsLoader.js +19 -0
- package/dist/lib/runtimeSignalsStorage.js +3 -0
- package/dist/lib/runtimeTradeSync.js +40 -11
- package/dist/lib/timeWindow.js +44 -16
- package/dist/scripts/aiExport.js +200 -88
- package/dist/scripts/backtest.js +170 -107
- package/dist/scripts/binanceBreadthUniversesUpdate.js +120 -0
- package/dist/scripts/binanceMarketIngest.js +32 -33
- package/dist/scripts/mlExport.js +5 -2
- package/dist/scripts/replay.js +988 -218
- package/dist/scripts/replayRunner.js +988 -218
- package/dist/scripts/replayRuntimeEvidence.js +3 -1
- package/dist/scripts/resolveExportStrategy.js +7 -2
- package/dist/scripts/runtimeParity.js +141 -104
- package/dist/scripts/signals.js +381 -107
- package/dist/scripts/signalsDaemon.js +381 -107
- package/dist/scripts/signalsSummary.js +40 -11
- package/package.json +10 -9
|
@@ -205,6 +205,18 @@ var consumeClosedPnlMatch = (buckets, trade) => {
|
|
|
205
205
|
const [row] = rows.splice(matchIndex, 1);
|
|
206
206
|
return row ?? null;
|
|
207
207
|
};
|
|
208
|
+
var isRuntimeTradeInConnectorScope = (trade, connector) => {
|
|
209
|
+
if (trade.deploymentId && trade.deploymentId !== connector.deploymentId) {
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
if (trade.accountId && trade.accountId !== connector.accountId) {
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
if (trade.universe && connector.universe && trade.universe !== connector.universe) {
|
|
216
|
+
return false;
|
|
217
|
+
}
|
|
218
|
+
return true;
|
|
219
|
+
};
|
|
208
220
|
var syncRuntimeTrades = async ({
|
|
209
221
|
userName,
|
|
210
222
|
connector,
|
|
@@ -228,16 +240,23 @@ var syncRuntimeTrades = async ({
|
|
|
228
240
|
const openPositionsBySymbol = new Map(
|
|
229
241
|
openPositions.map((position) => [position.symbol, position])
|
|
230
242
|
);
|
|
231
|
-
const
|
|
232
|
-
const
|
|
243
|
+
const activeOrderIdByKey = /* @__PURE__ */ new Map();
|
|
244
|
+
const activeTradeKeys = [
|
|
245
|
+
...new Set(
|
|
246
|
+
trades.filter((trade) => isRuntimeTradeInConnectorScope(trade, connector)).map(
|
|
247
|
+
(trade) => import_redis2.redisKeys.runtimeActiveTrade(
|
|
248
|
+
userName,
|
|
249
|
+
trade.symbol,
|
|
250
|
+
trade.deploymentId ?? trade.accountId
|
|
251
|
+
)
|
|
252
|
+
)
|
|
253
|
+
)
|
|
254
|
+
];
|
|
233
255
|
await Promise.all(
|
|
234
|
-
|
|
235
|
-
const activeRef = await (0, import_redis2.getData)(
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
);
|
|
239
|
-
activeOrderIdBySymbol.set(
|
|
240
|
-
symbol,
|
|
256
|
+
activeTradeKeys.map(async (key) => {
|
|
257
|
+
const activeRef = await (0, import_redis2.getData)(key, null);
|
|
258
|
+
activeOrderIdByKey.set(
|
|
259
|
+
key,
|
|
241
260
|
typeof activeRef?.orderId === "string" ? activeRef.orderId : null
|
|
242
261
|
);
|
|
243
262
|
})
|
|
@@ -256,12 +275,21 @@ var syncRuntimeTrades = async ({
|
|
|
256
275
|
}
|
|
257
276
|
const syncedTrades = [];
|
|
258
277
|
for (const trade of trades) {
|
|
278
|
+
if (!isRuntimeTradeInConnectorScope(trade, connector)) {
|
|
279
|
+
syncedTrades.push(trade);
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
259
282
|
if (trade.status !== "active" && !isRuntimeTradeSyncFallbackClose(trade)) {
|
|
260
283
|
syncedTrades.push(trade);
|
|
261
284
|
continue;
|
|
262
285
|
}
|
|
286
|
+
const activeTradeKey = import_redis2.redisKeys.runtimeActiveTrade(
|
|
287
|
+
userName,
|
|
288
|
+
trade.symbol,
|
|
289
|
+
trade.deploymentId ?? trade.accountId
|
|
290
|
+
);
|
|
263
291
|
const openPosition = openPositionsBySymbol.get(trade.symbol);
|
|
264
|
-
const activeOrderId =
|
|
292
|
+
const activeOrderId = activeOrderIdByKey.get(activeTradeKey);
|
|
265
293
|
const isCurrentActiveTrade = activeOrderId === trade.orderId;
|
|
266
294
|
if (trade.status === "active" && !openPositionsReliable) {
|
|
267
295
|
syncedTrades.push({
|
|
@@ -300,6 +328,7 @@ var syncRuntimeTrades = async ({
|
|
|
300
328
|
}
|
|
301
329
|
const matchedClosedPnl = consumeClosedPnlMatch(closedPnlBuckets, trade);
|
|
302
330
|
if (!matchedClosedPnl) {
|
|
331
|
+
syncedTrades.push(trade);
|
|
303
332
|
continue;
|
|
304
333
|
}
|
|
305
334
|
const nextTrade = {
|
|
@@ -332,7 +361,7 @@ var syncRuntimeTrades = async ({
|
|
|
332
361
|
nextTrade,
|
|
333
362
|
{ expire: import_constants.TTL_1M }
|
|
334
363
|
),
|
|
335
|
-
...isCurrentActiveTrade ? [(0, import_redis2.delKey)(
|
|
364
|
+
...isCurrentActiveTrade ? [(0, import_redis2.delKey)(activeTradeKey)] : []
|
|
336
365
|
]);
|
|
337
366
|
syncedTrades.push(nextTrade);
|
|
338
367
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tradejs/cli",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.7",
|
|
4
4
|
"description": "Official CLI for the TradeJS TypeScript framework: infra setup, backtests, signals, bots, and ML workflows.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tradejs",
|
|
@@ -29,14 +29,14 @@
|
|
|
29
29
|
"tradejs": "dist/cli.js"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@tradejs/base": "^2.0.
|
|
33
|
-
"@tradejs/connectors": "^2.0.
|
|
34
|
-
"@tradejs/core": "^2.0.
|
|
35
|
-
"@tradejs/indicators": "^2.0.
|
|
36
|
-
"@tradejs/infra": "^2.0.
|
|
37
|
-
"@tradejs/node": "^2.0.
|
|
38
|
-
"@tradejs/strategies": "^2.0.
|
|
39
|
-
"@tradejs/types": "^2.0.
|
|
32
|
+
"@tradejs/base": "^2.0.7",
|
|
33
|
+
"@tradejs/connectors": "^2.0.7",
|
|
34
|
+
"@tradejs/core": "^2.0.7",
|
|
35
|
+
"@tradejs/indicators": "^2.0.7",
|
|
36
|
+
"@tradejs/infra": "^2.0.7",
|
|
37
|
+
"@tradejs/node": "^2.0.7",
|
|
38
|
+
"@tradejs/strategies": "^2.0.7",
|
|
39
|
+
"@tradejs/types": "^2.0.7",
|
|
40
40
|
"args": "^5.0.3",
|
|
41
41
|
"bcryptjs": "^2.4.3",
|
|
42
42
|
"chalk": "4.1.2",
|
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
"ai-pocket-search": "yarn run run:dist ai-pocket-search",
|
|
71
71
|
"ai-train": "yarn run run:dist ai-train",
|
|
72
72
|
"backtest": "yarn run run:dist backtest",
|
|
73
|
+
"breadth:universes:update": "yarn run run:dist binance:breadth-universes:update",
|
|
73
74
|
"bot": "yarn run run:dist bot",
|
|
74
75
|
"candles:migrate-provider": "yarn run run:dist candles:migrate-provider",
|
|
75
76
|
"signals": "yarn run run:dist signals",
|