@backtest-kit/ui 5.5.3 → 5.6.0
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 +1053 -46
- package/build/index.mjs +1054 -47
- package/build/modules/frontend/build/assets/{Background-BnanDjno.js → Background-BGXaqCCj.js} +1 -1
- package/build/modules/frontend/build/assets/{IconPhoto-Cf_hSu3z.js → IconPhoto-NqvLnXp7.js} +1 -1
- package/build/modules/frontend/build/assets/{KeyboardArrowLeft-C5vKOcAm.js → KeyboardArrowLeft-Brhl60Pa.js} +1 -1
- package/build/modules/frontend/build/assets/{Refresh-AyInXuzX.js → Refresh-BGkaUatF.js} +1 -1
- package/build/modules/frontend/build/assets/hasRouteMatch-7UKYuS0a.js +1 -0
- package/build/modules/frontend/build/assets/html2canvas-D-Nv0RTX.js +1 -0
- package/build/modules/frontend/build/assets/{index-yCZPy3N-.js → index-4xZ56Pw3.js} +9 -9
- package/build/modules/frontend/build/assets/index-9iaIzgTc.js +1331 -0
- package/build/modules/frontend/build/assets/{index-CXkLpGEW.js → index-BDV9EkEY.js} +1 -1
- package/build/modules/frontend/build/assets/{index-DoIVKvQl.js → index-BYCwoppH.js} +1 -1
- package/build/modules/frontend/build/assets/{index-CE-T-vGF.js → index-CbQBf22x.js} +1 -1
- package/build/modules/frontend/build/assets/index-CywcKDZi.js +1 -0
- package/build/modules/frontend/build/assets/index-D3HRM1Jy.js +1 -0
- package/build/modules/frontend/build/assets/{index-DkX_NvhV.js → index-DG7b0pa9.js} +1 -1
- package/build/modules/frontend/build/assets/index.es-BFfvVHkP.js +16 -0
- package/build/modules/frontend/build/assets/markdownit-GU6B-6e7.js +1 -0
- package/build/modules/frontend/build/assets/purify.es-DpMHVkxQ.js +2 -0
- package/build/modules/frontend/build/index.html +1 -1
- package/package.json +3 -3
- package/types.d.ts +80 -0
- package/build/modules/frontend/build/assets/index-Cq_yjKn2.js +0 -1
- package/build/modules/frontend/build/assets/index-DLUKIYme.js +0 -1
package/build/index.cjs
CHANGED
|
@@ -20,10 +20,10 @@ const CC_WWWROOT_HOST = process.env.CC_WWWROOT_HOST || "0.0.0.0";
|
|
|
20
20
|
const CC_WWWROOT_PORT = parseInt(process.env.CC_WWWROOT_PORT) || 60050;
|
|
21
21
|
const CC_ENABLE_MOCK = !!parseInt(process.env.CC_ENABLE_MOCK) || false;
|
|
22
22
|
|
|
23
|
-
const router$
|
|
23
|
+
const router$9 = Router({
|
|
24
24
|
params: true,
|
|
25
25
|
});
|
|
26
|
-
router$
|
|
26
|
+
router$9.get("/api/v1/health/health_check", async (req, res) => {
|
|
27
27
|
const [cpuLoad] = os.loadavg();
|
|
28
28
|
return await micro.send(res, 200, {
|
|
29
29
|
uptime: process.uptime(),
|
|
@@ -62,6 +62,8 @@ const connectionServices$1 = {
|
|
|
62
62
|
};
|
|
63
63
|
const metaServices$1 = {
|
|
64
64
|
symbolMetaService: Symbol("symbolMetaService"),
|
|
65
|
+
backtestMetaService: Symbol("backtestMetaService"),
|
|
66
|
+
liveMetaService: Symbol("liveMetaService"),
|
|
65
67
|
};
|
|
66
68
|
const mockServices$1 = {
|
|
67
69
|
notificationMockService: Symbol("notificationMockService"),
|
|
@@ -69,6 +71,7 @@ const mockServices$1 = {
|
|
|
69
71
|
exchangeMockService: Symbol("exchangeMockService"),
|
|
70
72
|
logMockService: Symbol("logMockService"),
|
|
71
73
|
statusMockService: Symbol("statusMockService"),
|
|
74
|
+
markdownMockService: Symbol("markdownMockService"),
|
|
72
75
|
};
|
|
73
76
|
const viewServices$1 = {
|
|
74
77
|
notificationViewService: Symbol("notificationViewService"),
|
|
@@ -76,6 +79,7 @@ const viewServices$1 = {
|
|
|
76
79
|
exchangeViewService: Symbol("exchangeViewService"),
|
|
77
80
|
logViewService: Symbol("logViewService"),
|
|
78
81
|
statusViewService: Symbol("statusViewService"),
|
|
82
|
+
markdownViewService: Symbol("markdownViewService"),
|
|
79
83
|
};
|
|
80
84
|
const TYPES = {
|
|
81
85
|
...baseServices$1,
|
|
@@ -435,6 +439,136 @@ class StatusMockService {
|
|
|
435
439
|
}
|
|
436
440
|
}
|
|
437
441
|
|
|
442
|
+
const MOCK_DIR = "./mock/markdown";
|
|
443
|
+
const makeReader = (fileName) => functoolsKit.singleshot(() => fs.readFile(path.join(MOCK_DIR, fileName), "utf-8"));
|
|
444
|
+
const makeDataReader = (fileName) => functoolsKit.singleshot(async () => JSON.parse(await fs.readFile(path.join(MOCK_DIR, "data", fileName), "utf-8")));
|
|
445
|
+
const readBacktest = makeReader("backtest.md");
|
|
446
|
+
const readLive = makeReader("live.md");
|
|
447
|
+
const readBreakeven = makeReader("breakeven.md");
|
|
448
|
+
const readRisk = makeReader("risk.md");
|
|
449
|
+
const readPartial = makeReader("partial.md");
|
|
450
|
+
const readHighestProfit = makeReader("highest_profit.md");
|
|
451
|
+
const readSchedule = makeReader("schedule.md");
|
|
452
|
+
const readPerformance = makeReader("performance.md");
|
|
453
|
+
const readSync = makeReader("sync.md");
|
|
454
|
+
const readHeat = makeReader("heat.md");
|
|
455
|
+
const readWalker = makeReader("walker.md");
|
|
456
|
+
const readBacktestData = makeDataReader("backtest.json");
|
|
457
|
+
const readLiveData = makeDataReader("live.json");
|
|
458
|
+
const readBreakevenData = makeDataReader("breakeven.json");
|
|
459
|
+
const readRiskData = makeDataReader("risk.json");
|
|
460
|
+
const readPartialData = makeDataReader("partial.json");
|
|
461
|
+
const readHighestProfitData = makeDataReader("highest_profit.json");
|
|
462
|
+
const readScheduleData = makeDataReader("schedule.json");
|
|
463
|
+
const readPerformanceData = makeDataReader("performance.json");
|
|
464
|
+
const readSyncData = makeDataReader("sync.json");
|
|
465
|
+
const readHeatData = makeDataReader("heat.json");
|
|
466
|
+
const readWalkerData = makeDataReader("walker.json");
|
|
467
|
+
class MarkdownMockService {
|
|
468
|
+
constructor() {
|
|
469
|
+
this.loggerService = inject(TYPES.loggerService);
|
|
470
|
+
// Backtest
|
|
471
|
+
this.getBacktestData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
472
|
+
this.loggerService.log("markdownMockService getBacktestData", { symbol, strategyName, exchangeName, frameName });
|
|
473
|
+
return readBacktestData();
|
|
474
|
+
};
|
|
475
|
+
this.getBacktestReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
476
|
+
this.loggerService.log("markdownMockService getBacktestReport", { symbol, strategyName, exchangeName, frameName });
|
|
477
|
+
return readBacktest();
|
|
478
|
+
};
|
|
479
|
+
// Live
|
|
480
|
+
this.getLiveData = async (symbol, strategyName, exchangeName) => {
|
|
481
|
+
this.loggerService.log("markdownMockService getLiveData", { symbol, strategyName, exchangeName });
|
|
482
|
+
return readLiveData();
|
|
483
|
+
};
|
|
484
|
+
this.getLiveReport = async (symbol, strategyName, exchangeName) => {
|
|
485
|
+
this.loggerService.log("markdownMockService getLiveReport", { symbol, strategyName, exchangeName });
|
|
486
|
+
return readLive();
|
|
487
|
+
};
|
|
488
|
+
// Breakeven
|
|
489
|
+
this.getBreakevenData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
490
|
+
this.loggerService.log("markdownMockService getBreakevenData", { symbol, strategyName, exchangeName, frameName });
|
|
491
|
+
return readBreakevenData();
|
|
492
|
+
};
|
|
493
|
+
this.getBreakevenReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
494
|
+
this.loggerService.log("markdownMockService getBreakevenReport", { symbol, strategyName, exchangeName, frameName });
|
|
495
|
+
return readBreakeven();
|
|
496
|
+
};
|
|
497
|
+
// Risk
|
|
498
|
+
this.getRiskData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
499
|
+
this.loggerService.log("markdownMockService getRiskData", { symbol, strategyName, exchangeName, frameName });
|
|
500
|
+
return readRiskData();
|
|
501
|
+
};
|
|
502
|
+
this.getRiskReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
503
|
+
this.loggerService.log("markdownMockService getRiskReport", { symbol, strategyName, exchangeName, frameName });
|
|
504
|
+
return readRisk();
|
|
505
|
+
};
|
|
506
|
+
// Partial
|
|
507
|
+
this.getPartialData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
508
|
+
this.loggerService.log("markdownMockService getPartialData", { symbol, strategyName, exchangeName, frameName });
|
|
509
|
+
return readPartialData();
|
|
510
|
+
};
|
|
511
|
+
this.getPartialReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
512
|
+
this.loggerService.log("markdownMockService getPartialReport", { symbol, strategyName, exchangeName, frameName });
|
|
513
|
+
return readPartial();
|
|
514
|
+
};
|
|
515
|
+
// HighestProfit
|
|
516
|
+
this.getHighestProfitData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
517
|
+
this.loggerService.log("markdownMockService getHighestProfitData", { symbol, strategyName, exchangeName, frameName });
|
|
518
|
+
return readHighestProfitData();
|
|
519
|
+
};
|
|
520
|
+
this.getHighestProfitReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
521
|
+
this.loggerService.log("markdownMockService getHighestProfitReport", { symbol, strategyName, exchangeName, frameName });
|
|
522
|
+
return readHighestProfit();
|
|
523
|
+
};
|
|
524
|
+
// Schedule
|
|
525
|
+
this.getScheduleData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
526
|
+
this.loggerService.log("markdownMockService getScheduleData", { symbol, strategyName, exchangeName, frameName });
|
|
527
|
+
return readScheduleData();
|
|
528
|
+
};
|
|
529
|
+
this.getScheduleReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
530
|
+
this.loggerService.log("markdownMockService getScheduleReport", { symbol, strategyName, exchangeName, frameName });
|
|
531
|
+
return readSchedule();
|
|
532
|
+
};
|
|
533
|
+
// Performance
|
|
534
|
+
this.getPerformanceData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
535
|
+
this.loggerService.log("markdownMockService getPerformanceData", { symbol, strategyName, exchangeName, frameName });
|
|
536
|
+
return readPerformanceData();
|
|
537
|
+
};
|
|
538
|
+
this.getPerformanceReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
539
|
+
this.loggerService.log("markdownMockService getPerformanceReport", { symbol, strategyName, exchangeName, frameName });
|
|
540
|
+
return readPerformance();
|
|
541
|
+
};
|
|
542
|
+
// Sync
|
|
543
|
+
this.getSyncData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
544
|
+
this.loggerService.log("markdownMockService getSyncData", { symbol, strategyName, exchangeName, frameName });
|
|
545
|
+
return readSyncData();
|
|
546
|
+
};
|
|
547
|
+
this.getSyncReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
548
|
+
this.loggerService.log("markdownMockService getSyncReport", { symbol, strategyName, exchangeName, frameName });
|
|
549
|
+
return readSync();
|
|
550
|
+
};
|
|
551
|
+
// Heat
|
|
552
|
+
this.getHeatData = async (strategyName, exchangeName, frameName) => {
|
|
553
|
+
this.loggerService.log("markdownMockService getHeatData", { strategyName, exchangeName, frameName });
|
|
554
|
+
return readHeatData();
|
|
555
|
+
};
|
|
556
|
+
this.getHeatReport = async (strategyName, exchangeName, frameName) => {
|
|
557
|
+
this.loggerService.log("markdownMockService getHeatReport", { strategyName, exchangeName, frameName });
|
|
558
|
+
return readHeat();
|
|
559
|
+
};
|
|
560
|
+
// Walker
|
|
561
|
+
this.getWalkerData = async (symbol, walkerName) => {
|
|
562
|
+
this.loggerService.log("markdownMockService getWalkerData", { symbol, walkerName });
|
|
563
|
+
return readWalkerData();
|
|
564
|
+
};
|
|
565
|
+
this.getWalkerReport = async (symbol, walkerName) => {
|
|
566
|
+
this.loggerService.log("markdownMockService getWalkerReport", { symbol, walkerName });
|
|
567
|
+
return readWalker();
|
|
568
|
+
};
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
|
|
438
572
|
const DEFAULT_LIMIT$1 = 25;
|
|
439
573
|
const DEFAULT_OFFSET$1 = 0;
|
|
440
574
|
const CREATE_FILTER_LIST_FN$1 = (filterData) => Object.keys(filterData).map((key) => (row) => new RegExp(filterData[key], "i").test(row[key]));
|
|
@@ -781,6 +915,178 @@ class StatusViewService {
|
|
|
781
915
|
}
|
|
782
916
|
}
|
|
783
917
|
|
|
918
|
+
class MarkdownViewService {
|
|
919
|
+
constructor() {
|
|
920
|
+
this.loggerService = inject(TYPES.loggerService);
|
|
921
|
+
this.markdownMockService = inject(TYPES.markdownMockService);
|
|
922
|
+
// Backtest
|
|
923
|
+
this.getBacktestData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
924
|
+
this.loggerService.log("markdownViewService getBacktestData", { symbol, strategyName, exchangeName, frameName });
|
|
925
|
+
if (CC_ENABLE_MOCK) {
|
|
926
|
+
return await this.markdownMockService.getBacktestData(symbol, strategyName, exchangeName, frameName);
|
|
927
|
+
}
|
|
928
|
+
return await backtestKit.Backtest.getData(symbol, { strategyName, exchangeName, frameName });
|
|
929
|
+
};
|
|
930
|
+
this.getBacktestReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
931
|
+
this.loggerService.log("markdownViewService getBacktestReport", { symbol, strategyName, exchangeName, frameName });
|
|
932
|
+
if (CC_ENABLE_MOCK) {
|
|
933
|
+
return await this.markdownMockService.getBacktestReport(symbol, strategyName, exchangeName, frameName);
|
|
934
|
+
}
|
|
935
|
+
return await backtestKit.Backtest.getReport(symbol, { strategyName, exchangeName, frameName });
|
|
936
|
+
};
|
|
937
|
+
// Live
|
|
938
|
+
this.getLiveData = async (symbol, strategyName, exchangeName) => {
|
|
939
|
+
this.loggerService.log("markdownViewService getLiveData", { symbol, strategyName, exchangeName });
|
|
940
|
+
if (CC_ENABLE_MOCK) {
|
|
941
|
+
return await this.markdownMockService.getLiveData(symbol, strategyName, exchangeName);
|
|
942
|
+
}
|
|
943
|
+
return await backtestKit.Live.getData(symbol, { strategyName, exchangeName });
|
|
944
|
+
};
|
|
945
|
+
this.getLiveReport = async (symbol, strategyName, exchangeName) => {
|
|
946
|
+
this.loggerService.log("markdownViewService getLiveReport", { symbol, strategyName, exchangeName });
|
|
947
|
+
if (CC_ENABLE_MOCK) {
|
|
948
|
+
return await this.markdownMockService.getLiveReport(symbol, strategyName, exchangeName);
|
|
949
|
+
}
|
|
950
|
+
return await backtestKit.Live.getReport(symbol, { strategyName, exchangeName });
|
|
951
|
+
};
|
|
952
|
+
// Breakeven
|
|
953
|
+
this.getBreakevenData = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
954
|
+
this.loggerService.log("markdownViewService getBreakevenData", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
955
|
+
if (CC_ENABLE_MOCK) {
|
|
956
|
+
return await this.markdownMockService.getBreakevenData(symbol, strategyName, exchangeName, frameName);
|
|
957
|
+
}
|
|
958
|
+
return await backtestKit.Breakeven.getData(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
959
|
+
};
|
|
960
|
+
this.getBreakevenReport = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
961
|
+
this.loggerService.log("markdownViewService getBreakevenReport", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
962
|
+
if (CC_ENABLE_MOCK) {
|
|
963
|
+
return await this.markdownMockService.getBreakevenReport(symbol, strategyName, exchangeName, frameName);
|
|
964
|
+
}
|
|
965
|
+
return await backtestKit.Breakeven.getReport(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
966
|
+
};
|
|
967
|
+
// Risk
|
|
968
|
+
this.getRiskData = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
969
|
+
this.loggerService.log("markdownViewService getRiskData", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
970
|
+
if (CC_ENABLE_MOCK) {
|
|
971
|
+
return await this.markdownMockService.getRiskData(symbol, strategyName, exchangeName, frameName);
|
|
972
|
+
}
|
|
973
|
+
return await backtestKit.Risk.getData(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
974
|
+
};
|
|
975
|
+
this.getRiskReport = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
976
|
+
this.loggerService.log("markdownViewService getRiskReport", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
977
|
+
if (CC_ENABLE_MOCK) {
|
|
978
|
+
return await this.markdownMockService.getRiskReport(symbol, strategyName, exchangeName, frameName);
|
|
979
|
+
}
|
|
980
|
+
return await backtestKit.Risk.getReport(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
981
|
+
};
|
|
982
|
+
// Partial
|
|
983
|
+
this.getPartialData = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
984
|
+
this.loggerService.log("markdownViewService getPartialData", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
985
|
+
if (CC_ENABLE_MOCK) {
|
|
986
|
+
return await this.markdownMockService.getPartialData(symbol, strategyName, exchangeName, frameName);
|
|
987
|
+
}
|
|
988
|
+
return await backtestKit.Partial.getData(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
989
|
+
};
|
|
990
|
+
this.getPartialReport = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
991
|
+
this.loggerService.log("markdownViewService getPartialReport", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
992
|
+
if (CC_ENABLE_MOCK) {
|
|
993
|
+
return await this.markdownMockService.getPartialReport(symbol, strategyName, exchangeName, frameName);
|
|
994
|
+
}
|
|
995
|
+
return await backtestKit.Partial.getReport(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
996
|
+
};
|
|
997
|
+
// HighestProfit
|
|
998
|
+
this.getHighestProfitData = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
999
|
+
this.loggerService.log("markdownViewService getHighestProfitData", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1000
|
+
if (CC_ENABLE_MOCK) {
|
|
1001
|
+
return await this.markdownMockService.getHighestProfitData(symbol, strategyName, exchangeName, frameName);
|
|
1002
|
+
}
|
|
1003
|
+
return await backtestKit.HighestProfit.getData(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1004
|
+
};
|
|
1005
|
+
this.getHighestProfitReport = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
1006
|
+
this.loggerService.log("markdownViewService getHighestProfitReport", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1007
|
+
if (CC_ENABLE_MOCK) {
|
|
1008
|
+
return await this.markdownMockService.getHighestProfitReport(symbol, strategyName, exchangeName, frameName);
|
|
1009
|
+
}
|
|
1010
|
+
return await backtestKit.HighestProfit.getReport(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1011
|
+
};
|
|
1012
|
+
// Schedule
|
|
1013
|
+
this.getScheduleData = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
1014
|
+
this.loggerService.log("markdownViewService getScheduleData", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1015
|
+
if (CC_ENABLE_MOCK) {
|
|
1016
|
+
return await this.markdownMockService.getScheduleData(symbol, strategyName, exchangeName, frameName);
|
|
1017
|
+
}
|
|
1018
|
+
return await backtestKit.Schedule.getData(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1019
|
+
};
|
|
1020
|
+
this.getScheduleReport = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
1021
|
+
this.loggerService.log("markdownViewService getScheduleReport", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1022
|
+
if (CC_ENABLE_MOCK) {
|
|
1023
|
+
return await this.markdownMockService.getScheduleReport(symbol, strategyName, exchangeName, frameName);
|
|
1024
|
+
}
|
|
1025
|
+
return await backtestKit.Schedule.getReport(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1026
|
+
};
|
|
1027
|
+
// Performance
|
|
1028
|
+
this.getPerformanceData = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
1029
|
+
this.loggerService.log("markdownViewService getPerformanceData", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1030
|
+
if (CC_ENABLE_MOCK) {
|
|
1031
|
+
return await this.markdownMockService.getPerformanceData(symbol, strategyName, exchangeName, frameName);
|
|
1032
|
+
}
|
|
1033
|
+
return await backtestKit.Performance.getData(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1034
|
+
};
|
|
1035
|
+
this.getPerformanceReport = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
1036
|
+
this.loggerService.log("markdownViewService getPerformanceReport", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1037
|
+
if (CC_ENABLE_MOCK) {
|
|
1038
|
+
return await this.markdownMockService.getPerformanceReport(symbol, strategyName, exchangeName, frameName);
|
|
1039
|
+
}
|
|
1040
|
+
return await backtestKit.Performance.getReport(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1041
|
+
};
|
|
1042
|
+
// Sync
|
|
1043
|
+
this.getSyncData = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
1044
|
+
this.loggerService.log("markdownViewService getSyncData", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1045
|
+
if (CC_ENABLE_MOCK) {
|
|
1046
|
+
return await this.markdownMockService.getSyncData(symbol, strategyName, exchangeName, frameName);
|
|
1047
|
+
}
|
|
1048
|
+
return await backtestKit.Sync.getData(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1049
|
+
};
|
|
1050
|
+
this.getSyncReport = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
1051
|
+
this.loggerService.log("markdownViewService getSyncReport", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1052
|
+
if (CC_ENABLE_MOCK) {
|
|
1053
|
+
return await this.markdownMockService.getSyncReport(symbol, strategyName, exchangeName, frameName);
|
|
1054
|
+
}
|
|
1055
|
+
return await backtestKit.Sync.getReport(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1056
|
+
};
|
|
1057
|
+
// Heat
|
|
1058
|
+
this.getHeatData = async (strategyName, exchangeName, frameName, backtest = false) => {
|
|
1059
|
+
this.loggerService.log("markdownViewService getHeatData", { strategyName, exchangeName, frameName, backtest });
|
|
1060
|
+
if (CC_ENABLE_MOCK) {
|
|
1061
|
+
return await this.markdownMockService.getHeatData(strategyName, exchangeName, frameName);
|
|
1062
|
+
}
|
|
1063
|
+
return await backtestKit.Heat.getData({ strategyName, exchangeName, frameName }, backtest);
|
|
1064
|
+
};
|
|
1065
|
+
this.getHeatReport = async (strategyName, exchangeName, frameName, backtest = false) => {
|
|
1066
|
+
this.loggerService.log("markdownViewService getHeatReport", { strategyName, exchangeName, frameName, backtest });
|
|
1067
|
+
if (CC_ENABLE_MOCK) {
|
|
1068
|
+
return await this.markdownMockService.getHeatReport(strategyName, exchangeName, frameName);
|
|
1069
|
+
}
|
|
1070
|
+
return await backtestKit.Heat.getReport({ strategyName, exchangeName, frameName }, backtest);
|
|
1071
|
+
};
|
|
1072
|
+
// Walker
|
|
1073
|
+
this.getWalkerData = async (symbol, walkerName) => {
|
|
1074
|
+
this.loggerService.log("markdownViewService getWalkerData", { symbol, walkerName });
|
|
1075
|
+
if (CC_ENABLE_MOCK) {
|
|
1076
|
+
return await this.markdownMockService.getWalkerData(symbol, walkerName);
|
|
1077
|
+
}
|
|
1078
|
+
return await backtestKit.Walker.getData(symbol, { walkerName });
|
|
1079
|
+
};
|
|
1080
|
+
this.getWalkerReport = async (symbol, walkerName) => {
|
|
1081
|
+
this.loggerService.log("markdownViewService getWalkerReport", { symbol, walkerName });
|
|
1082
|
+
if (CC_ENABLE_MOCK) {
|
|
1083
|
+
return await this.markdownMockService.getWalkerReport(symbol, walkerName);
|
|
1084
|
+
}
|
|
1085
|
+
return await backtestKit.Walker.getReport(symbol, { walkerName });
|
|
1086
|
+
};
|
|
1087
|
+
}
|
|
1088
|
+
}
|
|
1089
|
+
|
|
784
1090
|
const symbol_list = [
|
|
785
1091
|
{
|
|
786
1092
|
icon: "/icon/btc.png",
|
|
@@ -922,6 +1228,41 @@ class PriceConnectionService {
|
|
|
922
1228
|
}
|
|
923
1229
|
}
|
|
924
1230
|
|
|
1231
|
+
const BACKTEST_LIST = [
|
|
1232
|
+
{ id: "mock-backtest-1", symbol: "BTCUSDT", strategyName: "mock-strategy", exchangeName: "binance", frameName: "1m", status: "done" },
|
|
1233
|
+
{ id: "mock-backtest-2", symbol: "ETHUSDT", strategyName: "mock-strategy", exchangeName: "binance", frameName: "1m", status: "running" },
|
|
1234
|
+
{ id: "mock-backtest-3", symbol: "BNBUSDT", strategyName: "mock-strategy", exchangeName: "binance", frameName: "1m", status: "idle" },
|
|
1235
|
+
];
|
|
1236
|
+
class BacktestMetaService {
|
|
1237
|
+
constructor() {
|
|
1238
|
+
this.loggerService = inject(TYPES.loggerService);
|
|
1239
|
+
this.list = async () => {
|
|
1240
|
+
this.loggerService.log("backtestMetaService list");
|
|
1241
|
+
if (CC_ENABLE_MOCK) {
|
|
1242
|
+
return BACKTEST_LIST;
|
|
1243
|
+
}
|
|
1244
|
+
return await backtestKit.Backtest.list();
|
|
1245
|
+
};
|
|
1246
|
+
}
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
const LIVE_LIST = [
|
|
1250
|
+
{ id: "mock-live-1", symbol: "BTCUSDT", strategyName: "mock-strategy", exchangeName: "binance", status: "running" },
|
|
1251
|
+
{ id: "mock-live-2", symbol: "ETHUSDT", strategyName: "mock-strategy", exchangeName: "binance", status: "idle" },
|
|
1252
|
+
];
|
|
1253
|
+
class LiveMetaService {
|
|
1254
|
+
constructor() {
|
|
1255
|
+
this.loggerService = inject(TYPES.loggerService);
|
|
1256
|
+
this.list = async () => {
|
|
1257
|
+
this.loggerService.log("liveMetaService list");
|
|
1258
|
+
if (CC_ENABLE_MOCK) {
|
|
1259
|
+
return LIVE_LIST;
|
|
1260
|
+
}
|
|
1261
|
+
return await backtestKit.Live.list();
|
|
1262
|
+
};
|
|
1263
|
+
}
|
|
1264
|
+
}
|
|
1265
|
+
|
|
925
1266
|
{
|
|
926
1267
|
provide(TYPES.loggerService, () => new LoggerService());
|
|
927
1268
|
provide(TYPES.exchangeService, () => new ExchangeService());
|
|
@@ -931,7 +1272,9 @@ class PriceConnectionService {
|
|
|
931
1272
|
provide(TYPES.priceConnectionService, () => new PriceConnectionService());
|
|
932
1273
|
}
|
|
933
1274
|
{
|
|
1275
|
+
provide(TYPES.liveMetaService, () => new LiveMetaService());
|
|
934
1276
|
provide(TYPES.symbolMetaService, () => new SymbolMetaService());
|
|
1277
|
+
provide(TYPES.backtestMetaService, () => new BacktestMetaService());
|
|
935
1278
|
}
|
|
936
1279
|
{
|
|
937
1280
|
provide(TYPES.notificationMockService, () => new NotificationMockService());
|
|
@@ -939,6 +1282,7 @@ class PriceConnectionService {
|
|
|
939
1282
|
provide(TYPES.exchangeMockService, () => new ExchangeMockService());
|
|
940
1283
|
provide(TYPES.logMockService, () => new LogMockService());
|
|
941
1284
|
provide(TYPES.statusMockService, () => new StatusMockService());
|
|
1285
|
+
provide(TYPES.markdownMockService, () => new MarkdownMockService());
|
|
942
1286
|
}
|
|
943
1287
|
{
|
|
944
1288
|
provide(TYPES.notificationViewService, () => new NotificationViewService());
|
|
@@ -946,6 +1290,7 @@ class PriceConnectionService {
|
|
|
946
1290
|
provide(TYPES.exchangeViewService, () => new ExchangeViewService());
|
|
947
1291
|
provide(TYPES.logViewService, () => new LogViewService());
|
|
948
1292
|
provide(TYPES.statusViewService, () => new StatusViewService());
|
|
1293
|
+
provide(TYPES.markdownViewService, () => new MarkdownViewService());
|
|
949
1294
|
}
|
|
950
1295
|
|
|
951
1296
|
const baseServices = {
|
|
@@ -957,7 +1302,9 @@ const connectionServices = {
|
|
|
957
1302
|
priceConnectionService: inject(TYPES.priceConnectionService),
|
|
958
1303
|
};
|
|
959
1304
|
const metaServices = {
|
|
1305
|
+
liveMetaService: inject(TYPES.liveMetaService),
|
|
960
1306
|
symbolMetaService: inject(TYPES.symbolMetaService),
|
|
1307
|
+
backtestMetaService: inject(TYPES.backtestMetaService),
|
|
961
1308
|
};
|
|
962
1309
|
const mockServices = {
|
|
963
1310
|
notificationMockService: inject(TYPES.notificationMockService),
|
|
@@ -965,6 +1312,7 @@ const mockServices = {
|
|
|
965
1312
|
exchangeMockService: inject(TYPES.exchangeMockService),
|
|
966
1313
|
logMockService: inject(TYPES.logMockService),
|
|
967
1314
|
statusMockService: inject(TYPES.statusMockService),
|
|
1315
|
+
markdownMockService: inject(TYPES.markdownMockService),
|
|
968
1316
|
};
|
|
969
1317
|
const viewServices = {
|
|
970
1318
|
notificationViewService: inject(TYPES.notificationViewService),
|
|
@@ -972,6 +1320,7 @@ const viewServices = {
|
|
|
972
1320
|
exchangeViewService: inject(TYPES.exchangeViewService),
|
|
973
1321
|
logViewService: inject(TYPES.logViewService),
|
|
974
1322
|
statusViewService: inject(TYPES.statusViewService),
|
|
1323
|
+
markdownViewService: inject(TYPES.markdownViewService),
|
|
975
1324
|
};
|
|
976
1325
|
const ioc = {
|
|
977
1326
|
...baseServices,
|
|
@@ -982,11 +1331,11 @@ const ioc = {
|
|
|
982
1331
|
};
|
|
983
1332
|
init();
|
|
984
1333
|
|
|
985
|
-
const router$
|
|
1334
|
+
const router$8 = Router({
|
|
986
1335
|
params: true,
|
|
987
1336
|
});
|
|
988
1337
|
// ExchangeMockService endpoints
|
|
989
|
-
router$
|
|
1338
|
+
router$8.post("/api/v1/mock/candles_signal", async (req, res) => {
|
|
990
1339
|
try {
|
|
991
1340
|
const request = await micro.json(req);
|
|
992
1341
|
const { signalId, interval, requestId, serviceName } = request;
|
|
@@ -1014,7 +1363,7 @@ router$6.post("/api/v1/mock/candles_signal", async (req, res) => {
|
|
|
1014
1363
|
});
|
|
1015
1364
|
}
|
|
1016
1365
|
});
|
|
1017
|
-
router$
|
|
1366
|
+
router$8.post("/api/v1/mock/candles_point", async (req, res) => {
|
|
1018
1367
|
try {
|
|
1019
1368
|
const request = await micro.json(req);
|
|
1020
1369
|
const { currentTime, interval, requestId, serviceName, symbol, exchangeName } = request;
|
|
@@ -1048,7 +1397,7 @@ router$6.post("/api/v1/mock/candles_point", async (req, res) => {
|
|
|
1048
1397
|
}
|
|
1049
1398
|
});
|
|
1050
1399
|
// NotificationMockService endpoints
|
|
1051
|
-
router$
|
|
1400
|
+
router$8.post("/api/v1/mock/notification_list", async (req, res) => {
|
|
1052
1401
|
try {
|
|
1053
1402
|
const request = await micro.json(req);
|
|
1054
1403
|
const { requestId, serviceName } = request;
|
|
@@ -1076,7 +1425,7 @@ router$6.post("/api/v1/mock/notification_list", async (req, res) => {
|
|
|
1076
1425
|
});
|
|
1077
1426
|
}
|
|
1078
1427
|
});
|
|
1079
|
-
router$
|
|
1428
|
+
router$8.post("/api/v1/mock/notification_one/:id", async (req, res) => {
|
|
1080
1429
|
try {
|
|
1081
1430
|
const request = await micro.json(req);
|
|
1082
1431
|
const { requestId, serviceName } = request;
|
|
@@ -1105,7 +1454,7 @@ router$6.post("/api/v1/mock/notification_one/:id", async (req, res) => {
|
|
|
1105
1454
|
});
|
|
1106
1455
|
}
|
|
1107
1456
|
});
|
|
1108
|
-
router$
|
|
1457
|
+
router$8.post("/api/v1/mock/notification_filter", async (req, res) => {
|
|
1109
1458
|
try {
|
|
1110
1459
|
const request = await micro.json(req);
|
|
1111
1460
|
const { requestId, serviceName, filterData, limit, offset } = request;
|
|
@@ -1134,7 +1483,7 @@ router$6.post("/api/v1/mock/notification_filter", async (req, res) => {
|
|
|
1134
1483
|
}
|
|
1135
1484
|
});
|
|
1136
1485
|
// StorageMockService endpoints
|
|
1137
|
-
router$
|
|
1486
|
+
router$8.post("/api/v1/mock/storage_one/:id", async (req, res) => {
|
|
1138
1487
|
try {
|
|
1139
1488
|
const request = await micro.json(req);
|
|
1140
1489
|
const { requestId, serviceName } = request;
|
|
@@ -1163,7 +1512,7 @@ router$6.post("/api/v1/mock/storage_one/:id", async (req, res) => {
|
|
|
1163
1512
|
});
|
|
1164
1513
|
}
|
|
1165
1514
|
});
|
|
1166
|
-
router$
|
|
1515
|
+
router$8.post("/api/v1/mock/storage_list/live", async (req, res) => {
|
|
1167
1516
|
try {
|
|
1168
1517
|
const request = await micro.json(req);
|
|
1169
1518
|
const { requestId, serviceName } = request;
|
|
@@ -1191,7 +1540,7 @@ router$6.post("/api/v1/mock/storage_list/live", async (req, res) => {
|
|
|
1191
1540
|
});
|
|
1192
1541
|
}
|
|
1193
1542
|
});
|
|
1194
|
-
router$
|
|
1543
|
+
router$8.post("/api/v1/mock/storage_list/backtest", async (req, res) => {
|
|
1195
1544
|
try {
|
|
1196
1545
|
const request = await micro.json(req);
|
|
1197
1546
|
const { requestId, serviceName } = request;
|
|
@@ -1220,7 +1569,7 @@ router$6.post("/api/v1/mock/storage_list/backtest", async (req, res) => {
|
|
|
1220
1569
|
}
|
|
1221
1570
|
});
|
|
1222
1571
|
// LogMockService endpoints
|
|
1223
|
-
router$
|
|
1572
|
+
router$8.post("/api/v1/mock/log_list", async (req, res) => {
|
|
1224
1573
|
try {
|
|
1225
1574
|
const request = await micro.json(req);
|
|
1226
1575
|
const { requestId, serviceName } = request;
|
|
@@ -1248,7 +1597,7 @@ router$6.post("/api/v1/mock/log_list", async (req, res) => {
|
|
|
1248
1597
|
});
|
|
1249
1598
|
}
|
|
1250
1599
|
});
|
|
1251
|
-
router$
|
|
1600
|
+
router$8.post("/api/v1/mock/log_one/:id", async (req, res) => {
|
|
1252
1601
|
try {
|
|
1253
1602
|
const request = await micro.json(req);
|
|
1254
1603
|
const { requestId, serviceName } = request;
|
|
@@ -1277,7 +1626,7 @@ router$6.post("/api/v1/mock/log_one/:id", async (req, res) => {
|
|
|
1277
1626
|
});
|
|
1278
1627
|
}
|
|
1279
1628
|
});
|
|
1280
|
-
router$
|
|
1629
|
+
router$8.post("/api/v1/mock/log_filter", async (req, res) => {
|
|
1281
1630
|
try {
|
|
1282
1631
|
const request = await micro.json(req);
|
|
1283
1632
|
const { requestId, serviceName, filterData, limit, offset } = request;
|
|
@@ -1305,7 +1654,7 @@ router$6.post("/api/v1/mock/log_filter", async (req, res) => {
|
|
|
1305
1654
|
});
|
|
1306
1655
|
}
|
|
1307
1656
|
});
|
|
1308
|
-
router$
|
|
1657
|
+
router$8.post("/api/v1/mock/candles_live", async (req, res) => {
|
|
1309
1658
|
try {
|
|
1310
1659
|
const request = await micro.json(req);
|
|
1311
1660
|
const { signalId, interval, requestId, serviceName } = request;
|
|
@@ -1334,7 +1683,7 @@ router$6.post("/api/v1/mock/candles_live", async (req, res) => {
|
|
|
1334
1683
|
}
|
|
1335
1684
|
});
|
|
1336
1685
|
// StatusMockService endpoints
|
|
1337
|
-
router$
|
|
1686
|
+
router$8.post("/api/v1/mock/status_list", async (req, res) => {
|
|
1338
1687
|
try {
|
|
1339
1688
|
const request = await micro.json(req);
|
|
1340
1689
|
const { requestId, serviceName } = request;
|
|
@@ -1362,7 +1711,7 @@ router$6.post("/api/v1/mock/status_list", async (req, res) => {
|
|
|
1362
1711
|
});
|
|
1363
1712
|
}
|
|
1364
1713
|
});
|
|
1365
|
-
router$
|
|
1714
|
+
router$8.post("/api/v1/mock/status_one/:id", async (req, res) => {
|
|
1366
1715
|
try {
|
|
1367
1716
|
const request = await micro.json(req);
|
|
1368
1717
|
const { requestId, serviceName } = request;
|
|
@@ -1392,11 +1741,11 @@ router$6.post("/api/v1/mock/status_one/:id", async (req, res) => {
|
|
|
1392
1741
|
}
|
|
1393
1742
|
});
|
|
1394
1743
|
|
|
1395
|
-
const router$
|
|
1744
|
+
const router$7 = Router({
|
|
1396
1745
|
params: true,
|
|
1397
1746
|
});
|
|
1398
1747
|
// ExchangeViewService endpoints
|
|
1399
|
-
router$
|
|
1748
|
+
router$7.post("/api/v1/view/candles_signal", async (req, res) => {
|
|
1400
1749
|
try {
|
|
1401
1750
|
const request = await micro.json(req);
|
|
1402
1751
|
const { signalId, interval, requestId, serviceName } = request;
|
|
@@ -1424,7 +1773,7 @@ router$5.post("/api/v1/view/candles_signal", async (req, res) => {
|
|
|
1424
1773
|
});
|
|
1425
1774
|
}
|
|
1426
1775
|
});
|
|
1427
|
-
router$
|
|
1776
|
+
router$7.post("/api/v1/view/candles_point", async (req, res) => {
|
|
1428
1777
|
try {
|
|
1429
1778
|
const request = await micro.json(req);
|
|
1430
1779
|
const { currentTime, interval, requestId, serviceName, symbol, exchangeName } = request;
|
|
@@ -1457,7 +1806,7 @@ router$5.post("/api/v1/view/candles_point", async (req, res) => {
|
|
|
1457
1806
|
});
|
|
1458
1807
|
}
|
|
1459
1808
|
});
|
|
1460
|
-
router$
|
|
1809
|
+
router$7.post("/api/v1/view/candles_live", async (req, res) => {
|
|
1461
1810
|
try {
|
|
1462
1811
|
const request = await micro.json(req);
|
|
1463
1812
|
const { signalId, interval, requestId, serviceName } = request;
|
|
@@ -1486,7 +1835,7 @@ router$5.post("/api/v1/view/candles_live", async (req, res) => {
|
|
|
1486
1835
|
}
|
|
1487
1836
|
});
|
|
1488
1837
|
// NotificationViewService endpoints
|
|
1489
|
-
router$
|
|
1838
|
+
router$7.post("/api/v1/view/notification_list", async (req, res) => {
|
|
1490
1839
|
try {
|
|
1491
1840
|
const request = await micro.json(req);
|
|
1492
1841
|
const { requestId, serviceName } = request;
|
|
@@ -1514,7 +1863,7 @@ router$5.post("/api/v1/view/notification_list", async (req, res) => {
|
|
|
1514
1863
|
});
|
|
1515
1864
|
}
|
|
1516
1865
|
});
|
|
1517
|
-
router$
|
|
1866
|
+
router$7.post("/api/v1/view/notification_one/:id", async (req, res) => {
|
|
1518
1867
|
try {
|
|
1519
1868
|
const request = await micro.json(req);
|
|
1520
1869
|
const { requestId, serviceName } = request;
|
|
@@ -1543,7 +1892,7 @@ router$5.post("/api/v1/view/notification_one/:id", async (req, res) => {
|
|
|
1543
1892
|
});
|
|
1544
1893
|
}
|
|
1545
1894
|
});
|
|
1546
|
-
router$
|
|
1895
|
+
router$7.post("/api/v1/view/notification_filter", async (req, res) => {
|
|
1547
1896
|
try {
|
|
1548
1897
|
const request = await micro.json(req);
|
|
1549
1898
|
const { requestId, serviceName, filterData, limit, offset } = request;
|
|
@@ -1572,7 +1921,7 @@ router$5.post("/api/v1/view/notification_filter", async (req, res) => {
|
|
|
1572
1921
|
}
|
|
1573
1922
|
});
|
|
1574
1923
|
// StorageViewService endpoints
|
|
1575
|
-
router$
|
|
1924
|
+
router$7.post("/api/v1/view/storage_one/:id", async (req, res) => {
|
|
1576
1925
|
try {
|
|
1577
1926
|
const request = await micro.json(req);
|
|
1578
1927
|
const { requestId, serviceName } = request;
|
|
@@ -1601,7 +1950,7 @@ router$5.post("/api/v1/view/storage_one/:id", async (req, res) => {
|
|
|
1601
1950
|
});
|
|
1602
1951
|
}
|
|
1603
1952
|
});
|
|
1604
|
-
router$
|
|
1953
|
+
router$7.post("/api/v1/view/storage_list/live", async (req, res) => {
|
|
1605
1954
|
try {
|
|
1606
1955
|
const request = await micro.json(req);
|
|
1607
1956
|
const { requestId, serviceName } = request;
|
|
@@ -1629,7 +1978,7 @@ router$5.post("/api/v1/view/storage_list/live", async (req, res) => {
|
|
|
1629
1978
|
});
|
|
1630
1979
|
}
|
|
1631
1980
|
});
|
|
1632
|
-
router$
|
|
1981
|
+
router$7.post("/api/v1/view/storage_list/backtest", async (req, res) => {
|
|
1633
1982
|
try {
|
|
1634
1983
|
const request = await micro.json(req);
|
|
1635
1984
|
const { requestId, serviceName } = request;
|
|
@@ -1658,7 +2007,7 @@ router$5.post("/api/v1/view/storage_list/backtest", async (req, res) => {
|
|
|
1658
2007
|
}
|
|
1659
2008
|
});
|
|
1660
2009
|
// LogViewService endpoints
|
|
1661
|
-
router$
|
|
2010
|
+
router$7.post("/api/v1/view/log_list", async (req, res) => {
|
|
1662
2011
|
try {
|
|
1663
2012
|
const request = await micro.json(req);
|
|
1664
2013
|
const { requestId, serviceName } = request;
|
|
@@ -1686,7 +2035,7 @@ router$5.post("/api/v1/view/log_list", async (req, res) => {
|
|
|
1686
2035
|
});
|
|
1687
2036
|
}
|
|
1688
2037
|
});
|
|
1689
|
-
router$
|
|
2038
|
+
router$7.post("/api/v1/view/log_one/:id", async (req, res) => {
|
|
1690
2039
|
try {
|
|
1691
2040
|
const request = await micro.json(req);
|
|
1692
2041
|
const { requestId, serviceName } = request;
|
|
@@ -1715,7 +2064,7 @@ router$5.post("/api/v1/view/log_one/:id", async (req, res) => {
|
|
|
1715
2064
|
});
|
|
1716
2065
|
}
|
|
1717
2066
|
});
|
|
1718
|
-
router$
|
|
2067
|
+
router$7.post("/api/v1/view/log_filter", async (req, res) => {
|
|
1719
2068
|
try {
|
|
1720
2069
|
const request = await micro.json(req);
|
|
1721
2070
|
const { requestId, serviceName, filterData, limit, offset } = request;
|
|
@@ -1744,7 +2093,7 @@ router$5.post("/api/v1/view/log_filter", async (req, res) => {
|
|
|
1744
2093
|
}
|
|
1745
2094
|
});
|
|
1746
2095
|
// StatusViewService endpoints
|
|
1747
|
-
router$
|
|
2096
|
+
router$7.post("/api/v1/view/status_list", async (req, res) => {
|
|
1748
2097
|
try {
|
|
1749
2098
|
const request = await micro.json(req);
|
|
1750
2099
|
const { requestId, serviceName } = request;
|
|
@@ -1772,7 +2121,7 @@ router$5.post("/api/v1/view/status_list", async (req, res) => {
|
|
|
1772
2121
|
});
|
|
1773
2122
|
}
|
|
1774
2123
|
});
|
|
1775
|
-
router$
|
|
2124
|
+
router$7.post("/api/v1/view/status_one/:id", async (req, res) => {
|
|
1776
2125
|
try {
|
|
1777
2126
|
const request = await micro.json(req);
|
|
1778
2127
|
const { requestId, serviceName } = request;
|
|
@@ -1809,7 +2158,7 @@ function getModulesPath() {
|
|
|
1809
2158
|
return path.join(basePath, "../../../");
|
|
1810
2159
|
}
|
|
1811
2160
|
|
|
1812
|
-
const router$
|
|
2161
|
+
const router$6 = Router({
|
|
1813
2162
|
params: true,
|
|
1814
2163
|
});
|
|
1815
2164
|
// getModulesPath
|
|
@@ -1826,7 +2175,7 @@ const ASSET_32 = CC_ENABLE_MOCK
|
|
|
1826
2175
|
const cache128 = new Map();
|
|
1827
2176
|
const cache32 = new Map();
|
|
1828
2177
|
const cacheSvg = new Map();
|
|
1829
|
-
router$
|
|
2178
|
+
router$6.get("/icon/128/:filename", async (req, res) => {
|
|
1830
2179
|
const filename = req.params.filename;
|
|
1831
2180
|
// Check cache first
|
|
1832
2181
|
if (cache128.has(filename)) {
|
|
@@ -1842,7 +2191,7 @@ router$4.get("/icon/128/:filename", async (req, res) => {
|
|
|
1842
2191
|
}
|
|
1843
2192
|
return await micro.send(res, 404, "File not found (128)");
|
|
1844
2193
|
});
|
|
1845
|
-
router$
|
|
2194
|
+
router$6.get("/icon/32/:filename", async (req, res) => {
|
|
1846
2195
|
const filename = req.params.filename;
|
|
1847
2196
|
// Check cache first
|
|
1848
2197
|
if (cache32.has(filename)) {
|
|
@@ -1858,7 +2207,7 @@ router$4.get("/icon/32/:filename", async (req, res) => {
|
|
|
1858
2207
|
}
|
|
1859
2208
|
return await micro.send(res, 404, "File not found (32)");
|
|
1860
2209
|
});
|
|
1861
|
-
router$
|
|
2210
|
+
router$6.get("/icon/svg/:filename", async (req, res) => {
|
|
1862
2211
|
const filename = req.params.filename;
|
|
1863
2212
|
// Check cache first
|
|
1864
2213
|
if (cacheSvg.has(filename)) {
|
|
@@ -1874,7 +2223,7 @@ router$4.get("/icon/svg/:filename", async (req, res) => {
|
|
|
1874
2223
|
}
|
|
1875
2224
|
return await micro.send(res, 404, "File not found (svg)");
|
|
1876
2225
|
});
|
|
1877
|
-
router$
|
|
2226
|
+
router$6.get("/icon/:filename", async (req, res) => {
|
|
1878
2227
|
const filename = req.params.filename;
|
|
1879
2228
|
// Check cache first
|
|
1880
2229
|
if (cache32.has(filename)) {
|
|
@@ -1891,10 +2240,10 @@ router$4.get("/icon/:filename", async (req, res) => {
|
|
|
1891
2240
|
return await micro.send(res, 404, "File not found (root)");
|
|
1892
2241
|
});
|
|
1893
2242
|
|
|
1894
|
-
const router$
|
|
2243
|
+
const router$5 = Router({
|
|
1895
2244
|
params: true,
|
|
1896
2245
|
});
|
|
1897
|
-
router$
|
|
2246
|
+
router$5.post("/api/v1/dict/symbol/list", async (req, res) => {
|
|
1898
2247
|
try {
|
|
1899
2248
|
const request = await micro.json(req);
|
|
1900
2249
|
const { requestId, serviceName } = request;
|
|
@@ -1922,7 +2271,7 @@ router$3.post("/api/v1/dict/symbol/list", async (req, res) => {
|
|
|
1922
2271
|
});
|
|
1923
2272
|
}
|
|
1924
2273
|
});
|
|
1925
|
-
router$
|
|
2274
|
+
router$5.post("/api/v1/dict/symbol/map", async (req, res) => {
|
|
1926
2275
|
try {
|
|
1927
2276
|
const request = await micro.json(req);
|
|
1928
2277
|
const { requestId, serviceName } = request;
|
|
@@ -1950,7 +2299,7 @@ router$3.post("/api/v1/dict/symbol/map", async (req, res) => {
|
|
|
1950
2299
|
});
|
|
1951
2300
|
}
|
|
1952
2301
|
});
|
|
1953
|
-
router$
|
|
2302
|
+
router$5.post("/api/v1/dict/symbol/one", async (req, res) => {
|
|
1954
2303
|
try {
|
|
1955
2304
|
const request = await micro.json(req);
|
|
1956
2305
|
const { requestId, serviceName, id } = request;
|
|
@@ -1979,6 +2328,630 @@ router$3.post("/api/v1/dict/symbol/one", async (req, res) => {
|
|
|
1979
2328
|
}
|
|
1980
2329
|
});
|
|
1981
2330
|
|
|
2331
|
+
const router$4 = Router({
|
|
2332
|
+
params: true,
|
|
2333
|
+
});
|
|
2334
|
+
router$4.post("/api/v1/markdown_mock/backtest_data", async (req, res) => {
|
|
2335
|
+
try {
|
|
2336
|
+
const request = await micro.json(req);
|
|
2337
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2338
|
+
const data = await ioc.markdownMockService.getBacktestData(symbol, strategyName, exchangeName, frameName);
|
|
2339
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2340
|
+
ioc.loggerService.log("/api/v1/markdown_mock/backtest_data ok", { request, result: omit(result, "data") });
|
|
2341
|
+
return await micro.send(res, 200, result);
|
|
2342
|
+
}
|
|
2343
|
+
catch (error) {
|
|
2344
|
+
ioc.loggerService.log("/api/v1/markdown_mock/backtest_data error", { error: functoolsKit.errorData(error) });
|
|
2345
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2346
|
+
}
|
|
2347
|
+
});
|
|
2348
|
+
router$4.post("/api/v1/markdown_mock/backtest_report", async (req, res) => {
|
|
2349
|
+
try {
|
|
2350
|
+
const request = await micro.json(req);
|
|
2351
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2352
|
+
const data = await ioc.markdownMockService.getBacktestReport(symbol, strategyName, exchangeName, frameName);
|
|
2353
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2354
|
+
ioc.loggerService.log("/api/v1/markdown_mock/backtest_report ok", { request, result: omit(result, "data") });
|
|
2355
|
+
return await micro.send(res, 200, result);
|
|
2356
|
+
}
|
|
2357
|
+
catch (error) {
|
|
2358
|
+
ioc.loggerService.log("/api/v1/markdown_mock/backtest_report error", { error: functoolsKit.errorData(error) });
|
|
2359
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2360
|
+
}
|
|
2361
|
+
});
|
|
2362
|
+
router$4.post("/api/v1/markdown_mock/live_data", async (req, res) => {
|
|
2363
|
+
try {
|
|
2364
|
+
const request = await micro.json(req);
|
|
2365
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName } = request;
|
|
2366
|
+
const data = await ioc.markdownMockService.getLiveData(symbol, strategyName, exchangeName);
|
|
2367
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2368
|
+
ioc.loggerService.log("/api/v1/markdown_mock/live_data ok", { request, result: omit(result, "data") });
|
|
2369
|
+
return await micro.send(res, 200, result);
|
|
2370
|
+
}
|
|
2371
|
+
catch (error) {
|
|
2372
|
+
ioc.loggerService.log("/api/v1/markdown_mock/live_data error", { error: functoolsKit.errorData(error) });
|
|
2373
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2374
|
+
}
|
|
2375
|
+
});
|
|
2376
|
+
router$4.post("/api/v1/markdown_mock/live_report", async (req, res) => {
|
|
2377
|
+
try {
|
|
2378
|
+
const request = await micro.json(req);
|
|
2379
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName } = request;
|
|
2380
|
+
const data = await ioc.markdownMockService.getLiveReport(symbol, strategyName, exchangeName);
|
|
2381
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2382
|
+
ioc.loggerService.log("/api/v1/markdown_mock/live_report ok", { request, result: omit(result, "data") });
|
|
2383
|
+
return await micro.send(res, 200, result);
|
|
2384
|
+
}
|
|
2385
|
+
catch (error) {
|
|
2386
|
+
ioc.loggerService.log("/api/v1/markdown_mock/live_report error", { error: functoolsKit.errorData(error) });
|
|
2387
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2388
|
+
}
|
|
2389
|
+
});
|
|
2390
|
+
router$4.post("/api/v1/markdown_mock/breakeven_data", async (req, res) => {
|
|
2391
|
+
try {
|
|
2392
|
+
const request = await micro.json(req);
|
|
2393
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2394
|
+
const data = await ioc.markdownMockService.getBreakevenData(symbol, strategyName, exchangeName, frameName);
|
|
2395
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2396
|
+
ioc.loggerService.log("/api/v1/markdown_mock/breakeven_data ok", { request, result: omit(result, "data") });
|
|
2397
|
+
return await micro.send(res, 200, result);
|
|
2398
|
+
}
|
|
2399
|
+
catch (error) {
|
|
2400
|
+
ioc.loggerService.log("/api/v1/markdown_mock/breakeven_data error", { error: functoolsKit.errorData(error) });
|
|
2401
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2402
|
+
}
|
|
2403
|
+
});
|
|
2404
|
+
router$4.post("/api/v1/markdown_mock/breakeven_report", async (req, res) => {
|
|
2405
|
+
try {
|
|
2406
|
+
const request = await micro.json(req);
|
|
2407
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2408
|
+
const data = await ioc.markdownMockService.getBreakevenReport(symbol, strategyName, exchangeName, frameName);
|
|
2409
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2410
|
+
ioc.loggerService.log("/api/v1/markdown_mock/breakeven_report ok", { request, result: omit(result, "data") });
|
|
2411
|
+
return await micro.send(res, 200, result);
|
|
2412
|
+
}
|
|
2413
|
+
catch (error) {
|
|
2414
|
+
ioc.loggerService.log("/api/v1/markdown_mock/breakeven_report error", { error: functoolsKit.errorData(error) });
|
|
2415
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2416
|
+
}
|
|
2417
|
+
});
|
|
2418
|
+
router$4.post("/api/v1/markdown_mock/risk_data", async (req, res) => {
|
|
2419
|
+
try {
|
|
2420
|
+
const request = await micro.json(req);
|
|
2421
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2422
|
+
const data = await ioc.markdownMockService.getRiskData(symbol, strategyName, exchangeName, frameName);
|
|
2423
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2424
|
+
ioc.loggerService.log("/api/v1/markdown_mock/risk_data ok", { request, result: omit(result, "data") });
|
|
2425
|
+
return await micro.send(res, 200, result);
|
|
2426
|
+
}
|
|
2427
|
+
catch (error) {
|
|
2428
|
+
ioc.loggerService.log("/api/v1/markdown_mock/risk_data error", { error: functoolsKit.errorData(error) });
|
|
2429
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2430
|
+
}
|
|
2431
|
+
});
|
|
2432
|
+
router$4.post("/api/v1/markdown_mock/risk_report", async (req, res) => {
|
|
2433
|
+
try {
|
|
2434
|
+
const request = await micro.json(req);
|
|
2435
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2436
|
+
const data = await ioc.markdownMockService.getRiskReport(symbol, strategyName, exchangeName, frameName);
|
|
2437
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2438
|
+
ioc.loggerService.log("/api/v1/markdown_mock/risk_report ok", { request, result: omit(result, "data") });
|
|
2439
|
+
return await micro.send(res, 200, result);
|
|
2440
|
+
}
|
|
2441
|
+
catch (error) {
|
|
2442
|
+
ioc.loggerService.log("/api/v1/markdown_mock/risk_report error", { error: functoolsKit.errorData(error) });
|
|
2443
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2444
|
+
}
|
|
2445
|
+
});
|
|
2446
|
+
router$4.post("/api/v1/markdown_mock/partial_data", async (req, res) => {
|
|
2447
|
+
try {
|
|
2448
|
+
const request = await micro.json(req);
|
|
2449
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2450
|
+
const data = await ioc.markdownMockService.getPartialData(symbol, strategyName, exchangeName, frameName);
|
|
2451
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2452
|
+
ioc.loggerService.log("/api/v1/markdown_mock/partial_data ok", { request, result: omit(result, "data") });
|
|
2453
|
+
return await micro.send(res, 200, result);
|
|
2454
|
+
}
|
|
2455
|
+
catch (error) {
|
|
2456
|
+
ioc.loggerService.log("/api/v1/markdown_mock/partial_data error", { error: functoolsKit.errorData(error) });
|
|
2457
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2458
|
+
}
|
|
2459
|
+
});
|
|
2460
|
+
router$4.post("/api/v1/markdown_mock/partial_report", async (req, res) => {
|
|
2461
|
+
try {
|
|
2462
|
+
const request = await micro.json(req);
|
|
2463
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2464
|
+
const data = await ioc.markdownMockService.getPartialReport(symbol, strategyName, exchangeName, frameName);
|
|
2465
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2466
|
+
ioc.loggerService.log("/api/v1/markdown_mock/partial_report ok", { request, result: omit(result, "data") });
|
|
2467
|
+
return await micro.send(res, 200, result);
|
|
2468
|
+
}
|
|
2469
|
+
catch (error) {
|
|
2470
|
+
ioc.loggerService.log("/api/v1/markdown_mock/partial_report error", { error: functoolsKit.errorData(error) });
|
|
2471
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2472
|
+
}
|
|
2473
|
+
});
|
|
2474
|
+
router$4.post("/api/v1/markdown_mock/highest_profit_data", async (req, res) => {
|
|
2475
|
+
try {
|
|
2476
|
+
const request = await micro.json(req);
|
|
2477
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2478
|
+
const data = await ioc.markdownMockService.getHighestProfitData(symbol, strategyName, exchangeName, frameName);
|
|
2479
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2480
|
+
ioc.loggerService.log("/api/v1/markdown_mock/highest_profit_data ok", { request, result: omit(result, "data") });
|
|
2481
|
+
return await micro.send(res, 200, result);
|
|
2482
|
+
}
|
|
2483
|
+
catch (error) {
|
|
2484
|
+
ioc.loggerService.log("/api/v1/markdown_mock/highest_profit_data error", { error: functoolsKit.errorData(error) });
|
|
2485
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2486
|
+
}
|
|
2487
|
+
});
|
|
2488
|
+
router$4.post("/api/v1/markdown_mock/highest_profit_report", async (req, res) => {
|
|
2489
|
+
try {
|
|
2490
|
+
const request = await micro.json(req);
|
|
2491
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2492
|
+
const data = await ioc.markdownMockService.getHighestProfitReport(symbol, strategyName, exchangeName, frameName);
|
|
2493
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2494
|
+
ioc.loggerService.log("/api/v1/markdown_mock/highest_profit_report ok", { request, result: omit(result, "data") });
|
|
2495
|
+
return await micro.send(res, 200, result);
|
|
2496
|
+
}
|
|
2497
|
+
catch (error) {
|
|
2498
|
+
ioc.loggerService.log("/api/v1/markdown_mock/highest_profit_report error", { error: functoolsKit.errorData(error) });
|
|
2499
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2500
|
+
}
|
|
2501
|
+
});
|
|
2502
|
+
router$4.post("/api/v1/markdown_mock/schedule_data", async (req, res) => {
|
|
2503
|
+
try {
|
|
2504
|
+
const request = await micro.json(req);
|
|
2505
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2506
|
+
const data = await ioc.markdownMockService.getScheduleData(symbol, strategyName, exchangeName, frameName);
|
|
2507
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2508
|
+
ioc.loggerService.log("/api/v1/markdown_mock/schedule_data ok", { request, result: omit(result, "data") });
|
|
2509
|
+
return await micro.send(res, 200, result);
|
|
2510
|
+
}
|
|
2511
|
+
catch (error) {
|
|
2512
|
+
ioc.loggerService.log("/api/v1/markdown_mock/schedule_data error", { error: functoolsKit.errorData(error) });
|
|
2513
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2514
|
+
}
|
|
2515
|
+
});
|
|
2516
|
+
router$4.post("/api/v1/markdown_mock/schedule_report", async (req, res) => {
|
|
2517
|
+
try {
|
|
2518
|
+
const request = await micro.json(req);
|
|
2519
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2520
|
+
const data = await ioc.markdownMockService.getScheduleReport(symbol, strategyName, exchangeName, frameName);
|
|
2521
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2522
|
+
ioc.loggerService.log("/api/v1/markdown_mock/schedule_report ok", { request, result: omit(result, "data") });
|
|
2523
|
+
return await micro.send(res, 200, result);
|
|
2524
|
+
}
|
|
2525
|
+
catch (error) {
|
|
2526
|
+
ioc.loggerService.log("/api/v1/markdown_mock/schedule_report error", { error: functoolsKit.errorData(error) });
|
|
2527
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2528
|
+
}
|
|
2529
|
+
});
|
|
2530
|
+
router$4.post("/api/v1/markdown_mock/performance_data", async (req, res) => {
|
|
2531
|
+
try {
|
|
2532
|
+
const request = await micro.json(req);
|
|
2533
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2534
|
+
const data = await ioc.markdownMockService.getPerformanceData(symbol, strategyName, exchangeName, frameName);
|
|
2535
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2536
|
+
ioc.loggerService.log("/api/v1/markdown_mock/performance_data ok", { request, result: omit(result, "data") });
|
|
2537
|
+
return await micro.send(res, 200, result);
|
|
2538
|
+
}
|
|
2539
|
+
catch (error) {
|
|
2540
|
+
ioc.loggerService.log("/api/v1/markdown_mock/performance_data error", { error: functoolsKit.errorData(error) });
|
|
2541
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2542
|
+
}
|
|
2543
|
+
});
|
|
2544
|
+
router$4.post("/api/v1/markdown_mock/performance_report", async (req, res) => {
|
|
2545
|
+
try {
|
|
2546
|
+
const request = await micro.json(req);
|
|
2547
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2548
|
+
const data = await ioc.markdownMockService.getPerformanceReport(symbol, strategyName, exchangeName, frameName);
|
|
2549
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2550
|
+
ioc.loggerService.log("/api/v1/markdown_mock/performance_report ok", { request, result: omit(result, "data") });
|
|
2551
|
+
return await micro.send(res, 200, result);
|
|
2552
|
+
}
|
|
2553
|
+
catch (error) {
|
|
2554
|
+
ioc.loggerService.log("/api/v1/markdown_mock/performance_report error", { error: functoolsKit.errorData(error) });
|
|
2555
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2556
|
+
}
|
|
2557
|
+
});
|
|
2558
|
+
router$4.post("/api/v1/markdown_mock/sync_data", async (req, res) => {
|
|
2559
|
+
try {
|
|
2560
|
+
const request = await micro.json(req);
|
|
2561
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2562
|
+
const data = await ioc.markdownMockService.getSyncData(symbol, strategyName, exchangeName, frameName);
|
|
2563
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2564
|
+
ioc.loggerService.log("/api/v1/markdown_mock/sync_data ok", { request, result: omit(result, "data") });
|
|
2565
|
+
return await micro.send(res, 200, result);
|
|
2566
|
+
}
|
|
2567
|
+
catch (error) {
|
|
2568
|
+
ioc.loggerService.log("/api/v1/markdown_mock/sync_data error", { error: functoolsKit.errorData(error) });
|
|
2569
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2570
|
+
}
|
|
2571
|
+
});
|
|
2572
|
+
router$4.post("/api/v1/markdown_mock/sync_report", async (req, res) => {
|
|
2573
|
+
try {
|
|
2574
|
+
const request = await micro.json(req);
|
|
2575
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2576
|
+
const data = await ioc.markdownMockService.getSyncReport(symbol, strategyName, exchangeName, frameName);
|
|
2577
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2578
|
+
ioc.loggerService.log("/api/v1/markdown_mock/sync_report ok", { request, result: omit(result, "data") });
|
|
2579
|
+
return await micro.send(res, 200, result);
|
|
2580
|
+
}
|
|
2581
|
+
catch (error) {
|
|
2582
|
+
ioc.loggerService.log("/api/v1/markdown_mock/sync_report error", { error: functoolsKit.errorData(error) });
|
|
2583
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2584
|
+
}
|
|
2585
|
+
});
|
|
2586
|
+
router$4.post("/api/v1/markdown_mock/heat_data", async (req, res) => {
|
|
2587
|
+
try {
|
|
2588
|
+
const request = await micro.json(req);
|
|
2589
|
+
const { requestId, serviceName, strategyName, exchangeName, frameName } = request;
|
|
2590
|
+
const data = await ioc.markdownMockService.getHeatData(strategyName, exchangeName, frameName);
|
|
2591
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2592
|
+
ioc.loggerService.log("/api/v1/markdown_mock/heat_data ok", { request, result: omit(result, "data") });
|
|
2593
|
+
return await micro.send(res, 200, result);
|
|
2594
|
+
}
|
|
2595
|
+
catch (error) {
|
|
2596
|
+
ioc.loggerService.log("/api/v1/markdown_mock/heat_data error", { error: functoolsKit.errorData(error) });
|
|
2597
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2598
|
+
}
|
|
2599
|
+
});
|
|
2600
|
+
router$4.post("/api/v1/markdown_mock/heat_report", async (req, res) => {
|
|
2601
|
+
try {
|
|
2602
|
+
const request = await micro.json(req);
|
|
2603
|
+
const { requestId, serviceName, strategyName, exchangeName, frameName } = request;
|
|
2604
|
+
const data = await ioc.markdownMockService.getHeatReport(strategyName, exchangeName, frameName);
|
|
2605
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2606
|
+
ioc.loggerService.log("/api/v1/markdown_mock/heat_report ok", { request, result: omit(result, "data") });
|
|
2607
|
+
return await micro.send(res, 200, result);
|
|
2608
|
+
}
|
|
2609
|
+
catch (error) {
|
|
2610
|
+
ioc.loggerService.log("/api/v1/markdown_mock/heat_report error", { error: functoolsKit.errorData(error) });
|
|
2611
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2612
|
+
}
|
|
2613
|
+
});
|
|
2614
|
+
router$4.post("/api/v1/markdown_mock/walker_data", async (req, res) => {
|
|
2615
|
+
try {
|
|
2616
|
+
const request = await micro.json(req);
|
|
2617
|
+
const { requestId, serviceName, symbol, walkerName } = request;
|
|
2618
|
+
const data = await ioc.markdownMockService.getWalkerData(symbol, walkerName);
|
|
2619
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2620
|
+
ioc.loggerService.log("/api/v1/markdown_mock/walker_data ok", { request, result: omit(result, "data") });
|
|
2621
|
+
return await micro.send(res, 200, result);
|
|
2622
|
+
}
|
|
2623
|
+
catch (error) {
|
|
2624
|
+
ioc.loggerService.log("/api/v1/markdown_mock/walker_data error", { error: functoolsKit.errorData(error) });
|
|
2625
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2626
|
+
}
|
|
2627
|
+
});
|
|
2628
|
+
router$4.post("/api/v1/markdown_mock/walker_report", async (req, res) => {
|
|
2629
|
+
try {
|
|
2630
|
+
const request = await micro.json(req);
|
|
2631
|
+
const { requestId, serviceName, symbol, walkerName } = request;
|
|
2632
|
+
const data = await ioc.markdownMockService.getWalkerReport(symbol, walkerName);
|
|
2633
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2634
|
+
ioc.loggerService.log("/api/v1/markdown_mock/walker_report ok", { request, result: omit(result, "data") });
|
|
2635
|
+
return await micro.send(res, 200, result);
|
|
2636
|
+
}
|
|
2637
|
+
catch (error) {
|
|
2638
|
+
ioc.loggerService.log("/api/v1/markdown_mock/walker_report error", { error: functoolsKit.errorData(error) });
|
|
2639
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2640
|
+
}
|
|
2641
|
+
});
|
|
2642
|
+
|
|
2643
|
+
const router$3 = Router({
|
|
2644
|
+
params: true,
|
|
2645
|
+
});
|
|
2646
|
+
router$3.post("/api/v1/markdown_view/backtest_data", async (req, res) => {
|
|
2647
|
+
try {
|
|
2648
|
+
const request = await micro.json(req);
|
|
2649
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2650
|
+
const data = await ioc.markdownViewService.getBacktestData(symbol, strategyName, exchangeName, frameName);
|
|
2651
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2652
|
+
ioc.loggerService.log("/api/v1/markdown_view/backtest_data ok", { request, result: omit(result, "data") });
|
|
2653
|
+
return await micro.send(res, 200, result);
|
|
2654
|
+
}
|
|
2655
|
+
catch (error) {
|
|
2656
|
+
ioc.loggerService.log("/api/v1/markdown_view/backtest_data error", { error: functoolsKit.errorData(error) });
|
|
2657
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2658
|
+
}
|
|
2659
|
+
});
|
|
2660
|
+
router$3.post("/api/v1/markdown_view/backtest_report", async (req, res) => {
|
|
2661
|
+
try {
|
|
2662
|
+
const request = await micro.json(req);
|
|
2663
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2664
|
+
const data = await ioc.markdownViewService.getBacktestReport(symbol, strategyName, exchangeName, frameName);
|
|
2665
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2666
|
+
ioc.loggerService.log("/api/v1/markdown_view/backtest_report ok", { request, result: omit(result, "data") });
|
|
2667
|
+
return await micro.send(res, 200, result);
|
|
2668
|
+
}
|
|
2669
|
+
catch (error) {
|
|
2670
|
+
ioc.loggerService.log("/api/v1/markdown_view/backtest_report error", { error: functoolsKit.errorData(error) });
|
|
2671
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2672
|
+
}
|
|
2673
|
+
});
|
|
2674
|
+
router$3.post("/api/v1/markdown_view/live_data", async (req, res) => {
|
|
2675
|
+
try {
|
|
2676
|
+
const request = await micro.json(req);
|
|
2677
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName } = request;
|
|
2678
|
+
const data = await ioc.markdownViewService.getLiveData(symbol, strategyName, exchangeName);
|
|
2679
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2680
|
+
ioc.loggerService.log("/api/v1/markdown_view/live_data ok", { request, result: omit(result, "data") });
|
|
2681
|
+
return await micro.send(res, 200, result);
|
|
2682
|
+
}
|
|
2683
|
+
catch (error) {
|
|
2684
|
+
ioc.loggerService.log("/api/v1/markdown_view/live_data error", { error: functoolsKit.errorData(error) });
|
|
2685
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2686
|
+
}
|
|
2687
|
+
});
|
|
2688
|
+
router$3.post("/api/v1/markdown_view/live_report", async (req, res) => {
|
|
2689
|
+
try {
|
|
2690
|
+
const request = await micro.json(req);
|
|
2691
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName } = request;
|
|
2692
|
+
const data = await ioc.markdownViewService.getLiveReport(symbol, strategyName, exchangeName);
|
|
2693
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2694
|
+
ioc.loggerService.log("/api/v1/markdown_view/live_report ok", { request, result: omit(result, "data") });
|
|
2695
|
+
return await micro.send(res, 200, result);
|
|
2696
|
+
}
|
|
2697
|
+
catch (error) {
|
|
2698
|
+
ioc.loggerService.log("/api/v1/markdown_view/live_report error", { error: functoolsKit.errorData(error) });
|
|
2699
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2700
|
+
}
|
|
2701
|
+
});
|
|
2702
|
+
router$3.post("/api/v1/markdown_view/breakeven_data", async (req, res) => {
|
|
2703
|
+
try {
|
|
2704
|
+
const request = await micro.json(req);
|
|
2705
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2706
|
+
const data = await ioc.markdownViewService.getBreakevenData(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2707
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2708
|
+
ioc.loggerService.log("/api/v1/markdown_view/breakeven_data ok", { request, result: omit(result, "data") });
|
|
2709
|
+
return await micro.send(res, 200, result);
|
|
2710
|
+
}
|
|
2711
|
+
catch (error) {
|
|
2712
|
+
ioc.loggerService.log("/api/v1/markdown_view/breakeven_data error", { error: functoolsKit.errorData(error) });
|
|
2713
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2714
|
+
}
|
|
2715
|
+
});
|
|
2716
|
+
router$3.post("/api/v1/markdown_view/breakeven_report", async (req, res) => {
|
|
2717
|
+
try {
|
|
2718
|
+
const request = await micro.json(req);
|
|
2719
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2720
|
+
const data = await ioc.markdownViewService.getBreakevenReport(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2721
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2722
|
+
ioc.loggerService.log("/api/v1/markdown_view/breakeven_report ok", { request, result: omit(result, "data") });
|
|
2723
|
+
return await micro.send(res, 200, result);
|
|
2724
|
+
}
|
|
2725
|
+
catch (error) {
|
|
2726
|
+
ioc.loggerService.log("/api/v1/markdown_view/breakeven_report error", { error: functoolsKit.errorData(error) });
|
|
2727
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2728
|
+
}
|
|
2729
|
+
});
|
|
2730
|
+
router$3.post("/api/v1/markdown_view/risk_data", async (req, res) => {
|
|
2731
|
+
try {
|
|
2732
|
+
const request = await micro.json(req);
|
|
2733
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2734
|
+
const data = await ioc.markdownViewService.getRiskData(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2735
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2736
|
+
ioc.loggerService.log("/api/v1/markdown_view/risk_data ok", { request, result: omit(result, "data") });
|
|
2737
|
+
return await micro.send(res, 200, result);
|
|
2738
|
+
}
|
|
2739
|
+
catch (error) {
|
|
2740
|
+
ioc.loggerService.log("/api/v1/markdown_view/risk_data error", { error: functoolsKit.errorData(error) });
|
|
2741
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2742
|
+
}
|
|
2743
|
+
});
|
|
2744
|
+
router$3.post("/api/v1/markdown_view/risk_report", async (req, res) => {
|
|
2745
|
+
try {
|
|
2746
|
+
const request = await micro.json(req);
|
|
2747
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2748
|
+
const data = await ioc.markdownViewService.getRiskReport(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2749
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2750
|
+
ioc.loggerService.log("/api/v1/markdown_view/risk_report ok", { request, result: omit(result, "data") });
|
|
2751
|
+
return await micro.send(res, 200, result);
|
|
2752
|
+
}
|
|
2753
|
+
catch (error) {
|
|
2754
|
+
ioc.loggerService.log("/api/v1/markdown_view/risk_report error", { error: functoolsKit.errorData(error) });
|
|
2755
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2756
|
+
}
|
|
2757
|
+
});
|
|
2758
|
+
router$3.post("/api/v1/markdown_view/partial_data", async (req, res) => {
|
|
2759
|
+
try {
|
|
2760
|
+
const request = await micro.json(req);
|
|
2761
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2762
|
+
const data = await ioc.markdownViewService.getPartialData(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2763
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2764
|
+
ioc.loggerService.log("/api/v1/markdown_view/partial_data ok", { request, result: omit(result, "data") });
|
|
2765
|
+
return await micro.send(res, 200, result);
|
|
2766
|
+
}
|
|
2767
|
+
catch (error) {
|
|
2768
|
+
ioc.loggerService.log("/api/v1/markdown_view/partial_data error", { error: functoolsKit.errorData(error) });
|
|
2769
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2770
|
+
}
|
|
2771
|
+
});
|
|
2772
|
+
router$3.post("/api/v1/markdown_view/partial_report", async (req, res) => {
|
|
2773
|
+
try {
|
|
2774
|
+
const request = await micro.json(req);
|
|
2775
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2776
|
+
const data = await ioc.markdownViewService.getPartialReport(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2777
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2778
|
+
ioc.loggerService.log("/api/v1/markdown_view/partial_report ok", { request, result: omit(result, "data") });
|
|
2779
|
+
return await micro.send(res, 200, result);
|
|
2780
|
+
}
|
|
2781
|
+
catch (error) {
|
|
2782
|
+
ioc.loggerService.log("/api/v1/markdown_view/partial_report error", { error: functoolsKit.errorData(error) });
|
|
2783
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2784
|
+
}
|
|
2785
|
+
});
|
|
2786
|
+
router$3.post("/api/v1/markdown_view/highest_profit_data", async (req, res) => {
|
|
2787
|
+
try {
|
|
2788
|
+
const request = await micro.json(req);
|
|
2789
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2790
|
+
const data = await ioc.markdownViewService.getHighestProfitData(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2791
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2792
|
+
ioc.loggerService.log("/api/v1/markdown_view/highest_profit_data ok", { request, result: omit(result, "data") });
|
|
2793
|
+
return await micro.send(res, 200, result);
|
|
2794
|
+
}
|
|
2795
|
+
catch (error) {
|
|
2796
|
+
ioc.loggerService.log("/api/v1/markdown_view/highest_profit_data error", { error: functoolsKit.errorData(error) });
|
|
2797
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2798
|
+
}
|
|
2799
|
+
});
|
|
2800
|
+
router$3.post("/api/v1/markdown_view/highest_profit_report", async (req, res) => {
|
|
2801
|
+
try {
|
|
2802
|
+
const request = await micro.json(req);
|
|
2803
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2804
|
+
const data = await ioc.markdownViewService.getHighestProfitReport(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2805
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2806
|
+
ioc.loggerService.log("/api/v1/markdown_view/highest_profit_report ok", { request, result: omit(result, "data") });
|
|
2807
|
+
return await micro.send(res, 200, result);
|
|
2808
|
+
}
|
|
2809
|
+
catch (error) {
|
|
2810
|
+
ioc.loggerService.log("/api/v1/markdown_view/highest_profit_report error", { error: functoolsKit.errorData(error) });
|
|
2811
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2812
|
+
}
|
|
2813
|
+
});
|
|
2814
|
+
router$3.post("/api/v1/markdown_view/schedule_data", async (req, res) => {
|
|
2815
|
+
try {
|
|
2816
|
+
const request = await micro.json(req);
|
|
2817
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2818
|
+
const data = await ioc.markdownViewService.getScheduleData(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2819
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2820
|
+
ioc.loggerService.log("/api/v1/markdown_view/schedule_data ok", { request, result: omit(result, "data") });
|
|
2821
|
+
return await micro.send(res, 200, result);
|
|
2822
|
+
}
|
|
2823
|
+
catch (error) {
|
|
2824
|
+
ioc.loggerService.log("/api/v1/markdown_view/schedule_data error", { error: functoolsKit.errorData(error) });
|
|
2825
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2826
|
+
}
|
|
2827
|
+
});
|
|
2828
|
+
router$3.post("/api/v1/markdown_view/schedule_report", async (req, res) => {
|
|
2829
|
+
try {
|
|
2830
|
+
const request = await micro.json(req);
|
|
2831
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2832
|
+
const data = await ioc.markdownViewService.getScheduleReport(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2833
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2834
|
+
ioc.loggerService.log("/api/v1/markdown_view/schedule_report ok", { request, result: omit(result, "data") });
|
|
2835
|
+
return await micro.send(res, 200, result);
|
|
2836
|
+
}
|
|
2837
|
+
catch (error) {
|
|
2838
|
+
ioc.loggerService.log("/api/v1/markdown_view/schedule_report error", { error: functoolsKit.errorData(error) });
|
|
2839
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2840
|
+
}
|
|
2841
|
+
});
|
|
2842
|
+
router$3.post("/api/v1/markdown_view/performance_data", async (req, res) => {
|
|
2843
|
+
try {
|
|
2844
|
+
const request = await micro.json(req);
|
|
2845
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2846
|
+
const data = await ioc.markdownViewService.getPerformanceData(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2847
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2848
|
+
ioc.loggerService.log("/api/v1/markdown_view/performance_data ok", { request, result: omit(result, "data") });
|
|
2849
|
+
return await micro.send(res, 200, result);
|
|
2850
|
+
}
|
|
2851
|
+
catch (error) {
|
|
2852
|
+
ioc.loggerService.log("/api/v1/markdown_view/performance_data error", { error: functoolsKit.errorData(error) });
|
|
2853
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2854
|
+
}
|
|
2855
|
+
});
|
|
2856
|
+
router$3.post("/api/v1/markdown_view/performance_report", async (req, res) => {
|
|
2857
|
+
try {
|
|
2858
|
+
const request = await micro.json(req);
|
|
2859
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2860
|
+
const data = await ioc.markdownViewService.getPerformanceReport(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2861
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2862
|
+
ioc.loggerService.log("/api/v1/markdown_view/performance_report ok", { request, result: omit(result, "data") });
|
|
2863
|
+
return await micro.send(res, 200, result);
|
|
2864
|
+
}
|
|
2865
|
+
catch (error) {
|
|
2866
|
+
ioc.loggerService.log("/api/v1/markdown_view/performance_report error", { error: functoolsKit.errorData(error) });
|
|
2867
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2868
|
+
}
|
|
2869
|
+
});
|
|
2870
|
+
router$3.post("/api/v1/markdown_view/sync_data", async (req, res) => {
|
|
2871
|
+
try {
|
|
2872
|
+
const request = await micro.json(req);
|
|
2873
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2874
|
+
const data = await ioc.markdownViewService.getSyncData(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2875
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2876
|
+
ioc.loggerService.log("/api/v1/markdown_view/sync_data ok", { request, result: omit(result, "data") });
|
|
2877
|
+
return await micro.send(res, 200, result);
|
|
2878
|
+
}
|
|
2879
|
+
catch (error) {
|
|
2880
|
+
ioc.loggerService.log("/api/v1/markdown_view/sync_data error", { error: functoolsKit.errorData(error) });
|
|
2881
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2882
|
+
}
|
|
2883
|
+
});
|
|
2884
|
+
router$3.post("/api/v1/markdown_view/sync_report", async (req, res) => {
|
|
2885
|
+
try {
|
|
2886
|
+
const request = await micro.json(req);
|
|
2887
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2888
|
+
const data = await ioc.markdownViewService.getSyncReport(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2889
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2890
|
+
ioc.loggerService.log("/api/v1/markdown_view/sync_report ok", { request, result: omit(result, "data") });
|
|
2891
|
+
return await micro.send(res, 200, result);
|
|
2892
|
+
}
|
|
2893
|
+
catch (error) {
|
|
2894
|
+
ioc.loggerService.log("/api/v1/markdown_view/sync_report error", { error: functoolsKit.errorData(error) });
|
|
2895
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2896
|
+
}
|
|
2897
|
+
});
|
|
2898
|
+
router$3.post("/api/v1/markdown_view/heat_data", async (req, res) => {
|
|
2899
|
+
try {
|
|
2900
|
+
const request = await micro.json(req);
|
|
2901
|
+
const { requestId, serviceName, strategyName, exchangeName, frameName, backtest } = request;
|
|
2902
|
+
const data = await ioc.markdownViewService.getHeatData(strategyName, exchangeName, frameName, backtest);
|
|
2903
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2904
|
+
ioc.loggerService.log("/api/v1/markdown_view/heat_data ok", { request, result: omit(result, "data") });
|
|
2905
|
+
return await micro.send(res, 200, result);
|
|
2906
|
+
}
|
|
2907
|
+
catch (error) {
|
|
2908
|
+
ioc.loggerService.log("/api/v1/markdown_view/heat_data error", { error: functoolsKit.errorData(error) });
|
|
2909
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2910
|
+
}
|
|
2911
|
+
});
|
|
2912
|
+
router$3.post("/api/v1/markdown_view/heat_report", async (req, res) => {
|
|
2913
|
+
try {
|
|
2914
|
+
const request = await micro.json(req);
|
|
2915
|
+
const { requestId, serviceName, strategyName, exchangeName, frameName, backtest } = request;
|
|
2916
|
+
const data = await ioc.markdownViewService.getHeatReport(strategyName, exchangeName, frameName, backtest);
|
|
2917
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2918
|
+
ioc.loggerService.log("/api/v1/markdown_view/heat_report ok", { request, result: omit(result, "data") });
|
|
2919
|
+
return await micro.send(res, 200, result);
|
|
2920
|
+
}
|
|
2921
|
+
catch (error) {
|
|
2922
|
+
ioc.loggerService.log("/api/v1/markdown_view/heat_report error", { error: functoolsKit.errorData(error) });
|
|
2923
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2924
|
+
}
|
|
2925
|
+
});
|
|
2926
|
+
router$3.post("/api/v1/markdown_view/walker_data", async (req, res) => {
|
|
2927
|
+
try {
|
|
2928
|
+
const request = await micro.json(req);
|
|
2929
|
+
const { requestId, serviceName, symbol, walkerName } = request;
|
|
2930
|
+
const data = await ioc.markdownViewService.getWalkerData(symbol, walkerName);
|
|
2931
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2932
|
+
ioc.loggerService.log("/api/v1/markdown_view/walker_data ok", { request, result: omit(result, "data") });
|
|
2933
|
+
return await micro.send(res, 200, result);
|
|
2934
|
+
}
|
|
2935
|
+
catch (error) {
|
|
2936
|
+
ioc.loggerService.log("/api/v1/markdown_view/walker_data error", { error: functoolsKit.errorData(error) });
|
|
2937
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2938
|
+
}
|
|
2939
|
+
});
|
|
2940
|
+
router$3.post("/api/v1/markdown_view/walker_report", async (req, res) => {
|
|
2941
|
+
try {
|
|
2942
|
+
const request = await micro.json(req);
|
|
2943
|
+
const { requestId, serviceName, symbol, walkerName } = request;
|
|
2944
|
+
const data = await ioc.markdownViewService.getWalkerReport(symbol, walkerName);
|
|
2945
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2946
|
+
ioc.loggerService.log("/api/v1/markdown_view/walker_report ok", { request, result: omit(result, "data") });
|
|
2947
|
+
return await micro.send(res, 200, result);
|
|
2948
|
+
}
|
|
2949
|
+
catch (error) {
|
|
2950
|
+
ioc.loggerService.log("/api/v1/markdown_view/walker_report error", { error: functoolsKit.errorData(error) });
|
|
2951
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2952
|
+
}
|
|
2953
|
+
});
|
|
2954
|
+
|
|
1982
2955
|
const router$2 = Router({
|
|
1983
2956
|
params: true,
|
|
1984
2957
|
});
|
|
@@ -2010,6 +2983,34 @@ router$2.post("/api/v1/global/signal_pending_price", async (req, res) => {
|
|
|
2010
2983
|
});
|
|
2011
2984
|
}
|
|
2012
2985
|
});
|
|
2986
|
+
router$2.post("/api/v1/global/backtest_list", async (req, res) => {
|
|
2987
|
+
try {
|
|
2988
|
+
const request = await micro.json(req);
|
|
2989
|
+
const { requestId, serviceName } = request;
|
|
2990
|
+
const data = await ioc.backtestMetaService.list();
|
|
2991
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2992
|
+
ioc.loggerService.log("/api/v1/global/backtest_list ok", { request, result: omit(result, "data") });
|
|
2993
|
+
return await micro.send(res, 200, result);
|
|
2994
|
+
}
|
|
2995
|
+
catch (error) {
|
|
2996
|
+
ioc.loggerService.log("/api/v1/global/backtest_list error", { error: functoolsKit.errorData(error) });
|
|
2997
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
2998
|
+
}
|
|
2999
|
+
});
|
|
3000
|
+
router$2.post("/api/v1/global/live_list", async (req, res) => {
|
|
3001
|
+
try {
|
|
3002
|
+
const request = await micro.json(req);
|
|
3003
|
+
const { requestId, serviceName } = request;
|
|
3004
|
+
const data = await ioc.liveMetaService.list();
|
|
3005
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
3006
|
+
ioc.loggerService.log("/api/v1/global/live_list ok", { request, result: omit(result, "data") });
|
|
3007
|
+
return await micro.send(res, 200, result);
|
|
3008
|
+
}
|
|
3009
|
+
catch (error) {
|
|
3010
|
+
ioc.loggerService.log("/api/v1/global/live_list error", { error: functoolsKit.errorData(error) });
|
|
3011
|
+
return await micro.send(res, 200, { status: "error", error: functoolsKit.getErrorMessage(error) });
|
|
3012
|
+
}
|
|
3013
|
+
});
|
|
2013
3014
|
|
|
2014
3015
|
const require$1 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)));
|
|
2015
3016
|
function getPublicPath() {
|
|
@@ -2022,20 +3023,26 @@ const router = Router({
|
|
|
2022
3023
|
params: true,
|
|
2023
3024
|
});
|
|
2024
3025
|
router.all("/api/v1/health/*", (req, res) => {
|
|
2025
|
-
return router$
|
|
3026
|
+
return router$9(req, res, finalhandler(req, res));
|
|
2026
3027
|
});
|
|
2027
3028
|
router.all("/api/v1/mock/*", (req, res) => {
|
|
2028
|
-
return router$
|
|
3029
|
+
return router$8(req, res, finalhandler(req, res));
|
|
2029
3030
|
});
|
|
2030
3031
|
router.all("/api/v1/view/*", (req, res) => {
|
|
2031
|
-
return router$
|
|
3032
|
+
return router$7(req, res, finalhandler(req, res));
|
|
2032
3033
|
});
|
|
2033
|
-
router.all("/
|
|
3034
|
+
router.all("/api/v1/markdown_mock/*", (req, res) => {
|
|
2034
3035
|
return router$4(req, res, finalhandler(req, res));
|
|
2035
3036
|
});
|
|
2036
|
-
router.all("/api/v1/
|
|
3037
|
+
router.all("/api/v1/markdown_view/*", (req, res) => {
|
|
2037
3038
|
return router$3(req, res, finalhandler(req, res));
|
|
2038
3039
|
});
|
|
3040
|
+
router.all("/icon/*", (req, res) => {
|
|
3041
|
+
return router$6(req, res, finalhandler(req, res));
|
|
3042
|
+
});
|
|
3043
|
+
router.all("/api/v1/dict/*", (req, res) => {
|
|
3044
|
+
return router$5(req, res, finalhandler(req, res));
|
|
3045
|
+
});
|
|
2039
3046
|
router.all("/api/v1/global/*", (req, res) => {
|
|
2040
3047
|
return router$2(req, res, finalhandler(req, res));
|
|
2041
3048
|
});
|