@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 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.4.5",
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.4.0",
64
- "@backtest-kit/graph": "3.4.0",
65
- "@backtest-kit/ollama": "3.4.1",
66
- "@backtest-kit/pinets": "3.4.0",
67
- "@backtest-kit/signals": "3.4.1",
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.4.0",
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.4.0",
91
- "@backtest-kit/graph": "^3.4.0",
92
- "@backtest-kit/ollama": "^3.4.1",
93
- "@backtest-kit/pinets": "^3.4.0",
94
- "@backtest-kit/signals": "^3.4.1",
95
- "backtest-kit": "^3.4.0",
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.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",