@tradejs/node 1.0.3 → 1.0.5
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/README.md +1 -1
- package/dist/{ai-MDMDKAEE.mjs → ai-G7ATN4YL.mjs} +3 -3
- package/dist/backtest.js +41 -8
- package/dist/backtest.mjs +4 -4
- package/dist/{chunk-MGFEID6K.mjs → chunk-CIY64D57.mjs} +7 -4
- package/dist/{chunk-QDYCJ2OK.mjs → chunk-LMAKIC3C.mjs} +1 -1
- package/dist/{chunk-3C76HVLA.mjs → chunk-P2ZUWONT.mjs} +29 -2
- package/dist/{chunk-H4HXW3EZ.mjs → chunk-RBE4PZER.mjs} +1 -1
- package/dist/chunk-SCMBUEGK.mjs +22 -0
- package/dist/{chunk-CK2PW4L5.mjs → chunk-ZY6ULOWK.mjs} +7 -4
- package/dist/cli.js +496 -104
- package/dist/cli.mjs +483 -100
- package/dist/connectors.js +35 -5
- package/dist/connectors.mjs +2 -2
- package/dist/constants.js +10 -1
- package/dist/constants.mjs +1 -1
- package/dist/registry.js +35 -5
- package/dist/registry.mjs +2 -2
- package/dist/strategies.js +321 -81
- package/dist/strategies.mjs +290 -80
- package/package.json +15 -6
- package/dist/chunk-4ZPGZWO7.mjs +0 -13
package/dist/connectors.js
CHANGED
|
@@ -64,6 +64,7 @@ var TS_MODULE_RE = /\.(cts|mts|ts)$/i;
|
|
|
64
64
|
var cachedByCwd = /* @__PURE__ */ new Map();
|
|
65
65
|
var announcedConfigFile = /* @__PURE__ */ new Set();
|
|
66
66
|
var tsNodeRegistered = false;
|
|
67
|
+
var tsconfigPathsRegisteredByCwd = /* @__PURE__ */ new Set();
|
|
67
68
|
var getTradejsProjectCwd = (cwd) => {
|
|
68
69
|
const explicit = String(cwd ?? "").trim();
|
|
69
70
|
if (explicit) {
|
|
@@ -105,6 +106,28 @@ var ensureTsNodeRegistered = async () => {
|
|
|
105
106
|
});
|
|
106
107
|
tsNodeRegistered = true;
|
|
107
108
|
};
|
|
109
|
+
var ensureTsconfigPathsRegistered = async (cwd = getTradejsProjectCwd()) => {
|
|
110
|
+
const projectRoot = getTradejsProjectCwd(cwd);
|
|
111
|
+
if (tsconfigPathsRegisteredByCwd.has(projectRoot)) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
const tsconfigPathsModule = await import("tsconfig-paths");
|
|
115
|
+
const loadConfig = tsconfigPathsModule.loadConfig;
|
|
116
|
+
const register = tsconfigPathsModule.register;
|
|
117
|
+
if (typeof loadConfig !== "function" || typeof register !== "function") {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
const loadedConfig = loadConfig(projectRoot);
|
|
121
|
+
if (loadedConfig.resultType !== "success") {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
register({
|
|
125
|
+
baseUrl: loadedConfig.absoluteBaseUrl,
|
|
126
|
+
paths: loadedConfig.paths,
|
|
127
|
+
addMatchAll: false
|
|
128
|
+
});
|
|
129
|
+
tsconfigPathsRegisteredByCwd.add(projectRoot);
|
|
130
|
+
};
|
|
108
131
|
var toImportSpecifier = (moduleName) => {
|
|
109
132
|
if (moduleName.startsWith("file://")) {
|
|
110
133
|
return moduleName;
|
|
@@ -132,6 +155,7 @@ var importConfigFile = async (configFilePath) => {
|
|
|
132
155
|
if (ext === ".ts" || ext === ".mts") {
|
|
133
156
|
const requireFn = getRequireFn(import_path.default.dirname(configFilePath));
|
|
134
157
|
await ensureTsNodeRegistered();
|
|
158
|
+
await ensureTsconfigPathsRegistered(import_path.default.dirname(configFilePath));
|
|
135
159
|
return requireFn(configFilePath);
|
|
136
160
|
}
|
|
137
161
|
return import(
|
|
@@ -139,7 +163,7 @@ var importConfigFile = async (configFilePath) => {
|
|
|
139
163
|
configFileUrl
|
|
140
164
|
);
|
|
141
165
|
};
|
|
142
|
-
var importTradejsModule = async (moduleName) => {
|
|
166
|
+
var importTradejsModule = async (moduleName, cwd = getTradejsProjectCwd()) => {
|
|
143
167
|
const normalized = String(moduleName ?? "").trim();
|
|
144
168
|
if (!normalized) {
|
|
145
169
|
return {};
|
|
@@ -153,13 +177,15 @@ var importTradejsModule = async (moduleName) => {
|
|
|
153
177
|
}
|
|
154
178
|
}
|
|
155
179
|
const requireFn = getRequireFn(
|
|
156
|
-
import_path.default.isAbsolute(modulePath) ? import_path.default.dirname(modulePath) :
|
|
180
|
+
import_path.default.isAbsolute(modulePath) ? import_path.default.dirname(modulePath) : cwd
|
|
157
181
|
);
|
|
158
182
|
if (isTsModulePath(modulePath)) {
|
|
159
183
|
await ensureTsNodeRegistered();
|
|
184
|
+
await ensureTsconfigPathsRegistered(cwd);
|
|
160
185
|
return requireFn(modulePath);
|
|
161
186
|
}
|
|
162
187
|
if (isBareModuleSpecifier(normalized)) {
|
|
188
|
+
await ensureTsconfigPathsRegistered(cwd);
|
|
163
189
|
return requireFn(normalized);
|
|
164
190
|
}
|
|
165
191
|
try {
|
|
@@ -170,6 +196,7 @@ var importTradejsModule = async (moduleName) => {
|
|
|
170
196
|
} catch (error) {
|
|
171
197
|
if (isTsModulePath(modulePath)) {
|
|
172
198
|
await ensureTsNodeRegistered();
|
|
199
|
+
await ensureTsconfigPathsRegistered(cwd);
|
|
173
200
|
return requireFn(modulePath);
|
|
174
201
|
}
|
|
175
202
|
throw error;
|
|
@@ -369,9 +396,9 @@ var extractConnectorPluginDefinition = (moduleExport) => {
|
|
|
369
396
|
}
|
|
370
397
|
return null;
|
|
371
398
|
};
|
|
372
|
-
var importConnectorPluginModule = async (moduleName) => {
|
|
399
|
+
var importConnectorPluginModule = async (moduleName, cwd = getTradejsProjectCwd()) => {
|
|
373
400
|
if (typeof importTradejsModule === "function") {
|
|
374
|
-
return importTradejsModule(moduleName);
|
|
401
|
+
return importTradejsModule(moduleName, cwd);
|
|
375
402
|
}
|
|
376
403
|
return import(
|
|
377
404
|
/* webpackIgnore: true */
|
|
@@ -393,7 +420,10 @@ var ensureConnectorPluginsLoaded = async (cwd = getTradejsProjectCwd()) => {
|
|
|
393
420
|
moduleName,
|
|
394
421
|
projectRoot
|
|
395
422
|
);
|
|
396
|
-
const moduleExport = await importConnectorPluginModule(
|
|
423
|
+
const moduleExport = await importConnectorPluginModule(
|
|
424
|
+
resolvedModuleName,
|
|
425
|
+
projectRoot
|
|
426
|
+
);
|
|
397
427
|
const pluginDefinition = extractConnectorPluginDefinition(moduleExport);
|
|
398
428
|
if (!pluginDefinition) {
|
|
399
429
|
import_logger2.logger.warn(
|
package/dist/connectors.mjs
CHANGED
|
@@ -10,8 +10,8 @@ import {
|
|
|
10
10
|
registerConnectorEntries,
|
|
11
11
|
resetConnectorRegistryCache,
|
|
12
12
|
resolveConnectorName
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-CIY64D57.mjs";
|
|
14
|
+
import "./chunk-P2ZUWONT.mjs";
|
|
15
15
|
import "./chunk-6DZX6EAA.mjs";
|
|
16
16
|
export {
|
|
17
17
|
BUILTIN_CONNECTOR_NAMES,
|
package/dist/constants.js
CHANGED
|
@@ -27,7 +27,16 @@ __export(constants_exports, {
|
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(constants_exports);
|
|
29
29
|
var { NODE_ENV } = process.env;
|
|
30
|
-
var
|
|
30
|
+
var getPositiveIntegerEnv = (name, fallback) => {
|
|
31
|
+
const rawValue = process.env[name];
|
|
32
|
+
const parsedValue = Number(rawValue);
|
|
33
|
+
return Number.isInteger(parsedValue) && parsedValue > 0 ? parsedValue : fallback;
|
|
34
|
+
};
|
|
35
|
+
var DEFAULT_KLINE_CONCURRENCY_LIMIT = NODE_ENV === "production" ? 1 : 10;
|
|
36
|
+
var KLINE_CONCURRENCY_LIMIT = getPositiveIntegerEnv(
|
|
37
|
+
"KLINE_CONCURRENCY_LIMIT",
|
|
38
|
+
DEFAULT_KLINE_CONCURRENCY_LIMIT
|
|
39
|
+
);
|
|
31
40
|
var TG_CONCURRENCY_LIMIT = 3;
|
|
32
41
|
var AI_CONCURRENCY_LIMIT = 3;
|
|
33
42
|
var SCREENSHOT_CONCURRENCY_LIMIT = NODE_ENV === "production" ? 1 : 2;
|
package/dist/constants.mjs
CHANGED
package/dist/registry.js
CHANGED
|
@@ -65,6 +65,7 @@ var TS_MODULE_RE = /\.(cts|mts|ts)$/i;
|
|
|
65
65
|
var cachedByCwd = /* @__PURE__ */ new Map();
|
|
66
66
|
var announcedConfigFile = /* @__PURE__ */ new Set();
|
|
67
67
|
var tsNodeRegistered = false;
|
|
68
|
+
var tsconfigPathsRegisteredByCwd = /* @__PURE__ */ new Set();
|
|
68
69
|
var getTradejsProjectCwd = (cwd) => {
|
|
69
70
|
const explicit = String(cwd ?? "").trim();
|
|
70
71
|
if (explicit) {
|
|
@@ -106,6 +107,28 @@ var ensureTsNodeRegistered = async () => {
|
|
|
106
107
|
});
|
|
107
108
|
tsNodeRegistered = true;
|
|
108
109
|
};
|
|
110
|
+
var ensureTsconfigPathsRegistered = async (cwd = getTradejsProjectCwd()) => {
|
|
111
|
+
const projectRoot = getTradejsProjectCwd(cwd);
|
|
112
|
+
if (tsconfigPathsRegisteredByCwd.has(projectRoot)) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const tsconfigPathsModule = await import("tsconfig-paths");
|
|
116
|
+
const loadConfig = tsconfigPathsModule.loadConfig;
|
|
117
|
+
const register = tsconfigPathsModule.register;
|
|
118
|
+
if (typeof loadConfig !== "function" || typeof register !== "function") {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
const loadedConfig = loadConfig(projectRoot);
|
|
122
|
+
if (loadedConfig.resultType !== "success") {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
register({
|
|
126
|
+
baseUrl: loadedConfig.absoluteBaseUrl,
|
|
127
|
+
paths: loadedConfig.paths,
|
|
128
|
+
addMatchAll: false
|
|
129
|
+
});
|
|
130
|
+
tsconfigPathsRegisteredByCwd.add(projectRoot);
|
|
131
|
+
};
|
|
109
132
|
var toImportSpecifier = (moduleName) => {
|
|
110
133
|
if (moduleName.startsWith("file://")) {
|
|
111
134
|
return moduleName;
|
|
@@ -133,6 +156,7 @@ var importConfigFile = async (configFilePath) => {
|
|
|
133
156
|
if (ext === ".ts" || ext === ".mts") {
|
|
134
157
|
const requireFn = getRequireFn(import_path.default.dirname(configFilePath));
|
|
135
158
|
await ensureTsNodeRegistered();
|
|
159
|
+
await ensureTsconfigPathsRegistered(import_path.default.dirname(configFilePath));
|
|
136
160
|
return requireFn(configFilePath);
|
|
137
161
|
}
|
|
138
162
|
return import(
|
|
@@ -140,7 +164,7 @@ var importConfigFile = async (configFilePath) => {
|
|
|
140
164
|
configFileUrl
|
|
141
165
|
);
|
|
142
166
|
};
|
|
143
|
-
var importTradejsModule = async (moduleName) => {
|
|
167
|
+
var importTradejsModule = async (moduleName, cwd = getTradejsProjectCwd()) => {
|
|
144
168
|
const normalized = String(moduleName ?? "").trim();
|
|
145
169
|
if (!normalized) {
|
|
146
170
|
return {};
|
|
@@ -154,13 +178,15 @@ var importTradejsModule = async (moduleName) => {
|
|
|
154
178
|
}
|
|
155
179
|
}
|
|
156
180
|
const requireFn = getRequireFn(
|
|
157
|
-
import_path.default.isAbsolute(modulePath) ? import_path.default.dirname(modulePath) :
|
|
181
|
+
import_path.default.isAbsolute(modulePath) ? import_path.default.dirname(modulePath) : cwd
|
|
158
182
|
);
|
|
159
183
|
if (isTsModulePath(modulePath)) {
|
|
160
184
|
await ensureTsNodeRegistered();
|
|
185
|
+
await ensureTsconfigPathsRegistered(cwd);
|
|
161
186
|
return requireFn(modulePath);
|
|
162
187
|
}
|
|
163
188
|
if (isBareModuleSpecifier(normalized)) {
|
|
189
|
+
await ensureTsconfigPathsRegistered(cwd);
|
|
164
190
|
return requireFn(normalized);
|
|
165
191
|
}
|
|
166
192
|
try {
|
|
@@ -171,6 +197,7 @@ var importTradejsModule = async (moduleName) => {
|
|
|
171
197
|
} catch (error) {
|
|
172
198
|
if (isTsModulePath(modulePath)) {
|
|
173
199
|
await ensureTsNodeRegistered();
|
|
200
|
+
await ensureTsconfigPathsRegistered(cwd);
|
|
174
201
|
return requireFn(modulePath);
|
|
175
202
|
}
|
|
176
203
|
throw error;
|
|
@@ -323,9 +350,9 @@ var registerEntries = (entries, source, state) => {
|
|
|
323
350
|
state.strategyManifestsMap.set(strategyName, entry.manifest);
|
|
324
351
|
}
|
|
325
352
|
};
|
|
326
|
-
var importStrategyPluginModule = async (moduleName) => {
|
|
353
|
+
var importStrategyPluginModule = async (moduleName, cwd = getTradejsProjectCwd()) => {
|
|
327
354
|
if (typeof importTradejsModule === "function") {
|
|
328
|
-
return importTradejsModule(moduleName);
|
|
355
|
+
return importTradejsModule(moduleName, cwd);
|
|
329
356
|
}
|
|
330
357
|
return import(
|
|
331
358
|
/* webpackIgnore: true */
|
|
@@ -352,7 +379,10 @@ var ensureStrategyPluginsLoaded = async (cwd = getTradejsProjectCwd()) => {
|
|
|
352
379
|
moduleName,
|
|
353
380
|
projectRoot
|
|
354
381
|
);
|
|
355
|
-
const moduleExport = await importStrategyPluginModule(
|
|
382
|
+
const moduleExport = await importStrategyPluginModule(
|
|
383
|
+
resolvedModuleName,
|
|
384
|
+
projectRoot
|
|
385
|
+
);
|
|
356
386
|
if (strategySet.has(moduleName)) {
|
|
357
387
|
const pluginDefinition = extractStrategyPluginDefinition(moduleExport);
|
|
358
388
|
if (!pluginDefinition) {
|
package/dist/registry.mjs
CHANGED
|
@@ -11,8 +11,8 @@ import {
|
|
|
11
11
|
registerStrategyEntries,
|
|
12
12
|
resetStrategyRegistryCache,
|
|
13
13
|
strategies
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-ZY6ULOWK.mjs";
|
|
15
|
+
import "./chunk-P2ZUWONT.mjs";
|
|
16
16
|
import "./chunk-6DZX6EAA.mjs";
|
|
17
17
|
export {
|
|
18
18
|
ensureIndicatorPluginsLoaded,
|