@tradejs/node 2.0.8 → 2.0.9
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/strategies.d.mts +3 -2
- package/dist/strategies.d.ts +3 -2
- package/dist/strategies.js +15 -9
- package/dist/strategies.mjs +15 -9
- package/package.json +4 -4
package/dist/strategies.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from '@tradejs/core/strategies';
|
|
2
2
|
export { DEFAULT_AI_MODEL, MAX_AI_SERIES_POINTS, askAI, buildAiHumanPrompt, buildAiPayload, buildAiPrompts, buildAiSystemPrompt, buildCompactAiIndicatorsSnapshot, ensureAiStrategyPluginsLoaded, getDeterministicAiGateContext, getOpenRouterModelKwargs, resetAiRuntimeCache, runAiPrompt, runAiPromptLocal, trimSeriesDeep } from './ai.mjs';
|
|
3
3
|
export { ensureIndicatorPluginsLoaded, ensureStrategyPluginsLoaded, getAvailableStrategyNames, getRegisteredManifests, getRegisteredStrategies, getStrategyCreator, getStrategyManifest, isKnownStrategy, registerStrategyEntries, resetStrategyRegistryCache, strategies } from './registry.mjs';
|
|
4
|
-
import { StrategyConfig, CreateStrategyCore, StrategyManifest, StrategyCreator, Signal, Direction, StrategyRuntimeMlOptions, StrategyRuntimeAiOptions, Connector, Tp, MarketFeatureInterval, StrategyEntrySignalContext } from '@tradejs/types';
|
|
4
|
+
import { StrategyConfig, CreateStrategyCore, StrategyManifest, StrategyCreator, RuntimeStrategyConfigSnapshot, Signal, Direction, StrategyRuntimeMlOptions, StrategyRuntimeAiOptions, Connector, Tp, MarketFeatureInterval, StrategyEntrySignalContext } from '@tradejs/types';
|
|
5
5
|
import { TradejsConfigOnBarHook, TradejsConfigBeforeSignalsHook } from '@tradejs/core/config';
|
|
6
6
|
|
|
7
7
|
interface CreateStrategyRuntimeParams<TConfig extends StrategyConfig> {
|
|
@@ -22,8 +22,9 @@ interface ResolveStrategyConfigParams<TConfig extends StrategyConfig> {
|
|
|
22
22
|
baseConfig: Record<string, any>;
|
|
23
23
|
defaults: TConfig;
|
|
24
24
|
runtimeConfigId?: string;
|
|
25
|
+
runtimeConfigSnapshot?: RuntimeStrategyConfigSnapshot;
|
|
25
26
|
}
|
|
26
|
-
declare const resolveStrategyConfig: <TConfig extends StrategyConfig>({ strategyName, userName, symbol, baseConfig, defaults, runtimeConfigId, }: ResolveStrategyConfigParams<TConfig>) => Promise<{
|
|
27
|
+
declare const resolveStrategyConfig: <TConfig extends StrategyConfig>({ strategyName, userName, symbol, baseConfig, defaults, runtimeConfigId, runtimeConfigSnapshot, }: ResolveStrategyConfigParams<TConfig>) => Promise<{
|
|
27
28
|
config: TConfig;
|
|
28
29
|
isConfigFromBacktest: boolean;
|
|
29
30
|
}>;
|
package/dist/strategies.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from '@tradejs/core/strategies';
|
|
2
2
|
export { DEFAULT_AI_MODEL, MAX_AI_SERIES_POINTS, askAI, buildAiHumanPrompt, buildAiPayload, buildAiPrompts, buildAiSystemPrompt, buildCompactAiIndicatorsSnapshot, ensureAiStrategyPluginsLoaded, getDeterministicAiGateContext, getOpenRouterModelKwargs, resetAiRuntimeCache, runAiPrompt, runAiPromptLocal, trimSeriesDeep } from './ai.js';
|
|
3
3
|
export { ensureIndicatorPluginsLoaded, ensureStrategyPluginsLoaded, getAvailableStrategyNames, getRegisteredManifests, getRegisteredStrategies, getStrategyCreator, getStrategyManifest, isKnownStrategy, registerStrategyEntries, resetStrategyRegistryCache, strategies } from './registry.js';
|
|
4
|
-
import { StrategyConfig, CreateStrategyCore, StrategyManifest, StrategyCreator, Signal, Direction, StrategyRuntimeMlOptions, StrategyRuntimeAiOptions, Connector, Tp, MarketFeatureInterval, StrategyEntrySignalContext } from '@tradejs/types';
|
|
4
|
+
import { StrategyConfig, CreateStrategyCore, StrategyManifest, StrategyCreator, RuntimeStrategyConfigSnapshot, Signal, Direction, StrategyRuntimeMlOptions, StrategyRuntimeAiOptions, Connector, Tp, MarketFeatureInterval, StrategyEntrySignalContext } from '@tradejs/types';
|
|
5
5
|
import { TradejsConfigOnBarHook, TradejsConfigBeforeSignalsHook } from '@tradejs/core/config';
|
|
6
6
|
|
|
7
7
|
interface CreateStrategyRuntimeParams<TConfig extends StrategyConfig> {
|
|
@@ -22,8 +22,9 @@ interface ResolveStrategyConfigParams<TConfig extends StrategyConfig> {
|
|
|
22
22
|
baseConfig: Record<string, any>;
|
|
23
23
|
defaults: TConfig;
|
|
24
24
|
runtimeConfigId?: string;
|
|
25
|
+
runtimeConfigSnapshot?: RuntimeStrategyConfigSnapshot;
|
|
25
26
|
}
|
|
26
|
-
declare const resolveStrategyConfig: <TConfig extends StrategyConfig>({ strategyName, userName, symbol, baseConfig, defaults, runtimeConfigId, }: ResolveStrategyConfigParams<TConfig>) => Promise<{
|
|
27
|
+
declare const resolveStrategyConfig: <TConfig extends StrategyConfig>({ strategyName, userName, symbol, baseConfig, defaults, runtimeConfigId, runtimeConfigSnapshot, }: ResolveStrategyConfigParams<TConfig>) => Promise<{
|
|
27
28
|
config: TConfig;
|
|
28
29
|
isConfigFromBacktest: boolean;
|
|
29
30
|
}>;
|
package/dist/strategies.js
CHANGED
|
@@ -9328,7 +9328,8 @@ var resolveStrategyConfig = async ({
|
|
|
9328
9328
|
symbol,
|
|
9329
9329
|
baseConfig,
|
|
9330
9330
|
defaults,
|
|
9331
|
-
runtimeConfigId
|
|
9331
|
+
runtimeConfigId,
|
|
9332
|
+
runtimeConfigSnapshot
|
|
9332
9333
|
}) => {
|
|
9333
9334
|
const mergeIfNotEmpty = (target, patch) => patch && !import_lodash.default.isEmpty(patch) ? {
|
|
9334
9335
|
...target,
|
|
@@ -9340,21 +9341,24 @@ var resolveStrategyConfig = async ({
|
|
|
9340
9341
|
};
|
|
9341
9342
|
let isConfigFromBacktest = false;
|
|
9342
9343
|
if (config.ENV !== "BACKTEST") {
|
|
9343
|
-
const userConfig = await (0, import_redis3.getData)(
|
|
9344
|
-
runtimeConfigId ? import_redis3.redisKeys.strategyConfig(
|
|
9344
|
+
const userConfig = runtimeConfigSnapshot ? runtimeConfigSnapshot.userConfig : await (0, import_redis3.getData)(
|
|
9345
|
+
runtimeConfigId ? import_redis3.redisKeys.strategyConfig(
|
|
9346
|
+
userName,
|
|
9347
|
+
strategyName,
|
|
9348
|
+
runtimeConfigId
|
|
9349
|
+
) : import_redis3.redisKeys.strategyConfig(userName, strategyName),
|
|
9345
9350
|
{}
|
|
9346
9351
|
);
|
|
9347
9352
|
config = mergeIfNotEmpty(config, userConfig);
|
|
9348
9353
|
if (!runtimeConfigId || runtimeConfigId === "config") {
|
|
9349
|
-
const
|
|
9354
|
+
const symbolResultConfig = runtimeConfigSnapshot ? runtimeConfigSnapshot.symbolResultConfig : (await (0, import_redis3.getData)(
|
|
9350
9355
|
import_redis3.redisKeys.strategyResults(userName, strategyName),
|
|
9351
9356
|
{}
|
|
9352
|
-
);
|
|
9353
|
-
|
|
9354
|
-
if (backtestResult && !import_lodash.default.isEmpty(backtestResult.config)) {
|
|
9357
|
+
))?.[symbol]?.config;
|
|
9358
|
+
if (symbolResultConfig && !import_lodash.default.isEmpty(symbolResultConfig)) {
|
|
9355
9359
|
config = mergeIfNotEmpty(
|
|
9356
9360
|
config,
|
|
9357
|
-
|
|
9361
|
+
symbolResultConfig
|
|
9358
9362
|
);
|
|
9359
9363
|
isConfigFromBacktest = true;
|
|
9360
9364
|
}
|
|
@@ -10195,6 +10199,7 @@ var createStrategyRuntime = ({
|
|
|
10195
10199
|
deploymentId: requestedDeploymentId,
|
|
10196
10200
|
policyProfileId,
|
|
10197
10201
|
runtimeConfigId,
|
|
10202
|
+
runtimeConfigSnapshot,
|
|
10198
10203
|
data,
|
|
10199
10204
|
btcData,
|
|
10200
10205
|
ethData = [],
|
|
@@ -10212,7 +10217,8 @@ var createStrategyRuntime = ({
|
|
|
10212
10217
|
symbol,
|
|
10213
10218
|
baseConfig,
|
|
10214
10219
|
defaults,
|
|
10215
|
-
runtimeConfigId
|
|
10220
|
+
runtimeConfigId,
|
|
10221
|
+
runtimeConfigSnapshot
|
|
10216
10222
|
});
|
|
10217
10223
|
const universe = requestedUniverse ?? connector.universe;
|
|
10218
10224
|
const accountId = requestedAccountId ?? connector.accountId;
|
package/dist/strategies.mjs
CHANGED
|
@@ -778,7 +778,8 @@ var resolveStrategyConfig = async ({
|
|
|
778
778
|
symbol,
|
|
779
779
|
baseConfig,
|
|
780
780
|
defaults,
|
|
781
|
-
runtimeConfigId
|
|
781
|
+
runtimeConfigId,
|
|
782
|
+
runtimeConfigSnapshot
|
|
782
783
|
}) => {
|
|
783
784
|
const mergeIfNotEmpty = (target, patch) => patch && !import_lodash.default.isEmpty(patch) ? {
|
|
784
785
|
...target,
|
|
@@ -790,21 +791,24 @@ var resolveStrategyConfig = async ({
|
|
|
790
791
|
};
|
|
791
792
|
let isConfigFromBacktest = false;
|
|
792
793
|
if (config.ENV !== "BACKTEST") {
|
|
793
|
-
const userConfig = await getData2(
|
|
794
|
-
runtimeConfigId ? redisKeys2.strategyConfig(
|
|
794
|
+
const userConfig = runtimeConfigSnapshot ? runtimeConfigSnapshot.userConfig : await getData2(
|
|
795
|
+
runtimeConfigId ? redisKeys2.strategyConfig(
|
|
796
|
+
userName,
|
|
797
|
+
strategyName,
|
|
798
|
+
runtimeConfigId
|
|
799
|
+
) : redisKeys2.strategyConfig(userName, strategyName),
|
|
795
800
|
{}
|
|
796
801
|
);
|
|
797
802
|
config = mergeIfNotEmpty(config, userConfig);
|
|
798
803
|
if (!runtimeConfigId || runtimeConfigId === "config") {
|
|
799
|
-
const
|
|
804
|
+
const symbolResultConfig = runtimeConfigSnapshot ? runtimeConfigSnapshot.symbolResultConfig : (await getData2(
|
|
800
805
|
redisKeys2.strategyResults(userName, strategyName),
|
|
801
806
|
{}
|
|
802
|
-
);
|
|
803
|
-
|
|
804
|
-
if (backtestResult && !import_lodash.default.isEmpty(backtestResult.config)) {
|
|
807
|
+
))?.[symbol]?.config;
|
|
808
|
+
if (symbolResultConfig && !import_lodash.default.isEmpty(symbolResultConfig)) {
|
|
805
809
|
config = mergeIfNotEmpty(
|
|
806
810
|
config,
|
|
807
|
-
|
|
811
|
+
symbolResultConfig
|
|
808
812
|
);
|
|
809
813
|
isConfigFromBacktest = true;
|
|
810
814
|
}
|
|
@@ -1647,6 +1651,7 @@ var createStrategyRuntime = ({
|
|
|
1647
1651
|
deploymentId: requestedDeploymentId,
|
|
1648
1652
|
policyProfileId,
|
|
1649
1653
|
runtimeConfigId,
|
|
1654
|
+
runtimeConfigSnapshot,
|
|
1650
1655
|
data,
|
|
1651
1656
|
btcData,
|
|
1652
1657
|
ethData = [],
|
|
@@ -1664,7 +1669,8 @@ var createStrategyRuntime = ({
|
|
|
1664
1669
|
symbol,
|
|
1665
1670
|
baseConfig,
|
|
1666
1671
|
defaults,
|
|
1667
|
-
runtimeConfigId
|
|
1672
|
+
runtimeConfigId,
|
|
1673
|
+
runtimeConfigSnapshot
|
|
1668
1674
|
});
|
|
1669
1675
|
const universe = requestedUniverse ?? connector.universe;
|
|
1670
1676
|
const accountId = requestedAccountId ?? connector.accountId;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tradejs/node",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
4
4
|
"description": "Node-only runtime for the TradeJS TypeScript framework: strategies, backtests, Pine strategy loading, and plugin registries.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tradejs",
|
|
@@ -67,9 +67,9 @@
|
|
|
67
67
|
"dependencies": {
|
|
68
68
|
"@langchain/core": "^1.2.3",
|
|
69
69
|
"@langchain/openai": "^1.5.5",
|
|
70
|
-
"@tradejs/core": "^2.0.
|
|
71
|
-
"@tradejs/infra": "^2.0.
|
|
72
|
-
"@tradejs/types": "^2.0.
|
|
70
|
+
"@tradejs/core": "^2.0.9",
|
|
71
|
+
"@tradejs/infra": "^2.0.9",
|
|
72
|
+
"@tradejs/types": "^2.0.9",
|
|
73
73
|
"chalk": "4.1.2",
|
|
74
74
|
"ioredis": "5.11.1",
|
|
75
75
|
"pinets": "0.8.12",
|