@tradejs/cli 1.0.0 → 1.0.2
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 +12 -8
- package/dist/lib/runBot.js +3 -3
- package/dist/scripts/backtest.js +7 -3
- package/dist/scripts/bot.js +3 -3
- package/package.json +18 -9
package/dist/cli.js
CHANGED
|
@@ -1619,7 +1619,7 @@ var require_list_it = __commonJS({
|
|
|
1619
1619
|
|
|
1620
1620
|
// src/scripts/backtest.ts
|
|
1621
1621
|
var backtest_exports = {};
|
|
1622
|
-
var import_args, import_progress, import_child_process, import_fs, import_path, import_os, import_chalk, import_lodash, import_date_fns, import_uuid, import_connectors, import_connectors2, import_cli, import_backtest,
|
|
1622
|
+
var import_args, import_progress, import_child_process, import_fs, import_path, import_os, import_chalk, import_lodash, import_date_fns, import_uuid, import_connectors, import_connectors2, import_cli, import_backtest, import_data, import_constants, import_redis, ListIt, MAX_PARALLEL, flags, interval, progressStep, uuid, testerWorkerPathCandidates, testerWorkerPath, testerNeedsTsRuntime, HEADERS_RESULTS, HEADERS_RESULTS_BY_TICKERS, successTests, errorTests, errorMessages, results, resultsByTickers, userName, runStartedAt, createListIt, createTable, createTimestamp, filterGoodTests, recordError, isStrategyConfigGrid, resolveBacktestConnectorName, getLogsById, setTestData, backtest, saveAndPrintResults, saveAndPrintResultsByTickers, finish;
|
|
1623
1623
|
var init_backtest = __esm({
|
|
1624
1624
|
"src/scripts/backtest.ts"() {
|
|
1625
1625
|
"use strict";
|
|
@@ -1637,7 +1637,7 @@ var init_backtest = __esm({
|
|
|
1637
1637
|
import_connectors2 = require("@tradejs/node/connectors");
|
|
1638
1638
|
import_cli = require("@tradejs/node/cli");
|
|
1639
1639
|
import_backtest = require("@tradejs/core/backtest");
|
|
1640
|
-
|
|
1640
|
+
import_data = require("@tradejs/core/data");
|
|
1641
1641
|
import_constants = require("@tradejs/core/constants");
|
|
1642
1642
|
import_redis = require("@tradejs/infra/redis");
|
|
1643
1643
|
ListIt = require_list_it();
|
|
@@ -1674,7 +1674,11 @@ var init_backtest = __esm({
|
|
|
1674
1674
|
progressStep = flags.progressStep;
|
|
1675
1675
|
uuid = (len = 12) => (0, import_uuid.v4)().slice(-len);
|
|
1676
1676
|
testerWorkerPathCandidates = [
|
|
1677
|
+
// `tradejs` bin runs from dist/cli.js, so bundled commands resolve from `dist`.
|
|
1678
|
+
import_path.default.resolve(__dirname, "./workers/testerWorker.js"),
|
|
1679
|
+
// Direct execution of dist/scripts/backtest.js resolves from `dist/scripts`.
|
|
1677
1680
|
import_path.default.resolve(__dirname, "../workers/testerWorker.js"),
|
|
1681
|
+
// ts-node execution resolves from `src/scripts`.
|
|
1678
1682
|
import_path.default.resolve(__dirname, "../workers/testerWorker.ts")
|
|
1679
1683
|
];
|
|
1680
1684
|
testerWorkerPath = testerWorkerPathCandidates.find(
|
|
@@ -2016,13 +2020,13 @@ var init_backtest = __esm({
|
|
|
2016
2020
|
}
|
|
2017
2021
|
const bestConfig = results[0]?.test.strategyConfig;
|
|
2018
2022
|
console.log(import_chalk.default.gray("BEST CONFIG:"));
|
|
2019
|
-
console.log(import_chalk.default.green((0,
|
|
2023
|
+
console.log(import_chalk.default.green((0, import_data.toJson)(bestConfig, true)));
|
|
2020
2024
|
console.log("");
|
|
2021
2025
|
const mergedConfig = (0, import_backtest.mergeConfigs)(
|
|
2022
2026
|
results.map(({ test: { strategyConfig } }) => strategyConfig)
|
|
2023
2027
|
);
|
|
2024
2028
|
console.log(import_chalk.default.gray("MERGED CONFIG:"));
|
|
2025
|
-
console.log(import_chalk.default.blue((0,
|
|
2029
|
+
console.log(import_chalk.default.blue((0, import_data.toJson)(mergedConfig, true)));
|
|
2026
2030
|
console.log("");
|
|
2027
2031
|
console.log(`${import_chalk.default.green("SUCCESS TESTS")}: ${successTests}`);
|
|
2028
2032
|
console.log(`${import_chalk.default.red("ERRORS")}: ${errorTests}`);
|
|
@@ -2059,13 +2063,13 @@ var init_backtest = __esm({
|
|
|
2059
2063
|
});
|
|
2060
2064
|
|
|
2061
2065
|
// src/lib/runBot.ts
|
|
2062
|
-
var import_lodash2, import_connectors3,
|
|
2066
|
+
var import_lodash2, import_connectors3, import_data2, import_strategies, import_async, import_constants2, import_time, import_logger, import_redis2, runBot;
|
|
2063
2067
|
var init_runBot = __esm({
|
|
2064
2068
|
"src/lib/runBot.ts"() {
|
|
2065
2069
|
"use strict";
|
|
2066
2070
|
import_lodash2 = __toESM(require("lodash"));
|
|
2067
2071
|
import_connectors3 = require("@tradejs/node/connectors");
|
|
2068
|
-
|
|
2072
|
+
import_data2 = require("@tradejs/core/data");
|
|
2069
2073
|
import_strategies = require("@tradejs/node/strategies");
|
|
2070
2074
|
import_async = require("@tradejs/core/async");
|
|
2071
2075
|
import_constants2 = require("@tradejs/core/constants");
|
|
@@ -2174,11 +2178,11 @@ var init_runBot = __esm({
|
|
|
2174
2178
|
status: JSON.stringify(status)
|
|
2175
2179
|
});
|
|
2176
2180
|
} catch (err) {
|
|
2177
|
-
import_logger.logger.log("error", "bot %s error: %s", bot.symbol, (0,
|
|
2181
|
+
import_logger.logger.log("error", "bot %s error: %s", bot.symbol, (0, import_data2.toJson)(err, false));
|
|
2178
2182
|
}
|
|
2179
2183
|
}
|
|
2180
2184
|
}
|
|
2181
|
-
import_logger.logger.log("info", "botResults: %s", (0,
|
|
2185
|
+
import_logger.logger.log("info", "botResults: %s", (0, import_data2.toJson)(botResults, true));
|
|
2182
2186
|
return botResults;
|
|
2183
2187
|
};
|
|
2184
2188
|
}
|
package/dist/lib/runBot.js
CHANGED
|
@@ -35,7 +35,7 @@ __export(runBot_exports, {
|
|
|
35
35
|
module.exports = __toCommonJS(runBot_exports);
|
|
36
36
|
var import_lodash = __toESM(require("lodash"));
|
|
37
37
|
var import_connectors = require("@tradejs/node/connectors");
|
|
38
|
-
var
|
|
38
|
+
var import_data = require("@tradejs/core/data");
|
|
39
39
|
var import_strategies = require("@tradejs/node/strategies");
|
|
40
40
|
var import_async = require("@tradejs/core/async");
|
|
41
41
|
var import_constants = require("@tradejs/core/constants");
|
|
@@ -144,11 +144,11 @@ var runBot = async () => {
|
|
|
144
144
|
status: JSON.stringify(status)
|
|
145
145
|
});
|
|
146
146
|
} catch (err) {
|
|
147
|
-
import_logger.logger.log("error", "bot %s error: %s", bot.symbol, (0,
|
|
147
|
+
import_logger.logger.log("error", "bot %s error: %s", bot.symbol, (0, import_data.toJson)(err, false));
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
|
-
import_logger.logger.log("info", "botResults: %s", (0,
|
|
151
|
+
import_logger.logger.log("info", "botResults: %s", (0, import_data.toJson)(botResults, true));
|
|
152
152
|
return botResults;
|
|
153
153
|
};
|
|
154
154
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/scripts/backtest.js
CHANGED
|
@@ -1624,7 +1624,7 @@ var import_connectors = require("@tradejs/connectors");
|
|
|
1624
1624
|
var import_connectors2 = require("@tradejs/node/connectors");
|
|
1625
1625
|
var import_cli = require("@tradejs/node/cli");
|
|
1626
1626
|
var import_backtest = require("@tradejs/core/backtest");
|
|
1627
|
-
var
|
|
1627
|
+
var import_data = require("@tradejs/core/data");
|
|
1628
1628
|
var import_constants = require("@tradejs/core/constants");
|
|
1629
1629
|
var import_redis = require("@tradejs/infra/redis");
|
|
1630
1630
|
var ListIt = require_list_it();
|
|
@@ -1661,7 +1661,11 @@ var interval = flags.timeframe.toString();
|
|
|
1661
1661
|
var progressStep = flags.progressStep;
|
|
1662
1662
|
var uuid = (len = 12) => (0, import_uuid.v4)().slice(-len);
|
|
1663
1663
|
var testerWorkerPathCandidates = [
|
|
1664
|
+
// `tradejs` bin runs from dist/cli.js, so bundled commands resolve from `dist`.
|
|
1665
|
+
import_path.default.resolve(__dirname, "./workers/testerWorker.js"),
|
|
1666
|
+
// Direct execution of dist/scripts/backtest.js resolves from `dist/scripts`.
|
|
1664
1667
|
import_path.default.resolve(__dirname, "../workers/testerWorker.js"),
|
|
1668
|
+
// ts-node execution resolves from `src/scripts`.
|
|
1665
1669
|
import_path.default.resolve(__dirname, "../workers/testerWorker.ts")
|
|
1666
1670
|
];
|
|
1667
1671
|
var testerWorkerPath = testerWorkerPathCandidates.find(
|
|
@@ -2003,13 +2007,13 @@ var finish = async () => {
|
|
|
2003
2007
|
}
|
|
2004
2008
|
const bestConfig = results[0]?.test.strategyConfig;
|
|
2005
2009
|
console.log(import_chalk.default.gray("BEST CONFIG:"));
|
|
2006
|
-
console.log(import_chalk.default.green((0,
|
|
2010
|
+
console.log(import_chalk.default.green((0, import_data.toJson)(bestConfig, true)));
|
|
2007
2011
|
console.log("");
|
|
2008
2012
|
const mergedConfig = (0, import_backtest.mergeConfigs)(
|
|
2009
2013
|
results.map(({ test: { strategyConfig } }) => strategyConfig)
|
|
2010
2014
|
);
|
|
2011
2015
|
console.log(import_chalk.default.gray("MERGED CONFIG:"));
|
|
2012
|
-
console.log(import_chalk.default.blue((0,
|
|
2016
|
+
console.log(import_chalk.default.blue((0, import_data.toJson)(mergedConfig, true)));
|
|
2013
2017
|
console.log("");
|
|
2014
2018
|
console.log(`${import_chalk.default.green("SUCCESS TESTS")}: ${successTests}`);
|
|
2015
2019
|
console.log(`${import_chalk.default.red("ERRORS")}: ${errorTests}`);
|
package/dist/scripts/bot.js
CHANGED
|
@@ -28,7 +28,7 @@ var import_config = require("dotenv/config");
|
|
|
28
28
|
// src/lib/runBot.ts
|
|
29
29
|
var import_lodash = __toESM(require("lodash"));
|
|
30
30
|
var import_connectors = require("@tradejs/node/connectors");
|
|
31
|
-
var
|
|
31
|
+
var import_data = require("@tradejs/core/data");
|
|
32
32
|
var import_strategies = require("@tradejs/node/strategies");
|
|
33
33
|
var import_async = require("@tradejs/core/async");
|
|
34
34
|
var import_constants = require("@tradejs/core/constants");
|
|
@@ -137,11 +137,11 @@ var runBot = async () => {
|
|
|
137
137
|
status: JSON.stringify(status)
|
|
138
138
|
});
|
|
139
139
|
} catch (err) {
|
|
140
|
-
import_logger.logger.log("error", "bot %s error: %s", bot.symbol, (0,
|
|
140
|
+
import_logger.logger.log("error", "bot %s error: %s", bot.symbol, (0, import_data.toJson)(err, false));
|
|
141
141
|
}
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
|
-
import_logger.logger.log("info", "botResults: %s", (0,
|
|
144
|
+
import_logger.logger.log("info", "botResults: %s", (0, import_data.toJson)(botResults, true));
|
|
145
145
|
return botResults;
|
|
146
146
|
};
|
|
147
147
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tradejs/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Official TradeJS CLI for infra setup, backtests, signals, bots, and ML workflows.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"tradejs",
|
|
7
|
+
"trading",
|
|
8
|
+
"backtesting",
|
|
9
|
+
"cli",
|
|
10
|
+
"signals",
|
|
11
|
+
"bot",
|
|
12
|
+
"automation"
|
|
13
|
+
],
|
|
5
14
|
"homepage": "https://tradejs.dev",
|
|
6
15
|
"main": "dist/cli.js",
|
|
7
16
|
"types": "dist/cli.d.ts",
|
|
@@ -12,14 +21,14 @@
|
|
|
12
21
|
"tradejs": "dist/cli.js"
|
|
13
22
|
},
|
|
14
23
|
"dependencies": {
|
|
15
|
-
"@tradejs/base": "^1.0.
|
|
16
|
-
"@tradejs/connectors": "^1.0.
|
|
17
|
-
"@tradejs/core": "^1.0.
|
|
18
|
-
"@tradejs/indicators": "^1.0.
|
|
19
|
-
"@tradejs/infra": "^1.0.
|
|
20
|
-
"@tradejs/node": "^1.0.
|
|
21
|
-
"@tradejs/strategies": "^1.0.
|
|
22
|
-
"@tradejs/types": "^1.0.
|
|
24
|
+
"@tradejs/base": "^1.0.2",
|
|
25
|
+
"@tradejs/connectors": "^1.0.2",
|
|
26
|
+
"@tradejs/core": "^1.0.2",
|
|
27
|
+
"@tradejs/indicators": "^1.0.2",
|
|
28
|
+
"@tradejs/infra": "^1.0.2",
|
|
29
|
+
"@tradejs/node": "^1.0.2",
|
|
30
|
+
"@tradejs/strategies": "^1.0.2",
|
|
31
|
+
"@tradejs/types": "^1.0.2",
|
|
23
32
|
"args": "^5.0.3",
|
|
24
33
|
"bcryptjs": "^2.4.3",
|
|
25
34
|
"chalk": "4.1.2",
|