backtest-kit 1.5.8 → 1.5.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/build/index.cjs +165 -4
- package/build/index.mjs +165 -4
- package/package.json +1 -1
- package/types.d.ts +20 -0
package/build/index.cjs
CHANGED
|
@@ -11315,6 +11315,35 @@ class PartialGlobalService {
|
|
|
11315
11315
|
* Handles actual ClientPartial instance creation and management.
|
|
11316
11316
|
*/
|
|
11317
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 = functoolsKit.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
|
+
});
|
|
11318
11347
|
/**
|
|
11319
11348
|
* Processes profit state and emits events for newly reached profit levels.
|
|
11320
11349
|
*
|
|
@@ -11337,6 +11366,7 @@ class PartialGlobalService {
|
|
|
11337
11366
|
backtest,
|
|
11338
11367
|
when,
|
|
11339
11368
|
});
|
|
11369
|
+
this.validate(data.strategyName, "partialGlobalService profit");
|
|
11340
11370
|
return await this.partialConnectionService.profit(symbol, data, currentPrice, revenuePercent, backtest, when);
|
|
11341
11371
|
};
|
|
11342
11372
|
/**
|
|
@@ -11361,6 +11391,7 @@ class PartialGlobalService {
|
|
|
11361
11391
|
backtest,
|
|
11362
11392
|
when,
|
|
11363
11393
|
});
|
|
11394
|
+
this.validate(data.strategyName, "partialGlobalService loss");
|
|
11364
11395
|
return await this.partialConnectionService.loss(symbol, data, currentPrice, lossPercent, backtest, when);
|
|
11365
11396
|
};
|
|
11366
11397
|
/**
|
|
@@ -11374,12 +11405,13 @@ class PartialGlobalService {
|
|
|
11374
11405
|
* @returns Promise that resolves when clear is complete
|
|
11375
11406
|
*/
|
|
11376
11407
|
this.clear = async (symbol, data, priceClose, backtest) => {
|
|
11377
|
-
this.loggerService.log("partialGlobalService
|
|
11408
|
+
this.loggerService.log("partialGlobalService clear", {
|
|
11378
11409
|
symbol,
|
|
11379
11410
|
data,
|
|
11380
11411
|
priceClose,
|
|
11381
11412
|
backtest,
|
|
11382
11413
|
});
|
|
11414
|
+
this.validate(data.strategyName, "partialGlobalService clear");
|
|
11383
11415
|
return await this.partialConnectionService.clear(symbol, data, priceClose, backtest);
|
|
11384
11416
|
};
|
|
11385
11417
|
}
|
|
@@ -13738,10 +13770,12 @@ class BacktestUtils {
|
|
|
13738
13770
|
* ```
|
|
13739
13771
|
*/
|
|
13740
13772
|
this.background = (symbol, context) => {
|
|
13773
|
+
backtest$1.strategyValidationService.validate(context.strategyName, BACKTEST_METHOD_NAME_BACKGROUND);
|
|
13774
|
+
backtest$1.exchangeValidationService.validate(context.exchangeName, BACKTEST_METHOD_NAME_BACKGROUND);
|
|
13775
|
+
backtest$1.frameValidationService.validate(context.frameName, BACKTEST_METHOD_NAME_BACKGROUND);
|
|
13741
13776
|
{
|
|
13742
|
-
backtest$1.
|
|
13743
|
-
backtest$1.
|
|
13744
|
-
backtest$1.frameValidationService.validate(context.frameName, BACKTEST_METHOD_NAME_BACKGROUND);
|
|
13777
|
+
const { riskName } = backtest$1.strategySchemaService.get(context.strategyName);
|
|
13778
|
+
riskName && backtest$1.riskValidationService.validate(riskName, BACKTEST_METHOD_NAME_BACKGROUND);
|
|
13745
13779
|
}
|
|
13746
13780
|
const instance = this._getInstance(symbol, context.strategyName);
|
|
13747
13781
|
return instance.background(symbol, context);
|
|
@@ -13765,6 +13799,10 @@ class BacktestUtils {
|
|
|
13765
13799
|
*/
|
|
13766
13800
|
this.stop = async (symbol, strategyName) => {
|
|
13767
13801
|
backtest$1.strategyValidationService.validate(strategyName, BACKTEST_METHOD_NAME_STOP);
|
|
13802
|
+
{
|
|
13803
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
13804
|
+
riskName && backtest$1.riskValidationService.validate(riskName, BACKTEST_METHOD_NAME_STOP);
|
|
13805
|
+
}
|
|
13768
13806
|
const instance = this._getInstance(symbol, strategyName);
|
|
13769
13807
|
return await instance.stop(symbol, strategyName);
|
|
13770
13808
|
};
|
|
@@ -13783,6 +13821,10 @@ class BacktestUtils {
|
|
|
13783
13821
|
*/
|
|
13784
13822
|
this.getData = async (symbol, strategyName) => {
|
|
13785
13823
|
backtest$1.strategyValidationService.validate(strategyName, "BacktestUtils.getData");
|
|
13824
|
+
{
|
|
13825
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
13826
|
+
riskName && backtest$1.riskValidationService.validate(riskName, "BacktestUtils.getData");
|
|
13827
|
+
}
|
|
13786
13828
|
const instance = this._getInstance(symbol, strategyName);
|
|
13787
13829
|
return await instance.getData(symbol, strategyName);
|
|
13788
13830
|
};
|
|
@@ -13801,6 +13843,10 @@ class BacktestUtils {
|
|
|
13801
13843
|
*/
|
|
13802
13844
|
this.getReport = async (symbol, strategyName) => {
|
|
13803
13845
|
backtest$1.strategyValidationService.validate(strategyName, BACKTEST_METHOD_NAME_GET_REPORT);
|
|
13846
|
+
{
|
|
13847
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
13848
|
+
riskName && backtest$1.riskValidationService.validate(riskName, BACKTEST_METHOD_NAME_GET_REPORT);
|
|
13849
|
+
}
|
|
13804
13850
|
const instance = this._getInstance(symbol, strategyName);
|
|
13805
13851
|
return await instance.getReport(symbol, strategyName);
|
|
13806
13852
|
};
|
|
@@ -13822,6 +13868,10 @@ class BacktestUtils {
|
|
|
13822
13868
|
*/
|
|
13823
13869
|
this.dump = async (symbol, strategyName, path) => {
|
|
13824
13870
|
backtest$1.strategyValidationService.validate(strategyName, BACKTEST_METHOD_NAME_DUMP);
|
|
13871
|
+
{
|
|
13872
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
13873
|
+
riskName && backtest$1.riskValidationService.validate(riskName, BACKTEST_METHOD_NAME_DUMP);
|
|
13874
|
+
}
|
|
13825
13875
|
const instance = this._getInstance(symbol, strategyName);
|
|
13826
13876
|
return await instance.dump(symbol, strategyName, path);
|
|
13827
13877
|
};
|
|
@@ -14223,6 +14273,10 @@ class LiveUtils {
|
|
|
14223
14273
|
this.background = (symbol, context) => {
|
|
14224
14274
|
backtest$1.strategyValidationService.validate(context.strategyName, LIVE_METHOD_NAME_BACKGROUND);
|
|
14225
14275
|
backtest$1.exchangeValidationService.validate(context.exchangeName, LIVE_METHOD_NAME_BACKGROUND);
|
|
14276
|
+
{
|
|
14277
|
+
const { riskName } = backtest$1.strategySchemaService.get(context.strategyName);
|
|
14278
|
+
riskName && backtest$1.riskValidationService.validate(riskName, LIVE_METHOD_NAME_BACKGROUND);
|
|
14279
|
+
}
|
|
14226
14280
|
const instance = this._getInstance(symbol, context.strategyName);
|
|
14227
14281
|
return instance.background(symbol, context);
|
|
14228
14282
|
};
|
|
@@ -14245,6 +14299,10 @@ class LiveUtils {
|
|
|
14245
14299
|
*/
|
|
14246
14300
|
this.stop = async (symbol, strategyName) => {
|
|
14247
14301
|
backtest$1.strategyValidationService.validate(strategyName, LIVE_METHOD_NAME_STOP);
|
|
14302
|
+
{
|
|
14303
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14304
|
+
riskName && backtest$1.riskValidationService.validate(riskName, LIVE_METHOD_NAME_STOP);
|
|
14305
|
+
}
|
|
14248
14306
|
const instance = this._getInstance(symbol, strategyName);
|
|
14249
14307
|
return await instance.stop(symbol, strategyName);
|
|
14250
14308
|
};
|
|
@@ -14263,6 +14321,10 @@ class LiveUtils {
|
|
|
14263
14321
|
*/
|
|
14264
14322
|
this.getData = async (symbol, strategyName) => {
|
|
14265
14323
|
backtest$1.strategyValidationService.validate(strategyName, "LiveUtils.getData");
|
|
14324
|
+
{
|
|
14325
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14326
|
+
riskName && backtest$1.riskValidationService.validate(riskName, "LiveUtils.getData");
|
|
14327
|
+
}
|
|
14266
14328
|
const instance = this._getInstance(symbol, strategyName);
|
|
14267
14329
|
return await instance.getData(symbol, strategyName);
|
|
14268
14330
|
};
|
|
@@ -14281,6 +14343,10 @@ class LiveUtils {
|
|
|
14281
14343
|
*/
|
|
14282
14344
|
this.getReport = async (symbol, strategyName) => {
|
|
14283
14345
|
backtest$1.strategyValidationService.validate(strategyName, LIVE_METHOD_NAME_GET_REPORT);
|
|
14346
|
+
{
|
|
14347
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14348
|
+
riskName && backtest$1.riskValidationService.validate(riskName, LIVE_METHOD_NAME_GET_REPORT);
|
|
14349
|
+
}
|
|
14284
14350
|
const instance = this._getInstance(symbol, strategyName);
|
|
14285
14351
|
return await instance.getReport(symbol, strategyName);
|
|
14286
14352
|
};
|
|
@@ -14302,6 +14368,10 @@ class LiveUtils {
|
|
|
14302
14368
|
*/
|
|
14303
14369
|
this.dump = async (symbol, strategyName, path) => {
|
|
14304
14370
|
backtest$1.strategyValidationService.validate(strategyName, LIVE_METHOD_NAME_DUMP);
|
|
14371
|
+
{
|
|
14372
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14373
|
+
riskName && backtest$1.riskValidationService.validate(riskName, LIVE_METHOD_NAME_DUMP);
|
|
14374
|
+
}
|
|
14305
14375
|
const instance = this._getInstance(symbol, strategyName);
|
|
14306
14376
|
return await instance.dump(symbol, strategyName, path);
|
|
14307
14377
|
};
|
|
@@ -14389,6 +14459,11 @@ class ScheduleUtils {
|
|
|
14389
14459
|
symbol,
|
|
14390
14460
|
strategyName,
|
|
14391
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
|
+
}
|
|
14392
14467
|
return await backtest$1.scheduleMarkdownService.getData(symbol, strategyName);
|
|
14393
14468
|
};
|
|
14394
14469
|
/**
|
|
@@ -14409,6 +14484,11 @@ class ScheduleUtils {
|
|
|
14409
14484
|
symbol,
|
|
14410
14485
|
strategyName,
|
|
14411
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
|
+
}
|
|
14412
14492
|
return await backtest$1.scheduleMarkdownService.getReport(symbol, strategyName);
|
|
14413
14493
|
};
|
|
14414
14494
|
/**
|
|
@@ -14433,6 +14513,11 @@ class ScheduleUtils {
|
|
|
14433
14513
|
strategyName,
|
|
14434
14514
|
path,
|
|
14435
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
|
+
}
|
|
14436
14521
|
await backtest$1.scheduleMarkdownService.dump(symbol, strategyName, path);
|
|
14437
14522
|
};
|
|
14438
14523
|
}
|
|
@@ -14512,6 +14597,11 @@ class Performance {
|
|
|
14512
14597
|
* ```
|
|
14513
14598
|
*/
|
|
14514
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
|
+
}
|
|
14515
14605
|
return backtest$1.performanceMarkdownService.getData(symbol, strategyName);
|
|
14516
14606
|
}
|
|
14517
14607
|
/**
|
|
@@ -14537,6 +14627,11 @@ class Performance {
|
|
|
14537
14627
|
* ```
|
|
14538
14628
|
*/
|
|
14539
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
|
+
}
|
|
14540
14635
|
return backtest$1.performanceMarkdownService.getReport(symbol, strategyName);
|
|
14541
14636
|
}
|
|
14542
14637
|
/**
|
|
@@ -14559,6 +14654,11 @@ class Performance {
|
|
|
14559
14654
|
* ```
|
|
14560
14655
|
*/
|
|
14561
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
|
+
}
|
|
14562
14662
|
return backtest$1.performanceMarkdownService.dump(symbol, strategyName, path);
|
|
14563
14663
|
}
|
|
14564
14664
|
}
|
|
@@ -14973,6 +15073,13 @@ class WalkerUtils {
|
|
|
14973
15073
|
*/
|
|
14974
15074
|
this.stop = async (symbol, walkerName) => {
|
|
14975
15075
|
backtest$1.walkerValidationService.validate(walkerName, WALKER_METHOD_NAME_STOP);
|
|
15076
|
+
const walkerSchema = backtest$1.walkerSchemaService.get(walkerName);
|
|
15077
|
+
for (const strategyName of walkerSchema.strategies) {
|
|
15078
|
+
backtest$1.strategyValidationService.validate(strategyName, WALKER_METHOD_NAME_STOP);
|
|
15079
|
+
const strategySchema = backtest$1.strategySchemaService.get(strategyName);
|
|
15080
|
+
const riskName = strategySchema.riskName;
|
|
15081
|
+
riskName && backtest$1.riskValidationService.validate(riskName, WALKER_METHOD_NAME_STOP);
|
|
15082
|
+
}
|
|
14976
15083
|
const instance = this._getInstance(symbol, walkerName);
|
|
14977
15084
|
return await instance.stop(symbol, walkerName);
|
|
14978
15085
|
};
|
|
@@ -14991,6 +15098,13 @@ class WalkerUtils {
|
|
|
14991
15098
|
*/
|
|
14992
15099
|
this.getData = async (symbol, walkerName) => {
|
|
14993
15100
|
backtest$1.walkerValidationService.validate(walkerName, WALKER_METHOD_NAME_GET_DATA);
|
|
15101
|
+
const walkerSchema = backtest$1.walkerSchemaService.get(walkerName);
|
|
15102
|
+
for (const strategyName of walkerSchema.strategies) {
|
|
15103
|
+
backtest$1.strategyValidationService.validate(strategyName, WALKER_METHOD_NAME_GET_DATA);
|
|
15104
|
+
const strategySchema = backtest$1.strategySchemaService.get(strategyName);
|
|
15105
|
+
const riskName = strategySchema.riskName;
|
|
15106
|
+
riskName && backtest$1.riskValidationService.validate(riskName, WALKER_METHOD_NAME_GET_DATA);
|
|
15107
|
+
}
|
|
14994
15108
|
const instance = this._getInstance(symbol, walkerName);
|
|
14995
15109
|
return await instance.getData(symbol, walkerName);
|
|
14996
15110
|
};
|
|
@@ -15009,6 +15123,13 @@ class WalkerUtils {
|
|
|
15009
15123
|
*/
|
|
15010
15124
|
this.getReport = async (symbol, walkerName) => {
|
|
15011
15125
|
backtest$1.walkerValidationService.validate(walkerName, WALKER_METHOD_NAME_GET_REPORT);
|
|
15126
|
+
const walkerSchema = backtest$1.walkerSchemaService.get(walkerName);
|
|
15127
|
+
for (const strategyName of walkerSchema.strategies) {
|
|
15128
|
+
backtest$1.strategyValidationService.validate(strategyName, WALKER_METHOD_NAME_GET_REPORT);
|
|
15129
|
+
const strategySchema = backtest$1.strategySchemaService.get(strategyName);
|
|
15130
|
+
const riskName = strategySchema.riskName;
|
|
15131
|
+
riskName && backtest$1.riskValidationService.validate(riskName, WALKER_METHOD_NAME_GET_REPORT);
|
|
15132
|
+
}
|
|
15012
15133
|
const instance = this._getInstance(symbol, walkerName);
|
|
15013
15134
|
return await instance.getReport(symbol, walkerName);
|
|
15014
15135
|
};
|
|
@@ -15030,6 +15151,13 @@ class WalkerUtils {
|
|
|
15030
15151
|
*/
|
|
15031
15152
|
this.dump = async (symbol, walkerName, path) => {
|
|
15032
15153
|
backtest$1.walkerValidationService.validate(walkerName, WALKER_METHOD_NAME_DUMP);
|
|
15154
|
+
const walkerSchema = backtest$1.walkerSchemaService.get(walkerName);
|
|
15155
|
+
for (const strategyName of walkerSchema.strategies) {
|
|
15156
|
+
backtest$1.strategyValidationService.validate(strategyName, WALKER_METHOD_NAME_DUMP);
|
|
15157
|
+
const strategySchema = backtest$1.strategySchemaService.get(strategyName);
|
|
15158
|
+
const riskName = strategySchema.riskName;
|
|
15159
|
+
riskName && backtest$1.riskValidationService.validate(riskName, WALKER_METHOD_NAME_DUMP);
|
|
15160
|
+
}
|
|
15033
15161
|
const instance = this._getInstance(symbol, walkerName);
|
|
15034
15162
|
return await instance.dump(symbol, walkerName, path);
|
|
15035
15163
|
};
|
|
@@ -15122,6 +15250,11 @@ class HeatUtils {
|
|
|
15122
15250
|
*/
|
|
15123
15251
|
this.getData = async (strategyName) => {
|
|
15124
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
|
+
}
|
|
15125
15258
|
return await backtest$1.heatMarkdownService.getData(strategyName);
|
|
15126
15259
|
};
|
|
15127
15260
|
/**
|
|
@@ -15151,6 +15284,11 @@ class HeatUtils {
|
|
|
15151
15284
|
*/
|
|
15152
15285
|
this.getReport = async (strategyName) => {
|
|
15153
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
|
+
}
|
|
15154
15292
|
return await backtest$1.heatMarkdownService.getReport(strategyName);
|
|
15155
15293
|
};
|
|
15156
15294
|
/**
|
|
@@ -15173,6 +15311,11 @@ class HeatUtils {
|
|
|
15173
15311
|
*/
|
|
15174
15312
|
this.dump = async (strategyName, path) => {
|
|
15175
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
|
+
}
|
|
15176
15319
|
await backtest$1.heatMarkdownService.dump(strategyName, path);
|
|
15177
15320
|
};
|
|
15178
15321
|
}
|
|
@@ -15370,6 +15513,7 @@ class OptimizerUtils {
|
|
|
15370
15513
|
symbol,
|
|
15371
15514
|
context,
|
|
15372
15515
|
});
|
|
15516
|
+
backtest$1.optimizerValidationService.validate(context.optimizerName, OPTIMIZER_METHOD_NAME_GET_DATA);
|
|
15373
15517
|
return await backtest$1.optimizerGlobalService.getData(symbol, context.optimizerName);
|
|
15374
15518
|
};
|
|
15375
15519
|
/**
|
|
@@ -15386,6 +15530,7 @@ class OptimizerUtils {
|
|
|
15386
15530
|
symbol,
|
|
15387
15531
|
context,
|
|
15388
15532
|
});
|
|
15533
|
+
backtest$1.optimizerValidationService.validate(context.optimizerName, OPTIMIZER_METHOD_NAME_GET_CODE);
|
|
15389
15534
|
return await backtest$1.optimizerGlobalService.getCode(symbol, context.optimizerName);
|
|
15390
15535
|
};
|
|
15391
15536
|
/**
|
|
@@ -15405,6 +15550,7 @@ class OptimizerUtils {
|
|
|
15405
15550
|
context,
|
|
15406
15551
|
path,
|
|
15407
15552
|
});
|
|
15553
|
+
backtest$1.optimizerValidationService.validate(context.optimizerName, OPTIMIZER_METHOD_NAME_DUMP);
|
|
15408
15554
|
await backtest$1.optimizerGlobalService.dump(symbol, context.optimizerName, path);
|
|
15409
15555
|
};
|
|
15410
15556
|
}
|
|
@@ -15488,6 +15634,11 @@ class PartialUtils {
|
|
|
15488
15634
|
*/
|
|
15489
15635
|
this.getData = async (symbol, strategyName) => {
|
|
15490
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
|
+
}
|
|
15491
15642
|
return await backtest$1.partialMarkdownService.getData(symbol, strategyName);
|
|
15492
15643
|
};
|
|
15493
15644
|
/**
|
|
@@ -15530,6 +15681,11 @@ class PartialUtils {
|
|
|
15530
15681
|
*/
|
|
15531
15682
|
this.getReport = async (symbol, strategyName) => {
|
|
15532
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
|
+
}
|
|
15533
15689
|
return await backtest$1.partialMarkdownService.getReport(symbol, strategyName);
|
|
15534
15690
|
};
|
|
15535
15691
|
/**
|
|
@@ -15565,6 +15721,11 @@ class PartialUtils {
|
|
|
15565
15721
|
*/
|
|
15566
15722
|
this.dump = async (symbol, strategyName, path) => {
|
|
15567
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
|
+
}
|
|
15568
15729
|
await backtest$1.partialMarkdownService.dump(symbol, strategyName, path);
|
|
15569
15730
|
};
|
|
15570
15731
|
}
|
package/build/index.mjs
CHANGED
|
@@ -11313,6 +11313,35 @@ class PartialGlobalService {
|
|
|
11313
11313
|
* Handles actual ClientPartial instance creation and management.
|
|
11314
11314
|
*/
|
|
11315
11315
|
this.partialConnectionService = inject(TYPES.partialConnectionService);
|
|
11316
|
+
/**
|
|
11317
|
+
* Strategy validation service for validating strategy existence.
|
|
11318
|
+
*/
|
|
11319
|
+
this.strategyValidationService = inject(TYPES.strategyValidationService);
|
|
11320
|
+
/**
|
|
11321
|
+
* Strategy schema service for retrieving strategy configuration.
|
|
11322
|
+
*/
|
|
11323
|
+
this.strategySchemaService = inject(TYPES.strategySchemaService);
|
|
11324
|
+
/**
|
|
11325
|
+
* Risk validation service for validating risk existence.
|
|
11326
|
+
*/
|
|
11327
|
+
this.riskValidationService = inject(TYPES.riskValidationService);
|
|
11328
|
+
/**
|
|
11329
|
+
* Validates strategy and associated risk configuration.
|
|
11330
|
+
* Memoized to avoid redundant validations for the same strategy.
|
|
11331
|
+
*
|
|
11332
|
+
* @param strategyName - Name of the strategy to validate
|
|
11333
|
+
* @param methodName - Name of the calling method for error tracking
|
|
11334
|
+
*/
|
|
11335
|
+
this.validate = memoize(([strategyName]) => `${strategyName}`, (strategyName, methodName) => {
|
|
11336
|
+
this.loggerService.log("partialGlobalService validate", {
|
|
11337
|
+
strategyName,
|
|
11338
|
+
methodName,
|
|
11339
|
+
});
|
|
11340
|
+
this.strategyValidationService.validate(strategyName, methodName);
|
|
11341
|
+
const strategySchema = this.strategySchemaService.get(strategyName);
|
|
11342
|
+
const riskName = strategySchema.riskName;
|
|
11343
|
+
riskName && this.riskValidationService.validate(riskName, methodName);
|
|
11344
|
+
});
|
|
11316
11345
|
/**
|
|
11317
11346
|
* Processes profit state and emits events for newly reached profit levels.
|
|
11318
11347
|
*
|
|
@@ -11335,6 +11364,7 @@ class PartialGlobalService {
|
|
|
11335
11364
|
backtest,
|
|
11336
11365
|
when,
|
|
11337
11366
|
});
|
|
11367
|
+
this.validate(data.strategyName, "partialGlobalService profit");
|
|
11338
11368
|
return await this.partialConnectionService.profit(symbol, data, currentPrice, revenuePercent, backtest, when);
|
|
11339
11369
|
};
|
|
11340
11370
|
/**
|
|
@@ -11359,6 +11389,7 @@ class PartialGlobalService {
|
|
|
11359
11389
|
backtest,
|
|
11360
11390
|
when,
|
|
11361
11391
|
});
|
|
11392
|
+
this.validate(data.strategyName, "partialGlobalService loss");
|
|
11362
11393
|
return await this.partialConnectionService.loss(symbol, data, currentPrice, lossPercent, backtest, when);
|
|
11363
11394
|
};
|
|
11364
11395
|
/**
|
|
@@ -11372,12 +11403,13 @@ class PartialGlobalService {
|
|
|
11372
11403
|
* @returns Promise that resolves when clear is complete
|
|
11373
11404
|
*/
|
|
11374
11405
|
this.clear = async (symbol, data, priceClose, backtest) => {
|
|
11375
|
-
this.loggerService.log("partialGlobalService
|
|
11406
|
+
this.loggerService.log("partialGlobalService clear", {
|
|
11376
11407
|
symbol,
|
|
11377
11408
|
data,
|
|
11378
11409
|
priceClose,
|
|
11379
11410
|
backtest,
|
|
11380
11411
|
});
|
|
11412
|
+
this.validate(data.strategyName, "partialGlobalService clear");
|
|
11381
11413
|
return await this.partialConnectionService.clear(symbol, data, priceClose, backtest);
|
|
11382
11414
|
};
|
|
11383
11415
|
}
|
|
@@ -13736,10 +13768,12 @@ class BacktestUtils {
|
|
|
13736
13768
|
* ```
|
|
13737
13769
|
*/
|
|
13738
13770
|
this.background = (symbol, context) => {
|
|
13771
|
+
backtest$1.strategyValidationService.validate(context.strategyName, BACKTEST_METHOD_NAME_BACKGROUND);
|
|
13772
|
+
backtest$1.exchangeValidationService.validate(context.exchangeName, BACKTEST_METHOD_NAME_BACKGROUND);
|
|
13773
|
+
backtest$1.frameValidationService.validate(context.frameName, BACKTEST_METHOD_NAME_BACKGROUND);
|
|
13739
13774
|
{
|
|
13740
|
-
backtest$1.
|
|
13741
|
-
backtest$1.
|
|
13742
|
-
backtest$1.frameValidationService.validate(context.frameName, BACKTEST_METHOD_NAME_BACKGROUND);
|
|
13775
|
+
const { riskName } = backtest$1.strategySchemaService.get(context.strategyName);
|
|
13776
|
+
riskName && backtest$1.riskValidationService.validate(riskName, BACKTEST_METHOD_NAME_BACKGROUND);
|
|
13743
13777
|
}
|
|
13744
13778
|
const instance = this._getInstance(symbol, context.strategyName);
|
|
13745
13779
|
return instance.background(symbol, context);
|
|
@@ -13763,6 +13797,10 @@ class BacktestUtils {
|
|
|
13763
13797
|
*/
|
|
13764
13798
|
this.stop = async (symbol, strategyName) => {
|
|
13765
13799
|
backtest$1.strategyValidationService.validate(strategyName, BACKTEST_METHOD_NAME_STOP);
|
|
13800
|
+
{
|
|
13801
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
13802
|
+
riskName && backtest$1.riskValidationService.validate(riskName, BACKTEST_METHOD_NAME_STOP);
|
|
13803
|
+
}
|
|
13766
13804
|
const instance = this._getInstance(symbol, strategyName);
|
|
13767
13805
|
return await instance.stop(symbol, strategyName);
|
|
13768
13806
|
};
|
|
@@ -13781,6 +13819,10 @@ class BacktestUtils {
|
|
|
13781
13819
|
*/
|
|
13782
13820
|
this.getData = async (symbol, strategyName) => {
|
|
13783
13821
|
backtest$1.strategyValidationService.validate(strategyName, "BacktestUtils.getData");
|
|
13822
|
+
{
|
|
13823
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
13824
|
+
riskName && backtest$1.riskValidationService.validate(riskName, "BacktestUtils.getData");
|
|
13825
|
+
}
|
|
13784
13826
|
const instance = this._getInstance(symbol, strategyName);
|
|
13785
13827
|
return await instance.getData(symbol, strategyName);
|
|
13786
13828
|
};
|
|
@@ -13799,6 +13841,10 @@ class BacktestUtils {
|
|
|
13799
13841
|
*/
|
|
13800
13842
|
this.getReport = async (symbol, strategyName) => {
|
|
13801
13843
|
backtest$1.strategyValidationService.validate(strategyName, BACKTEST_METHOD_NAME_GET_REPORT);
|
|
13844
|
+
{
|
|
13845
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
13846
|
+
riskName && backtest$1.riskValidationService.validate(riskName, BACKTEST_METHOD_NAME_GET_REPORT);
|
|
13847
|
+
}
|
|
13802
13848
|
const instance = this._getInstance(symbol, strategyName);
|
|
13803
13849
|
return await instance.getReport(symbol, strategyName);
|
|
13804
13850
|
};
|
|
@@ -13820,6 +13866,10 @@ class BacktestUtils {
|
|
|
13820
13866
|
*/
|
|
13821
13867
|
this.dump = async (symbol, strategyName, path) => {
|
|
13822
13868
|
backtest$1.strategyValidationService.validate(strategyName, BACKTEST_METHOD_NAME_DUMP);
|
|
13869
|
+
{
|
|
13870
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
13871
|
+
riskName && backtest$1.riskValidationService.validate(riskName, BACKTEST_METHOD_NAME_DUMP);
|
|
13872
|
+
}
|
|
13823
13873
|
const instance = this._getInstance(symbol, strategyName);
|
|
13824
13874
|
return await instance.dump(symbol, strategyName, path);
|
|
13825
13875
|
};
|
|
@@ -14221,6 +14271,10 @@ class LiveUtils {
|
|
|
14221
14271
|
this.background = (symbol, context) => {
|
|
14222
14272
|
backtest$1.strategyValidationService.validate(context.strategyName, LIVE_METHOD_NAME_BACKGROUND);
|
|
14223
14273
|
backtest$1.exchangeValidationService.validate(context.exchangeName, LIVE_METHOD_NAME_BACKGROUND);
|
|
14274
|
+
{
|
|
14275
|
+
const { riskName } = backtest$1.strategySchemaService.get(context.strategyName);
|
|
14276
|
+
riskName && backtest$1.riskValidationService.validate(riskName, LIVE_METHOD_NAME_BACKGROUND);
|
|
14277
|
+
}
|
|
14224
14278
|
const instance = this._getInstance(symbol, context.strategyName);
|
|
14225
14279
|
return instance.background(symbol, context);
|
|
14226
14280
|
};
|
|
@@ -14243,6 +14297,10 @@ class LiveUtils {
|
|
|
14243
14297
|
*/
|
|
14244
14298
|
this.stop = async (symbol, strategyName) => {
|
|
14245
14299
|
backtest$1.strategyValidationService.validate(strategyName, LIVE_METHOD_NAME_STOP);
|
|
14300
|
+
{
|
|
14301
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14302
|
+
riskName && backtest$1.riskValidationService.validate(riskName, LIVE_METHOD_NAME_STOP);
|
|
14303
|
+
}
|
|
14246
14304
|
const instance = this._getInstance(symbol, strategyName);
|
|
14247
14305
|
return await instance.stop(symbol, strategyName);
|
|
14248
14306
|
};
|
|
@@ -14261,6 +14319,10 @@ class LiveUtils {
|
|
|
14261
14319
|
*/
|
|
14262
14320
|
this.getData = async (symbol, strategyName) => {
|
|
14263
14321
|
backtest$1.strategyValidationService.validate(strategyName, "LiveUtils.getData");
|
|
14322
|
+
{
|
|
14323
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14324
|
+
riskName && backtest$1.riskValidationService.validate(riskName, "LiveUtils.getData");
|
|
14325
|
+
}
|
|
14264
14326
|
const instance = this._getInstance(symbol, strategyName);
|
|
14265
14327
|
return await instance.getData(symbol, strategyName);
|
|
14266
14328
|
};
|
|
@@ -14279,6 +14341,10 @@ class LiveUtils {
|
|
|
14279
14341
|
*/
|
|
14280
14342
|
this.getReport = async (symbol, strategyName) => {
|
|
14281
14343
|
backtest$1.strategyValidationService.validate(strategyName, LIVE_METHOD_NAME_GET_REPORT);
|
|
14344
|
+
{
|
|
14345
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14346
|
+
riskName && backtest$1.riskValidationService.validate(riskName, LIVE_METHOD_NAME_GET_REPORT);
|
|
14347
|
+
}
|
|
14282
14348
|
const instance = this._getInstance(symbol, strategyName);
|
|
14283
14349
|
return await instance.getReport(symbol, strategyName);
|
|
14284
14350
|
};
|
|
@@ -14300,6 +14366,10 @@ class LiveUtils {
|
|
|
14300
14366
|
*/
|
|
14301
14367
|
this.dump = async (symbol, strategyName, path) => {
|
|
14302
14368
|
backtest$1.strategyValidationService.validate(strategyName, LIVE_METHOD_NAME_DUMP);
|
|
14369
|
+
{
|
|
14370
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14371
|
+
riskName && backtest$1.riskValidationService.validate(riskName, LIVE_METHOD_NAME_DUMP);
|
|
14372
|
+
}
|
|
14303
14373
|
const instance = this._getInstance(symbol, strategyName);
|
|
14304
14374
|
return await instance.dump(symbol, strategyName, path);
|
|
14305
14375
|
};
|
|
@@ -14387,6 +14457,11 @@ class ScheduleUtils {
|
|
|
14387
14457
|
symbol,
|
|
14388
14458
|
strategyName,
|
|
14389
14459
|
});
|
|
14460
|
+
backtest$1.strategyValidationService.validate(strategyName, SCHEDULE_METHOD_NAME_GET_DATA);
|
|
14461
|
+
{
|
|
14462
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14463
|
+
riskName && backtest$1.riskValidationService.validate(riskName, SCHEDULE_METHOD_NAME_GET_DATA);
|
|
14464
|
+
}
|
|
14390
14465
|
return await backtest$1.scheduleMarkdownService.getData(symbol, strategyName);
|
|
14391
14466
|
};
|
|
14392
14467
|
/**
|
|
@@ -14407,6 +14482,11 @@ class ScheduleUtils {
|
|
|
14407
14482
|
symbol,
|
|
14408
14483
|
strategyName,
|
|
14409
14484
|
});
|
|
14485
|
+
backtest$1.strategyValidationService.validate(strategyName, SCHEDULE_METHOD_NAME_GET_REPORT);
|
|
14486
|
+
{
|
|
14487
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14488
|
+
riskName && backtest$1.riskValidationService.validate(riskName, SCHEDULE_METHOD_NAME_GET_REPORT);
|
|
14489
|
+
}
|
|
14410
14490
|
return await backtest$1.scheduleMarkdownService.getReport(symbol, strategyName);
|
|
14411
14491
|
};
|
|
14412
14492
|
/**
|
|
@@ -14431,6 +14511,11 @@ class ScheduleUtils {
|
|
|
14431
14511
|
strategyName,
|
|
14432
14512
|
path,
|
|
14433
14513
|
});
|
|
14514
|
+
backtest$1.strategyValidationService.validate(strategyName, SCHEDULE_METHOD_NAME_DUMP);
|
|
14515
|
+
{
|
|
14516
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14517
|
+
riskName && backtest$1.riskValidationService.validate(riskName, SCHEDULE_METHOD_NAME_DUMP);
|
|
14518
|
+
}
|
|
14434
14519
|
await backtest$1.scheduleMarkdownService.dump(symbol, strategyName, path);
|
|
14435
14520
|
};
|
|
14436
14521
|
}
|
|
@@ -14510,6 +14595,11 @@ class Performance {
|
|
|
14510
14595
|
* ```
|
|
14511
14596
|
*/
|
|
14512
14597
|
static async getData(symbol, strategyName) {
|
|
14598
|
+
backtest$1.strategyValidationService.validate(strategyName, "Performance.getData");
|
|
14599
|
+
{
|
|
14600
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14601
|
+
riskName && backtest$1.riskValidationService.validate(riskName, "Performance.getData");
|
|
14602
|
+
}
|
|
14513
14603
|
return backtest$1.performanceMarkdownService.getData(symbol, strategyName);
|
|
14514
14604
|
}
|
|
14515
14605
|
/**
|
|
@@ -14535,6 +14625,11 @@ class Performance {
|
|
|
14535
14625
|
* ```
|
|
14536
14626
|
*/
|
|
14537
14627
|
static async getReport(symbol, strategyName) {
|
|
14628
|
+
backtest$1.strategyValidationService.validate(strategyName, "Performance.getReport");
|
|
14629
|
+
{
|
|
14630
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14631
|
+
riskName && backtest$1.riskValidationService.validate(riskName, "Performance.getReport");
|
|
14632
|
+
}
|
|
14538
14633
|
return backtest$1.performanceMarkdownService.getReport(symbol, strategyName);
|
|
14539
14634
|
}
|
|
14540
14635
|
/**
|
|
@@ -14557,6 +14652,11 @@ class Performance {
|
|
|
14557
14652
|
* ```
|
|
14558
14653
|
*/
|
|
14559
14654
|
static async dump(symbol, strategyName, path = "./dump/performance") {
|
|
14655
|
+
backtest$1.strategyValidationService.validate(strategyName, "Performance.dump");
|
|
14656
|
+
{
|
|
14657
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
14658
|
+
riskName && backtest$1.riskValidationService.validate(riskName, "Performance.dump");
|
|
14659
|
+
}
|
|
14560
14660
|
return backtest$1.performanceMarkdownService.dump(symbol, strategyName, path);
|
|
14561
14661
|
}
|
|
14562
14662
|
}
|
|
@@ -14971,6 +15071,13 @@ class WalkerUtils {
|
|
|
14971
15071
|
*/
|
|
14972
15072
|
this.stop = async (symbol, walkerName) => {
|
|
14973
15073
|
backtest$1.walkerValidationService.validate(walkerName, WALKER_METHOD_NAME_STOP);
|
|
15074
|
+
const walkerSchema = backtest$1.walkerSchemaService.get(walkerName);
|
|
15075
|
+
for (const strategyName of walkerSchema.strategies) {
|
|
15076
|
+
backtest$1.strategyValidationService.validate(strategyName, WALKER_METHOD_NAME_STOP);
|
|
15077
|
+
const strategySchema = backtest$1.strategySchemaService.get(strategyName);
|
|
15078
|
+
const riskName = strategySchema.riskName;
|
|
15079
|
+
riskName && backtest$1.riskValidationService.validate(riskName, WALKER_METHOD_NAME_STOP);
|
|
15080
|
+
}
|
|
14974
15081
|
const instance = this._getInstance(symbol, walkerName);
|
|
14975
15082
|
return await instance.stop(symbol, walkerName);
|
|
14976
15083
|
};
|
|
@@ -14989,6 +15096,13 @@ class WalkerUtils {
|
|
|
14989
15096
|
*/
|
|
14990
15097
|
this.getData = async (symbol, walkerName) => {
|
|
14991
15098
|
backtest$1.walkerValidationService.validate(walkerName, WALKER_METHOD_NAME_GET_DATA);
|
|
15099
|
+
const walkerSchema = backtest$1.walkerSchemaService.get(walkerName);
|
|
15100
|
+
for (const strategyName of walkerSchema.strategies) {
|
|
15101
|
+
backtest$1.strategyValidationService.validate(strategyName, WALKER_METHOD_NAME_GET_DATA);
|
|
15102
|
+
const strategySchema = backtest$1.strategySchemaService.get(strategyName);
|
|
15103
|
+
const riskName = strategySchema.riskName;
|
|
15104
|
+
riskName && backtest$1.riskValidationService.validate(riskName, WALKER_METHOD_NAME_GET_DATA);
|
|
15105
|
+
}
|
|
14992
15106
|
const instance = this._getInstance(symbol, walkerName);
|
|
14993
15107
|
return await instance.getData(symbol, walkerName);
|
|
14994
15108
|
};
|
|
@@ -15007,6 +15121,13 @@ class WalkerUtils {
|
|
|
15007
15121
|
*/
|
|
15008
15122
|
this.getReport = async (symbol, walkerName) => {
|
|
15009
15123
|
backtest$1.walkerValidationService.validate(walkerName, WALKER_METHOD_NAME_GET_REPORT);
|
|
15124
|
+
const walkerSchema = backtest$1.walkerSchemaService.get(walkerName);
|
|
15125
|
+
for (const strategyName of walkerSchema.strategies) {
|
|
15126
|
+
backtest$1.strategyValidationService.validate(strategyName, WALKER_METHOD_NAME_GET_REPORT);
|
|
15127
|
+
const strategySchema = backtest$1.strategySchemaService.get(strategyName);
|
|
15128
|
+
const riskName = strategySchema.riskName;
|
|
15129
|
+
riskName && backtest$1.riskValidationService.validate(riskName, WALKER_METHOD_NAME_GET_REPORT);
|
|
15130
|
+
}
|
|
15010
15131
|
const instance = this._getInstance(symbol, walkerName);
|
|
15011
15132
|
return await instance.getReport(symbol, walkerName);
|
|
15012
15133
|
};
|
|
@@ -15028,6 +15149,13 @@ class WalkerUtils {
|
|
|
15028
15149
|
*/
|
|
15029
15150
|
this.dump = async (symbol, walkerName, path) => {
|
|
15030
15151
|
backtest$1.walkerValidationService.validate(walkerName, WALKER_METHOD_NAME_DUMP);
|
|
15152
|
+
const walkerSchema = backtest$1.walkerSchemaService.get(walkerName);
|
|
15153
|
+
for (const strategyName of walkerSchema.strategies) {
|
|
15154
|
+
backtest$1.strategyValidationService.validate(strategyName, WALKER_METHOD_NAME_DUMP);
|
|
15155
|
+
const strategySchema = backtest$1.strategySchemaService.get(strategyName);
|
|
15156
|
+
const riskName = strategySchema.riskName;
|
|
15157
|
+
riskName && backtest$1.riskValidationService.validate(riskName, WALKER_METHOD_NAME_DUMP);
|
|
15158
|
+
}
|
|
15031
15159
|
const instance = this._getInstance(symbol, walkerName);
|
|
15032
15160
|
return await instance.dump(symbol, walkerName, path);
|
|
15033
15161
|
};
|
|
@@ -15120,6 +15248,11 @@ class HeatUtils {
|
|
|
15120
15248
|
*/
|
|
15121
15249
|
this.getData = async (strategyName) => {
|
|
15122
15250
|
backtest$1.loggerService.info(HEAT_METHOD_NAME_GET_DATA, { strategyName });
|
|
15251
|
+
backtest$1.strategyValidationService.validate(strategyName, HEAT_METHOD_NAME_GET_DATA);
|
|
15252
|
+
{
|
|
15253
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
15254
|
+
riskName && backtest$1.riskValidationService.validate(riskName, HEAT_METHOD_NAME_GET_DATA);
|
|
15255
|
+
}
|
|
15123
15256
|
return await backtest$1.heatMarkdownService.getData(strategyName);
|
|
15124
15257
|
};
|
|
15125
15258
|
/**
|
|
@@ -15149,6 +15282,11 @@ class HeatUtils {
|
|
|
15149
15282
|
*/
|
|
15150
15283
|
this.getReport = async (strategyName) => {
|
|
15151
15284
|
backtest$1.loggerService.info(HEAT_METHOD_NAME_GET_REPORT, { strategyName });
|
|
15285
|
+
backtest$1.strategyValidationService.validate(strategyName, HEAT_METHOD_NAME_GET_REPORT);
|
|
15286
|
+
{
|
|
15287
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
15288
|
+
riskName && backtest$1.riskValidationService.validate(riskName, HEAT_METHOD_NAME_GET_REPORT);
|
|
15289
|
+
}
|
|
15152
15290
|
return await backtest$1.heatMarkdownService.getReport(strategyName);
|
|
15153
15291
|
};
|
|
15154
15292
|
/**
|
|
@@ -15171,6 +15309,11 @@ class HeatUtils {
|
|
|
15171
15309
|
*/
|
|
15172
15310
|
this.dump = async (strategyName, path) => {
|
|
15173
15311
|
backtest$1.loggerService.info(HEAT_METHOD_NAME_DUMP, { strategyName, path });
|
|
15312
|
+
backtest$1.strategyValidationService.validate(strategyName, HEAT_METHOD_NAME_DUMP);
|
|
15313
|
+
{
|
|
15314
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
15315
|
+
riskName && backtest$1.riskValidationService.validate(riskName, HEAT_METHOD_NAME_DUMP);
|
|
15316
|
+
}
|
|
15174
15317
|
await backtest$1.heatMarkdownService.dump(strategyName, path);
|
|
15175
15318
|
};
|
|
15176
15319
|
}
|
|
@@ -15368,6 +15511,7 @@ class OptimizerUtils {
|
|
|
15368
15511
|
symbol,
|
|
15369
15512
|
context,
|
|
15370
15513
|
});
|
|
15514
|
+
backtest$1.optimizerValidationService.validate(context.optimizerName, OPTIMIZER_METHOD_NAME_GET_DATA);
|
|
15371
15515
|
return await backtest$1.optimizerGlobalService.getData(symbol, context.optimizerName);
|
|
15372
15516
|
};
|
|
15373
15517
|
/**
|
|
@@ -15384,6 +15528,7 @@ class OptimizerUtils {
|
|
|
15384
15528
|
symbol,
|
|
15385
15529
|
context,
|
|
15386
15530
|
});
|
|
15531
|
+
backtest$1.optimizerValidationService.validate(context.optimizerName, OPTIMIZER_METHOD_NAME_GET_CODE);
|
|
15387
15532
|
return await backtest$1.optimizerGlobalService.getCode(symbol, context.optimizerName);
|
|
15388
15533
|
};
|
|
15389
15534
|
/**
|
|
@@ -15403,6 +15548,7 @@ class OptimizerUtils {
|
|
|
15403
15548
|
context,
|
|
15404
15549
|
path,
|
|
15405
15550
|
});
|
|
15551
|
+
backtest$1.optimizerValidationService.validate(context.optimizerName, OPTIMIZER_METHOD_NAME_DUMP);
|
|
15406
15552
|
await backtest$1.optimizerGlobalService.dump(symbol, context.optimizerName, path);
|
|
15407
15553
|
};
|
|
15408
15554
|
}
|
|
@@ -15486,6 +15632,11 @@ class PartialUtils {
|
|
|
15486
15632
|
*/
|
|
15487
15633
|
this.getData = async (symbol, strategyName) => {
|
|
15488
15634
|
backtest$1.loggerService.info(PARTIAL_METHOD_NAME_GET_DATA, { symbol, strategyName });
|
|
15635
|
+
backtest$1.strategyValidationService.validate(strategyName, PARTIAL_METHOD_NAME_GET_DATA);
|
|
15636
|
+
{
|
|
15637
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
15638
|
+
riskName && backtest$1.riskValidationService.validate(riskName, PARTIAL_METHOD_NAME_GET_DATA);
|
|
15639
|
+
}
|
|
15489
15640
|
return await backtest$1.partialMarkdownService.getData(symbol, strategyName);
|
|
15490
15641
|
};
|
|
15491
15642
|
/**
|
|
@@ -15528,6 +15679,11 @@ class PartialUtils {
|
|
|
15528
15679
|
*/
|
|
15529
15680
|
this.getReport = async (symbol, strategyName) => {
|
|
15530
15681
|
backtest$1.loggerService.info(PARTIAL_METHOD_NAME_GET_REPORT, { symbol, strategyName });
|
|
15682
|
+
backtest$1.strategyValidationService.validate(strategyName, PARTIAL_METHOD_NAME_GET_REPORT);
|
|
15683
|
+
{
|
|
15684
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
15685
|
+
riskName && backtest$1.riskValidationService.validate(riskName, PARTIAL_METHOD_NAME_GET_REPORT);
|
|
15686
|
+
}
|
|
15531
15687
|
return await backtest$1.partialMarkdownService.getReport(symbol, strategyName);
|
|
15532
15688
|
};
|
|
15533
15689
|
/**
|
|
@@ -15563,6 +15719,11 @@ class PartialUtils {
|
|
|
15563
15719
|
*/
|
|
15564
15720
|
this.dump = async (symbol, strategyName, path) => {
|
|
15565
15721
|
backtest$1.loggerService.info(PARTIAL_METHOD_NAME_DUMP, { symbol, strategyName, path });
|
|
15722
|
+
backtest$1.strategyValidationService.validate(strategyName, PARTIAL_METHOD_NAME_DUMP);
|
|
15723
|
+
{
|
|
15724
|
+
const { riskName } = backtest$1.strategySchemaService.get(strategyName);
|
|
15725
|
+
riskName && backtest$1.riskValidationService.validate(riskName, PARTIAL_METHOD_NAME_DUMP);
|
|
15726
|
+
}
|
|
15566
15727
|
await backtest$1.partialMarkdownService.dump(symbol, strategyName, path);
|
|
15567
15728
|
};
|
|
15568
15729
|
}
|
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
|
*
|