@backtest-kit/cli 6.4.0 → 6.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 +14 -4
- package/build/index.mjs +15 -5
- package/package.json +13 -13
- package/template/project/package.mustache +5 -5
- package/types.d.ts +297 -297
package/build/index.cjs
CHANGED
|
@@ -772,7 +772,14 @@ class WalkerMainService {
|
|
|
772
772
|
this.run = functoolsKit.singleshot(async (payload) => {
|
|
773
773
|
this.loggerService.log("walkerMainService run", { payload });
|
|
774
774
|
const strategyMap = new Map();
|
|
775
|
+
const cwd = process.cwd();
|
|
775
776
|
for (const entryPoint of payload.entryPoints) {
|
|
777
|
+
const absolutePath = path.resolve(entryPoint);
|
|
778
|
+
const moduleRoot = path.dirname(absolutePath);
|
|
779
|
+
{
|
|
780
|
+
dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
|
|
781
|
+
dotenv.config({ path: path.join(moduleRoot, '.env'), override: true, quiet: true });
|
|
782
|
+
}
|
|
776
783
|
await this.resolveService.attachStrategy(entryPoint);
|
|
777
784
|
for (const { strategyName } of await BacktestKit.listStrategySchema()) {
|
|
778
785
|
if (strategyMap.has(strategyName)) {
|
|
@@ -780,6 +787,7 @@ class WalkerMainService {
|
|
|
780
787
|
}
|
|
781
788
|
strategyMap.set(strategyName, entryPoint);
|
|
782
789
|
}
|
|
790
|
+
BacktestKit.Cache.clear();
|
|
783
791
|
}
|
|
784
792
|
await this.moduleConnectionService.loadModule("./walker.module");
|
|
785
793
|
{
|
|
@@ -816,7 +824,6 @@ class WalkerMainService {
|
|
|
816
824
|
if (!frameName) {
|
|
817
825
|
throw new Error("Frame name is required");
|
|
818
826
|
}
|
|
819
|
-
const cwd = process.cwd();
|
|
820
827
|
const self = this;
|
|
821
828
|
const callbacks = {
|
|
822
829
|
async onStrategyStart(strategyName) {
|
|
@@ -2452,6 +2459,9 @@ class SetupUtils {
|
|
|
2452
2459
|
BacktestKit.NotificationLive.clear();
|
|
2453
2460
|
BacktestKit.NotificationBacktest.clear();
|
|
2454
2461
|
}
|
|
2462
|
+
{
|
|
2463
|
+
BacktestKit.Cache.clear();
|
|
2464
|
+
}
|
|
2455
2465
|
};
|
|
2456
2466
|
}
|
|
2457
2467
|
}
|
|
@@ -2505,7 +2515,7 @@ const main$b = async () => {
|
|
|
2505
2515
|
if (MODES.some((mode) => values[mode])) {
|
|
2506
2516
|
return;
|
|
2507
2517
|
}
|
|
2508
|
-
process.stdout.write(`@backtest-kit/cli ${"6.
|
|
2518
|
+
process.stdout.write(`@backtest-kit/cli ${"6.5.0"}\n`);
|
|
2509
2519
|
process.stdout.write("\n");
|
|
2510
2520
|
process.stdout.write(`Run with --help to see available commands.\n`);
|
|
2511
2521
|
process.stdout.write("\n");
|
|
@@ -3073,7 +3083,7 @@ const main$1 = async () => {
|
|
|
3073
3083
|
if (!values.help) {
|
|
3074
3084
|
return;
|
|
3075
3085
|
}
|
|
3076
|
-
process.stdout.write(`@backtest-kit/cli ${"6.
|
|
3086
|
+
process.stdout.write(`@backtest-kit/cli ${"6.5.0"}\n\n`);
|
|
3077
3087
|
process.stdout.write(HELP_TEXT);
|
|
3078
3088
|
process.exit(0);
|
|
3079
3089
|
};
|
|
@@ -3087,7 +3097,7 @@ const main = async () => {
|
|
|
3087
3097
|
if (!values.version) {
|
|
3088
3098
|
return;
|
|
3089
3099
|
}
|
|
3090
|
-
process.stdout.write(`@backtest-kit/cli ${"6.
|
|
3100
|
+
process.stdout.write(`@backtest-kit/cli ${"6.5.0"}\n`);
|
|
3091
3101
|
process.exit(0);
|
|
3092
3102
|
};
|
|
3093
3103
|
main();
|
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 { Log, listExchangeSchema, addExchangeSchema, roundTicks, listFrameSchema, addFrameSchema, listenDoneLive, listenDoneBacktest, shutdown, listenSignal, listStrategySchema, overrideExchangeSchema, Backtest, alignToInterval, addWalkerSchema, overrideWalkerSchema, Walker, listenDoneWalker, Live, getCandles, checkCandles, warmCandles, listenRisk, listenStrategyCommit, listenSync, Storage, Notification, Markdown, Report, Dump, Memory, StorageLive, StorageBacktest, NotificationLive, NotificationBacktest, PersistSignalAdapter, PersistRiskAdapter, PersistScheduleAdapter, PersistPartialAdapter, PersistBreakevenAdapter, PersistCandleAdapter, PersistStorageAdapter, PersistNotificationAdapter, PersistLogAdapter, PersistMeasureAdapter, PersistMemoryAdapter, setConfig, Exchange } from 'backtest-kit';
|
|
3
|
+
import { Log, listExchangeSchema, addExchangeSchema, roundTicks, listFrameSchema, addFrameSchema, listenDoneLive, listenDoneBacktest, shutdown, listenSignal, listStrategySchema, overrideExchangeSchema, Backtest, Cache, alignToInterval, addWalkerSchema, overrideWalkerSchema, Walker, listenDoneWalker, Live, getCandles, checkCandles, warmCandles, listenRisk, listenStrategyCommit, listenSync, Storage, Notification, Markdown, Report, Dump, Memory, StorageLive, StorageBacktest, NotificationLive, NotificationBacktest, PersistSignalAdapter, PersistRiskAdapter, PersistScheduleAdapter, PersistPartialAdapter, PersistBreakevenAdapter, PersistCandleAdapter, PersistStorageAdapter, PersistNotificationAdapter, PersistLogAdapter, PersistMeasureAdapter, PersistMemoryAdapter, setConfig, Exchange } from 'backtest-kit';
|
|
4
4
|
import { getErrorMessage, errorData, singleshot, str, BehaviorSubject, compose, createAwaiter, execpool, queued, sleep, randomString, TIMEOUT_SYMBOL, typo, retry, trycatch, memoize } from 'functools-kit';
|
|
5
5
|
import fs, { constants } from 'fs';
|
|
6
6
|
import * as stackTrace from 'stack-trace';
|
|
@@ -747,7 +747,14 @@ class WalkerMainService {
|
|
|
747
747
|
this.run = singleshot(async (payload) => {
|
|
748
748
|
this.loggerService.log("walkerMainService run", { payload });
|
|
749
749
|
const strategyMap = new Map();
|
|
750
|
+
const cwd = process.cwd();
|
|
750
751
|
for (const entryPoint of payload.entryPoints) {
|
|
752
|
+
const absolutePath = path.resolve(entryPoint);
|
|
753
|
+
const moduleRoot = path.dirname(absolutePath);
|
|
754
|
+
{
|
|
755
|
+
dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
|
|
756
|
+
dotenv.config({ path: path.join(moduleRoot, '.env'), override: true, quiet: true });
|
|
757
|
+
}
|
|
751
758
|
await this.resolveService.attachStrategy(entryPoint);
|
|
752
759
|
for (const { strategyName } of await listStrategySchema()) {
|
|
753
760
|
if (strategyMap.has(strategyName)) {
|
|
@@ -755,6 +762,7 @@ class WalkerMainService {
|
|
|
755
762
|
}
|
|
756
763
|
strategyMap.set(strategyName, entryPoint);
|
|
757
764
|
}
|
|
765
|
+
Cache.clear();
|
|
758
766
|
}
|
|
759
767
|
await this.moduleConnectionService.loadModule("./walker.module");
|
|
760
768
|
{
|
|
@@ -791,7 +799,6 @@ class WalkerMainService {
|
|
|
791
799
|
if (!frameName) {
|
|
792
800
|
throw new Error("Frame name is required");
|
|
793
801
|
}
|
|
794
|
-
const cwd = process.cwd();
|
|
795
802
|
const self = this;
|
|
796
803
|
const callbacks = {
|
|
797
804
|
async onStrategyStart(strategyName) {
|
|
@@ -2423,6 +2430,9 @@ class SetupUtils {
|
|
|
2423
2430
|
NotificationLive.clear();
|
|
2424
2431
|
NotificationBacktest.clear();
|
|
2425
2432
|
}
|
|
2433
|
+
{
|
|
2434
|
+
Cache.clear();
|
|
2435
|
+
}
|
|
2426
2436
|
};
|
|
2427
2437
|
}
|
|
2428
2438
|
}
|
|
@@ -2476,7 +2486,7 @@ const main$b = async () => {
|
|
|
2476
2486
|
if (MODES.some((mode) => values[mode])) {
|
|
2477
2487
|
return;
|
|
2478
2488
|
}
|
|
2479
|
-
process.stdout.write(`@backtest-kit/cli ${"6.
|
|
2489
|
+
process.stdout.write(`@backtest-kit/cli ${"6.5.0"}\n`);
|
|
2480
2490
|
process.stdout.write("\n");
|
|
2481
2491
|
process.stdout.write(`Run with --help to see available commands.\n`);
|
|
2482
2492
|
process.stdout.write("\n");
|
|
@@ -3044,7 +3054,7 @@ const main$1 = async () => {
|
|
|
3044
3054
|
if (!values.help) {
|
|
3045
3055
|
return;
|
|
3046
3056
|
}
|
|
3047
|
-
process.stdout.write(`@backtest-kit/cli ${"6.
|
|
3057
|
+
process.stdout.write(`@backtest-kit/cli ${"6.5.0"}\n\n`);
|
|
3048
3058
|
process.stdout.write(HELP_TEXT);
|
|
3049
3059
|
process.exit(0);
|
|
3050
3060
|
};
|
|
@@ -3058,7 +3068,7 @@ const main = async () => {
|
|
|
3058
3068
|
if (!values.version) {
|
|
3059
3069
|
return;
|
|
3060
3070
|
}
|
|
3061
|
-
process.stdout.write(`@backtest-kit/cli ${"6.
|
|
3071
|
+
process.stdout.write(`@backtest-kit/cli ${"6.5.0"}\n`);
|
|
3062
3072
|
process.exit(0);
|
|
3063
3073
|
};
|
|
3064
3074
|
main();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backtest-kit/cli",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.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",
|
|
@@ -61,11 +61,11 @@
|
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@babel/plugin-transform-modules-umd": "7.27.1",
|
|
63
63
|
"@babel/standalone": "7.29.1",
|
|
64
|
-
"@backtest-kit/ui": "6.
|
|
65
|
-
"@backtest-kit/graph": "6.
|
|
66
|
-
"@backtest-kit/ollama": "6.
|
|
67
|
-
"@backtest-kit/pinets": "6.
|
|
68
|
-
"@backtest-kit/signals": "6.
|
|
64
|
+
"@backtest-kit/ui": "6.5.0",
|
|
65
|
+
"@backtest-kit/graph": "6.5.0",
|
|
66
|
+
"@backtest-kit/ollama": "6.5.0",
|
|
67
|
+
"@backtest-kit/pinets": "6.5.0",
|
|
68
|
+
"@backtest-kit/signals": "6.5.0",
|
|
69
69
|
"@rollup/plugin-replace": "6.0.3",
|
|
70
70
|
"@rollup/plugin-typescript": "11.1.6",
|
|
71
71
|
"@types/image-size": "0.7.0",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"@types/mustache": "4.2.6",
|
|
74
74
|
"@types/node": "22.9.0",
|
|
75
75
|
"@types/stack-trace": "0.0.33",
|
|
76
|
-
"backtest-kit": "6.
|
|
76
|
+
"backtest-kit": "6.5.0",
|
|
77
77
|
"glob": "11.0.1",
|
|
78
78
|
"markdown-it": "14.1.1",
|
|
79
79
|
"rimraf": "6.0.1",
|
|
@@ -88,12 +88,12 @@
|
|
|
88
88
|
"peerDependencies": {
|
|
89
89
|
"@babel/plugin-transform-modules-umd": "^7.27.1",
|
|
90
90
|
"@babel/standalone": "^7.29.1",
|
|
91
|
-
"@backtest-kit/ui": "^6.
|
|
92
|
-
"@backtest-kit/graph": "^6.
|
|
93
|
-
"@backtest-kit/ollama": "^6.
|
|
94
|
-
"@backtest-kit/pinets": "^6.
|
|
95
|
-
"@backtest-kit/signals": "^6.
|
|
96
|
-
"backtest-kit": "^6.
|
|
91
|
+
"@backtest-kit/ui": "^6.5.0",
|
|
92
|
+
"@backtest-kit/graph": "^6.5.0",
|
|
93
|
+
"@backtest-kit/ollama": "^6.5.0",
|
|
94
|
+
"@backtest-kit/pinets": "^6.5.0",
|
|
95
|
+
"@backtest-kit/signals": "^6.5.0",
|
|
96
|
+
"backtest-kit": "^6.5.0",
|
|
97
97
|
"markdown-it": "^14.1.1",
|
|
98
98
|
"typescript": "^5.0.0"
|
|
99
99
|
},
|
|
@@ -12,12 +12,12 @@
|
|
|
12
12
|
"license": "ISC",
|
|
13
13
|
"type": "commonjs",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@backtest-kit/cli": "^6.
|
|
16
|
-
"@backtest-kit/graph": "^6.
|
|
17
|
-
"@backtest-kit/pinets": "^6.
|
|
18
|
-
"@backtest-kit/ui": "^6.
|
|
15
|
+
"@backtest-kit/cli": "^6.5.0",
|
|
16
|
+
"@backtest-kit/graph": "^6.5.0",
|
|
17
|
+
"@backtest-kit/pinets": "^6.5.0",
|
|
18
|
+
"@backtest-kit/ui": "^6.5.0",
|
|
19
19
|
"agent-swarm-kit": "^1.3.0",
|
|
20
|
-
"backtest-kit": "^6.
|
|
20
|
+
"backtest-kit": "^6.5.0",
|
|
21
21
|
"functools-kit": "^1.0.95",
|
|
22
22
|
"garch": "^1.2.3",
|
|
23
23
|
"get-moment-stamp": "^1.1.2",
|
package/types.d.ts
CHANGED
|
@@ -1,297 +1,297 @@
|
|
|
1
|
-
import * as functools_kit from 'functools-kit';
|
|
2
|
-
import { CandleInterval, TrailingTakeCommit, TrailingStopCommit, BreakevenCommit, PartialProfitCommit, PartialLossCommit, IStrategyTickResultScheduled, IStrategyTickResultCancelled, IStrategyTickResultOpened, IStrategyTickResultClosed, RiskContract, AverageBuyCommit, SignalOpenContract, SignalCloseContract, CancelScheduledCommit, ClosePendingCommit } from 'backtest-kit';
|
|
3
|
-
import { Input } from 'telegraf';
|
|
4
|
-
|
|
5
|
-
interface ILogger {
|
|
6
|
-
log(topic: string, ...args: any[]): void;
|
|
7
|
-
debug(topic: string, ...args: any[]): void;
|
|
8
|
-
info(topic: string, ...args: any[]): void;
|
|
9
|
-
warn(topic: string, ...args: any[]): void;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
declare class LoggerService implements ILogger {
|
|
13
|
-
private _commonLogger;
|
|
14
|
-
log: (topic: string, ...args: any[]) => Promise<void>;
|
|
15
|
-
debug: (topic: string, ...args: any[]) => Promise<void>;
|
|
16
|
-
info: (topic: string, ...args: any[]) => Promise<void>;
|
|
17
|
-
warn: (topic: string, ...args: any[]) => Promise<void>;
|
|
18
|
-
setLogger: (logger: ILogger) => void;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
declare class PaperMainService {
|
|
22
|
-
private loggerService;
|
|
23
|
-
private resolveService;
|
|
24
|
-
private exchangeSchemaService;
|
|
25
|
-
private symbolSchemaService;
|
|
26
|
-
private frontendProviderService;
|
|
27
|
-
private telegramProviderService;
|
|
28
|
-
private moduleConnectionService;
|
|
29
|
-
run: ((payload: {
|
|
30
|
-
entryPoint: string;
|
|
31
|
-
symbol: string;
|
|
32
|
-
strategy: string;
|
|
33
|
-
exchange: string;
|
|
34
|
-
verbose: boolean;
|
|
35
|
-
}) => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
36
|
-
connect: (() => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
declare class LiveMainService {
|
|
40
|
-
private loggerService;
|
|
41
|
-
private resolveService;
|
|
42
|
-
private exchangeSchemaService;
|
|
43
|
-
private symbolSchemaService;
|
|
44
|
-
private frontendProviderService;
|
|
45
|
-
private telegramProviderService;
|
|
46
|
-
private moduleConnectionService;
|
|
47
|
-
run: ((payload: {
|
|
48
|
-
entryPoint: string;
|
|
49
|
-
symbol: string;
|
|
50
|
-
strategy: string;
|
|
51
|
-
exchange: string;
|
|
52
|
-
verbose: boolean;
|
|
53
|
-
}) => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
54
|
-
connect: (() => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
declare class BacktestMainService {
|
|
58
|
-
private loggerService;
|
|
59
|
-
private resolveService;
|
|
60
|
-
private exchangeSchemaService;
|
|
61
|
-
private frameSchemaService;
|
|
62
|
-
private symbolSchemaService;
|
|
63
|
-
private cacheLogicService;
|
|
64
|
-
private frontendProviderService;
|
|
65
|
-
private telegramProviderService;
|
|
66
|
-
private moduleConnectionService;
|
|
67
|
-
run: ((payload: {
|
|
68
|
-
entryPoint: string;
|
|
69
|
-
symbol: string;
|
|
70
|
-
strategy: string;
|
|
71
|
-
exchange: string;
|
|
72
|
-
frame: string;
|
|
73
|
-
cacheInterval: string[];
|
|
74
|
-
verbose: boolean;
|
|
75
|
-
noCache: boolean;
|
|
76
|
-
}) => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
77
|
-
connect: (() => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
declare class WalkerMainService {
|
|
81
|
-
private loggerService;
|
|
82
|
-
private resolveService;
|
|
83
|
-
private exchangeSchemaService;
|
|
84
|
-
private symbolSchemaService;
|
|
85
|
-
private cacheLogicService;
|
|
86
|
-
private moduleConnectionService;
|
|
87
|
-
run: ((payload: {
|
|
88
|
-
entryPoints: string[];
|
|
89
|
-
symbol: string;
|
|
90
|
-
output: string;
|
|
91
|
-
cacheInterval: CandleInterval[];
|
|
92
|
-
json: boolean;
|
|
93
|
-
markdown: boolean;
|
|
94
|
-
verbose: boolean;
|
|
95
|
-
noCache: boolean;
|
|
96
|
-
}) => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
97
|
-
connect: (() => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
declare class ExchangeSchemaService {
|
|
101
|
-
readonly loggerService: LoggerService;
|
|
102
|
-
addSchema: (() => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
declare class FrameSchemaService {
|
|
106
|
-
readonly loggerService: LoggerService;
|
|
107
|
-
addSchema: (() => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
declare class LoaderService {
|
|
111
|
-
private readonly babelService;
|
|
112
|
-
private readonly loggerService;
|
|
113
|
-
private getInstance;
|
|
114
|
-
import: (filePath: string, basePath?: string) => any;
|
|
115
|
-
check: (filePath: string, basePath?: string) => Promise<boolean>;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
declare class ResolveService {
|
|
119
|
-
readonly loggerService: LoggerService;
|
|
120
|
-
readonly loaderService: LoaderService;
|
|
121
|
-
readonly DEFAULT_TEMPLATE_DIR: string;
|
|
122
|
-
readonly DEFAULT_MODULES_DIR: string;
|
|
123
|
-
readonly OVERRIDE_TEMPLATE_DIR: string;
|
|
124
|
-
readonly OVERRIDE_MODULES_DIR: string;
|
|
125
|
-
getIsLaunched: () => boolean;
|
|
126
|
-
attachPine: (pinePath: string) => Promise<string>;
|
|
127
|
-
attachStrategy: (jsPath: string) => Promise<void>;
|
|
128
|
-
attachJavascript: (jsPath: string) => Promise<void>;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
declare class ErrorService {
|
|
132
|
-
handleGlobalError: (error: Error) => Promise<void>;
|
|
133
|
-
private _listenForError;
|
|
134
|
-
protected init: (() => void) & functools_kit.ISingleshotClearable;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
declare class SymbolSchemaService {
|
|
138
|
-
readonly loggerService: LoggerService;
|
|
139
|
-
addSchema: (() => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
declare class FrontendProviderService {
|
|
143
|
-
private readonly loggerService;
|
|
144
|
-
enable: (() => () => void) & functools_kit.ISingleshotClearable;
|
|
145
|
-
disable: () => void;
|
|
146
|
-
connect: (() => Promise<() => void>) & functools_kit.ISingleshotClearable;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
declare class TelegramProviderService {
|
|
150
|
-
private readonly loggerService;
|
|
151
|
-
private readonly telegramLogicService;
|
|
152
|
-
enable: (() => () => void) & functools_kit.ISingleshotClearable;
|
|
153
|
-
disable: () => void;
|
|
154
|
-
connect: (() => Promise<() => void>) & functools_kit.ISingleshotClearable;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
declare class CacheLogicService {
|
|
158
|
-
private readonly loggerService;
|
|
159
|
-
execute: (intervalList: CandleInterval[], dto: {
|
|
160
|
-
symbol: string;
|
|
161
|
-
frameName: string;
|
|
162
|
-
exchangeName: string;
|
|
163
|
-
}) => Promise<void>;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
type InputFile = ReturnType<typeof Input.fromReadableStream>;
|
|
167
|
-
type Image = string | InputFile;
|
|
168
|
-
declare class TelegramApiService {
|
|
169
|
-
publish: (channel: string, msg: string, images?: Image[]) => Promise<"Message scheduled for publication" | "Message published successfully">;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
declare class QuickchartApiService {
|
|
173
|
-
readonly loggerService: LoggerService;
|
|
174
|
-
getChart: (symbol: string, interval: string) => Promise<Buffer<ArrayBufferLike>>;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
declare class TelegramWebService {
|
|
178
|
-
private readonly loggerService;
|
|
179
|
-
private readonly telegramApiService;
|
|
180
|
-
private readonly quickchartApiService;
|
|
181
|
-
publishNotify: (dto: {
|
|
182
|
-
symbol: string;
|
|
183
|
-
markdown: string;
|
|
184
|
-
}) => Promise<void>;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
declare class TelegramLogicService {
|
|
188
|
-
private readonly loggerService;
|
|
189
|
-
private readonly telegramTemplateService;
|
|
190
|
-
private readonly telegramWebService;
|
|
191
|
-
private notifyTrailingTake;
|
|
192
|
-
private notifyTrailingStop;
|
|
193
|
-
private notifyBreakeven;
|
|
194
|
-
private notifyPartialProfit;
|
|
195
|
-
private notifyPartialLoss;
|
|
196
|
-
private notifyScheduled;
|
|
197
|
-
private notifyCancelled;
|
|
198
|
-
private notifyOpened;
|
|
199
|
-
private notifyClosed;
|
|
200
|
-
private notifyRisk;
|
|
201
|
-
private notifyAverageBuy;
|
|
202
|
-
private notifySignalOpen;
|
|
203
|
-
private notifySignalClose;
|
|
204
|
-
private notifyCancelScheduled;
|
|
205
|
-
private notifyClosePending;
|
|
206
|
-
connect: (() => () => void) & functools_kit.ISingleshotClearable;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
declare class TelegramTemplateService {
|
|
210
|
-
readonly loggerService: LoggerService;
|
|
211
|
-
readonly resolveService: ResolveService;
|
|
212
|
-
getTrailingTakeMarkdown: (event: TrailingTakeCommit) => Promise<string>;
|
|
213
|
-
getTrailingStopMarkdown: (event: TrailingStopCommit) => Promise<string>;
|
|
214
|
-
getBreakevenMarkdown: (event: BreakevenCommit) => Promise<string>;
|
|
215
|
-
getPartialProfitMarkdown: (event: PartialProfitCommit) => Promise<string>;
|
|
216
|
-
getPartialLossMarkdown: (event: PartialLossCommit) => Promise<string>;
|
|
217
|
-
getScheduledMarkdown: (event: IStrategyTickResultScheduled) => Promise<string>;
|
|
218
|
-
getCancelledMarkdown: (event: IStrategyTickResultCancelled) => Promise<string>;
|
|
219
|
-
getOpenedMarkdown: (event: IStrategyTickResultOpened) => Promise<string>;
|
|
220
|
-
getClosedMarkdown: (event: IStrategyTickResultClosed) => Promise<string>;
|
|
221
|
-
getRiskMarkdown: (event: RiskContract) => Promise<string>;
|
|
222
|
-
getAverageBuyMarkdown: (event: AverageBuyCommit) => Promise<string>;
|
|
223
|
-
getSignalOpenMarkdown: (event: SignalOpenContract) => Promise<string>;
|
|
224
|
-
getSignalCloseMarkdown: (event: SignalCloseContract) => Promise<string>;
|
|
225
|
-
getCancelScheduledMarkdown: (event: CancelScheduledCommit) => Promise<string>;
|
|
226
|
-
getClosePendingMarkdown: (event: ClosePendingCommit) => Promise<string>;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
declare class ModuleConnectionService {
|
|
230
|
-
readonly loggerService: LoggerService;
|
|
231
|
-
readonly resolveService: ResolveService;
|
|
232
|
-
readonly loaderService: LoaderService;
|
|
233
|
-
loadModule: (fileName: string) => Promise<boolean>;
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
interface IBabel {
|
|
237
|
-
transpile(code: string): string;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
declare class BabelService implements IBabel {
|
|
241
|
-
readonly loggerService: LoggerService;
|
|
242
|
-
transpile: (code: string) => any;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
declare const cli: {
|
|
246
|
-
telegramTemplateService: TelegramTemplateService;
|
|
247
|
-
telegramWebService: TelegramWebService;
|
|
248
|
-
frontendProviderService: FrontendProviderService;
|
|
249
|
-
telegramProviderService: TelegramProviderService;
|
|
250
|
-
exchangeSchemaService: ExchangeSchemaService;
|
|
251
|
-
symbolSchemaService: SymbolSchemaService;
|
|
252
|
-
frameSchemaService: FrameSchemaService;
|
|
253
|
-
cacheLogicService: CacheLogicService;
|
|
254
|
-
telegramLogicService: TelegramLogicService;
|
|
255
|
-
backtestMainService: BacktestMainService;
|
|
256
|
-
walkerMainService: WalkerMainService;
|
|
257
|
-
paperMainService: PaperMainService;
|
|
258
|
-
liveMainService: LiveMainService;
|
|
259
|
-
moduleConnectionService: ModuleConnectionService;
|
|
260
|
-
errorService: ErrorService;
|
|
261
|
-
loggerService: LoggerService;
|
|
262
|
-
resolveService: ResolveService;
|
|
263
|
-
loaderService: LoaderService;
|
|
264
|
-
babelService: BabelService;
|
|
265
|
-
telegramApiService: TelegramApiService;
|
|
266
|
-
quickchartApiService: QuickchartApiService;
|
|
267
|
-
};
|
|
268
|
-
|
|
269
|
-
declare class SetupUtils {
|
|
270
|
-
enable: (() => void) & functools_kit.ISingleshotClearable;
|
|
271
|
-
clear: () => void;
|
|
272
|
-
}
|
|
273
|
-
declare const Setup: SetupUtils;
|
|
274
|
-
|
|
275
|
-
interface ILoader {
|
|
276
|
-
import(filePath: string): any;
|
|
277
|
-
check(filePath: string): boolean;
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
declare enum ExchangeName {
|
|
281
|
-
DefaultExchange = "default_exchange"
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
declare enum FrameName {
|
|
285
|
-
DefaultFrame = "default_frame"
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
declare function setLogger(logger: ILogger): void;
|
|
289
|
-
|
|
290
|
-
type PayloadBacktest = Parameters<typeof cli.backtestMainService.run>[0];
|
|
291
|
-
type PayloadPaper = Parameters<typeof cli.paperMainService.run>[0];
|
|
292
|
-
type PayloadLive = Parameters<typeof cli.liveMainService.run>[0];
|
|
293
|
-
type Mode = "backtest" | "live" | "paper";
|
|
294
|
-
type Args = Partial<PayloadBacktest> | Partial<PayloadPaper> | Partial<PayloadLive>;
|
|
295
|
-
declare function run(mode: Mode, args: Args): Promise<void>;
|
|
296
|
-
|
|
297
|
-
export { ExchangeName, FrameName, type IBabel, type ILoader, type ILogger, Setup, cli, run, setLogger };
|
|
1
|
+
import * as functools_kit from 'functools-kit';
|
|
2
|
+
import { CandleInterval, TrailingTakeCommit, TrailingStopCommit, BreakevenCommit, PartialProfitCommit, PartialLossCommit, IStrategyTickResultScheduled, IStrategyTickResultCancelled, IStrategyTickResultOpened, IStrategyTickResultClosed, RiskContract, AverageBuyCommit, SignalOpenContract, SignalCloseContract, CancelScheduledCommit, ClosePendingCommit } from 'backtest-kit';
|
|
3
|
+
import { Input } from 'telegraf';
|
|
4
|
+
|
|
5
|
+
interface ILogger {
|
|
6
|
+
log(topic: string, ...args: any[]): void;
|
|
7
|
+
debug(topic: string, ...args: any[]): void;
|
|
8
|
+
info(topic: string, ...args: any[]): void;
|
|
9
|
+
warn(topic: string, ...args: any[]): void;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
declare class LoggerService implements ILogger {
|
|
13
|
+
private _commonLogger;
|
|
14
|
+
log: (topic: string, ...args: any[]) => Promise<void>;
|
|
15
|
+
debug: (topic: string, ...args: any[]) => Promise<void>;
|
|
16
|
+
info: (topic: string, ...args: any[]) => Promise<void>;
|
|
17
|
+
warn: (topic: string, ...args: any[]) => Promise<void>;
|
|
18
|
+
setLogger: (logger: ILogger) => void;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
declare class PaperMainService {
|
|
22
|
+
private loggerService;
|
|
23
|
+
private resolveService;
|
|
24
|
+
private exchangeSchemaService;
|
|
25
|
+
private symbolSchemaService;
|
|
26
|
+
private frontendProviderService;
|
|
27
|
+
private telegramProviderService;
|
|
28
|
+
private moduleConnectionService;
|
|
29
|
+
run: ((payload: {
|
|
30
|
+
entryPoint: string;
|
|
31
|
+
symbol: string;
|
|
32
|
+
strategy: string;
|
|
33
|
+
exchange: string;
|
|
34
|
+
verbose: boolean;
|
|
35
|
+
}) => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
36
|
+
connect: (() => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
declare class LiveMainService {
|
|
40
|
+
private loggerService;
|
|
41
|
+
private resolveService;
|
|
42
|
+
private exchangeSchemaService;
|
|
43
|
+
private symbolSchemaService;
|
|
44
|
+
private frontendProviderService;
|
|
45
|
+
private telegramProviderService;
|
|
46
|
+
private moduleConnectionService;
|
|
47
|
+
run: ((payload: {
|
|
48
|
+
entryPoint: string;
|
|
49
|
+
symbol: string;
|
|
50
|
+
strategy: string;
|
|
51
|
+
exchange: string;
|
|
52
|
+
verbose: boolean;
|
|
53
|
+
}) => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
54
|
+
connect: (() => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
declare class BacktestMainService {
|
|
58
|
+
private loggerService;
|
|
59
|
+
private resolveService;
|
|
60
|
+
private exchangeSchemaService;
|
|
61
|
+
private frameSchemaService;
|
|
62
|
+
private symbolSchemaService;
|
|
63
|
+
private cacheLogicService;
|
|
64
|
+
private frontendProviderService;
|
|
65
|
+
private telegramProviderService;
|
|
66
|
+
private moduleConnectionService;
|
|
67
|
+
run: ((payload: {
|
|
68
|
+
entryPoint: string;
|
|
69
|
+
symbol: string;
|
|
70
|
+
strategy: string;
|
|
71
|
+
exchange: string;
|
|
72
|
+
frame: string;
|
|
73
|
+
cacheInterval: string[];
|
|
74
|
+
verbose: boolean;
|
|
75
|
+
noCache: boolean;
|
|
76
|
+
}) => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
77
|
+
connect: (() => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
declare class WalkerMainService {
|
|
81
|
+
private loggerService;
|
|
82
|
+
private resolveService;
|
|
83
|
+
private exchangeSchemaService;
|
|
84
|
+
private symbolSchemaService;
|
|
85
|
+
private cacheLogicService;
|
|
86
|
+
private moduleConnectionService;
|
|
87
|
+
run: ((payload: {
|
|
88
|
+
entryPoints: string[];
|
|
89
|
+
symbol: string;
|
|
90
|
+
output: string;
|
|
91
|
+
cacheInterval: CandleInterval[];
|
|
92
|
+
json: boolean;
|
|
93
|
+
markdown: boolean;
|
|
94
|
+
verbose: boolean;
|
|
95
|
+
noCache: boolean;
|
|
96
|
+
}) => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
97
|
+
connect: (() => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
declare class ExchangeSchemaService {
|
|
101
|
+
readonly loggerService: LoggerService;
|
|
102
|
+
addSchema: (() => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
declare class FrameSchemaService {
|
|
106
|
+
readonly loggerService: LoggerService;
|
|
107
|
+
addSchema: (() => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
declare class LoaderService {
|
|
111
|
+
private readonly babelService;
|
|
112
|
+
private readonly loggerService;
|
|
113
|
+
private getInstance;
|
|
114
|
+
import: (filePath: string, basePath?: string) => any;
|
|
115
|
+
check: (filePath: string, basePath?: string) => Promise<boolean>;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
declare class ResolveService {
|
|
119
|
+
readonly loggerService: LoggerService;
|
|
120
|
+
readonly loaderService: LoaderService;
|
|
121
|
+
readonly DEFAULT_TEMPLATE_DIR: string;
|
|
122
|
+
readonly DEFAULT_MODULES_DIR: string;
|
|
123
|
+
readonly OVERRIDE_TEMPLATE_DIR: string;
|
|
124
|
+
readonly OVERRIDE_MODULES_DIR: string;
|
|
125
|
+
getIsLaunched: () => boolean;
|
|
126
|
+
attachPine: (pinePath: string) => Promise<string>;
|
|
127
|
+
attachStrategy: (jsPath: string) => Promise<void>;
|
|
128
|
+
attachJavascript: (jsPath: string) => Promise<void>;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
declare class ErrorService {
|
|
132
|
+
handleGlobalError: (error: Error) => Promise<void>;
|
|
133
|
+
private _listenForError;
|
|
134
|
+
protected init: (() => void) & functools_kit.ISingleshotClearable;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
declare class SymbolSchemaService {
|
|
138
|
+
readonly loggerService: LoggerService;
|
|
139
|
+
addSchema: (() => Promise<void>) & functools_kit.ISingleshotClearable;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
declare class FrontendProviderService {
|
|
143
|
+
private readonly loggerService;
|
|
144
|
+
enable: (() => () => void) & functools_kit.ISingleshotClearable;
|
|
145
|
+
disable: () => void;
|
|
146
|
+
connect: (() => Promise<() => void>) & functools_kit.ISingleshotClearable;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
declare class TelegramProviderService {
|
|
150
|
+
private readonly loggerService;
|
|
151
|
+
private readonly telegramLogicService;
|
|
152
|
+
enable: (() => () => void) & functools_kit.ISingleshotClearable;
|
|
153
|
+
disable: () => void;
|
|
154
|
+
connect: (() => Promise<() => void>) & functools_kit.ISingleshotClearable;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
declare class CacheLogicService {
|
|
158
|
+
private readonly loggerService;
|
|
159
|
+
execute: (intervalList: CandleInterval[], dto: {
|
|
160
|
+
symbol: string;
|
|
161
|
+
frameName: string;
|
|
162
|
+
exchangeName: string;
|
|
163
|
+
}) => Promise<void>;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
type InputFile = ReturnType<typeof Input.fromReadableStream>;
|
|
167
|
+
type Image = string | InputFile;
|
|
168
|
+
declare class TelegramApiService {
|
|
169
|
+
publish: (channel: string, msg: string, images?: Image[]) => Promise<"Message scheduled for publication" | "Message published successfully">;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
declare class QuickchartApiService {
|
|
173
|
+
readonly loggerService: LoggerService;
|
|
174
|
+
getChart: (symbol: string, interval: string) => Promise<Buffer<ArrayBufferLike>>;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
declare class TelegramWebService {
|
|
178
|
+
private readonly loggerService;
|
|
179
|
+
private readonly telegramApiService;
|
|
180
|
+
private readonly quickchartApiService;
|
|
181
|
+
publishNotify: (dto: {
|
|
182
|
+
symbol: string;
|
|
183
|
+
markdown: string;
|
|
184
|
+
}) => Promise<void>;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
declare class TelegramLogicService {
|
|
188
|
+
private readonly loggerService;
|
|
189
|
+
private readonly telegramTemplateService;
|
|
190
|
+
private readonly telegramWebService;
|
|
191
|
+
private notifyTrailingTake;
|
|
192
|
+
private notifyTrailingStop;
|
|
193
|
+
private notifyBreakeven;
|
|
194
|
+
private notifyPartialProfit;
|
|
195
|
+
private notifyPartialLoss;
|
|
196
|
+
private notifyScheduled;
|
|
197
|
+
private notifyCancelled;
|
|
198
|
+
private notifyOpened;
|
|
199
|
+
private notifyClosed;
|
|
200
|
+
private notifyRisk;
|
|
201
|
+
private notifyAverageBuy;
|
|
202
|
+
private notifySignalOpen;
|
|
203
|
+
private notifySignalClose;
|
|
204
|
+
private notifyCancelScheduled;
|
|
205
|
+
private notifyClosePending;
|
|
206
|
+
connect: (() => () => void) & functools_kit.ISingleshotClearable;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
declare class TelegramTemplateService {
|
|
210
|
+
readonly loggerService: LoggerService;
|
|
211
|
+
readonly resolveService: ResolveService;
|
|
212
|
+
getTrailingTakeMarkdown: (event: TrailingTakeCommit) => Promise<string>;
|
|
213
|
+
getTrailingStopMarkdown: (event: TrailingStopCommit) => Promise<string>;
|
|
214
|
+
getBreakevenMarkdown: (event: BreakevenCommit) => Promise<string>;
|
|
215
|
+
getPartialProfitMarkdown: (event: PartialProfitCommit) => Promise<string>;
|
|
216
|
+
getPartialLossMarkdown: (event: PartialLossCommit) => Promise<string>;
|
|
217
|
+
getScheduledMarkdown: (event: IStrategyTickResultScheduled) => Promise<string>;
|
|
218
|
+
getCancelledMarkdown: (event: IStrategyTickResultCancelled) => Promise<string>;
|
|
219
|
+
getOpenedMarkdown: (event: IStrategyTickResultOpened) => Promise<string>;
|
|
220
|
+
getClosedMarkdown: (event: IStrategyTickResultClosed) => Promise<string>;
|
|
221
|
+
getRiskMarkdown: (event: RiskContract) => Promise<string>;
|
|
222
|
+
getAverageBuyMarkdown: (event: AverageBuyCommit) => Promise<string>;
|
|
223
|
+
getSignalOpenMarkdown: (event: SignalOpenContract) => Promise<string>;
|
|
224
|
+
getSignalCloseMarkdown: (event: SignalCloseContract) => Promise<string>;
|
|
225
|
+
getCancelScheduledMarkdown: (event: CancelScheduledCommit) => Promise<string>;
|
|
226
|
+
getClosePendingMarkdown: (event: ClosePendingCommit) => Promise<string>;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
declare class ModuleConnectionService {
|
|
230
|
+
readonly loggerService: LoggerService;
|
|
231
|
+
readonly resolveService: ResolveService;
|
|
232
|
+
readonly loaderService: LoaderService;
|
|
233
|
+
loadModule: (fileName: string) => Promise<boolean>;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
interface IBabel {
|
|
237
|
+
transpile(code: string): string;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
declare class BabelService implements IBabel {
|
|
241
|
+
readonly loggerService: LoggerService;
|
|
242
|
+
transpile: (code: string) => any;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
declare const cli: {
|
|
246
|
+
telegramTemplateService: TelegramTemplateService;
|
|
247
|
+
telegramWebService: TelegramWebService;
|
|
248
|
+
frontendProviderService: FrontendProviderService;
|
|
249
|
+
telegramProviderService: TelegramProviderService;
|
|
250
|
+
exchangeSchemaService: ExchangeSchemaService;
|
|
251
|
+
symbolSchemaService: SymbolSchemaService;
|
|
252
|
+
frameSchemaService: FrameSchemaService;
|
|
253
|
+
cacheLogicService: CacheLogicService;
|
|
254
|
+
telegramLogicService: TelegramLogicService;
|
|
255
|
+
backtestMainService: BacktestMainService;
|
|
256
|
+
walkerMainService: WalkerMainService;
|
|
257
|
+
paperMainService: PaperMainService;
|
|
258
|
+
liveMainService: LiveMainService;
|
|
259
|
+
moduleConnectionService: ModuleConnectionService;
|
|
260
|
+
errorService: ErrorService;
|
|
261
|
+
loggerService: LoggerService;
|
|
262
|
+
resolveService: ResolveService;
|
|
263
|
+
loaderService: LoaderService;
|
|
264
|
+
babelService: BabelService;
|
|
265
|
+
telegramApiService: TelegramApiService;
|
|
266
|
+
quickchartApiService: QuickchartApiService;
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
declare class SetupUtils {
|
|
270
|
+
enable: (() => void) & functools_kit.ISingleshotClearable;
|
|
271
|
+
clear: () => void;
|
|
272
|
+
}
|
|
273
|
+
declare const Setup: SetupUtils;
|
|
274
|
+
|
|
275
|
+
interface ILoader {
|
|
276
|
+
import(filePath: string): any;
|
|
277
|
+
check(filePath: string): boolean;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
declare enum ExchangeName {
|
|
281
|
+
DefaultExchange = "default_exchange"
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
declare enum FrameName {
|
|
285
|
+
DefaultFrame = "default_frame"
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
declare function setLogger(logger: ILogger): void;
|
|
289
|
+
|
|
290
|
+
type PayloadBacktest = Parameters<typeof cli.backtestMainService.run>[0];
|
|
291
|
+
type PayloadPaper = Parameters<typeof cli.paperMainService.run>[0];
|
|
292
|
+
type PayloadLive = Parameters<typeof cli.liveMainService.run>[0];
|
|
293
|
+
type Mode = "backtest" | "live" | "paper";
|
|
294
|
+
type Args = Partial<PayloadBacktest> | Partial<PayloadPaper> | Partial<PayloadLive>;
|
|
295
|
+
declare function run(mode: Mode, args: Args): Promise<void>;
|
|
296
|
+
|
|
297
|
+
export { ExchangeName, FrameName, type IBabel, type ILoader, type ILogger, Setup, cli, run, setLogger };
|