@backtest-kit/cli 3.4.4 → 3.5.0
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 +46 -2
- package/build/index.mjs +40 -0
- package/package.json +13 -13
- package/types.d.ts +10 -0
package/build/index.cjs
CHANGED
|
@@ -13,7 +13,7 @@ var dotenv = require('dotenv');
|
|
|
13
13
|
var diKit = require('di-kit');
|
|
14
14
|
var ccxt = require('ccxt');
|
|
15
15
|
var util = require('util');
|
|
16
|
-
var
|
|
16
|
+
var BacktestKitUi = require('@backtest-kit/ui');
|
|
17
17
|
var QuickChart = require('quickchart-js');
|
|
18
18
|
var telegraf = require('telegraf');
|
|
19
19
|
var imageSize = require('image-size');
|
|
@@ -25,6 +25,10 @@ var jsdom = require('jsdom');
|
|
|
25
25
|
var Mustache = require('mustache');
|
|
26
26
|
var standalone = require('@babel/standalone');
|
|
27
27
|
var pluginUMD = require('@babel/plugin-transform-modules-umd');
|
|
28
|
+
var BacktestKitGraph = require('@backtest-kit/graph');
|
|
29
|
+
var BacktestKitOllama = require('@backtest-kit/ollama');
|
|
30
|
+
var BacktestKitPinets = require('@backtest-kit/pinets');
|
|
31
|
+
var BacktestKitSignals = require('@backtest-kit/signals');
|
|
28
32
|
|
|
29
33
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
30
34
|
function _interopNamespaceDefault(e) {
|
|
@@ -46,6 +50,11 @@ function _interopNamespaceDefault(e) {
|
|
|
46
50
|
|
|
47
51
|
var BacktestKit__namespace = /*#__PURE__*/_interopNamespaceDefault(BacktestKit);
|
|
48
52
|
var stackTrace__namespace = /*#__PURE__*/_interopNamespaceDefault(stackTrace);
|
|
53
|
+
var BacktestKitUi__namespace = /*#__PURE__*/_interopNamespaceDefault(BacktestKitUi);
|
|
54
|
+
var BacktestKitGraph__namespace = /*#__PURE__*/_interopNamespaceDefault(BacktestKitGraph);
|
|
55
|
+
var BacktestKitOllama__namespace = /*#__PURE__*/_interopNamespaceDefault(BacktestKitOllama);
|
|
56
|
+
var BacktestKitPinets__namespace = /*#__PURE__*/_interopNamespaceDefault(BacktestKitPinets);
|
|
57
|
+
var BacktestKitSignals__namespace = /*#__PURE__*/_interopNamespaceDefault(BacktestKitSignals);
|
|
49
58
|
|
|
50
59
|
/**
|
|
51
60
|
* Fix for `Attempted to assign to readonly property (at redactToken)`
|
|
@@ -379,6 +388,21 @@ const ADD_EXCHANGE_FN = (self) => {
|
|
|
379
388
|
})),
|
|
380
389
|
};
|
|
381
390
|
},
|
|
391
|
+
getAggregatedTrades: async (symbol, from, to) => {
|
|
392
|
+
const exchange = await getExchange();
|
|
393
|
+
const response = await exchange.publicGetAggTrades({
|
|
394
|
+
symbol,
|
|
395
|
+
startTime: from.getTime(),
|
|
396
|
+
endTime: to.getTime(),
|
|
397
|
+
});
|
|
398
|
+
return response.map((t) => ({
|
|
399
|
+
id: String(t.a),
|
|
400
|
+
price: parseFloat(t.p),
|
|
401
|
+
qty: parseFloat(t.q),
|
|
402
|
+
timestamp: t.T,
|
|
403
|
+
isBuyerMaker: t.m,
|
|
404
|
+
}));
|
|
405
|
+
}
|
|
382
406
|
});
|
|
383
407
|
};
|
|
384
408
|
class ExchangeSchemaService {
|
|
@@ -833,7 +857,7 @@ class FrontendProviderService {
|
|
|
833
857
|
this.enable = functoolsKit.singleshot(() => {
|
|
834
858
|
this.loggerService.log("frontendProviderService enable");
|
|
835
859
|
const { CC_WWWROOT_HOST, CC_WWWROOT_PORT } = getEnv();
|
|
836
|
-
const unServer =
|
|
860
|
+
const unServer = BacktestKitUi.serve(CC_WWWROOT_HOST, CC_WWWROOT_PORT);
|
|
837
861
|
return () => {
|
|
838
862
|
unServer();
|
|
839
863
|
this.enable.clear();
|
|
@@ -1907,6 +1931,16 @@ const require$1 = new Proxy(baseRequire, {
|
|
|
1907
1931
|
return globalThis.BacktestKit;
|
|
1908
1932
|
if (id === "@backtest-kit/cli")
|
|
1909
1933
|
return globalThis.BacktestKitCli;
|
|
1934
|
+
if (id === "@backtest-kit/ui")
|
|
1935
|
+
return globalThis.BacktestKitUi;
|
|
1936
|
+
if (id === "@backtest-kit/graph")
|
|
1937
|
+
return globalThis.BacktestKitGraph;
|
|
1938
|
+
if (id === "@backtest-kit/ollama")
|
|
1939
|
+
return globalThis.BacktestKitOllama;
|
|
1940
|
+
if (id === "@backtest-kit/pinets")
|
|
1941
|
+
return globalThis.BacktestKitPinets;
|
|
1942
|
+
if (id === "@backtest-kit/signals")
|
|
1943
|
+
return globalThis.BacktestKitSignals;
|
|
1910
1944
|
return baseRequire(id);
|
|
1911
1945
|
},
|
|
1912
1946
|
});
|
|
@@ -1932,6 +1966,11 @@ class BabelService {
|
|
|
1932
1966
|
{
|
|
1933
1967
|
globals: {
|
|
1934
1968
|
"backtest-kit": "BacktestKit",
|
|
1969
|
+
"@backtest-kit/ui": "BacktestKitUi",
|
|
1970
|
+
"@backtest-kit/graph": "BacktestKitGraph",
|
|
1971
|
+
"@backtest-kit/ollama": "BacktestKitOllama",
|
|
1972
|
+
"@backtest-kit/pinets": "BacktestKitPinets",
|
|
1973
|
+
"@backtest-kit/signals": "BacktestKitSignals",
|
|
1935
1974
|
},
|
|
1936
1975
|
moduleId: "Executor",
|
|
1937
1976
|
},
|
|
@@ -1966,6 +2005,11 @@ class BabelService {
|
|
|
1966
2005
|
}
|
|
1967
2006
|
globalThis.BacktestKit = BacktestKit__namespace;
|
|
1968
2007
|
globalThis.BacktestKitCli = BacktestKitCli;
|
|
2008
|
+
globalThis.BacktestKitUi = BacktestKitUi__namespace;
|
|
2009
|
+
globalThis.BacktestKitGraph = BacktestKitGraph__namespace;
|
|
2010
|
+
globalThis.BacktestKitOllama = BacktestKitOllama__namespace;
|
|
2011
|
+
globalThis.BacktestKitPinets = BacktestKitPinets__namespace;
|
|
2012
|
+
globalThis.BacktestKitSignals = BacktestKitSignals__namespace;
|
|
1969
2013
|
|
|
1970
2014
|
{
|
|
1971
2015
|
provide(TYPES.quickchartApiService, () => new QuickchartApiService());
|
package/build/index.mjs
CHANGED
|
@@ -12,6 +12,7 @@ import dotenv from 'dotenv';
|
|
|
12
12
|
import { createActivator } from 'di-kit';
|
|
13
13
|
import ccxt from 'ccxt';
|
|
14
14
|
import { parseArgs } from 'util';
|
|
15
|
+
import * as BacktestKitUi from '@backtest-kit/ui';
|
|
15
16
|
import { serve } from '@backtest-kit/ui';
|
|
16
17
|
import QuickChart from 'quickchart-js';
|
|
17
18
|
import { Telegraf, Input } from 'telegraf';
|
|
@@ -24,6 +25,10 @@ import { JSDOM } from 'jsdom';
|
|
|
24
25
|
import Mustache from 'mustache';
|
|
25
26
|
import { registerPlugin, transform } from '@babel/standalone';
|
|
26
27
|
import pluginUMD from '@babel/plugin-transform-modules-umd';
|
|
28
|
+
import * as BacktestKitGraph from '@backtest-kit/graph';
|
|
29
|
+
import * as BacktestKitOllama from '@backtest-kit/ollama';
|
|
30
|
+
import * as BacktestKitPinets from '@backtest-kit/pinets';
|
|
31
|
+
import * as BacktestKitSignals from '@backtest-kit/signals';
|
|
27
32
|
|
|
28
33
|
/**
|
|
29
34
|
* Fix for `Attempted to assign to readonly property (at redactToken)`
|
|
@@ -357,6 +362,21 @@ const ADD_EXCHANGE_FN = (self) => {
|
|
|
357
362
|
})),
|
|
358
363
|
};
|
|
359
364
|
},
|
|
365
|
+
getAggregatedTrades: async (symbol, from, to) => {
|
|
366
|
+
const exchange = await getExchange();
|
|
367
|
+
const response = await exchange.publicGetAggTrades({
|
|
368
|
+
symbol,
|
|
369
|
+
startTime: from.getTime(),
|
|
370
|
+
endTime: to.getTime(),
|
|
371
|
+
});
|
|
372
|
+
return response.map((t) => ({
|
|
373
|
+
id: String(t.a),
|
|
374
|
+
price: parseFloat(t.p),
|
|
375
|
+
qty: parseFloat(t.q),
|
|
376
|
+
timestamp: t.T,
|
|
377
|
+
isBuyerMaker: t.m,
|
|
378
|
+
}));
|
|
379
|
+
}
|
|
360
380
|
});
|
|
361
381
|
};
|
|
362
382
|
class ExchangeSchemaService {
|
|
@@ -1885,6 +1905,16 @@ const require = new Proxy(baseRequire, {
|
|
|
1885
1905
|
return globalThis.BacktestKit;
|
|
1886
1906
|
if (id === "@backtest-kit/cli")
|
|
1887
1907
|
return globalThis.BacktestKitCli;
|
|
1908
|
+
if (id === "@backtest-kit/ui")
|
|
1909
|
+
return globalThis.BacktestKitUi;
|
|
1910
|
+
if (id === "@backtest-kit/graph")
|
|
1911
|
+
return globalThis.BacktestKitGraph;
|
|
1912
|
+
if (id === "@backtest-kit/ollama")
|
|
1913
|
+
return globalThis.BacktestKitOllama;
|
|
1914
|
+
if (id === "@backtest-kit/pinets")
|
|
1915
|
+
return globalThis.BacktestKitPinets;
|
|
1916
|
+
if (id === "@backtest-kit/signals")
|
|
1917
|
+
return globalThis.BacktestKitSignals;
|
|
1888
1918
|
return baseRequire(id);
|
|
1889
1919
|
},
|
|
1890
1920
|
});
|
|
@@ -1910,6 +1940,11 @@ class BabelService {
|
|
|
1910
1940
|
{
|
|
1911
1941
|
globals: {
|
|
1912
1942
|
"backtest-kit": "BacktestKit",
|
|
1943
|
+
"@backtest-kit/ui": "BacktestKitUi",
|
|
1944
|
+
"@backtest-kit/graph": "BacktestKitGraph",
|
|
1945
|
+
"@backtest-kit/ollama": "BacktestKitOllama",
|
|
1946
|
+
"@backtest-kit/pinets": "BacktestKitPinets",
|
|
1947
|
+
"@backtest-kit/signals": "BacktestKitSignals",
|
|
1913
1948
|
},
|
|
1914
1949
|
moduleId: "Executor",
|
|
1915
1950
|
},
|
|
@@ -1944,6 +1979,11 @@ class BabelService {
|
|
|
1944
1979
|
}
|
|
1945
1980
|
globalThis.BacktestKit = BacktestKit;
|
|
1946
1981
|
globalThis.BacktestKitCli = BacktestKitCli;
|
|
1982
|
+
globalThis.BacktestKitUi = BacktestKitUi;
|
|
1983
|
+
globalThis.BacktestKitGraph = BacktestKitGraph;
|
|
1984
|
+
globalThis.BacktestKitOllama = BacktestKitOllama;
|
|
1985
|
+
globalThis.BacktestKitPinets = BacktestKitPinets;
|
|
1986
|
+
globalThis.BacktestKitSignals = BacktestKitSignals;
|
|
1947
1987
|
|
|
1948
1988
|
{
|
|
1949
1989
|
provide(TYPES.quickchartApiService, () => new QuickchartApiService());
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backtest-kit/cli",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0",
|
|
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.0",
|
|
64
|
+
"@backtest-kit/graph": "3.5.0",
|
|
65
|
+
"@backtest-kit/ollama": "3.5.0",
|
|
66
|
+
"@backtest-kit/pinets": "3.5.0",
|
|
67
|
+
"@backtest-kit/signals": "3.5.0",
|
|
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.0",
|
|
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.0",
|
|
91
|
+
"@backtest-kit/graph": "^3.5.0",
|
|
92
|
+
"@backtest-kit/ollama": "^3.5.0",
|
|
93
|
+
"@backtest-kit/pinets": "^3.5.0",
|
|
94
|
+
"@backtest-kit/signals": "^3.5.0",
|
|
95
|
+
"backtest-kit": "^3.5.0",
|
|
96
96
|
"markdown-it": "^14.1.1",
|
|
97
97
|
"typescript": "^5.0.0"
|
|
98
98
|
},
|
package/types.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import * as functools_kit from 'functools-kit';
|
|
2
2
|
import * as BacktestKit from 'backtest-kit';
|
|
3
3
|
import { CandleInterval, TrailingTakeCommit, TrailingStopCommit, BreakevenCommit, PartialProfitCommit, PartialLossCommit, IStrategyTickResultScheduled, IStrategyTickResultCancelled, IStrategyTickResultOpened, IStrategyTickResultClosed, RiskContract, AverageBuyCommit } from 'backtest-kit';
|
|
4
|
+
import * as BacktestKitUi from '@backtest-kit/ui';
|
|
5
|
+
import * as BacktestKitGraph from '@backtest-kit/graph';
|
|
6
|
+
import * as BacktestKitOllama from '@backtest-kit/ollama';
|
|
7
|
+
import * as BacktestKitPinets from '@backtest-kit/pinets';
|
|
8
|
+
import * as BacktestKitSignals from '@backtest-kit/signals';
|
|
4
9
|
import { Input } from 'telegraf';
|
|
5
10
|
|
|
6
11
|
interface ILogger {
|
|
@@ -91,6 +96,11 @@ declare global {
|
|
|
91
96
|
interface Window {
|
|
92
97
|
BacktestKit: typeof BacktestKit;
|
|
93
98
|
BacktestKitCli: typeof BacktestKitCli;
|
|
99
|
+
BacktestKitUi: typeof BacktestKitUi;
|
|
100
|
+
BacktestKitGraph: typeof BacktestKitGraph;
|
|
101
|
+
BacktestKitOllama: typeof BacktestKitOllama;
|
|
102
|
+
BacktestKitPinets: typeof BacktestKitPinets;
|
|
103
|
+
BacktestKitSignals: typeof BacktestKitSignals;
|
|
94
104
|
}
|
|
95
105
|
}
|
|
96
106
|
declare class BabelService {
|