backtest-kit 1.4.4 → 1.4.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/build/index.cjs +6 -6
- package/build/index.mjs +6 -6
- package/package.json +1 -1
- package/types.d.ts +31 -35
package/build/index.cjs
CHANGED
|
@@ -9141,7 +9141,7 @@ const GET_STRATEGY_DATA_FN = async (symbol, self) => {
|
|
|
9141
9141
|
const messageList = [];
|
|
9142
9142
|
for (const source of self.params.source) {
|
|
9143
9143
|
// Emit progress event at the start of processing each source
|
|
9144
|
-
await self.
|
|
9144
|
+
await self.onProgress({
|
|
9145
9145
|
optimizerName: self.params.optimizerName,
|
|
9146
9146
|
symbol,
|
|
9147
9147
|
totalSources,
|
|
@@ -9205,7 +9205,7 @@ const GET_STRATEGY_DATA_FN = async (symbol, self) => {
|
|
|
9205
9205
|
}
|
|
9206
9206
|
}
|
|
9207
9207
|
// Emit final progress event (100%)
|
|
9208
|
-
await self.
|
|
9208
|
+
await self.onProgress({
|
|
9209
9209
|
optimizerName: self.params.optimizerName,
|
|
9210
9210
|
symbol,
|
|
9211
9211
|
totalSources,
|
|
@@ -9339,8 +9339,9 @@ const GET_STRATEGY_DUMP_FN = async (symbol, path$1, self) => {
|
|
|
9339
9339
|
* Used by OptimizerConnectionService to create optimizer instances.
|
|
9340
9340
|
*/
|
|
9341
9341
|
class ClientOptimizer {
|
|
9342
|
-
constructor(params) {
|
|
9342
|
+
constructor(params, onProgress) {
|
|
9343
9343
|
this.params = params;
|
|
9344
|
+
this.onProgress = onProgress;
|
|
9344
9345
|
/**
|
|
9345
9346
|
* Fetches data from all sources and generates strategy metadata.
|
|
9346
9347
|
* Processes each training range and builds LLM conversation history.
|
|
@@ -9413,7 +9414,7 @@ class OptimizerConnectionService {
|
|
|
9413
9414
|
* @returns ClientOptimizer instance with resolved dependencies
|
|
9414
9415
|
*/
|
|
9415
9416
|
this.getOptimizer = functoolsKit.memoize(([optimizerName]) => `${optimizerName}`, (optimizerName) => {
|
|
9416
|
-
const { getPrompt, rangeTest, rangeTrain, source, template: rawTemplate = {}, callbacks } = this.optimizerSchemaService.get(optimizerName);
|
|
9417
|
+
const { getPrompt, rangeTest, rangeTrain, source, template: rawTemplate = {}, callbacks, } = this.optimizerSchemaService.get(optimizerName);
|
|
9417
9418
|
const { getAssistantMessage = this.optimizerTemplateService.getAssistantMessage, getExchangeTemplate = this.optimizerTemplateService.getExchangeTemplate, getFrameTemplate = this.optimizerTemplateService.getFrameTemplate, getJsonDumpTemplate = this.optimizerTemplateService.getJsonDumpTemplate, getJsonTemplate = this.optimizerTemplateService.getJsonTemplate, getLauncherTemplate = this.optimizerTemplateService.getLauncherTemplate, getStrategyTemplate = this.optimizerTemplateService.getStrategyTemplate, getTextTemplate = this.optimizerTemplateService.getTextTemplate, getWalkerTemplate = this.optimizerTemplateService.getWalkerTemplate, getTopBanner = this.optimizerTemplateService.getTopBanner, getUserMessage = this.optimizerTemplateService.getUserMessage, } = rawTemplate;
|
|
9418
9419
|
const template = {
|
|
9419
9420
|
getAssistantMessage,
|
|
@@ -9431,14 +9432,13 @@ class OptimizerConnectionService {
|
|
|
9431
9432
|
return new ClientOptimizer({
|
|
9432
9433
|
optimizerName,
|
|
9433
9434
|
logger: this.loggerService,
|
|
9434
|
-
onProgress: COMMIT_PROGRESS_FN,
|
|
9435
9435
|
getPrompt,
|
|
9436
9436
|
rangeTest,
|
|
9437
9437
|
rangeTrain,
|
|
9438
9438
|
source,
|
|
9439
9439
|
template,
|
|
9440
9440
|
callbacks,
|
|
9441
|
-
});
|
|
9441
|
+
}, COMMIT_PROGRESS_FN);
|
|
9442
9442
|
});
|
|
9443
9443
|
/**
|
|
9444
9444
|
* Fetches data from all sources and generates strategy metadata.
|
package/build/index.mjs
CHANGED
|
@@ -9139,7 +9139,7 @@ const GET_STRATEGY_DATA_FN = async (symbol, self) => {
|
|
|
9139
9139
|
const messageList = [];
|
|
9140
9140
|
for (const source of self.params.source) {
|
|
9141
9141
|
// Emit progress event at the start of processing each source
|
|
9142
|
-
await self.
|
|
9142
|
+
await self.onProgress({
|
|
9143
9143
|
optimizerName: self.params.optimizerName,
|
|
9144
9144
|
symbol,
|
|
9145
9145
|
totalSources,
|
|
@@ -9203,7 +9203,7 @@ const GET_STRATEGY_DATA_FN = async (symbol, self) => {
|
|
|
9203
9203
|
}
|
|
9204
9204
|
}
|
|
9205
9205
|
// Emit final progress event (100%)
|
|
9206
|
-
await self.
|
|
9206
|
+
await self.onProgress({
|
|
9207
9207
|
optimizerName: self.params.optimizerName,
|
|
9208
9208
|
symbol,
|
|
9209
9209
|
totalSources,
|
|
@@ -9337,8 +9337,9 @@ const GET_STRATEGY_DUMP_FN = async (symbol, path, self) => {
|
|
|
9337
9337
|
* Used by OptimizerConnectionService to create optimizer instances.
|
|
9338
9338
|
*/
|
|
9339
9339
|
class ClientOptimizer {
|
|
9340
|
-
constructor(params) {
|
|
9340
|
+
constructor(params, onProgress) {
|
|
9341
9341
|
this.params = params;
|
|
9342
|
+
this.onProgress = onProgress;
|
|
9342
9343
|
/**
|
|
9343
9344
|
* Fetches data from all sources and generates strategy metadata.
|
|
9344
9345
|
* Processes each training range and builds LLM conversation history.
|
|
@@ -9411,7 +9412,7 @@ class OptimizerConnectionService {
|
|
|
9411
9412
|
* @returns ClientOptimizer instance with resolved dependencies
|
|
9412
9413
|
*/
|
|
9413
9414
|
this.getOptimizer = memoize(([optimizerName]) => `${optimizerName}`, (optimizerName) => {
|
|
9414
|
-
const { getPrompt, rangeTest, rangeTrain, source, template: rawTemplate = {}, callbacks } = this.optimizerSchemaService.get(optimizerName);
|
|
9415
|
+
const { getPrompt, rangeTest, rangeTrain, source, template: rawTemplate = {}, callbacks, } = this.optimizerSchemaService.get(optimizerName);
|
|
9415
9416
|
const { getAssistantMessage = this.optimizerTemplateService.getAssistantMessage, getExchangeTemplate = this.optimizerTemplateService.getExchangeTemplate, getFrameTemplate = this.optimizerTemplateService.getFrameTemplate, getJsonDumpTemplate = this.optimizerTemplateService.getJsonDumpTemplate, getJsonTemplate = this.optimizerTemplateService.getJsonTemplate, getLauncherTemplate = this.optimizerTemplateService.getLauncherTemplate, getStrategyTemplate = this.optimizerTemplateService.getStrategyTemplate, getTextTemplate = this.optimizerTemplateService.getTextTemplate, getWalkerTemplate = this.optimizerTemplateService.getWalkerTemplate, getTopBanner = this.optimizerTemplateService.getTopBanner, getUserMessage = this.optimizerTemplateService.getUserMessage, } = rawTemplate;
|
|
9416
9417
|
const template = {
|
|
9417
9418
|
getAssistantMessage,
|
|
@@ -9429,14 +9430,13 @@ class OptimizerConnectionService {
|
|
|
9429
9430
|
return new ClientOptimizer({
|
|
9430
9431
|
optimizerName,
|
|
9431
9432
|
logger: this.loggerService,
|
|
9432
|
-
onProgress: COMMIT_PROGRESS_FN,
|
|
9433
9433
|
getPrompt,
|
|
9434
9434
|
rangeTest,
|
|
9435
9435
|
rangeTrain,
|
|
9436
9436
|
source,
|
|
9437
9437
|
template,
|
|
9438
9438
|
callbacks,
|
|
9439
|
-
});
|
|
9439
|
+
}, COMMIT_PROGRESS_FN);
|
|
9440
9440
|
});
|
|
9441
9441
|
/**
|
|
9442
9442
|
* Fetches data from all sources and generates strategy metadata.
|
package/package.json
CHANGED
package/types.d.ts
CHANGED
|
@@ -1517,35 +1517,6 @@ interface MessageModel {
|
|
|
1517
1517
|
content: string;
|
|
1518
1518
|
}
|
|
1519
1519
|
|
|
1520
|
-
/**
|
|
1521
|
-
* Contract for optimizer progress events.
|
|
1522
|
-
*
|
|
1523
|
-
* Emitted during optimizer execution to track progress.
|
|
1524
|
-
* Contains information about total sources, processed sources, and completion percentage.
|
|
1525
|
-
*
|
|
1526
|
-
* @example
|
|
1527
|
-
* ```typescript
|
|
1528
|
-
* import { listenOptimizerProgress } from "backtest-kit";
|
|
1529
|
-
*
|
|
1530
|
-
* listenOptimizerProgress((event) => {
|
|
1531
|
-
* console.log(`Progress: ${(event.progress * 100).toFixed(2)}%`);
|
|
1532
|
-
* console.log(`Processed: ${event.processedSources} / ${event.totalSources}`);
|
|
1533
|
-
* });
|
|
1534
|
-
* ```
|
|
1535
|
-
*/
|
|
1536
|
-
interface ProgressOptimizerContract {
|
|
1537
|
-
/** optimizerName - Name of the optimizer being executed */
|
|
1538
|
-
optimizerName: string;
|
|
1539
|
-
/** symbol - Trading symbol (e.g., "BTCUSDT") */
|
|
1540
|
-
symbol: string;
|
|
1541
|
-
/** totalSources - Total number of sources to process */
|
|
1542
|
-
totalSources: number;
|
|
1543
|
-
/** processedSources - Number of sources processed so far */
|
|
1544
|
-
processedSources: number;
|
|
1545
|
-
/** progress - Completion percentage from 0.0 to 1.0 */
|
|
1546
|
-
progress: number;
|
|
1547
|
-
}
|
|
1548
|
-
|
|
1549
1520
|
/**
|
|
1550
1521
|
* Unique identifier for data rows in optimizer sources.
|
|
1551
1522
|
* Can be either a string or numeric ID.
|
|
@@ -1873,11 +1844,6 @@ interface IOptimizerSchema {
|
|
|
1873
1844
|
* @returns Strategy prompt/logic description
|
|
1874
1845
|
*/
|
|
1875
1846
|
getPrompt: (symbol: string, messages: MessageModel[]) => string | Promise<string>;
|
|
1876
|
-
/**
|
|
1877
|
-
* Callback invoked to report progress during optimizer operations.
|
|
1878
|
-
* @param progress - Progress details including processed sources and percentage
|
|
1879
|
-
*/
|
|
1880
|
-
onProgress(progress: ProgressOptimizerContract): void;
|
|
1881
1847
|
/**
|
|
1882
1848
|
* Optional custom template overrides.
|
|
1883
1849
|
* If not provided, uses defaults from OptimizerTemplateService.
|
|
@@ -2594,6 +2560,35 @@ interface ProgressWalkerContract {
|
|
|
2594
2560
|
progress: number;
|
|
2595
2561
|
}
|
|
2596
2562
|
|
|
2563
|
+
/**
|
|
2564
|
+
* Contract for optimizer progress events.
|
|
2565
|
+
*
|
|
2566
|
+
* Emitted during optimizer execution to track progress.
|
|
2567
|
+
* Contains information about total sources, processed sources, and completion percentage.
|
|
2568
|
+
*
|
|
2569
|
+
* @example
|
|
2570
|
+
* ```typescript
|
|
2571
|
+
* import { listenOptimizerProgress } from "backtest-kit";
|
|
2572
|
+
*
|
|
2573
|
+
* listenOptimizerProgress((event) => {
|
|
2574
|
+
* console.log(`Progress: ${(event.progress * 100).toFixed(2)}%`);
|
|
2575
|
+
* console.log(`Processed: ${event.processedSources} / ${event.totalSources}`);
|
|
2576
|
+
* });
|
|
2577
|
+
* ```
|
|
2578
|
+
*/
|
|
2579
|
+
interface ProgressOptimizerContract {
|
|
2580
|
+
/** optimizerName - Name of the optimizer being executed */
|
|
2581
|
+
optimizerName: string;
|
|
2582
|
+
/** symbol - Trading symbol (e.g., "BTCUSDT") */
|
|
2583
|
+
symbol: string;
|
|
2584
|
+
/** totalSources - Total number of sources to process */
|
|
2585
|
+
totalSources: number;
|
|
2586
|
+
/** processedSources - Number of sources processed so far */
|
|
2587
|
+
processedSources: number;
|
|
2588
|
+
/** progress - Completion percentage from 0.0 to 1.0 */
|
|
2589
|
+
progress: number;
|
|
2590
|
+
}
|
|
2591
|
+
|
|
2597
2592
|
/**
|
|
2598
2593
|
* Performance metric types tracked by the system.
|
|
2599
2594
|
*
|
|
@@ -8322,7 +8317,8 @@ declare class OptimizerValidationService {
|
|
|
8322
8317
|
*/
|
|
8323
8318
|
declare class ClientOptimizer implements IOptimizer {
|
|
8324
8319
|
readonly params: IOptimizerParams;
|
|
8325
|
-
|
|
8320
|
+
readonly onProgress: (progress: ProgressOptimizerContract) => void;
|
|
8321
|
+
constructor(params: IOptimizerParams, onProgress: (progress: ProgressOptimizerContract) => void);
|
|
8326
8322
|
/**
|
|
8327
8323
|
* Fetches data from all sources and generates strategy metadata.
|
|
8328
8324
|
* Processes each training range and builds LLM conversation history.
|