@tradejs/core 1.0.8 → 1.0.10
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/backtest.d.mts +109 -9
- package/dist/backtest.d.ts +109 -9
- package/dist/backtest.js +487 -145
- package/dist/backtest.mjs +414 -82
- package/dist/chunk-7P2KNFD4.mjs +11847 -0
- package/dist/{chunk-JLORHLL6.mjs → chunk-DXJ4NCFJ.mjs} +65 -6
- package/dist/chunk-OJPHC3S2.mjs +8 -0
- package/dist/{chunk-PQETJ42A.mjs → chunk-PNBS6J3G.mjs} +22 -1
- package/dist/constants.d.mts +26 -5
- package/dist/constants.d.ts +26 -5
- package/dist/constants.js +81 -9
- package/dist/constants.mjs +31 -5
- package/dist/data.mjs +3 -5
- package/dist/grid.d.mts +9 -0
- package/dist/grid.d.ts +9 -0
- package/dist/grid.js +168 -0
- package/dist/grid.mjs +98 -0
- package/dist/indicators-Da_i06-8.d.mts +288 -0
- package/dist/indicators-Da_i06-8.d.ts +288 -0
- package/dist/indicators.d.mts +4 -39
- package/dist/indicators.d.ts +4 -39
- package/dist/indicators.js +10488 -423
- package/dist/indicators.mjs +11 -3
- package/dist/strategies.d.mts +31 -12
- package/dist/strategies.d.ts +31 -12
- package/dist/strategies.js +11283 -336
- package/dist/strategies.mjs +1246 -119
- package/dist/{time-BMkFD4Kd.d.mts → time-BQ3AXmxo.d.mts} +3 -1
- package/dist/{time-BMkFD4Kd.d.ts → time-BQ3AXmxo.d.ts} +3 -1
- package/dist/time.d.mts +1 -1
- package/dist/time.d.ts +1 -1
- package/dist/time.js +38 -0
- package/dist/time.mjs +6 -2
- package/dist/trade.d.mts +54 -0
- package/dist/trade.d.ts +54 -0
- package/dist/trade.js +352 -0
- package/dist/trade.mjs +264 -0
- package/package.json +19 -5
- package/dist/chunk-622V7IAT.mjs +0 -1810
- package/dist/indicators-B-GGjP5F.d.mts +0 -65
- package/dist/indicators-B-GGjP5F.d.ts +0 -65
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
// src/constants/index.ts
|
|
2
|
-
var FEE_PERCENT =
|
|
2
|
+
var FEE_PERCENT = 1e-3;
|
|
3
|
+
var BACKTEST_BASE_SLIPPAGE_BPS = 10;
|
|
4
|
+
var BACKTEST_SPREAD_SLIPPAGE_MULTIPLIER = 1;
|
|
5
|
+
var BACKTEST_MARKET_IMPACT_BPS = 0;
|
|
6
|
+
var BACKTEST_DELAY_RISK_LOOKBACK_CANDLES = 5;
|
|
7
|
+
var BACKTEST_DELAY_RISK_MULTIPLIER = 0;
|
|
8
|
+
var BACKTEST_DELAY_RISK_MAX_BPS = 0;
|
|
9
|
+
var BACKTEST_EXPECTED_DELAY_MS = 0;
|
|
10
|
+
var BACKTEST_EXECUTION_INTERVAL = "5";
|
|
11
|
+
var BACKTEST_EXECUTION_DELAY_MS = 5 * 6e4;
|
|
12
|
+
var INITIAL_BACKTEST_AMOUNT = 100;
|
|
3
13
|
var CORRELATION_WINDOW = 50;
|
|
4
14
|
var SPREAD_WINDOW = 50;
|
|
5
15
|
var PRELOAD_DAYS = 200;
|
|
6
16
|
var SIGNALS_PRELOAD_DAYS = 60;
|
|
7
|
-
var SIGNALS_CLI_PRELOAD_DAYS =
|
|
17
|
+
var SIGNALS_CLI_PRELOAD_DAYS = 60;
|
|
8
18
|
var BACKTEST_DEFAULT_DAYS = 160;
|
|
9
19
|
var BACKTEST_PRELOAD_DAYS = 60;
|
|
10
20
|
var DASHBOARD_PRELOAD_DAYS = 160;
|
|
@@ -15,24 +25,59 @@ var TTL_3H = 10800;
|
|
|
15
25
|
var TTL_12H = 43300;
|
|
16
26
|
var TTL_1D = 86400;
|
|
17
27
|
var TTL_3D = 259200;
|
|
28
|
+
var TTL_10D = 864e3;
|
|
18
29
|
var TTL_1M = 26e5;
|
|
19
30
|
var TTL_3M = 78e5;
|
|
20
31
|
var TESTS_TOP_LIMIT = 50;
|
|
21
32
|
var TESTS_LIMIT = 1e5;
|
|
22
33
|
var TESTS_ORDERS_MIN_LIMIT = 3;
|
|
23
|
-
var MARKET_CATEGORY = "linear";
|
|
24
34
|
var ML_CANDLE_FEATURE_WINDOW = 50;
|
|
25
35
|
var ML_BASE_CANDLES_WINDOW = 50;
|
|
26
|
-
var
|
|
36
|
+
var DERIVATIVES_CONTEXT_BASE_REFERENCE_SYMBOLS = [
|
|
27
37
|
"BTCUSDT",
|
|
28
38
|
"ETHUSDT"
|
|
29
39
|
];
|
|
40
|
+
var DERIVATIVES_CONTEXT_DEFAULT_EXTRA_REFERENCE_SYMBOLS = [
|
|
41
|
+
"BNBUSDT",
|
|
42
|
+
"SOLUSDT",
|
|
43
|
+
"TRXUSDT",
|
|
44
|
+
"XRPUSDT"
|
|
45
|
+
];
|
|
46
|
+
var DERIVATIVES_CONTEXT_REFERENCE_SYMBOLS = [
|
|
47
|
+
...DERIVATIVES_CONTEXT_BASE_REFERENCE_SYMBOLS,
|
|
48
|
+
...DERIVATIVES_CONTEXT_DEFAULT_EXTRA_REFERENCE_SYMBOLS
|
|
49
|
+
];
|
|
50
|
+
var parseDerivativesReferenceSymbolList = (value) => String(value ?? "").split(",").map((item) => item.trim().toUpperCase()).filter(Boolean);
|
|
51
|
+
var normalizeDerivativesReferenceSymbol = (value) => {
|
|
52
|
+
const compact = value.replace(/[^A-Z0-9]/g, "");
|
|
53
|
+
if (!compact) return null;
|
|
54
|
+
return compact.endsWith("USDT") ? compact : `${compact}USDT`;
|
|
55
|
+
};
|
|
56
|
+
var resolveDerivativesContextReferenceSymbols = (extraReferenceSymbols) => {
|
|
57
|
+
const extras = extraReferenceSymbols === void 0 ? [...DERIVATIVES_CONTEXT_DEFAULT_EXTRA_REFERENCE_SYMBOLS] : parseDerivativesReferenceSymbolList(extraReferenceSymbols);
|
|
58
|
+
const symbols = [
|
|
59
|
+
...DERIVATIVES_CONTEXT_BASE_REFERENCE_SYMBOLS,
|
|
60
|
+
...extras
|
|
61
|
+
].flatMap((symbol) => {
|
|
62
|
+
const normalized = normalizeDerivativesReferenceSymbol(String(symbol));
|
|
63
|
+
return normalized ? [normalized] : [];
|
|
64
|
+
});
|
|
65
|
+
return [...new Set(symbols)];
|
|
66
|
+
};
|
|
30
67
|
var TRENDLINE_DEFAULTS = {
|
|
31
68
|
maxLines: 20,
|
|
32
69
|
range: 15,
|
|
33
70
|
firstRange: 80,
|
|
34
71
|
epsilon: 3e-3,
|
|
35
72
|
epsilonOffset: 5e-3,
|
|
73
|
+
epsilonMode: "static",
|
|
74
|
+
epsilonAtrPeriod: 14,
|
|
75
|
+
epsilonAtrMultiplier: 0.45,
|
|
76
|
+
epsilonOffsetAtrMultiplier: 0.5,
|
|
77
|
+
epsilonMin: 0,
|
|
78
|
+
epsilonMax: 0,
|
|
79
|
+
epsilonOffsetMin: 0,
|
|
80
|
+
epsilonOffsetMax: 0,
|
|
36
81
|
minTouches: 4,
|
|
37
82
|
minDistance: 50,
|
|
38
83
|
minTouchGap: 15,
|
|
@@ -100,9 +145,10 @@ var TestThresholdsConfig = {
|
|
|
100
145
|
precision: 2
|
|
101
146
|
},
|
|
102
147
|
netProfit: {
|
|
103
|
-
thresholds: [
|
|
148
|
+
thresholds: [0, 0],
|
|
104
149
|
direction: "higher",
|
|
105
150
|
isAmount: true,
|
|
151
|
+
neutralValue: 0,
|
|
106
152
|
precision: 2
|
|
107
153
|
},
|
|
108
154
|
totalReturn: {
|
|
@@ -172,6 +218,16 @@ var TestThresholdsConfig = {
|
|
|
172
218
|
|
|
173
219
|
export {
|
|
174
220
|
FEE_PERCENT,
|
|
221
|
+
BACKTEST_BASE_SLIPPAGE_BPS,
|
|
222
|
+
BACKTEST_SPREAD_SLIPPAGE_MULTIPLIER,
|
|
223
|
+
BACKTEST_MARKET_IMPACT_BPS,
|
|
224
|
+
BACKTEST_DELAY_RISK_LOOKBACK_CANDLES,
|
|
225
|
+
BACKTEST_DELAY_RISK_MULTIPLIER,
|
|
226
|
+
BACKTEST_DELAY_RISK_MAX_BPS,
|
|
227
|
+
BACKTEST_EXPECTED_DELAY_MS,
|
|
228
|
+
BACKTEST_EXECUTION_INTERVAL,
|
|
229
|
+
BACKTEST_EXECUTION_DELAY_MS,
|
|
230
|
+
INITIAL_BACKTEST_AMOUNT,
|
|
175
231
|
CORRELATION_WINDOW,
|
|
176
232
|
SPREAD_WINDOW,
|
|
177
233
|
PRELOAD_DAYS,
|
|
@@ -187,15 +243,18 @@ export {
|
|
|
187
243
|
TTL_12H,
|
|
188
244
|
TTL_1D,
|
|
189
245
|
TTL_3D,
|
|
246
|
+
TTL_10D,
|
|
190
247
|
TTL_1M,
|
|
191
248
|
TTL_3M,
|
|
192
249
|
TESTS_TOP_LIMIT,
|
|
193
250
|
TESTS_LIMIT,
|
|
194
251
|
TESTS_ORDERS_MIN_LIMIT,
|
|
195
|
-
MARKET_CATEGORY,
|
|
196
252
|
ML_CANDLE_FEATURE_WINDOW,
|
|
197
253
|
ML_BASE_CANDLES_WINDOW,
|
|
254
|
+
DERIVATIVES_CONTEXT_BASE_REFERENCE_SYMBOLS,
|
|
255
|
+
DERIVATIVES_CONTEXT_DEFAULT_EXTRA_REFERENCE_SYMBOLS,
|
|
198
256
|
DERIVATIVES_CONTEXT_REFERENCE_SYMBOLS,
|
|
257
|
+
resolveDerivativesContextReferenceSymbols,
|
|
199
258
|
TRENDLINE_DEFAULTS,
|
|
200
259
|
TestThresholdsConfig
|
|
201
260
|
};
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BACKTEST_DEFAULT_DAYS,
|
|
3
3
|
BACKTEST_PRELOAD_DAYS
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-DXJ4NCFJ.mjs";
|
|
5
5
|
|
|
6
6
|
// src/utils/timestamp.ts
|
|
7
7
|
import { format } from "date-fns";
|
|
8
8
|
import { getUnixTime, subDays } from "date-fns";
|
|
9
9
|
var TIMELINE_STEP = 864e5;
|
|
10
10
|
var DAY_MS = 864e5;
|
|
11
|
+
var RUNTIME_STORAGE_DAY_OFFSET_MS = 6 * 60 * 60 * 1e3;
|
|
11
12
|
var toMs = (ts) => ts < 1e12 ? ts * 1e3 : ts;
|
|
12
13
|
var getTimestamp = (days = 0) => {
|
|
13
14
|
if (days > 0) {
|
|
@@ -33,6 +34,24 @@ var getTimeline = (start = getTimestamp(BACKTEST_DEFAULT_DAYS), end = getTimesta
|
|
|
33
34
|
}
|
|
34
35
|
return res;
|
|
35
36
|
};
|
|
37
|
+
var toIsoDayKey = (timestamp) => new Date(timestamp).toISOString().slice(0, 10);
|
|
38
|
+
var toRuntimeStorageDayTimestamp = (timestamp) => Math.floor((timestamp + RUNTIME_STORAGE_DAY_OFFSET_MS) / DAY_MS) * DAY_MS;
|
|
39
|
+
var getRuntimeStorageDayKey = (timestamp) => toIsoDayKey(toRuntimeStorageDayTimestamp(timestamp));
|
|
40
|
+
var getRuntimeStorageDayKeys = (startTime, endTime) => {
|
|
41
|
+
if (!Number.isFinite(startTime) || !Number.isFinite(endTime)) {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
const start = Math.min(startTime, endTime);
|
|
45
|
+
const endExclusive = Math.max(startTime, endTime);
|
|
46
|
+
const normalizedEnd = Math.max(start, endExclusive - 1);
|
|
47
|
+
const keys = [];
|
|
48
|
+
const startDay = toRuntimeStorageDayTimestamp(start);
|
|
49
|
+
const endDay = toRuntimeStorageDayTimestamp(normalizedEnd);
|
|
50
|
+
for (let current = startDay; current <= endDay; current += DAY_MS) {
|
|
51
|
+
keys.push(toIsoDayKey(current));
|
|
52
|
+
}
|
|
53
|
+
return keys;
|
|
54
|
+
};
|
|
36
55
|
var compactOrderLog = (timeline, orderLog) => {
|
|
37
56
|
const result = [];
|
|
38
57
|
let currentAmount = orderLog.length > 0 && orderLog[0].amount != null ? orderLog[0].amount : 100;
|
|
@@ -67,5 +86,7 @@ export {
|
|
|
67
86
|
formatUnix,
|
|
68
87
|
getBacktestPreloadStart,
|
|
69
88
|
getTimeline,
|
|
89
|
+
getRuntimeStorageDayKey,
|
|
90
|
+
getRuntimeStorageDayKeys,
|
|
70
91
|
compactOrderLog
|
|
71
92
|
};
|
package/dist/constants.d.mts
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import { TestThresholds } from '@tradejs/types';
|
|
2
2
|
|
|
3
|
-
declare const FEE_PERCENT = 0.
|
|
3
|
+
declare const FEE_PERCENT = 0.001;
|
|
4
|
+
declare const BACKTEST_BASE_SLIPPAGE_BPS = 10;
|
|
5
|
+
declare const BACKTEST_SPREAD_SLIPPAGE_MULTIPLIER = 1;
|
|
6
|
+
declare const BACKTEST_MARKET_IMPACT_BPS = 0;
|
|
7
|
+
declare const BACKTEST_DELAY_RISK_LOOKBACK_CANDLES = 5;
|
|
8
|
+
declare const BACKTEST_DELAY_RISK_MULTIPLIER = 0;
|
|
9
|
+
declare const BACKTEST_DELAY_RISK_MAX_BPS = 0;
|
|
10
|
+
declare const BACKTEST_EXPECTED_DELAY_MS = 0;
|
|
11
|
+
declare const BACKTEST_EXECUTION_INTERVAL = "5";
|
|
12
|
+
declare const BACKTEST_EXECUTION_DELAY_MS: number;
|
|
13
|
+
declare const INITIAL_BACKTEST_AMOUNT = 100;
|
|
4
14
|
declare const CORRELATION_WINDOW = 50;
|
|
5
15
|
declare const SPREAD_WINDOW = 50;
|
|
6
16
|
declare const PRELOAD_DAYS = 200;
|
|
7
17
|
declare const SIGNALS_PRELOAD_DAYS = 60;
|
|
8
|
-
declare const SIGNALS_CLI_PRELOAD_DAYS =
|
|
18
|
+
declare const SIGNALS_CLI_PRELOAD_DAYS = 60;
|
|
9
19
|
declare const BACKTEST_DEFAULT_DAYS = 160;
|
|
10
20
|
declare const BACKTEST_PRELOAD_DAYS = 60;
|
|
11
21
|
declare const DASHBOARD_PRELOAD_DAYS = 160;
|
|
@@ -16,21 +26,32 @@ declare const TTL_3H = 10800;
|
|
|
16
26
|
declare const TTL_12H = 43300;
|
|
17
27
|
declare const TTL_1D = 86400;
|
|
18
28
|
declare const TTL_3D = 259200;
|
|
29
|
+
declare const TTL_10D = 864000;
|
|
19
30
|
declare const TTL_1M = 2600000;
|
|
20
31
|
declare const TTL_3M = 7800000;
|
|
21
32
|
declare const TESTS_TOP_LIMIT = 50;
|
|
22
33
|
declare const TESTS_LIMIT = 100000;
|
|
23
34
|
declare const TESTS_ORDERS_MIN_LIMIT = 3;
|
|
24
|
-
declare const MARKET_CATEGORY = "linear";
|
|
25
35
|
declare const ML_CANDLE_FEATURE_WINDOW = 50;
|
|
26
36
|
declare const ML_BASE_CANDLES_WINDOW = 50;
|
|
27
|
-
declare const
|
|
37
|
+
declare const DERIVATIVES_CONTEXT_BASE_REFERENCE_SYMBOLS: readonly ["BTCUSDT", "ETHUSDT"];
|
|
38
|
+
declare const DERIVATIVES_CONTEXT_DEFAULT_EXTRA_REFERENCE_SYMBOLS: readonly ["BNBUSDT", "SOLUSDT", "TRXUSDT", "XRPUSDT"];
|
|
39
|
+
declare const DERIVATIVES_CONTEXT_REFERENCE_SYMBOLS: readonly ["BTCUSDT", "ETHUSDT", "BNBUSDT", "SOLUSDT", "TRXUSDT", "XRPUSDT"];
|
|
40
|
+
declare const resolveDerivativesContextReferenceSymbols: (extraReferenceSymbols?: unknown) => string[];
|
|
28
41
|
declare const TRENDLINE_DEFAULTS: {
|
|
29
42
|
maxLines: number;
|
|
30
43
|
range: number;
|
|
31
44
|
firstRange: number;
|
|
32
45
|
epsilon: number;
|
|
33
46
|
epsilonOffset: number;
|
|
47
|
+
epsilonMode: "static";
|
|
48
|
+
epsilonAtrPeriod: number;
|
|
49
|
+
epsilonAtrMultiplier: number;
|
|
50
|
+
epsilonOffsetAtrMultiplier: number;
|
|
51
|
+
epsilonMin: number;
|
|
52
|
+
epsilonMax: number;
|
|
53
|
+
epsilonOffsetMin: number;
|
|
54
|
+
epsilonOffsetMax: number;
|
|
34
55
|
minTouches: number;
|
|
35
56
|
minDistance: number;
|
|
36
57
|
minTouchGap: number;
|
|
@@ -42,4 +63,4 @@ declare const TRENDLINE_DEFAULTS: {
|
|
|
42
63
|
};
|
|
43
64
|
declare const TestThresholdsConfig: TestThresholds;
|
|
44
65
|
|
|
45
|
-
export { BACKTEST_DEFAULT_DAYS, BACKTEST_PRELOAD_DAYS, BOT_PRELOAD_DAYS, CORRELATION_WINDOW, DASHBOARD_PRELOAD_DAYS, DERIVATIVES_CONTEXT_REFERENCE_SYMBOLS, FEE_PERCENT,
|
|
66
|
+
export { BACKTEST_BASE_SLIPPAGE_BPS, BACKTEST_DEFAULT_DAYS, BACKTEST_DELAY_RISK_LOOKBACK_CANDLES, BACKTEST_DELAY_RISK_MAX_BPS, BACKTEST_DELAY_RISK_MULTIPLIER, BACKTEST_EXECUTION_DELAY_MS, BACKTEST_EXECUTION_INTERVAL, BACKTEST_EXPECTED_DELAY_MS, BACKTEST_MARKET_IMPACT_BPS, BACKTEST_PRELOAD_DAYS, BACKTEST_SPREAD_SLIPPAGE_MULTIPLIER, BOT_PRELOAD_DAYS, CORRELATION_WINDOW, DASHBOARD_PRELOAD_DAYS, DERIVATIVES_CONTEXT_BASE_REFERENCE_SYMBOLS, DERIVATIVES_CONTEXT_DEFAULT_EXTRA_REFERENCE_SYMBOLS, DERIVATIVES_CONTEXT_REFERENCE_SYMBOLS, FEE_PERCENT, INITIAL_BACKTEST_AMOUNT, ML_BASE_CANDLES_WINDOW, ML_CANDLE_FEATURE_WINDOW, PRELOAD_DAYS, PRELOAD_FALLBACK_DAYS, SIGNALS_CLI_PRELOAD_DAYS, SIGNALS_PRELOAD_DAYS, SPREAD_WINDOW, TESTS_LIMIT, TESTS_ORDERS_MIN_LIMIT, TESTS_TOP_LIMIT, TRENDLINE_DEFAULTS, TTL_10D, TTL_12H, TTL_1D, TTL_1H, TTL_1M, TTL_3D, TTL_3H, TTL_3M, TestThresholdsConfig, resolveDerivativesContextReferenceSymbols };
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import { TestThresholds } from '@tradejs/types';
|
|
2
2
|
|
|
3
|
-
declare const FEE_PERCENT = 0.
|
|
3
|
+
declare const FEE_PERCENT = 0.001;
|
|
4
|
+
declare const BACKTEST_BASE_SLIPPAGE_BPS = 10;
|
|
5
|
+
declare const BACKTEST_SPREAD_SLIPPAGE_MULTIPLIER = 1;
|
|
6
|
+
declare const BACKTEST_MARKET_IMPACT_BPS = 0;
|
|
7
|
+
declare const BACKTEST_DELAY_RISK_LOOKBACK_CANDLES = 5;
|
|
8
|
+
declare const BACKTEST_DELAY_RISK_MULTIPLIER = 0;
|
|
9
|
+
declare const BACKTEST_DELAY_RISK_MAX_BPS = 0;
|
|
10
|
+
declare const BACKTEST_EXPECTED_DELAY_MS = 0;
|
|
11
|
+
declare const BACKTEST_EXECUTION_INTERVAL = "5";
|
|
12
|
+
declare const BACKTEST_EXECUTION_DELAY_MS: number;
|
|
13
|
+
declare const INITIAL_BACKTEST_AMOUNT = 100;
|
|
4
14
|
declare const CORRELATION_WINDOW = 50;
|
|
5
15
|
declare const SPREAD_WINDOW = 50;
|
|
6
16
|
declare const PRELOAD_DAYS = 200;
|
|
7
17
|
declare const SIGNALS_PRELOAD_DAYS = 60;
|
|
8
|
-
declare const SIGNALS_CLI_PRELOAD_DAYS =
|
|
18
|
+
declare const SIGNALS_CLI_PRELOAD_DAYS = 60;
|
|
9
19
|
declare const BACKTEST_DEFAULT_DAYS = 160;
|
|
10
20
|
declare const BACKTEST_PRELOAD_DAYS = 60;
|
|
11
21
|
declare const DASHBOARD_PRELOAD_DAYS = 160;
|
|
@@ -16,21 +26,32 @@ declare const TTL_3H = 10800;
|
|
|
16
26
|
declare const TTL_12H = 43300;
|
|
17
27
|
declare const TTL_1D = 86400;
|
|
18
28
|
declare const TTL_3D = 259200;
|
|
29
|
+
declare const TTL_10D = 864000;
|
|
19
30
|
declare const TTL_1M = 2600000;
|
|
20
31
|
declare const TTL_3M = 7800000;
|
|
21
32
|
declare const TESTS_TOP_LIMIT = 50;
|
|
22
33
|
declare const TESTS_LIMIT = 100000;
|
|
23
34
|
declare const TESTS_ORDERS_MIN_LIMIT = 3;
|
|
24
|
-
declare const MARKET_CATEGORY = "linear";
|
|
25
35
|
declare const ML_CANDLE_FEATURE_WINDOW = 50;
|
|
26
36
|
declare const ML_BASE_CANDLES_WINDOW = 50;
|
|
27
|
-
declare const
|
|
37
|
+
declare const DERIVATIVES_CONTEXT_BASE_REFERENCE_SYMBOLS: readonly ["BTCUSDT", "ETHUSDT"];
|
|
38
|
+
declare const DERIVATIVES_CONTEXT_DEFAULT_EXTRA_REFERENCE_SYMBOLS: readonly ["BNBUSDT", "SOLUSDT", "TRXUSDT", "XRPUSDT"];
|
|
39
|
+
declare const DERIVATIVES_CONTEXT_REFERENCE_SYMBOLS: readonly ["BTCUSDT", "ETHUSDT", "BNBUSDT", "SOLUSDT", "TRXUSDT", "XRPUSDT"];
|
|
40
|
+
declare const resolveDerivativesContextReferenceSymbols: (extraReferenceSymbols?: unknown) => string[];
|
|
28
41
|
declare const TRENDLINE_DEFAULTS: {
|
|
29
42
|
maxLines: number;
|
|
30
43
|
range: number;
|
|
31
44
|
firstRange: number;
|
|
32
45
|
epsilon: number;
|
|
33
46
|
epsilonOffset: number;
|
|
47
|
+
epsilonMode: "static";
|
|
48
|
+
epsilonAtrPeriod: number;
|
|
49
|
+
epsilonAtrMultiplier: number;
|
|
50
|
+
epsilonOffsetAtrMultiplier: number;
|
|
51
|
+
epsilonMin: number;
|
|
52
|
+
epsilonMax: number;
|
|
53
|
+
epsilonOffsetMin: number;
|
|
54
|
+
epsilonOffsetMax: number;
|
|
34
55
|
minTouches: number;
|
|
35
56
|
minDistance: number;
|
|
36
57
|
minTouchGap: number;
|
|
@@ -42,4 +63,4 @@ declare const TRENDLINE_DEFAULTS: {
|
|
|
42
63
|
};
|
|
43
64
|
declare const TestThresholdsConfig: TestThresholds;
|
|
44
65
|
|
|
45
|
-
export { BACKTEST_DEFAULT_DAYS, BACKTEST_PRELOAD_DAYS, BOT_PRELOAD_DAYS, CORRELATION_WINDOW, DASHBOARD_PRELOAD_DAYS, DERIVATIVES_CONTEXT_REFERENCE_SYMBOLS, FEE_PERCENT,
|
|
66
|
+
export { BACKTEST_BASE_SLIPPAGE_BPS, BACKTEST_DEFAULT_DAYS, BACKTEST_DELAY_RISK_LOOKBACK_CANDLES, BACKTEST_DELAY_RISK_MAX_BPS, BACKTEST_DELAY_RISK_MULTIPLIER, BACKTEST_EXECUTION_DELAY_MS, BACKTEST_EXECUTION_INTERVAL, BACKTEST_EXPECTED_DELAY_MS, BACKTEST_MARKET_IMPACT_BPS, BACKTEST_PRELOAD_DAYS, BACKTEST_SPREAD_SLIPPAGE_MULTIPLIER, BOT_PRELOAD_DAYS, CORRELATION_WINDOW, DASHBOARD_PRELOAD_DAYS, DERIVATIVES_CONTEXT_BASE_REFERENCE_SYMBOLS, DERIVATIVES_CONTEXT_DEFAULT_EXTRA_REFERENCE_SYMBOLS, DERIVATIVES_CONTEXT_REFERENCE_SYMBOLS, FEE_PERCENT, INITIAL_BACKTEST_AMOUNT, ML_BASE_CANDLES_WINDOW, ML_CANDLE_FEATURE_WINDOW, PRELOAD_DAYS, PRELOAD_FALLBACK_DAYS, SIGNALS_CLI_PRELOAD_DAYS, SIGNALS_PRELOAD_DAYS, SPREAD_WINDOW, TESTS_LIMIT, TESTS_ORDERS_MIN_LIMIT, TESTS_TOP_LIMIT, TRENDLINE_DEFAULTS, TTL_10D, TTL_12H, TTL_1D, TTL_1H, TTL_1M, TTL_3D, TTL_3H, TTL_3M, TestThresholdsConfig, resolveDerivativesContextReferenceSymbols };
|
package/dist/constants.js
CHANGED
|
@@ -20,14 +20,25 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/constants.ts
|
|
21
21
|
var constants_exports = {};
|
|
22
22
|
__export(constants_exports, {
|
|
23
|
+
BACKTEST_BASE_SLIPPAGE_BPS: () => BACKTEST_BASE_SLIPPAGE_BPS,
|
|
23
24
|
BACKTEST_DEFAULT_DAYS: () => BACKTEST_DEFAULT_DAYS,
|
|
25
|
+
BACKTEST_DELAY_RISK_LOOKBACK_CANDLES: () => BACKTEST_DELAY_RISK_LOOKBACK_CANDLES,
|
|
26
|
+
BACKTEST_DELAY_RISK_MAX_BPS: () => BACKTEST_DELAY_RISK_MAX_BPS,
|
|
27
|
+
BACKTEST_DELAY_RISK_MULTIPLIER: () => BACKTEST_DELAY_RISK_MULTIPLIER,
|
|
28
|
+
BACKTEST_EXECUTION_DELAY_MS: () => BACKTEST_EXECUTION_DELAY_MS,
|
|
29
|
+
BACKTEST_EXECUTION_INTERVAL: () => BACKTEST_EXECUTION_INTERVAL,
|
|
30
|
+
BACKTEST_EXPECTED_DELAY_MS: () => BACKTEST_EXPECTED_DELAY_MS,
|
|
31
|
+
BACKTEST_MARKET_IMPACT_BPS: () => BACKTEST_MARKET_IMPACT_BPS,
|
|
24
32
|
BACKTEST_PRELOAD_DAYS: () => BACKTEST_PRELOAD_DAYS,
|
|
33
|
+
BACKTEST_SPREAD_SLIPPAGE_MULTIPLIER: () => BACKTEST_SPREAD_SLIPPAGE_MULTIPLIER,
|
|
25
34
|
BOT_PRELOAD_DAYS: () => BOT_PRELOAD_DAYS,
|
|
26
35
|
CORRELATION_WINDOW: () => CORRELATION_WINDOW,
|
|
27
36
|
DASHBOARD_PRELOAD_DAYS: () => DASHBOARD_PRELOAD_DAYS,
|
|
37
|
+
DERIVATIVES_CONTEXT_BASE_REFERENCE_SYMBOLS: () => DERIVATIVES_CONTEXT_BASE_REFERENCE_SYMBOLS,
|
|
38
|
+
DERIVATIVES_CONTEXT_DEFAULT_EXTRA_REFERENCE_SYMBOLS: () => DERIVATIVES_CONTEXT_DEFAULT_EXTRA_REFERENCE_SYMBOLS,
|
|
28
39
|
DERIVATIVES_CONTEXT_REFERENCE_SYMBOLS: () => DERIVATIVES_CONTEXT_REFERENCE_SYMBOLS,
|
|
29
40
|
FEE_PERCENT: () => FEE_PERCENT,
|
|
30
|
-
|
|
41
|
+
INITIAL_BACKTEST_AMOUNT: () => INITIAL_BACKTEST_AMOUNT,
|
|
31
42
|
ML_BASE_CANDLES_WINDOW: () => ML_BASE_CANDLES_WINDOW,
|
|
32
43
|
ML_CANDLE_FEATURE_WINDOW: () => ML_CANDLE_FEATURE_WINDOW,
|
|
33
44
|
PRELOAD_DAYS: () => PRELOAD_DAYS,
|
|
@@ -39,6 +50,7 @@ __export(constants_exports, {
|
|
|
39
50
|
TESTS_ORDERS_MIN_LIMIT: () => TESTS_ORDERS_MIN_LIMIT,
|
|
40
51
|
TESTS_TOP_LIMIT: () => TESTS_TOP_LIMIT,
|
|
41
52
|
TRENDLINE_DEFAULTS: () => TRENDLINE_DEFAULTS,
|
|
53
|
+
TTL_10D: () => TTL_10D,
|
|
42
54
|
TTL_12H: () => TTL_12H,
|
|
43
55
|
TTL_1D: () => TTL_1D,
|
|
44
56
|
TTL_1H: () => TTL_1H,
|
|
@@ -46,17 +58,28 @@ __export(constants_exports, {
|
|
|
46
58
|
TTL_3D: () => TTL_3D,
|
|
47
59
|
TTL_3H: () => TTL_3H,
|
|
48
60
|
TTL_3M: () => TTL_3M,
|
|
49
|
-
TestThresholdsConfig: () => TestThresholdsConfig
|
|
61
|
+
TestThresholdsConfig: () => TestThresholdsConfig,
|
|
62
|
+
resolveDerivativesContextReferenceSymbols: () => resolveDerivativesContextReferenceSymbols
|
|
50
63
|
});
|
|
51
64
|
module.exports = __toCommonJS(constants_exports);
|
|
52
65
|
|
|
53
66
|
// src/constants/index.ts
|
|
54
|
-
var FEE_PERCENT =
|
|
67
|
+
var FEE_PERCENT = 1e-3;
|
|
68
|
+
var BACKTEST_BASE_SLIPPAGE_BPS = 10;
|
|
69
|
+
var BACKTEST_SPREAD_SLIPPAGE_MULTIPLIER = 1;
|
|
70
|
+
var BACKTEST_MARKET_IMPACT_BPS = 0;
|
|
71
|
+
var BACKTEST_DELAY_RISK_LOOKBACK_CANDLES = 5;
|
|
72
|
+
var BACKTEST_DELAY_RISK_MULTIPLIER = 0;
|
|
73
|
+
var BACKTEST_DELAY_RISK_MAX_BPS = 0;
|
|
74
|
+
var BACKTEST_EXPECTED_DELAY_MS = 0;
|
|
75
|
+
var BACKTEST_EXECUTION_INTERVAL = "5";
|
|
76
|
+
var BACKTEST_EXECUTION_DELAY_MS = 5 * 6e4;
|
|
77
|
+
var INITIAL_BACKTEST_AMOUNT = 100;
|
|
55
78
|
var CORRELATION_WINDOW = 50;
|
|
56
79
|
var SPREAD_WINDOW = 50;
|
|
57
80
|
var PRELOAD_DAYS = 200;
|
|
58
81
|
var SIGNALS_PRELOAD_DAYS = 60;
|
|
59
|
-
var SIGNALS_CLI_PRELOAD_DAYS =
|
|
82
|
+
var SIGNALS_CLI_PRELOAD_DAYS = 60;
|
|
60
83
|
var BACKTEST_DEFAULT_DAYS = 160;
|
|
61
84
|
var BACKTEST_PRELOAD_DAYS = 60;
|
|
62
85
|
var DASHBOARD_PRELOAD_DAYS = 160;
|
|
@@ -67,24 +90,59 @@ var TTL_3H = 10800;
|
|
|
67
90
|
var TTL_12H = 43300;
|
|
68
91
|
var TTL_1D = 86400;
|
|
69
92
|
var TTL_3D = 259200;
|
|
93
|
+
var TTL_10D = 864e3;
|
|
70
94
|
var TTL_1M = 26e5;
|
|
71
95
|
var TTL_3M = 78e5;
|
|
72
96
|
var TESTS_TOP_LIMIT = 50;
|
|
73
97
|
var TESTS_LIMIT = 1e5;
|
|
74
98
|
var TESTS_ORDERS_MIN_LIMIT = 3;
|
|
75
|
-
var MARKET_CATEGORY = "linear";
|
|
76
99
|
var ML_CANDLE_FEATURE_WINDOW = 50;
|
|
77
100
|
var ML_BASE_CANDLES_WINDOW = 50;
|
|
78
|
-
var
|
|
101
|
+
var DERIVATIVES_CONTEXT_BASE_REFERENCE_SYMBOLS = [
|
|
79
102
|
"BTCUSDT",
|
|
80
103
|
"ETHUSDT"
|
|
81
104
|
];
|
|
105
|
+
var DERIVATIVES_CONTEXT_DEFAULT_EXTRA_REFERENCE_SYMBOLS = [
|
|
106
|
+
"BNBUSDT",
|
|
107
|
+
"SOLUSDT",
|
|
108
|
+
"TRXUSDT",
|
|
109
|
+
"XRPUSDT"
|
|
110
|
+
];
|
|
111
|
+
var DERIVATIVES_CONTEXT_REFERENCE_SYMBOLS = [
|
|
112
|
+
...DERIVATIVES_CONTEXT_BASE_REFERENCE_SYMBOLS,
|
|
113
|
+
...DERIVATIVES_CONTEXT_DEFAULT_EXTRA_REFERENCE_SYMBOLS
|
|
114
|
+
];
|
|
115
|
+
var parseDerivativesReferenceSymbolList = (value) => String(value ?? "").split(",").map((item) => item.trim().toUpperCase()).filter(Boolean);
|
|
116
|
+
var normalizeDerivativesReferenceSymbol = (value) => {
|
|
117
|
+
const compact = value.replace(/[^A-Z0-9]/g, "");
|
|
118
|
+
if (!compact) return null;
|
|
119
|
+
return compact.endsWith("USDT") ? compact : `${compact}USDT`;
|
|
120
|
+
};
|
|
121
|
+
var resolveDerivativesContextReferenceSymbols = (extraReferenceSymbols) => {
|
|
122
|
+
const extras = extraReferenceSymbols === void 0 ? [...DERIVATIVES_CONTEXT_DEFAULT_EXTRA_REFERENCE_SYMBOLS] : parseDerivativesReferenceSymbolList(extraReferenceSymbols);
|
|
123
|
+
const symbols = [
|
|
124
|
+
...DERIVATIVES_CONTEXT_BASE_REFERENCE_SYMBOLS,
|
|
125
|
+
...extras
|
|
126
|
+
].flatMap((symbol) => {
|
|
127
|
+
const normalized = normalizeDerivativesReferenceSymbol(String(symbol));
|
|
128
|
+
return normalized ? [normalized] : [];
|
|
129
|
+
});
|
|
130
|
+
return [...new Set(symbols)];
|
|
131
|
+
};
|
|
82
132
|
var TRENDLINE_DEFAULTS = {
|
|
83
133
|
maxLines: 20,
|
|
84
134
|
range: 15,
|
|
85
135
|
firstRange: 80,
|
|
86
136
|
epsilon: 3e-3,
|
|
87
137
|
epsilonOffset: 5e-3,
|
|
138
|
+
epsilonMode: "static",
|
|
139
|
+
epsilonAtrPeriod: 14,
|
|
140
|
+
epsilonAtrMultiplier: 0.45,
|
|
141
|
+
epsilonOffsetAtrMultiplier: 0.5,
|
|
142
|
+
epsilonMin: 0,
|
|
143
|
+
epsilonMax: 0,
|
|
144
|
+
epsilonOffsetMin: 0,
|
|
145
|
+
epsilonOffsetMax: 0,
|
|
88
146
|
minTouches: 4,
|
|
89
147
|
minDistance: 50,
|
|
90
148
|
minTouchGap: 15,
|
|
@@ -152,9 +210,10 @@ var TestThresholdsConfig = {
|
|
|
152
210
|
precision: 2
|
|
153
211
|
},
|
|
154
212
|
netProfit: {
|
|
155
|
-
thresholds: [
|
|
213
|
+
thresholds: [0, 0],
|
|
156
214
|
direction: "higher",
|
|
157
215
|
isAmount: true,
|
|
216
|
+
neutralValue: 0,
|
|
158
217
|
precision: 2
|
|
159
218
|
},
|
|
160
219
|
totalReturn: {
|
|
@@ -223,14 +282,25 @@ var TestThresholdsConfig = {
|
|
|
223
282
|
};
|
|
224
283
|
// Annotate the CommonJS export names for ESM import in node:
|
|
225
284
|
0 && (module.exports = {
|
|
285
|
+
BACKTEST_BASE_SLIPPAGE_BPS,
|
|
226
286
|
BACKTEST_DEFAULT_DAYS,
|
|
287
|
+
BACKTEST_DELAY_RISK_LOOKBACK_CANDLES,
|
|
288
|
+
BACKTEST_DELAY_RISK_MAX_BPS,
|
|
289
|
+
BACKTEST_DELAY_RISK_MULTIPLIER,
|
|
290
|
+
BACKTEST_EXECUTION_DELAY_MS,
|
|
291
|
+
BACKTEST_EXECUTION_INTERVAL,
|
|
292
|
+
BACKTEST_EXPECTED_DELAY_MS,
|
|
293
|
+
BACKTEST_MARKET_IMPACT_BPS,
|
|
227
294
|
BACKTEST_PRELOAD_DAYS,
|
|
295
|
+
BACKTEST_SPREAD_SLIPPAGE_MULTIPLIER,
|
|
228
296
|
BOT_PRELOAD_DAYS,
|
|
229
297
|
CORRELATION_WINDOW,
|
|
230
298
|
DASHBOARD_PRELOAD_DAYS,
|
|
299
|
+
DERIVATIVES_CONTEXT_BASE_REFERENCE_SYMBOLS,
|
|
300
|
+
DERIVATIVES_CONTEXT_DEFAULT_EXTRA_REFERENCE_SYMBOLS,
|
|
231
301
|
DERIVATIVES_CONTEXT_REFERENCE_SYMBOLS,
|
|
232
302
|
FEE_PERCENT,
|
|
233
|
-
|
|
303
|
+
INITIAL_BACKTEST_AMOUNT,
|
|
234
304
|
ML_BASE_CANDLES_WINDOW,
|
|
235
305
|
ML_CANDLE_FEATURE_WINDOW,
|
|
236
306
|
PRELOAD_DAYS,
|
|
@@ -242,6 +312,7 @@ var TestThresholdsConfig = {
|
|
|
242
312
|
TESTS_ORDERS_MIN_LIMIT,
|
|
243
313
|
TESTS_TOP_LIMIT,
|
|
244
314
|
TRENDLINE_DEFAULTS,
|
|
315
|
+
TTL_10D,
|
|
245
316
|
TTL_12H,
|
|
246
317
|
TTL_1D,
|
|
247
318
|
TTL_1H,
|
|
@@ -249,5 +320,6 @@ var TestThresholdsConfig = {
|
|
|
249
320
|
TTL_3D,
|
|
250
321
|
TTL_3H,
|
|
251
322
|
TTL_3M,
|
|
252
|
-
TestThresholdsConfig
|
|
323
|
+
TestThresholdsConfig,
|
|
324
|
+
resolveDerivativesContextReferenceSymbols
|
|
253
325
|
});
|
package/dist/constants.mjs
CHANGED
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
|
+
BACKTEST_BASE_SLIPPAGE_BPS,
|
|
2
3
|
BACKTEST_DEFAULT_DAYS,
|
|
4
|
+
BACKTEST_DELAY_RISK_LOOKBACK_CANDLES,
|
|
5
|
+
BACKTEST_DELAY_RISK_MAX_BPS,
|
|
6
|
+
BACKTEST_DELAY_RISK_MULTIPLIER,
|
|
7
|
+
BACKTEST_EXECUTION_DELAY_MS,
|
|
8
|
+
BACKTEST_EXECUTION_INTERVAL,
|
|
9
|
+
BACKTEST_EXPECTED_DELAY_MS,
|
|
10
|
+
BACKTEST_MARKET_IMPACT_BPS,
|
|
3
11
|
BACKTEST_PRELOAD_DAYS,
|
|
12
|
+
BACKTEST_SPREAD_SLIPPAGE_MULTIPLIER,
|
|
4
13
|
BOT_PRELOAD_DAYS,
|
|
5
14
|
CORRELATION_WINDOW,
|
|
6
15
|
DASHBOARD_PRELOAD_DAYS,
|
|
16
|
+
DERIVATIVES_CONTEXT_BASE_REFERENCE_SYMBOLS,
|
|
17
|
+
DERIVATIVES_CONTEXT_DEFAULT_EXTRA_REFERENCE_SYMBOLS,
|
|
7
18
|
DERIVATIVES_CONTEXT_REFERENCE_SYMBOLS,
|
|
8
19
|
FEE_PERCENT,
|
|
9
|
-
|
|
20
|
+
INITIAL_BACKTEST_AMOUNT,
|
|
10
21
|
ML_BASE_CANDLES_WINDOW,
|
|
11
22
|
ML_CANDLE_FEATURE_WINDOW,
|
|
12
23
|
PRELOAD_DAYS,
|
|
@@ -18,6 +29,7 @@ import {
|
|
|
18
29
|
TESTS_ORDERS_MIN_LIMIT,
|
|
19
30
|
TESTS_TOP_LIMIT,
|
|
20
31
|
TRENDLINE_DEFAULTS,
|
|
32
|
+
TTL_10D,
|
|
21
33
|
TTL_12H,
|
|
22
34
|
TTL_1D,
|
|
23
35
|
TTL_1H,
|
|
@@ -25,17 +37,29 @@ import {
|
|
|
25
37
|
TTL_3D,
|
|
26
38
|
TTL_3H,
|
|
27
39
|
TTL_3M,
|
|
28
|
-
TestThresholdsConfig
|
|
29
|
-
|
|
40
|
+
TestThresholdsConfig,
|
|
41
|
+
resolveDerivativesContextReferenceSymbols
|
|
42
|
+
} from "./chunk-DXJ4NCFJ.mjs";
|
|
30
43
|
export {
|
|
44
|
+
BACKTEST_BASE_SLIPPAGE_BPS,
|
|
31
45
|
BACKTEST_DEFAULT_DAYS,
|
|
46
|
+
BACKTEST_DELAY_RISK_LOOKBACK_CANDLES,
|
|
47
|
+
BACKTEST_DELAY_RISK_MAX_BPS,
|
|
48
|
+
BACKTEST_DELAY_RISK_MULTIPLIER,
|
|
49
|
+
BACKTEST_EXECUTION_DELAY_MS,
|
|
50
|
+
BACKTEST_EXECUTION_INTERVAL,
|
|
51
|
+
BACKTEST_EXPECTED_DELAY_MS,
|
|
52
|
+
BACKTEST_MARKET_IMPACT_BPS,
|
|
32
53
|
BACKTEST_PRELOAD_DAYS,
|
|
54
|
+
BACKTEST_SPREAD_SLIPPAGE_MULTIPLIER,
|
|
33
55
|
BOT_PRELOAD_DAYS,
|
|
34
56
|
CORRELATION_WINDOW,
|
|
35
57
|
DASHBOARD_PRELOAD_DAYS,
|
|
58
|
+
DERIVATIVES_CONTEXT_BASE_REFERENCE_SYMBOLS,
|
|
59
|
+
DERIVATIVES_CONTEXT_DEFAULT_EXTRA_REFERENCE_SYMBOLS,
|
|
36
60
|
DERIVATIVES_CONTEXT_REFERENCE_SYMBOLS,
|
|
37
61
|
FEE_PERCENT,
|
|
38
|
-
|
|
62
|
+
INITIAL_BACKTEST_AMOUNT,
|
|
39
63
|
ML_BASE_CANDLES_WINDOW,
|
|
40
64
|
ML_CANDLE_FEATURE_WINDOW,
|
|
41
65
|
PRELOAD_DAYS,
|
|
@@ -47,6 +71,7 @@ export {
|
|
|
47
71
|
TESTS_ORDERS_MIN_LIMIT,
|
|
48
72
|
TESTS_TOP_LIMIT,
|
|
49
73
|
TRENDLINE_DEFAULTS,
|
|
74
|
+
TTL_10D,
|
|
50
75
|
TTL_12H,
|
|
51
76
|
TTL_1D,
|
|
52
77
|
TTL_1H,
|
|
@@ -54,5 +79,6 @@ export {
|
|
|
54
79
|
TTL_3D,
|
|
55
80
|
TTL_3H,
|
|
56
81
|
TTL_3M,
|
|
57
|
-
TestThresholdsConfig
|
|
82
|
+
TestThresholdsConfig,
|
|
83
|
+
resolveDerivativesContextReferenceSymbols
|
|
58
84
|
};
|
package/dist/data.mjs
CHANGED
|
@@ -4,11 +4,9 @@ import {
|
|
|
4
4
|
isWrongData,
|
|
5
5
|
mergeData
|
|
6
6
|
} from "./chunk-M7QGVZ3J.mjs";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return stringify ? JSON.stringify(data, null, 2) : JSON.stringify(data);
|
|
11
|
-
};
|
|
7
|
+
import {
|
|
8
|
+
toJson
|
|
9
|
+
} from "./chunk-OJPHC3S2.mjs";
|
|
12
10
|
export {
|
|
13
11
|
cloneArrayValues,
|
|
14
12
|
intervalToMs,
|
package/dist/grid.d.mts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { StrategyConfigGrid, Interval, TestSuite, StrategyConfig } from '@tradejs/types';
|
|
2
|
+
|
|
3
|
+
type GenericConfig = StrategyConfig;
|
|
4
|
+
declare const generateParamGrid: <T extends StrategyConfig>(paramOptions: StrategyConfigGrid) => T[];
|
|
5
|
+
declare const generateName: (prefix: string) => string;
|
|
6
|
+
declare const mergeConfigs: (configs: GenericConfig[]) => Record<string, unknown[]>;
|
|
7
|
+
declare const createTestSuite: (userName: string, tickers: string[], strategyName: string, backtestConfig: StrategyConfigGrid, connectorName: string, interval?: Interval) => TestSuite;
|
|
8
|
+
|
|
9
|
+
export { createTestSuite, generateName, generateParamGrid, mergeConfigs };
|
package/dist/grid.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { StrategyConfigGrid, Interval, TestSuite, StrategyConfig } from '@tradejs/types';
|
|
2
|
+
|
|
3
|
+
type GenericConfig = StrategyConfig;
|
|
4
|
+
declare const generateParamGrid: <T extends StrategyConfig>(paramOptions: StrategyConfigGrid) => T[];
|
|
5
|
+
declare const generateName: (prefix: string) => string;
|
|
6
|
+
declare const mergeConfigs: (configs: GenericConfig[]) => Record<string, unknown[]>;
|
|
7
|
+
declare const createTestSuite: (userName: string, tickers: string[], strategyName: string, backtestConfig: StrategyConfigGrid, connectorName: string, interval?: Interval) => TestSuite;
|
|
8
|
+
|
|
9
|
+
export { createTestSuite, generateName, generateParamGrid, mergeConfigs };
|