backtest-kit 1.5.9 → 1.5.11
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 +98 -1
- package/build/index.mjs +98 -1
- package/package.json +1 -1
- package/types.d.ts +20 -0
package/build/index.cjs
CHANGED
|
@@ -9321,6 +9321,8 @@ class OptimizerTemplateService {
|
|
|
9321
9321
|
``,
|
|
9322
9322
|
` await dumpJson(resultId, messages, result);`,
|
|
9323
9323
|
``,
|
|
9324
|
+
` result.id = resultId;`,
|
|
9325
|
+
``,
|
|
9324
9326
|
` return result;`,
|
|
9325
9327
|
` },`,
|
|
9326
9328
|
`});`
|
|
@@ -11315,6 +11317,35 @@ class PartialGlobalService {
|
|
|
11315
11317
|
* Handles actual ClientPartial instance creation and management.
|
|
11316
11318
|
*/
|
|
11317
11319
|
this.partialConnectionService = inject(TYPES.partialConnectionService);
|
|
11320
|
+
/**
|
|
11321
|
+
* Strategy validation service for validating strategy existence.
|
|
11322
|
+
*/
|
|
11323
|
+
this.strategyValidationService = inject(TYPES.strategyValidationService);
|
|
11324
|
+
/**
|
|
11325
|
+
* Strategy schema service for retrieving strategy configuration.
|
|
11326
|
+
*/
|
|
11327
|
+
this.strategySchemaService = inject(TYPES.strategySchemaService);
|
|
11328
|
+
/**
|
|
11329
|
+
* Risk validation service for validating risk existence.
|
|
11330
|
+
*/
|
|
11331
|
+
this.riskValidationService = inject(TYPES.riskValidationService);
|
|
11332
|
+
/**
|
|
11333
|
+
* Validates strategy and associated risk configuration.
|
|
11334
|
+
* Memoized to avoid redundant validations for the same strategy.
|
|
11335
|
+
*
|
|
11336
|
+
* @param strategyName - Name of the strategy to validate
|
|
11337
|
+
* @param methodName - Name of the calling method for error tracking
|
|
11338
|
+
*/
|
|
11339
|
+
this.validate = functoolsKit.memoize(([strategyName]) => `${strategyName}`, (strategyName, methodName) => {
|
|
11340
|
+
this.loggerService.log("partialGlobalService validate", {
|
|
11341
|
+
strategyName,
|
|
11342
|
+
methodName,
|
|
11343
|
+
});
|
|
11344
|
+
this.strategyValidationService.validate(strategyName, methodName);
|
|
11345
|
+
const strategySchema = this.strategySchemaService.get(strategyName);
|
|
11346
|
+
const riskName = strategySchema.riskName;
|
|
11347
|
+
riskName && this.riskValidationService.validate(riskName, methodName);
|
|
11348
|
+
});
|
|
11318
11349
|
/**
|
|
11319
11350
|
* Processes profit state and emits events for newly reached profit levels.
|
|
11320
11351
|
*
|
|
@@ -11337,6 +11368,7 @@ class PartialGlobalService {
|
|
|
11337
11368
|
backtest,
|
|
11338
11369
|
when,
|
|
11339
11370
|
});
|
|
11371
|
+
this.validate(data.strategyName, "partialGlobalService profit");
|
|
11340
11372
|
return await this.partialConnectionService.profit(symbol, data, currentPrice, revenuePercent, backtest, when);
|
|
11341
11373
|
};
|
|
11342
11374
|
/**
|
|
@@ -11361,6 +11393,7 @@ class PartialGlobalService {
|
|
|
11361
11393
|
backtest,
|
|
11362
11394
|
when,
|
|
11363
11395
|
});
|
|
11396
|
+
this.validate(data.strategyName, "partialGlobalService loss");
|
|
11364
11397
|
return await this.partialConnectionService.loss(symbol, data, currentPrice, lossPercent, backtest, when);
|
|
11365
11398
|
};
|
|
11366
11399
|
/**
|
|
@@ -11374,12 +11407,13 @@ class PartialGlobalService {
|
|
|
11374
11407
|
* @returns Promise that resolves when clear is complete
|
|
11375
11408
|
*/
|
|
11376
11409
|
this.clear = async (symbol, data, priceClose, backtest) => {
|
|
11377
|
-
this.loggerService.log("partialGlobalService
|
|
11410
|
+
this.loggerService.log("partialGlobalService clear", {
|
|
11378
11411
|
symbol,
|
|
11379
11412
|
data,
|
|
11380
11413
|
priceClose,
|
|
11381
11414
|
backtest,
|
|
11382
11415
|
});
|
|
11416
|
+
this.validate(data.strategyName, "partialGlobalService clear");
|
|
11383
11417
|
return await this.partialConnectionService.clear(symbol, data, priceClose, backtest);
|
|
11384
11418
|
};
|
|
11385
11419
|
}
|
|
@@ -14427,6 +14461,11 @@ class ScheduleUtils {
|
|
|
14427
14461
|
symbol,
|
|
14428
14462
|
strategyName,
|
|
14429
14463
|
});
|
|
14464
|
+
backtest$1.strategyValidationService.validate(strategyName, SCHEDULE_METHOD_NAME_GET_DATA);
|
|
14465
|
+
{
|
|
14466
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14467
|
+
riskName && backtest$1.riskValidationService.validate(riskName, SCHEDULE_METHOD_NAME_GET_DATA);
|
|
14468
|
+
}
|
|
14430
14469
|
return await backtest$1.scheduleMarkdownService.getData(symbol, strategyName);
|
|
14431
14470
|
};
|
|
14432
14471
|
/**
|
|
@@ -14447,6 +14486,11 @@ class ScheduleUtils {
|
|
|
14447
14486
|
symbol,
|
|
14448
14487
|
strategyName,
|
|
14449
14488
|
});
|
|
14489
|
+
backtest$1.strategyValidationService.validate(strategyName, SCHEDULE_METHOD_NAME_GET_REPORT);
|
|
14490
|
+
{
|
|
14491
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14492
|
+
riskName && backtest$1.riskValidationService.validate(riskName, SCHEDULE_METHOD_NAME_GET_REPORT);
|
|
14493
|
+
}
|
|
14450
14494
|
return await backtest$1.scheduleMarkdownService.getReport(symbol, strategyName);
|
|
14451
14495
|
};
|
|
14452
14496
|
/**
|
|
@@ -14471,6 +14515,11 @@ class ScheduleUtils {
|
|
|
14471
14515
|
strategyName,
|
|
14472
14516
|
path,
|
|
14473
14517
|
});
|
|
14518
|
+
backtest$1.strategyValidationService.validate(strategyName, SCHEDULE_METHOD_NAME_DUMP);
|
|
14519
|
+
{
|
|
14520
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14521
|
+
riskName && backtest$1.riskValidationService.validate(riskName, SCHEDULE_METHOD_NAME_DUMP);
|
|
14522
|
+
}
|
|
14474
14523
|
await backtest$1.scheduleMarkdownService.dump(symbol, strategyName, path);
|
|
14475
14524
|
};
|
|
14476
14525
|
}
|
|
@@ -14550,6 +14599,11 @@ class Performance {
|
|
|
14550
14599
|
* ```
|
|
14551
14600
|
*/
|
|
14552
14601
|
static async getData(symbol, strategyName) {
|
|
14602
|
+
backtest$1.strategyValidationService.validate(strategyName, "Performance.getData");
|
|
14603
|
+
{
|
|
14604
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14605
|
+
riskName && backtest$1.riskValidationService.validate(riskName, "Performance.getData");
|
|
14606
|
+
}
|
|
14553
14607
|
return backtest$1.performanceMarkdownService.getData(symbol, strategyName);
|
|
14554
14608
|
}
|
|
14555
14609
|
/**
|
|
@@ -14575,6 +14629,11 @@ class Performance {
|
|
|
14575
14629
|
* ```
|
|
14576
14630
|
*/
|
|
14577
14631
|
static async getReport(symbol, strategyName) {
|
|
14632
|
+
backtest$1.strategyValidationService.validate(strategyName, "Performance.getReport");
|
|
14633
|
+
{
|
|
14634
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14635
|
+
riskName && backtest$1.riskValidationService.validate(riskName, "Performance.getReport");
|
|
14636
|
+
}
|
|
14578
14637
|
return backtest$1.performanceMarkdownService.getReport(symbol, strategyName);
|
|
14579
14638
|
}
|
|
14580
14639
|
/**
|
|
@@ -14597,6 +14656,11 @@ class Performance {
|
|
|
14597
14656
|
* ```
|
|
14598
14657
|
*/
|
|
14599
14658
|
static async dump(symbol, strategyName, path = "./dump/performance") {
|
|
14659
|
+
backtest$1.strategyValidationService.validate(strategyName, "Performance.dump");
|
|
14660
|
+
{
|
|
14661
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14662
|
+
riskName && backtest$1.riskValidationService.validate(riskName, "Performance.dump");
|
|
14663
|
+
}
|
|
14600
14664
|
return backtest$1.performanceMarkdownService.dump(symbol, strategyName, path);
|
|
14601
14665
|
}
|
|
14602
14666
|
}
|
|
@@ -15188,6 +15252,11 @@ class HeatUtils {
|
|
|
15188
15252
|
*/
|
|
15189
15253
|
this.getData = async (strategyName) => {
|
|
15190
15254
|
backtest$1.loggerService.info(HEAT_METHOD_NAME_GET_DATA, { strategyName });
|
|
15255
|
+
backtest$1.strategyValidationService.validate(strategyName, HEAT_METHOD_NAME_GET_DATA);
|
|
15256
|
+
{
|
|
15257
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
15258
|
+
riskName && backtest$1.riskValidationService.validate(riskName, HEAT_METHOD_NAME_GET_DATA);
|
|
15259
|
+
}
|
|
15191
15260
|
return await backtest$1.heatMarkdownService.getData(strategyName);
|
|
15192
15261
|
};
|
|
15193
15262
|
/**
|
|
@@ -15217,6 +15286,11 @@ class HeatUtils {
|
|
|
15217
15286
|
*/
|
|
15218
15287
|
this.getReport = async (strategyName) => {
|
|
15219
15288
|
backtest$1.loggerService.info(HEAT_METHOD_NAME_GET_REPORT, { strategyName });
|
|
15289
|
+
backtest$1.strategyValidationService.validate(strategyName, HEAT_METHOD_NAME_GET_REPORT);
|
|
15290
|
+
{
|
|
15291
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
15292
|
+
riskName && backtest$1.riskValidationService.validate(riskName, HEAT_METHOD_NAME_GET_REPORT);
|
|
15293
|
+
}
|
|
15220
15294
|
return await backtest$1.heatMarkdownService.getReport(strategyName);
|
|
15221
15295
|
};
|
|
15222
15296
|
/**
|
|
@@ -15239,6 +15313,11 @@ class HeatUtils {
|
|
|
15239
15313
|
*/
|
|
15240
15314
|
this.dump = async (strategyName, path) => {
|
|
15241
15315
|
backtest$1.loggerService.info(HEAT_METHOD_NAME_DUMP, { strategyName, path });
|
|
15316
|
+
backtest$1.strategyValidationService.validate(strategyName, HEAT_METHOD_NAME_DUMP);
|
|
15317
|
+
{
|
|
15318
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
15319
|
+
riskName && backtest$1.riskValidationService.validate(riskName, HEAT_METHOD_NAME_DUMP);
|
|
15320
|
+
}
|
|
15242
15321
|
await backtest$1.heatMarkdownService.dump(strategyName, path);
|
|
15243
15322
|
};
|
|
15244
15323
|
}
|
|
@@ -15436,6 +15515,7 @@ class OptimizerUtils {
|
|
|
15436
15515
|
symbol,
|
|
15437
15516
|
context,
|
|
15438
15517
|
});
|
|
15518
|
+
backtest$1.optimizerValidationService.validate(context.optimizerName, OPTIMIZER_METHOD_NAME_GET_DATA);
|
|
15439
15519
|
return await backtest$1.optimizerGlobalService.getData(symbol, context.optimizerName);
|
|
15440
15520
|
};
|
|
15441
15521
|
/**
|
|
@@ -15452,6 +15532,7 @@ class OptimizerUtils {
|
|
|
15452
15532
|
symbol,
|
|
15453
15533
|
context,
|
|
15454
15534
|
});
|
|
15535
|
+
backtest$1.optimizerValidationService.validate(context.optimizerName, OPTIMIZER_METHOD_NAME_GET_CODE);
|
|
15455
15536
|
return await backtest$1.optimizerGlobalService.getCode(symbol, context.optimizerName);
|
|
15456
15537
|
};
|
|
15457
15538
|
/**
|
|
@@ -15471,6 +15552,7 @@ class OptimizerUtils {
|
|
|
15471
15552
|
context,
|
|
15472
15553
|
path,
|
|
15473
15554
|
});
|
|
15555
|
+
backtest$1.optimizerValidationService.validate(context.optimizerName, OPTIMIZER_METHOD_NAME_DUMP);
|
|
15474
15556
|
await backtest$1.optimizerGlobalService.dump(symbol, context.optimizerName, path);
|
|
15475
15557
|
};
|
|
15476
15558
|
}
|
|
@@ -15554,6 +15636,11 @@ class PartialUtils {
|
|
|
15554
15636
|
*/
|
|
15555
15637
|
this.getData = async (symbol, strategyName) => {
|
|
15556
15638
|
backtest$1.loggerService.info(PARTIAL_METHOD_NAME_GET_DATA, { symbol, strategyName });
|
|
15639
|
+
backtest$1.strategyValidationService.validate(strategyName, PARTIAL_METHOD_NAME_GET_DATA);
|
|
15640
|
+
{
|
|
15641
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
15642
|
+
riskName && backtest$1.riskValidationService.validate(riskName, PARTIAL_METHOD_NAME_GET_DATA);
|
|
15643
|
+
}
|
|
15557
15644
|
return await backtest$1.partialMarkdownService.getData(symbol, strategyName);
|
|
15558
15645
|
};
|
|
15559
15646
|
/**
|
|
@@ -15596,6 +15683,11 @@ class PartialUtils {
|
|
|
15596
15683
|
*/
|
|
15597
15684
|
this.getReport = async (symbol, strategyName) => {
|
|
15598
15685
|
backtest$1.loggerService.info(PARTIAL_METHOD_NAME_GET_REPORT, { symbol, strategyName });
|
|
15686
|
+
backtest$1.strategyValidationService.validate(strategyName, PARTIAL_METHOD_NAME_GET_REPORT);
|
|
15687
|
+
{
|
|
15688
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
15689
|
+
riskName && backtest$1.riskValidationService.validate(riskName, PARTIAL_METHOD_NAME_GET_REPORT);
|
|
15690
|
+
}
|
|
15599
15691
|
return await backtest$1.partialMarkdownService.getReport(symbol, strategyName);
|
|
15600
15692
|
};
|
|
15601
15693
|
/**
|
|
@@ -15631,6 +15723,11 @@ class PartialUtils {
|
|
|
15631
15723
|
*/
|
|
15632
15724
|
this.dump = async (symbol, strategyName, path) => {
|
|
15633
15725
|
backtest$1.loggerService.info(PARTIAL_METHOD_NAME_DUMP, { symbol, strategyName, path });
|
|
15726
|
+
backtest$1.strategyValidationService.validate(strategyName, PARTIAL_METHOD_NAME_DUMP);
|
|
15727
|
+
{
|
|
15728
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
15729
|
+
riskName && backtest$1.riskValidationService.validate(riskName, PARTIAL_METHOD_NAME_DUMP);
|
|
15730
|
+
}
|
|
15634
15731
|
await backtest$1.partialMarkdownService.dump(symbol, strategyName, path);
|
|
15635
15732
|
};
|
|
15636
15733
|
}
|
package/build/index.mjs
CHANGED
|
@@ -9319,6 +9319,8 @@ class OptimizerTemplateService {
|
|
|
9319
9319
|
``,
|
|
9320
9320
|
` await dumpJson(resultId, messages, result);`,
|
|
9321
9321
|
``,
|
|
9322
|
+
` result.id = resultId;`,
|
|
9323
|
+
``,
|
|
9322
9324
|
` return result;`,
|
|
9323
9325
|
` },`,
|
|
9324
9326
|
`});`
|
|
@@ -11313,6 +11315,35 @@ class PartialGlobalService {
|
|
|
11313
11315
|
* Handles actual ClientPartial instance creation and management.
|
|
11314
11316
|
*/
|
|
11315
11317
|
this.partialConnectionService = inject(TYPES.partialConnectionService);
|
|
11318
|
+
/**
|
|
11319
|
+
* Strategy validation service for validating strategy existence.
|
|
11320
|
+
*/
|
|
11321
|
+
this.strategyValidationService = inject(TYPES.strategyValidationService);
|
|
11322
|
+
/**
|
|
11323
|
+
* Strategy schema service for retrieving strategy configuration.
|
|
11324
|
+
*/
|
|
11325
|
+
this.strategySchemaService = inject(TYPES.strategySchemaService);
|
|
11326
|
+
/**
|
|
11327
|
+
* Risk validation service for validating risk existence.
|
|
11328
|
+
*/
|
|
11329
|
+
this.riskValidationService = inject(TYPES.riskValidationService);
|
|
11330
|
+
/**
|
|
11331
|
+
* Validates strategy and associated risk configuration.
|
|
11332
|
+
* Memoized to avoid redundant validations for the same strategy.
|
|
11333
|
+
*
|
|
11334
|
+
* @param strategyName - Name of the strategy to validate
|
|
11335
|
+
* @param methodName - Name of the calling method for error tracking
|
|
11336
|
+
*/
|
|
11337
|
+
this.validate = memoize(([strategyName]) => `${strategyName}`, (strategyName, methodName) => {
|
|
11338
|
+
this.loggerService.log("partialGlobalService validate", {
|
|
11339
|
+
strategyName,
|
|
11340
|
+
methodName,
|
|
11341
|
+
});
|
|
11342
|
+
this.strategyValidationService.validate(strategyName, methodName);
|
|
11343
|
+
const strategySchema = this.strategySchemaService.get(strategyName);
|
|
11344
|
+
const riskName = strategySchema.riskName;
|
|
11345
|
+
riskName && this.riskValidationService.validate(riskName, methodName);
|
|
11346
|
+
});
|
|
11316
11347
|
/**
|
|
11317
11348
|
* Processes profit state and emits events for newly reached profit levels.
|
|
11318
11349
|
*
|
|
@@ -11335,6 +11366,7 @@ class PartialGlobalService {
|
|
|
11335
11366
|
backtest,
|
|
11336
11367
|
when,
|
|
11337
11368
|
});
|
|
11369
|
+
this.validate(data.strategyName, "partialGlobalService profit");
|
|
11338
11370
|
return await this.partialConnectionService.profit(symbol, data, currentPrice, revenuePercent, backtest, when);
|
|
11339
11371
|
};
|
|
11340
11372
|
/**
|
|
@@ -11359,6 +11391,7 @@ class PartialGlobalService {
|
|
|
11359
11391
|
backtest,
|
|
11360
11392
|
when,
|
|
11361
11393
|
});
|
|
11394
|
+
this.validate(data.strategyName, "partialGlobalService loss");
|
|
11362
11395
|
return await this.partialConnectionService.loss(symbol, data, currentPrice, lossPercent, backtest, when);
|
|
11363
11396
|
};
|
|
11364
11397
|
/**
|
|
@@ -11372,12 +11405,13 @@ class PartialGlobalService {
|
|
|
11372
11405
|
* @returns Promise that resolves when clear is complete
|
|
11373
11406
|
*/
|
|
11374
11407
|
this.clear = async (symbol, data, priceClose, backtest) => {
|
|
11375
|
-
this.loggerService.log("partialGlobalService
|
|
11408
|
+
this.loggerService.log("partialGlobalService clear", {
|
|
11376
11409
|
symbol,
|
|
11377
11410
|
data,
|
|
11378
11411
|
priceClose,
|
|
11379
11412
|
backtest,
|
|
11380
11413
|
});
|
|
11414
|
+
this.validate(data.strategyName, "partialGlobalService clear");
|
|
11381
11415
|
return await this.partialConnectionService.clear(symbol, data, priceClose, backtest);
|
|
11382
11416
|
};
|
|
11383
11417
|
}
|
|
@@ -14425,6 +14459,11 @@ class ScheduleUtils {
|
|
|
14425
14459
|
symbol,
|
|
14426
14460
|
strategyName,
|
|
14427
14461
|
});
|
|
14462
|
+
backtest$1.strategyValidationService.validate(strategyName, SCHEDULE_METHOD_NAME_GET_DATA);
|
|
14463
|
+
{
|
|
14464
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14465
|
+
riskName && backtest$1.riskValidationService.validate(riskName, SCHEDULE_METHOD_NAME_GET_DATA);
|
|
14466
|
+
}
|
|
14428
14467
|
return await backtest$1.scheduleMarkdownService.getData(symbol, strategyName);
|
|
14429
14468
|
};
|
|
14430
14469
|
/**
|
|
@@ -14445,6 +14484,11 @@ class ScheduleUtils {
|
|
|
14445
14484
|
symbol,
|
|
14446
14485
|
strategyName,
|
|
14447
14486
|
});
|
|
14487
|
+
backtest$1.strategyValidationService.validate(strategyName, SCHEDULE_METHOD_NAME_GET_REPORT);
|
|
14488
|
+
{
|
|
14489
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14490
|
+
riskName && backtest$1.riskValidationService.validate(riskName, SCHEDULE_METHOD_NAME_GET_REPORT);
|
|
14491
|
+
}
|
|
14448
14492
|
return await backtest$1.scheduleMarkdownService.getReport(symbol, strategyName);
|
|
14449
14493
|
};
|
|
14450
14494
|
/**
|
|
@@ -14469,6 +14513,11 @@ class ScheduleUtils {
|
|
|
14469
14513
|
strategyName,
|
|
14470
14514
|
path,
|
|
14471
14515
|
});
|
|
14516
|
+
backtest$1.strategyValidationService.validate(strategyName, SCHEDULE_METHOD_NAME_DUMP);
|
|
14517
|
+
{
|
|
14518
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14519
|
+
riskName && backtest$1.riskValidationService.validate(riskName, SCHEDULE_METHOD_NAME_DUMP);
|
|
14520
|
+
}
|
|
14472
14521
|
await backtest$1.scheduleMarkdownService.dump(symbol, strategyName, path);
|
|
14473
14522
|
};
|
|
14474
14523
|
}
|
|
@@ -14548,6 +14597,11 @@ class Performance {
|
|
|
14548
14597
|
* ```
|
|
14549
14598
|
*/
|
|
14550
14599
|
static async getData(symbol, strategyName) {
|
|
14600
|
+
backtest$1.strategyValidationService.validate(strategyName, "Performance.getData");
|
|
14601
|
+
{
|
|
14602
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14603
|
+
riskName && backtest$1.riskValidationService.validate(riskName, "Performance.getData");
|
|
14604
|
+
}
|
|
14551
14605
|
return backtest$1.performanceMarkdownService.getData(symbol, strategyName);
|
|
14552
14606
|
}
|
|
14553
14607
|
/**
|
|
@@ -14573,6 +14627,11 @@ class Performance {
|
|
|
14573
14627
|
* ```
|
|
14574
14628
|
*/
|
|
14575
14629
|
static async getReport(symbol, strategyName) {
|
|
14630
|
+
backtest$1.strategyValidationService.validate(strategyName, "Performance.getReport");
|
|
14631
|
+
{
|
|
14632
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14633
|
+
riskName && backtest$1.riskValidationService.validate(riskName, "Performance.getReport");
|
|
14634
|
+
}
|
|
14576
14635
|
return backtest$1.performanceMarkdownService.getReport(symbol, strategyName);
|
|
14577
14636
|
}
|
|
14578
14637
|
/**
|
|
@@ -14595,6 +14654,11 @@ class Performance {
|
|
|
14595
14654
|
* ```
|
|
14596
14655
|
*/
|
|
14597
14656
|
static async dump(symbol, strategyName, path = "./dump/performance") {
|
|
14657
|
+
backtest$1.strategyValidationService.validate(strategyName, "Performance.dump");
|
|
14658
|
+
{
|
|
14659
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14660
|
+
riskName && backtest$1.riskValidationService.validate(riskName, "Performance.dump");
|
|
14661
|
+
}
|
|
14598
14662
|
return backtest$1.performanceMarkdownService.dump(symbol, strategyName, path);
|
|
14599
14663
|
}
|
|
14600
14664
|
}
|
|
@@ -15186,6 +15250,11 @@ class HeatUtils {
|
|
|
15186
15250
|
*/
|
|
15187
15251
|
this.getData = async (strategyName) => {
|
|
15188
15252
|
backtest$1.loggerService.info(HEAT_METHOD_NAME_GET_DATA, { strategyName });
|
|
15253
|
+
backtest$1.strategyValidationService.validate(strategyName, HEAT_METHOD_NAME_GET_DATA);
|
|
15254
|
+
{
|
|
15255
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
15256
|
+
riskName && backtest$1.riskValidationService.validate(riskName, HEAT_METHOD_NAME_GET_DATA);
|
|
15257
|
+
}
|
|
15189
15258
|
return await backtest$1.heatMarkdownService.getData(strategyName);
|
|
15190
15259
|
};
|
|
15191
15260
|
/**
|
|
@@ -15215,6 +15284,11 @@ class HeatUtils {
|
|
|
15215
15284
|
*/
|
|
15216
15285
|
this.getReport = async (strategyName) => {
|
|
15217
15286
|
backtest$1.loggerService.info(HEAT_METHOD_NAME_GET_REPORT, { strategyName });
|
|
15287
|
+
backtest$1.strategyValidationService.validate(strategyName, HEAT_METHOD_NAME_GET_REPORT);
|
|
15288
|
+
{
|
|
15289
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
15290
|
+
riskName && backtest$1.riskValidationService.validate(riskName, HEAT_METHOD_NAME_GET_REPORT);
|
|
15291
|
+
}
|
|
15218
15292
|
return await backtest$1.heatMarkdownService.getReport(strategyName);
|
|
15219
15293
|
};
|
|
15220
15294
|
/**
|
|
@@ -15237,6 +15311,11 @@ class HeatUtils {
|
|
|
15237
15311
|
*/
|
|
15238
15312
|
this.dump = async (strategyName, path) => {
|
|
15239
15313
|
backtest$1.loggerService.info(HEAT_METHOD_NAME_DUMP, { strategyName, path });
|
|
15314
|
+
backtest$1.strategyValidationService.validate(strategyName, HEAT_METHOD_NAME_DUMP);
|
|
15315
|
+
{
|
|
15316
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
15317
|
+
riskName && backtest$1.riskValidationService.validate(riskName, HEAT_METHOD_NAME_DUMP);
|
|
15318
|
+
}
|
|
15240
15319
|
await backtest$1.heatMarkdownService.dump(strategyName, path);
|
|
15241
15320
|
};
|
|
15242
15321
|
}
|
|
@@ -15434,6 +15513,7 @@ class OptimizerUtils {
|
|
|
15434
15513
|
symbol,
|
|
15435
15514
|
context,
|
|
15436
15515
|
});
|
|
15516
|
+
backtest$1.optimizerValidationService.validate(context.optimizerName, OPTIMIZER_METHOD_NAME_GET_DATA);
|
|
15437
15517
|
return await backtest$1.optimizerGlobalService.getData(symbol, context.optimizerName);
|
|
15438
15518
|
};
|
|
15439
15519
|
/**
|
|
@@ -15450,6 +15530,7 @@ class OptimizerUtils {
|
|
|
15450
15530
|
symbol,
|
|
15451
15531
|
context,
|
|
15452
15532
|
});
|
|
15533
|
+
backtest$1.optimizerValidationService.validate(context.optimizerName, OPTIMIZER_METHOD_NAME_GET_CODE);
|
|
15453
15534
|
return await backtest$1.optimizerGlobalService.getCode(symbol, context.optimizerName);
|
|
15454
15535
|
};
|
|
15455
15536
|
/**
|
|
@@ -15469,6 +15550,7 @@ class OptimizerUtils {
|
|
|
15469
15550
|
context,
|
|
15470
15551
|
path,
|
|
15471
15552
|
});
|
|
15553
|
+
backtest$1.optimizerValidationService.validate(context.optimizerName, OPTIMIZER_METHOD_NAME_DUMP);
|
|
15472
15554
|
await backtest$1.optimizerGlobalService.dump(symbol, context.optimizerName, path);
|
|
15473
15555
|
};
|
|
15474
15556
|
}
|
|
@@ -15552,6 +15634,11 @@ class PartialUtils {
|
|
|
15552
15634
|
*/
|
|
15553
15635
|
this.getData = async (symbol, strategyName) => {
|
|
15554
15636
|
backtest$1.loggerService.info(PARTIAL_METHOD_NAME_GET_DATA, { symbol, strategyName });
|
|
15637
|
+
backtest$1.strategyValidationService.validate(strategyName, PARTIAL_METHOD_NAME_GET_DATA);
|
|
15638
|
+
{
|
|
15639
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
15640
|
+
riskName && backtest$1.riskValidationService.validate(riskName, PARTIAL_METHOD_NAME_GET_DATA);
|
|
15641
|
+
}
|
|
15555
15642
|
return await backtest$1.partialMarkdownService.getData(symbol, strategyName);
|
|
15556
15643
|
};
|
|
15557
15644
|
/**
|
|
@@ -15594,6 +15681,11 @@ class PartialUtils {
|
|
|
15594
15681
|
*/
|
|
15595
15682
|
this.getReport = async (symbol, strategyName) => {
|
|
15596
15683
|
backtest$1.loggerService.info(PARTIAL_METHOD_NAME_GET_REPORT, { symbol, strategyName });
|
|
15684
|
+
backtest$1.strategyValidationService.validate(strategyName, PARTIAL_METHOD_NAME_GET_REPORT);
|
|
15685
|
+
{
|
|
15686
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
15687
|
+
riskName && backtest$1.riskValidationService.validate(riskName, PARTIAL_METHOD_NAME_GET_REPORT);
|
|
15688
|
+
}
|
|
15597
15689
|
return await backtest$1.partialMarkdownService.getReport(symbol, strategyName);
|
|
15598
15690
|
};
|
|
15599
15691
|
/**
|
|
@@ -15629,6 +15721,11 @@ class PartialUtils {
|
|
|
15629
15721
|
*/
|
|
15630
15722
|
this.dump = async (symbol, strategyName, path) => {
|
|
15631
15723
|
backtest$1.loggerService.info(PARTIAL_METHOD_NAME_DUMP, { symbol, strategyName, path });
|
|
15724
|
+
backtest$1.strategyValidationService.validate(strategyName, PARTIAL_METHOD_NAME_DUMP);
|
|
15725
|
+
{
|
|
15726
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
15727
|
+
riskName && backtest$1.riskValidationService.validate(riskName, PARTIAL_METHOD_NAME_DUMP);
|
|
15728
|
+
}
|
|
15632
15729
|
await backtest$1.partialMarkdownService.dump(symbol, strategyName, path);
|
|
15633
15730
|
};
|
|
15634
15731
|
}
|
package/package.json
CHANGED
package/types.d.ts
CHANGED
|
@@ -8907,6 +8907,26 @@ declare class PartialGlobalService {
|
|
|
8907
8907
|
* Handles actual ClientPartial instance creation and management.
|
|
8908
8908
|
*/
|
|
8909
8909
|
private readonly partialConnectionService;
|
|
8910
|
+
/**
|
|
8911
|
+
* Strategy validation service for validating strategy existence.
|
|
8912
|
+
*/
|
|
8913
|
+
private readonly strategyValidationService;
|
|
8914
|
+
/**
|
|
8915
|
+
* Strategy schema service for retrieving strategy configuration.
|
|
8916
|
+
*/
|
|
8917
|
+
private readonly strategySchemaService;
|
|
8918
|
+
/**
|
|
8919
|
+
* Risk validation service for validating risk existence.
|
|
8920
|
+
*/
|
|
8921
|
+
private readonly riskValidationService;
|
|
8922
|
+
/**
|
|
8923
|
+
* Validates strategy and associated risk configuration.
|
|
8924
|
+
* Memoized to avoid redundant validations for the same strategy.
|
|
8925
|
+
*
|
|
8926
|
+
* @param strategyName - Name of the strategy to validate
|
|
8927
|
+
* @param methodName - Name of the calling method for error tracking
|
|
8928
|
+
*/
|
|
8929
|
+
private validate;
|
|
8910
8930
|
/**
|
|
8911
8931
|
* Processes profit state and emits events for newly reached profit levels.
|
|
8912
8932
|
*
|