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