@backtest-kit/cli 3.4.5 → 3.5.1
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/build/index.cjs +17 -0
- package/build/index.mjs +18 -1
- package/package.json +14 -14
package/build/index.cjs
CHANGED
|
@@ -106,6 +106,7 @@ BacktestKit.setConfig({
|
|
|
106
106
|
CC_MAX_NOTIFICATIONS: 5000,
|
|
107
107
|
CC_MAX_SIGNALS: 750,
|
|
108
108
|
});
|
|
109
|
+
BacktestKit.Log.useJsonl();
|
|
109
110
|
|
|
110
111
|
const ERROR_HANDLER_INSTALLED = Symbol.for("error-handler-installed");
|
|
111
112
|
function dumpStackTrace() {
|
|
@@ -306,6 +307,7 @@ class ResolveService {
|
|
|
306
307
|
{
|
|
307
308
|
const cwd = process.cwd();
|
|
308
309
|
process.chdir(moduleRoot);
|
|
310
|
+
cwd !== moduleRoot && BacktestKit.Log.useJsonl();
|
|
309
311
|
dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
|
|
310
312
|
dotenv.config({ path: path.join(moduleRoot, '.env'), override: true, quiet: true });
|
|
311
313
|
await LOAD_ENTRY_FN(absolutePath, this);
|
|
@@ -388,6 +390,21 @@ const ADD_EXCHANGE_FN = (self) => {
|
|
|
388
390
|
})),
|
|
389
391
|
};
|
|
390
392
|
},
|
|
393
|
+
getAggregatedTrades: async (symbol, from, to) => {
|
|
394
|
+
const exchange = await getExchange();
|
|
395
|
+
const response = await exchange.publicGetAggTrades({
|
|
396
|
+
symbol,
|
|
397
|
+
startTime: from.getTime(),
|
|
398
|
+
endTime: to.getTime(),
|
|
399
|
+
});
|
|
400
|
+
return response.map((t) => ({
|
|
401
|
+
id: String(t.a),
|
|
402
|
+
price: parseFloat(t.p),
|
|
403
|
+
qty: parseFloat(t.q),
|
|
404
|
+
timestamp: t.T,
|
|
405
|
+
isBuyerMaker: t.m,
|
|
406
|
+
}));
|
|
407
|
+
}
|
|
391
408
|
});
|
|
392
409
|
};
|
|
393
410
|
class ExchangeSchemaService {
|
package/build/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import * as BacktestKit from 'backtest-kit';
|
|
3
|
-
import { Storage, Notification, Markdown, Report, StorageLive, StorageBacktest, NotificationLive, NotificationBacktest, setConfig, listExchangeSchema, addExchangeSchema, roundTicks, listFrameSchema, addFrameSchema, listenDoneLive, listenDoneBacktest, listenSignal, listStrategySchema, overrideExchangeSchema, Backtest, Live, getCandles, checkCandles, warmCandles, listenRisk, listenStrategyCommit } from 'backtest-kit';
|
|
3
|
+
import { Storage, Notification, Markdown, Report, StorageLive, StorageBacktest, NotificationLive, NotificationBacktest, setConfig, Log, listExchangeSchema, addExchangeSchema, roundTicks, listFrameSchema, addFrameSchema, listenDoneLive, listenDoneBacktest, listenSignal, listStrategySchema, overrideExchangeSchema, Backtest, Live, getCandles, checkCandles, warmCandles, listenRisk, listenStrategyCommit } from 'backtest-kit';
|
|
4
4
|
import { getErrorMessage, errorData, singleshot, str, BehaviorSubject, compose, execpool, queued, sleep, randomString, createAwaiter, TIMEOUT_SYMBOL, typo, retry, memoize, trycatch } from 'functools-kit';
|
|
5
5
|
import fs, { constants } from 'fs';
|
|
6
6
|
import * as stackTrace from 'stack-trace';
|
|
@@ -80,6 +80,7 @@ setConfig({
|
|
|
80
80
|
CC_MAX_NOTIFICATIONS: 5000,
|
|
81
81
|
CC_MAX_SIGNALS: 750,
|
|
82
82
|
});
|
|
83
|
+
Log.useJsonl();
|
|
83
84
|
|
|
84
85
|
const ERROR_HANDLER_INSTALLED = Symbol.for("error-handler-installed");
|
|
85
86
|
function dumpStackTrace() {
|
|
@@ -280,6 +281,7 @@ class ResolveService {
|
|
|
280
281
|
{
|
|
281
282
|
const cwd = process.cwd();
|
|
282
283
|
process.chdir(moduleRoot);
|
|
284
|
+
cwd !== moduleRoot && Log.useJsonl();
|
|
283
285
|
dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
|
|
284
286
|
dotenv.config({ path: path.join(moduleRoot, '.env'), override: true, quiet: true });
|
|
285
287
|
await LOAD_ENTRY_FN(absolutePath, this);
|
|
@@ -362,6 +364,21 @@ const ADD_EXCHANGE_FN = (self) => {
|
|
|
362
364
|
})),
|
|
363
365
|
};
|
|
364
366
|
},
|
|
367
|
+
getAggregatedTrades: async (symbol, from, to) => {
|
|
368
|
+
const exchange = await getExchange();
|
|
369
|
+
const response = await exchange.publicGetAggTrades({
|
|
370
|
+
symbol,
|
|
371
|
+
startTime: from.getTime(),
|
|
372
|
+
endTime: to.getTime(),
|
|
373
|
+
});
|
|
374
|
+
return response.map((t) => ({
|
|
375
|
+
id: String(t.a),
|
|
376
|
+
price: parseFloat(t.p),
|
|
377
|
+
qty: parseFloat(t.q),
|
|
378
|
+
timestamp: t.T,
|
|
379
|
+
isBuyerMaker: t.m,
|
|
380
|
+
}));
|
|
381
|
+
}
|
|
365
382
|
});
|
|
366
383
|
};
|
|
367
384
|
class ExchangeSchemaService {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backtest-kit/cli",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.1",
|
|
4
4
|
"description": "Zero-boilerplate CLI runner for backtest-kit strategies. Run backtests, paper trading, and live bots with candle cache warming, web dashboard, and Telegram notifications — no setup code required.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Petr Tripolsky",
|
|
@@ -60,11 +60,11 @@
|
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@babel/plugin-transform-modules-umd": "7.27.1",
|
|
62
62
|
"@babel/standalone": "7.29.1",
|
|
63
|
-
"@backtest-kit/ui": "3.
|
|
64
|
-
"@backtest-kit/graph": "3.
|
|
65
|
-
"@backtest-kit/ollama": "3.
|
|
66
|
-
"@backtest-kit/pinets": "3.
|
|
67
|
-
"@backtest-kit/signals": "3.
|
|
63
|
+
"@backtest-kit/ui": "3.5.1",
|
|
64
|
+
"@backtest-kit/graph": "3.5.1",
|
|
65
|
+
"@backtest-kit/ollama": "3.5.1",
|
|
66
|
+
"@backtest-kit/pinets": "3.5.1",
|
|
67
|
+
"@backtest-kit/signals": "3.5.1",
|
|
68
68
|
"@rollup/plugin-replace": "6.0.3",
|
|
69
69
|
"@rollup/plugin-typescript": "11.1.6",
|
|
70
70
|
"@types/image-size": "0.7.0",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"@types/mustache": "4.2.6",
|
|
73
73
|
"@types/node": "22.9.0",
|
|
74
74
|
"@types/stack-trace": "0.0.33",
|
|
75
|
-
"backtest-kit": "3.
|
|
75
|
+
"backtest-kit": "3.5.1",
|
|
76
76
|
"glob": "11.0.1",
|
|
77
77
|
"markdown-it": "14.1.1",
|
|
78
78
|
"rimraf": "6.0.1",
|
|
@@ -87,12 +87,12 @@
|
|
|
87
87
|
"peerDependencies": {
|
|
88
88
|
"@babel/plugin-transform-modules-umd": "^7.27.1",
|
|
89
89
|
"@babel/standalone": "^7.29.1",
|
|
90
|
-
"@backtest-kit/ui": "^3.
|
|
91
|
-
"@backtest-kit/graph": "^3.
|
|
92
|
-
"@backtest-kit/ollama": "^3.
|
|
93
|
-
"@backtest-kit/pinets": "^3.
|
|
94
|
-
"@backtest-kit/signals": "^3.
|
|
95
|
-
"backtest-kit": "^3.
|
|
90
|
+
"@backtest-kit/ui": "^3.5.1",
|
|
91
|
+
"@backtest-kit/graph": "^3.5.1",
|
|
92
|
+
"@backtest-kit/ollama": "^3.5.1",
|
|
93
|
+
"@backtest-kit/pinets": "^3.5.1",
|
|
94
|
+
"@backtest-kit/signals": "^3.5.1",
|
|
95
|
+
"backtest-kit": "^3.5.1",
|
|
96
96
|
"markdown-it": "^14.1.1",
|
|
97
97
|
"typescript": "^5.0.0"
|
|
98
98
|
},
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
"di-scoped": "1.0.21",
|
|
103
103
|
"dotenv": "17.3.1",
|
|
104
104
|
"functools-kit": "1.0.95",
|
|
105
|
-
"get-moment-stamp": "1.1.
|
|
105
|
+
"get-moment-stamp": "1.1.2",
|
|
106
106
|
"image-size": "1.1.1",
|
|
107
107
|
"jsdom": "26.1.0",
|
|
108
108
|
"markdownlint": "0.38.0",
|