@backtest-kit/ui 5.5.3 → 5.6.2
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 +1135 -46
- package/build/index.mjs +1136 -47
- package/build/modules/frontend/build/assets/{Background-BnanDjno.js → Background-B8kVLoJC.js} +1 -1
- package/build/modules/frontend/build/assets/{IconPhoto-Cf_hSu3z.js → IconPhoto-yqTcSjsj.js} +1 -1
- package/build/modules/frontend/build/assets/{KeyboardArrowLeft-C5vKOcAm.js → KeyboardArrowLeft-NcptneCW.js} +1 -1
- package/build/modules/frontend/build/assets/{Refresh-AyInXuzX.js → Refresh-B-6VzYmL.js} +1 -1
- package/build/modules/frontend/build/assets/hasRouteMatch-Cap76DHx.js +1 -0
- package/build/modules/frontend/build/assets/html2canvas-AeHV6o40.js +1 -0
- package/build/modules/frontend/build/assets/{index-DkX_NvhV.js → index-3FabZvCh.js} +1 -1
- package/build/modules/frontend/build/assets/{index-yCZPy3N-.js → index-BSt5rIe0.js} +9 -9
- package/build/modules/frontend/build/assets/index-BfdHWVzz.js +1331 -0
- package/build/modules/frontend/build/assets/{index-CXkLpGEW.js → index-BjR0gQPx.js} +1 -1
- package/build/modules/frontend/build/assets/index-Bov2Mvu5.js +1 -0
- package/build/modules/frontend/build/assets/{index-CE-T-vGF.js → index-DTb7GKw2.js} +1 -1
- package/build/modules/frontend/build/assets/{index-DoIVKvQl.js → index-eGg7QpVp.js} +1 -1
- package/build/modules/frontend/build/assets/index-mEY60b54.js +1 -0
- package/build/modules/frontend/build/assets/index.es-BkDLGtAB.js +16 -0
- package/build/modules/frontend/build/assets/markdownit-_uLqTUbF.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 +84 -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, Strategy, 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,147 @@ 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 readStrategy = makeReader("strategy.md");
|
|
444
|
+
const readLive = makeReader("live.md");
|
|
445
|
+
const readBreakeven = makeReader("breakeven.md");
|
|
446
|
+
const readRisk = makeReader("risk.md");
|
|
447
|
+
const readPartial = makeReader("partial.md");
|
|
448
|
+
const readHighestProfit = makeReader("highest_profit.md");
|
|
449
|
+
const readSchedule = makeReader("schedule.md");
|
|
450
|
+
const readPerformance = makeReader("performance.md");
|
|
451
|
+
const readSync = makeReader("sync.md");
|
|
452
|
+
const readHeat = makeReader("heat.md");
|
|
453
|
+
const readWalker = makeReader("walker.md");
|
|
454
|
+
const readBacktestData = makeDataReader("backtest.json");
|
|
455
|
+
const readStrategyData = makeDataReader("strategy.json");
|
|
456
|
+
const readLiveData = makeDataReader("live.json");
|
|
457
|
+
const readBreakevenData = makeDataReader("breakeven.json");
|
|
458
|
+
const readRiskData = makeDataReader("risk.json");
|
|
459
|
+
const readPartialData = makeDataReader("partial.json");
|
|
460
|
+
const readHighestProfitData = makeDataReader("highest_profit.json");
|
|
461
|
+
const readScheduleData = makeDataReader("schedule.json");
|
|
462
|
+
const readPerformanceData = makeDataReader("performance.json");
|
|
463
|
+
const readSyncData = makeDataReader("sync.json");
|
|
464
|
+
const readHeatData = makeDataReader("heat.json");
|
|
465
|
+
const readWalkerData = makeDataReader("walker.json");
|
|
466
|
+
class MarkdownMockService {
|
|
467
|
+
constructor() {
|
|
468
|
+
this.loggerService = inject(TYPES.loggerService);
|
|
469
|
+
// Strategy
|
|
470
|
+
this.getStrategyData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
471
|
+
this.loggerService.log("markdownMockService getStrategyData", { symbol, strategyName, exchangeName, frameName });
|
|
472
|
+
return readStrategyData();
|
|
473
|
+
};
|
|
474
|
+
this.getStrategyReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
475
|
+
this.loggerService.log("markdownMockService getStrategyReport", { symbol, strategyName, exchangeName, frameName });
|
|
476
|
+
return readStrategy();
|
|
477
|
+
};
|
|
478
|
+
// Backtest
|
|
479
|
+
this.getBacktestData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
480
|
+
this.loggerService.log("markdownMockService getBacktestData", { symbol, strategyName, exchangeName, frameName });
|
|
481
|
+
return readBacktestData();
|
|
482
|
+
};
|
|
483
|
+
this.getBacktestReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
484
|
+
this.loggerService.log("markdownMockService getBacktestReport", { symbol, strategyName, exchangeName, frameName });
|
|
485
|
+
return readBacktest();
|
|
486
|
+
};
|
|
487
|
+
// Live
|
|
488
|
+
this.getLiveData = async (symbol, strategyName, exchangeName) => {
|
|
489
|
+
this.loggerService.log("markdownMockService getLiveData", { symbol, strategyName, exchangeName });
|
|
490
|
+
return readLiveData();
|
|
491
|
+
};
|
|
492
|
+
this.getLiveReport = async (symbol, strategyName, exchangeName) => {
|
|
493
|
+
this.loggerService.log("markdownMockService getLiveReport", { symbol, strategyName, exchangeName });
|
|
494
|
+
return readLive();
|
|
495
|
+
};
|
|
496
|
+
// Breakeven
|
|
497
|
+
this.getBreakevenData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
498
|
+
this.loggerService.log("markdownMockService getBreakevenData", { symbol, strategyName, exchangeName, frameName });
|
|
499
|
+
return readBreakevenData();
|
|
500
|
+
};
|
|
501
|
+
this.getBreakevenReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
502
|
+
this.loggerService.log("markdownMockService getBreakevenReport", { symbol, strategyName, exchangeName, frameName });
|
|
503
|
+
return readBreakeven();
|
|
504
|
+
};
|
|
505
|
+
// Risk
|
|
506
|
+
this.getRiskData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
507
|
+
this.loggerService.log("markdownMockService getRiskData", { symbol, strategyName, exchangeName, frameName });
|
|
508
|
+
return readRiskData();
|
|
509
|
+
};
|
|
510
|
+
this.getRiskReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
511
|
+
this.loggerService.log("markdownMockService getRiskReport", { symbol, strategyName, exchangeName, frameName });
|
|
512
|
+
return readRisk();
|
|
513
|
+
};
|
|
514
|
+
// Partial
|
|
515
|
+
this.getPartialData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
516
|
+
this.loggerService.log("markdownMockService getPartialData", { symbol, strategyName, exchangeName, frameName });
|
|
517
|
+
return readPartialData();
|
|
518
|
+
};
|
|
519
|
+
this.getPartialReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
520
|
+
this.loggerService.log("markdownMockService getPartialReport", { symbol, strategyName, exchangeName, frameName });
|
|
521
|
+
return readPartial();
|
|
522
|
+
};
|
|
523
|
+
// HighestProfit
|
|
524
|
+
this.getHighestProfitData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
525
|
+
this.loggerService.log("markdownMockService getHighestProfitData", { symbol, strategyName, exchangeName, frameName });
|
|
526
|
+
return readHighestProfitData();
|
|
527
|
+
};
|
|
528
|
+
this.getHighestProfitReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
529
|
+
this.loggerService.log("markdownMockService getHighestProfitReport", { symbol, strategyName, exchangeName, frameName });
|
|
530
|
+
return readHighestProfit();
|
|
531
|
+
};
|
|
532
|
+
// Schedule
|
|
533
|
+
this.getScheduleData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
534
|
+
this.loggerService.log("markdownMockService getScheduleData", { symbol, strategyName, exchangeName, frameName });
|
|
535
|
+
return readScheduleData();
|
|
536
|
+
};
|
|
537
|
+
this.getScheduleReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
538
|
+
this.loggerService.log("markdownMockService getScheduleReport", { symbol, strategyName, exchangeName, frameName });
|
|
539
|
+
return readSchedule();
|
|
540
|
+
};
|
|
541
|
+
// Performance
|
|
542
|
+
this.getPerformanceData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
543
|
+
this.loggerService.log("markdownMockService getPerformanceData", { symbol, strategyName, exchangeName, frameName });
|
|
544
|
+
return readPerformanceData();
|
|
545
|
+
};
|
|
546
|
+
this.getPerformanceReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
547
|
+
this.loggerService.log("markdownMockService getPerformanceReport", { symbol, strategyName, exchangeName, frameName });
|
|
548
|
+
return readPerformance();
|
|
549
|
+
};
|
|
550
|
+
// Sync
|
|
551
|
+
this.getSyncData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
552
|
+
this.loggerService.log("markdownMockService getSyncData", { symbol, strategyName, exchangeName, frameName });
|
|
553
|
+
return readSyncData();
|
|
554
|
+
};
|
|
555
|
+
this.getSyncReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
556
|
+
this.loggerService.log("markdownMockService getSyncReport", { symbol, strategyName, exchangeName, frameName });
|
|
557
|
+
return readSync();
|
|
558
|
+
};
|
|
559
|
+
// Heat
|
|
560
|
+
this.getHeatData = async (strategyName, exchangeName, frameName) => {
|
|
561
|
+
this.loggerService.log("markdownMockService getHeatData", { strategyName, exchangeName, frameName });
|
|
562
|
+
return readHeatData();
|
|
563
|
+
};
|
|
564
|
+
this.getHeatReport = async (strategyName, exchangeName, frameName) => {
|
|
565
|
+
this.loggerService.log("markdownMockService getHeatReport", { strategyName, exchangeName, frameName });
|
|
566
|
+
return readHeat();
|
|
567
|
+
};
|
|
568
|
+
// Walker
|
|
569
|
+
this.getWalkerData = async (symbol, walkerName) => {
|
|
570
|
+
this.loggerService.log("markdownMockService getWalkerData", { symbol, walkerName });
|
|
571
|
+
return readWalkerData();
|
|
572
|
+
};
|
|
573
|
+
this.getWalkerReport = async (symbol, walkerName) => {
|
|
574
|
+
this.loggerService.log("markdownMockService getWalkerReport", { symbol, walkerName });
|
|
575
|
+
return readWalker();
|
|
576
|
+
};
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
|
|
435
580
|
const DEFAULT_LIMIT$1 = 25;
|
|
436
581
|
const DEFAULT_OFFSET$1 = 0;
|
|
437
582
|
const CREATE_FILTER_LIST_FN$1 = (filterData) => Object.keys(filterData).map((key) => (row) => new RegExp(filterData[key], "i").test(row[key]));
|
|
@@ -778,6 +923,193 @@ class StatusViewService {
|
|
|
778
923
|
}
|
|
779
924
|
}
|
|
780
925
|
|
|
926
|
+
class MarkdownViewService {
|
|
927
|
+
constructor() {
|
|
928
|
+
this.loggerService = inject(TYPES.loggerService);
|
|
929
|
+
this.markdownMockService = inject(TYPES.markdownMockService);
|
|
930
|
+
// Strategy
|
|
931
|
+
this.getStrategyData = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
932
|
+
this.loggerService.log("markdownViewService getStrategyData", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
933
|
+
if (CC_ENABLE_MOCK) {
|
|
934
|
+
return await this.markdownMockService.getStrategyData(symbol, strategyName, exchangeName, frameName);
|
|
935
|
+
}
|
|
936
|
+
return await Strategy.getData(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
937
|
+
};
|
|
938
|
+
this.getStrategyReport = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
939
|
+
this.loggerService.log("markdownViewService getStrategyReport", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
940
|
+
if (CC_ENABLE_MOCK) {
|
|
941
|
+
return await this.markdownMockService.getStrategyReport(symbol, strategyName, exchangeName, frameName);
|
|
942
|
+
}
|
|
943
|
+
return await Strategy.getReport(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
944
|
+
};
|
|
945
|
+
// Backtest
|
|
946
|
+
this.getBacktestData = async (symbol, strategyName, exchangeName, frameName) => {
|
|
947
|
+
this.loggerService.log("markdownViewService getBacktestData", { symbol, strategyName, exchangeName, frameName });
|
|
948
|
+
if (CC_ENABLE_MOCK) {
|
|
949
|
+
return await this.markdownMockService.getBacktestData(symbol, strategyName, exchangeName, frameName);
|
|
950
|
+
}
|
|
951
|
+
return await Backtest.getData(symbol, { strategyName, exchangeName, frameName });
|
|
952
|
+
};
|
|
953
|
+
this.getBacktestReport = async (symbol, strategyName, exchangeName, frameName) => {
|
|
954
|
+
this.loggerService.log("markdownViewService getBacktestReport", { symbol, strategyName, exchangeName, frameName });
|
|
955
|
+
if (CC_ENABLE_MOCK) {
|
|
956
|
+
return await this.markdownMockService.getBacktestReport(symbol, strategyName, exchangeName, frameName);
|
|
957
|
+
}
|
|
958
|
+
return await Backtest.getReport(symbol, { strategyName, exchangeName, frameName });
|
|
959
|
+
};
|
|
960
|
+
// Live
|
|
961
|
+
this.getLiveData = async (symbol, strategyName, exchangeName) => {
|
|
962
|
+
this.loggerService.log("markdownViewService getLiveData", { symbol, strategyName, exchangeName });
|
|
963
|
+
if (CC_ENABLE_MOCK) {
|
|
964
|
+
return await this.markdownMockService.getLiveData(symbol, strategyName, exchangeName);
|
|
965
|
+
}
|
|
966
|
+
return await Live.getData(symbol, { strategyName, exchangeName });
|
|
967
|
+
};
|
|
968
|
+
this.getLiveReport = async (symbol, strategyName, exchangeName) => {
|
|
969
|
+
this.loggerService.log("markdownViewService getLiveReport", { symbol, strategyName, exchangeName });
|
|
970
|
+
if (CC_ENABLE_MOCK) {
|
|
971
|
+
return await this.markdownMockService.getLiveReport(symbol, strategyName, exchangeName);
|
|
972
|
+
}
|
|
973
|
+
return await Live.getReport(symbol, { strategyName, exchangeName });
|
|
974
|
+
};
|
|
975
|
+
// Breakeven
|
|
976
|
+
this.getBreakevenData = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
977
|
+
this.loggerService.log("markdownViewService getBreakevenData", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
978
|
+
if (CC_ENABLE_MOCK) {
|
|
979
|
+
return await this.markdownMockService.getBreakevenData(symbol, strategyName, exchangeName, frameName);
|
|
980
|
+
}
|
|
981
|
+
return await Breakeven.getData(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
982
|
+
};
|
|
983
|
+
this.getBreakevenReport = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
984
|
+
this.loggerService.log("markdownViewService getBreakevenReport", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
985
|
+
if (CC_ENABLE_MOCK) {
|
|
986
|
+
return await this.markdownMockService.getBreakevenReport(symbol, strategyName, exchangeName, frameName);
|
|
987
|
+
}
|
|
988
|
+
return await Breakeven.getReport(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
989
|
+
};
|
|
990
|
+
// Risk
|
|
991
|
+
this.getRiskData = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
992
|
+
this.loggerService.log("markdownViewService getRiskData", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
993
|
+
if (CC_ENABLE_MOCK) {
|
|
994
|
+
return await this.markdownMockService.getRiskData(symbol, strategyName, exchangeName, frameName);
|
|
995
|
+
}
|
|
996
|
+
return await Risk.getData(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
997
|
+
};
|
|
998
|
+
this.getRiskReport = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
999
|
+
this.loggerService.log("markdownViewService getRiskReport", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1000
|
+
if (CC_ENABLE_MOCK) {
|
|
1001
|
+
return await this.markdownMockService.getRiskReport(symbol, strategyName, exchangeName, frameName);
|
|
1002
|
+
}
|
|
1003
|
+
return await Risk.getReport(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1004
|
+
};
|
|
1005
|
+
// Partial
|
|
1006
|
+
this.getPartialData = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
1007
|
+
this.loggerService.log("markdownViewService getPartialData", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1008
|
+
if (CC_ENABLE_MOCK) {
|
|
1009
|
+
return await this.markdownMockService.getPartialData(symbol, strategyName, exchangeName, frameName);
|
|
1010
|
+
}
|
|
1011
|
+
return await Partial.getData(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1012
|
+
};
|
|
1013
|
+
this.getPartialReport = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
1014
|
+
this.loggerService.log("markdownViewService getPartialReport", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1015
|
+
if (CC_ENABLE_MOCK) {
|
|
1016
|
+
return await this.markdownMockService.getPartialReport(symbol, strategyName, exchangeName, frameName);
|
|
1017
|
+
}
|
|
1018
|
+
return await Partial.getReport(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1019
|
+
};
|
|
1020
|
+
// HighestProfit
|
|
1021
|
+
this.getHighestProfitData = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
1022
|
+
this.loggerService.log("markdownViewService getHighestProfitData", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1023
|
+
if (CC_ENABLE_MOCK) {
|
|
1024
|
+
return await this.markdownMockService.getHighestProfitData(symbol, strategyName, exchangeName, frameName);
|
|
1025
|
+
}
|
|
1026
|
+
return await HighestProfit.getData(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1027
|
+
};
|
|
1028
|
+
this.getHighestProfitReport = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
1029
|
+
this.loggerService.log("markdownViewService getHighestProfitReport", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1030
|
+
if (CC_ENABLE_MOCK) {
|
|
1031
|
+
return await this.markdownMockService.getHighestProfitReport(symbol, strategyName, exchangeName, frameName);
|
|
1032
|
+
}
|
|
1033
|
+
return await HighestProfit.getReport(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1034
|
+
};
|
|
1035
|
+
// Schedule
|
|
1036
|
+
this.getScheduleData = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
1037
|
+
this.loggerService.log("markdownViewService getScheduleData", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1038
|
+
if (CC_ENABLE_MOCK) {
|
|
1039
|
+
return await this.markdownMockService.getScheduleData(symbol, strategyName, exchangeName, frameName);
|
|
1040
|
+
}
|
|
1041
|
+
return await Schedule.getData(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1042
|
+
};
|
|
1043
|
+
this.getScheduleReport = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
1044
|
+
this.loggerService.log("markdownViewService getScheduleReport", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1045
|
+
if (CC_ENABLE_MOCK) {
|
|
1046
|
+
return await this.markdownMockService.getScheduleReport(symbol, strategyName, exchangeName, frameName);
|
|
1047
|
+
}
|
|
1048
|
+
return await Schedule.getReport(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1049
|
+
};
|
|
1050
|
+
// Performance
|
|
1051
|
+
this.getPerformanceData = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
1052
|
+
this.loggerService.log("markdownViewService getPerformanceData", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1053
|
+
if (CC_ENABLE_MOCK) {
|
|
1054
|
+
return await this.markdownMockService.getPerformanceData(symbol, strategyName, exchangeName, frameName);
|
|
1055
|
+
}
|
|
1056
|
+
return await Performance.getData(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1057
|
+
};
|
|
1058
|
+
this.getPerformanceReport = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
1059
|
+
this.loggerService.log("markdownViewService getPerformanceReport", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1060
|
+
if (CC_ENABLE_MOCK) {
|
|
1061
|
+
return await this.markdownMockService.getPerformanceReport(symbol, strategyName, exchangeName, frameName);
|
|
1062
|
+
}
|
|
1063
|
+
return await Performance.getReport(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1064
|
+
};
|
|
1065
|
+
// Sync
|
|
1066
|
+
this.getSyncData = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
1067
|
+
this.loggerService.log("markdownViewService getSyncData", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1068
|
+
if (CC_ENABLE_MOCK) {
|
|
1069
|
+
return await this.markdownMockService.getSyncData(symbol, strategyName, exchangeName, frameName);
|
|
1070
|
+
}
|
|
1071
|
+
return await Sync.getData(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1072
|
+
};
|
|
1073
|
+
this.getSyncReport = async (symbol, strategyName, exchangeName, frameName, backtest = false) => {
|
|
1074
|
+
this.loggerService.log("markdownViewService getSyncReport", { symbol, strategyName, exchangeName, frameName, backtest });
|
|
1075
|
+
if (CC_ENABLE_MOCK) {
|
|
1076
|
+
return await this.markdownMockService.getSyncReport(symbol, strategyName, exchangeName, frameName);
|
|
1077
|
+
}
|
|
1078
|
+
return await Sync.getReport(symbol, { strategyName, exchangeName, frameName }, backtest);
|
|
1079
|
+
};
|
|
1080
|
+
// Heat
|
|
1081
|
+
this.getHeatData = async (strategyName, exchangeName, frameName, backtest = false) => {
|
|
1082
|
+
this.loggerService.log("markdownViewService getHeatData", { strategyName, exchangeName, frameName, backtest });
|
|
1083
|
+
if (CC_ENABLE_MOCK) {
|
|
1084
|
+
return await this.markdownMockService.getHeatData(strategyName, exchangeName, frameName);
|
|
1085
|
+
}
|
|
1086
|
+
return await Heat.getData({ strategyName, exchangeName, frameName }, backtest);
|
|
1087
|
+
};
|
|
1088
|
+
this.getHeatReport = async (strategyName, exchangeName, frameName, backtest = false) => {
|
|
1089
|
+
this.loggerService.log("markdownViewService getHeatReport", { strategyName, exchangeName, frameName, backtest });
|
|
1090
|
+
if (CC_ENABLE_MOCK) {
|
|
1091
|
+
return await this.markdownMockService.getHeatReport(strategyName, exchangeName, frameName);
|
|
1092
|
+
}
|
|
1093
|
+
return await Heat.getReport({ strategyName, exchangeName, frameName }, backtest);
|
|
1094
|
+
};
|
|
1095
|
+
// Walker
|
|
1096
|
+
this.getWalkerData = async (symbol, walkerName) => {
|
|
1097
|
+
this.loggerService.log("markdownViewService getWalkerData", { symbol, walkerName });
|
|
1098
|
+
if (CC_ENABLE_MOCK) {
|
|
1099
|
+
return await this.markdownMockService.getWalkerData(symbol, walkerName);
|
|
1100
|
+
}
|
|
1101
|
+
return await Walker.getData(symbol, { walkerName });
|
|
1102
|
+
};
|
|
1103
|
+
this.getWalkerReport = async (symbol, walkerName) => {
|
|
1104
|
+
this.loggerService.log("markdownViewService getWalkerReport", { symbol, walkerName });
|
|
1105
|
+
if (CC_ENABLE_MOCK) {
|
|
1106
|
+
return await this.markdownMockService.getWalkerReport(symbol, walkerName);
|
|
1107
|
+
}
|
|
1108
|
+
return await Walker.getReport(symbol, { walkerName });
|
|
1109
|
+
};
|
|
1110
|
+
}
|
|
1111
|
+
}
|
|
1112
|
+
|
|
781
1113
|
const symbol_list = [
|
|
782
1114
|
{
|
|
783
1115
|
icon: "/icon/btc.png",
|
|
@@ -919,6 +1251,41 @@ class PriceConnectionService {
|
|
|
919
1251
|
}
|
|
920
1252
|
}
|
|
921
1253
|
|
|
1254
|
+
const BACKTEST_LIST = [
|
|
1255
|
+
{ id: "mock-backtest-1", symbol: "BTCUSDT", strategyName: "mock-strategy", exchangeName: "binance", frameName: "1m", status: "done" },
|
|
1256
|
+
{ id: "mock-backtest-2", symbol: "ETHUSDT", strategyName: "mock-strategy", exchangeName: "binance", frameName: "1m", status: "running" },
|
|
1257
|
+
{ id: "mock-backtest-3", symbol: "BNBUSDT", strategyName: "mock-strategy", exchangeName: "binance", frameName: "1m", status: "idle" },
|
|
1258
|
+
];
|
|
1259
|
+
class BacktestMetaService {
|
|
1260
|
+
constructor() {
|
|
1261
|
+
this.loggerService = inject(TYPES.loggerService);
|
|
1262
|
+
this.list = async () => {
|
|
1263
|
+
this.loggerService.log("backtestMetaService list");
|
|
1264
|
+
if (CC_ENABLE_MOCK) {
|
|
1265
|
+
return BACKTEST_LIST;
|
|
1266
|
+
}
|
|
1267
|
+
return await Backtest.list();
|
|
1268
|
+
};
|
|
1269
|
+
}
|
|
1270
|
+
}
|
|
1271
|
+
|
|
1272
|
+
const LIVE_LIST = [
|
|
1273
|
+
{ id: "mock-live-1", symbol: "BTCUSDT", strategyName: "mock-strategy", exchangeName: "binance", status: "running" },
|
|
1274
|
+
{ id: "mock-live-2", symbol: "ETHUSDT", strategyName: "mock-strategy", exchangeName: "binance", status: "idle" },
|
|
1275
|
+
];
|
|
1276
|
+
class LiveMetaService {
|
|
1277
|
+
constructor() {
|
|
1278
|
+
this.loggerService = inject(TYPES.loggerService);
|
|
1279
|
+
this.list = async () => {
|
|
1280
|
+
this.loggerService.log("liveMetaService list");
|
|
1281
|
+
if (CC_ENABLE_MOCK) {
|
|
1282
|
+
return LIVE_LIST;
|
|
1283
|
+
}
|
|
1284
|
+
return await Live.list();
|
|
1285
|
+
};
|
|
1286
|
+
}
|
|
1287
|
+
}
|
|
1288
|
+
|
|
922
1289
|
{
|
|
923
1290
|
provide(TYPES.loggerService, () => new LoggerService());
|
|
924
1291
|
provide(TYPES.exchangeService, () => new ExchangeService());
|
|
@@ -928,7 +1295,9 @@ class PriceConnectionService {
|
|
|
928
1295
|
provide(TYPES.priceConnectionService, () => new PriceConnectionService());
|
|
929
1296
|
}
|
|
930
1297
|
{
|
|
1298
|
+
provide(TYPES.liveMetaService, () => new LiveMetaService());
|
|
931
1299
|
provide(TYPES.symbolMetaService, () => new SymbolMetaService());
|
|
1300
|
+
provide(TYPES.backtestMetaService, () => new BacktestMetaService());
|
|
932
1301
|
}
|
|
933
1302
|
{
|
|
934
1303
|
provide(TYPES.notificationMockService, () => new NotificationMockService());
|
|
@@ -936,6 +1305,7 @@ class PriceConnectionService {
|
|
|
936
1305
|
provide(TYPES.exchangeMockService, () => new ExchangeMockService());
|
|
937
1306
|
provide(TYPES.logMockService, () => new LogMockService());
|
|
938
1307
|
provide(TYPES.statusMockService, () => new StatusMockService());
|
|
1308
|
+
provide(TYPES.markdownMockService, () => new MarkdownMockService());
|
|
939
1309
|
}
|
|
940
1310
|
{
|
|
941
1311
|
provide(TYPES.notificationViewService, () => new NotificationViewService());
|
|
@@ -943,6 +1313,7 @@ class PriceConnectionService {
|
|
|
943
1313
|
provide(TYPES.exchangeViewService, () => new ExchangeViewService());
|
|
944
1314
|
provide(TYPES.logViewService, () => new LogViewService());
|
|
945
1315
|
provide(TYPES.statusViewService, () => new StatusViewService());
|
|
1316
|
+
provide(TYPES.markdownViewService, () => new MarkdownViewService());
|
|
946
1317
|
}
|
|
947
1318
|
|
|
948
1319
|
const baseServices = {
|
|
@@ -954,7 +1325,9 @@ const connectionServices = {
|
|
|
954
1325
|
priceConnectionService: inject(TYPES.priceConnectionService),
|
|
955
1326
|
};
|
|
956
1327
|
const metaServices = {
|
|
1328
|
+
liveMetaService: inject(TYPES.liveMetaService),
|
|
957
1329
|
symbolMetaService: inject(TYPES.symbolMetaService),
|
|
1330
|
+
backtestMetaService: inject(TYPES.backtestMetaService),
|
|
958
1331
|
};
|
|
959
1332
|
const mockServices = {
|
|
960
1333
|
notificationMockService: inject(TYPES.notificationMockService),
|
|
@@ -962,6 +1335,7 @@ const mockServices = {
|
|
|
962
1335
|
exchangeMockService: inject(TYPES.exchangeMockService),
|
|
963
1336
|
logMockService: inject(TYPES.logMockService),
|
|
964
1337
|
statusMockService: inject(TYPES.statusMockService),
|
|
1338
|
+
markdownMockService: inject(TYPES.markdownMockService),
|
|
965
1339
|
};
|
|
966
1340
|
const viewServices = {
|
|
967
1341
|
notificationViewService: inject(TYPES.notificationViewService),
|
|
@@ -969,6 +1343,7 @@ const viewServices = {
|
|
|
969
1343
|
exchangeViewService: inject(TYPES.exchangeViewService),
|
|
970
1344
|
logViewService: inject(TYPES.logViewService),
|
|
971
1345
|
statusViewService: inject(TYPES.statusViewService),
|
|
1346
|
+
markdownViewService: inject(TYPES.markdownViewService),
|
|
972
1347
|
};
|
|
973
1348
|
const ioc = {
|
|
974
1349
|
...baseServices,
|
|
@@ -979,11 +1354,11 @@ const ioc = {
|
|
|
979
1354
|
};
|
|
980
1355
|
init();
|
|
981
1356
|
|
|
982
|
-
const router$
|
|
1357
|
+
const router$8 = Router({
|
|
983
1358
|
params: true,
|
|
984
1359
|
});
|
|
985
1360
|
// ExchangeMockService endpoints
|
|
986
|
-
router$
|
|
1361
|
+
router$8.post("/api/v1/mock/candles_signal", async (req, res) => {
|
|
987
1362
|
try {
|
|
988
1363
|
const request = await micro.json(req);
|
|
989
1364
|
const { signalId, interval, requestId, serviceName } = request;
|
|
@@ -1011,7 +1386,7 @@ router$6.post("/api/v1/mock/candles_signal", async (req, res) => {
|
|
|
1011
1386
|
});
|
|
1012
1387
|
}
|
|
1013
1388
|
});
|
|
1014
|
-
router$
|
|
1389
|
+
router$8.post("/api/v1/mock/candles_point", async (req, res) => {
|
|
1015
1390
|
try {
|
|
1016
1391
|
const request = await micro.json(req);
|
|
1017
1392
|
const { currentTime, interval, requestId, serviceName, symbol, exchangeName } = request;
|
|
@@ -1045,7 +1420,7 @@ router$6.post("/api/v1/mock/candles_point", async (req, res) => {
|
|
|
1045
1420
|
}
|
|
1046
1421
|
});
|
|
1047
1422
|
// NotificationMockService endpoints
|
|
1048
|
-
router$
|
|
1423
|
+
router$8.post("/api/v1/mock/notification_list", async (req, res) => {
|
|
1049
1424
|
try {
|
|
1050
1425
|
const request = await micro.json(req);
|
|
1051
1426
|
const { requestId, serviceName } = request;
|
|
@@ -1073,7 +1448,7 @@ router$6.post("/api/v1/mock/notification_list", async (req, res) => {
|
|
|
1073
1448
|
});
|
|
1074
1449
|
}
|
|
1075
1450
|
});
|
|
1076
|
-
router$
|
|
1451
|
+
router$8.post("/api/v1/mock/notification_one/:id", async (req, res) => {
|
|
1077
1452
|
try {
|
|
1078
1453
|
const request = await micro.json(req);
|
|
1079
1454
|
const { requestId, serviceName } = request;
|
|
@@ -1102,7 +1477,7 @@ router$6.post("/api/v1/mock/notification_one/:id", async (req, res) => {
|
|
|
1102
1477
|
});
|
|
1103
1478
|
}
|
|
1104
1479
|
});
|
|
1105
|
-
router$
|
|
1480
|
+
router$8.post("/api/v1/mock/notification_filter", async (req, res) => {
|
|
1106
1481
|
try {
|
|
1107
1482
|
const request = await micro.json(req);
|
|
1108
1483
|
const { requestId, serviceName, filterData, limit, offset } = request;
|
|
@@ -1131,7 +1506,7 @@ router$6.post("/api/v1/mock/notification_filter", async (req, res) => {
|
|
|
1131
1506
|
}
|
|
1132
1507
|
});
|
|
1133
1508
|
// StorageMockService endpoints
|
|
1134
|
-
router$
|
|
1509
|
+
router$8.post("/api/v1/mock/storage_one/:id", async (req, res) => {
|
|
1135
1510
|
try {
|
|
1136
1511
|
const request = await micro.json(req);
|
|
1137
1512
|
const { requestId, serviceName } = request;
|
|
@@ -1160,7 +1535,7 @@ router$6.post("/api/v1/mock/storage_one/:id", async (req, res) => {
|
|
|
1160
1535
|
});
|
|
1161
1536
|
}
|
|
1162
1537
|
});
|
|
1163
|
-
router$
|
|
1538
|
+
router$8.post("/api/v1/mock/storage_list/live", async (req, res) => {
|
|
1164
1539
|
try {
|
|
1165
1540
|
const request = await micro.json(req);
|
|
1166
1541
|
const { requestId, serviceName } = request;
|
|
@@ -1188,7 +1563,7 @@ router$6.post("/api/v1/mock/storage_list/live", async (req, res) => {
|
|
|
1188
1563
|
});
|
|
1189
1564
|
}
|
|
1190
1565
|
});
|
|
1191
|
-
router$
|
|
1566
|
+
router$8.post("/api/v1/mock/storage_list/backtest", async (req, res) => {
|
|
1192
1567
|
try {
|
|
1193
1568
|
const request = await micro.json(req);
|
|
1194
1569
|
const { requestId, serviceName } = request;
|
|
@@ -1217,7 +1592,7 @@ router$6.post("/api/v1/mock/storage_list/backtest", async (req, res) => {
|
|
|
1217
1592
|
}
|
|
1218
1593
|
});
|
|
1219
1594
|
// LogMockService endpoints
|
|
1220
|
-
router$
|
|
1595
|
+
router$8.post("/api/v1/mock/log_list", async (req, res) => {
|
|
1221
1596
|
try {
|
|
1222
1597
|
const request = await micro.json(req);
|
|
1223
1598
|
const { requestId, serviceName } = request;
|
|
@@ -1245,7 +1620,7 @@ router$6.post("/api/v1/mock/log_list", async (req, res) => {
|
|
|
1245
1620
|
});
|
|
1246
1621
|
}
|
|
1247
1622
|
});
|
|
1248
|
-
router$
|
|
1623
|
+
router$8.post("/api/v1/mock/log_one/:id", async (req, res) => {
|
|
1249
1624
|
try {
|
|
1250
1625
|
const request = await micro.json(req);
|
|
1251
1626
|
const { requestId, serviceName } = request;
|
|
@@ -1274,7 +1649,7 @@ router$6.post("/api/v1/mock/log_one/:id", async (req, res) => {
|
|
|
1274
1649
|
});
|
|
1275
1650
|
}
|
|
1276
1651
|
});
|
|
1277
|
-
router$
|
|
1652
|
+
router$8.post("/api/v1/mock/log_filter", async (req, res) => {
|
|
1278
1653
|
try {
|
|
1279
1654
|
const request = await micro.json(req);
|
|
1280
1655
|
const { requestId, serviceName, filterData, limit, offset } = request;
|
|
@@ -1302,7 +1677,7 @@ router$6.post("/api/v1/mock/log_filter", async (req, res) => {
|
|
|
1302
1677
|
});
|
|
1303
1678
|
}
|
|
1304
1679
|
});
|
|
1305
|
-
router$
|
|
1680
|
+
router$8.post("/api/v1/mock/candles_live", async (req, res) => {
|
|
1306
1681
|
try {
|
|
1307
1682
|
const request = await micro.json(req);
|
|
1308
1683
|
const { signalId, interval, requestId, serviceName } = request;
|
|
@@ -1331,7 +1706,7 @@ router$6.post("/api/v1/mock/candles_live", async (req, res) => {
|
|
|
1331
1706
|
}
|
|
1332
1707
|
});
|
|
1333
1708
|
// StatusMockService endpoints
|
|
1334
|
-
router$
|
|
1709
|
+
router$8.post("/api/v1/mock/status_list", async (req, res) => {
|
|
1335
1710
|
try {
|
|
1336
1711
|
const request = await micro.json(req);
|
|
1337
1712
|
const { requestId, serviceName } = request;
|
|
@@ -1359,7 +1734,7 @@ router$6.post("/api/v1/mock/status_list", async (req, res) => {
|
|
|
1359
1734
|
});
|
|
1360
1735
|
}
|
|
1361
1736
|
});
|
|
1362
|
-
router$
|
|
1737
|
+
router$8.post("/api/v1/mock/status_one/:id", async (req, res) => {
|
|
1363
1738
|
try {
|
|
1364
1739
|
const request = await micro.json(req);
|
|
1365
1740
|
const { requestId, serviceName } = request;
|
|
@@ -1389,11 +1764,11 @@ router$6.post("/api/v1/mock/status_one/:id", async (req, res) => {
|
|
|
1389
1764
|
}
|
|
1390
1765
|
});
|
|
1391
1766
|
|
|
1392
|
-
const router$
|
|
1767
|
+
const router$7 = Router({
|
|
1393
1768
|
params: true,
|
|
1394
1769
|
});
|
|
1395
1770
|
// ExchangeViewService endpoints
|
|
1396
|
-
router$
|
|
1771
|
+
router$7.post("/api/v1/view/candles_signal", async (req, res) => {
|
|
1397
1772
|
try {
|
|
1398
1773
|
const request = await micro.json(req);
|
|
1399
1774
|
const { signalId, interval, requestId, serviceName } = request;
|
|
@@ -1421,7 +1796,7 @@ router$5.post("/api/v1/view/candles_signal", async (req, res) => {
|
|
|
1421
1796
|
});
|
|
1422
1797
|
}
|
|
1423
1798
|
});
|
|
1424
|
-
router$
|
|
1799
|
+
router$7.post("/api/v1/view/candles_point", async (req, res) => {
|
|
1425
1800
|
try {
|
|
1426
1801
|
const request = await micro.json(req);
|
|
1427
1802
|
const { currentTime, interval, requestId, serviceName, symbol, exchangeName } = request;
|
|
@@ -1454,7 +1829,7 @@ router$5.post("/api/v1/view/candles_point", async (req, res) => {
|
|
|
1454
1829
|
});
|
|
1455
1830
|
}
|
|
1456
1831
|
});
|
|
1457
|
-
router$
|
|
1832
|
+
router$7.post("/api/v1/view/candles_live", async (req, res) => {
|
|
1458
1833
|
try {
|
|
1459
1834
|
const request = await micro.json(req);
|
|
1460
1835
|
const { signalId, interval, requestId, serviceName } = request;
|
|
@@ -1483,7 +1858,7 @@ router$5.post("/api/v1/view/candles_live", async (req, res) => {
|
|
|
1483
1858
|
}
|
|
1484
1859
|
});
|
|
1485
1860
|
// NotificationViewService endpoints
|
|
1486
|
-
router$
|
|
1861
|
+
router$7.post("/api/v1/view/notification_list", async (req, res) => {
|
|
1487
1862
|
try {
|
|
1488
1863
|
const request = await micro.json(req);
|
|
1489
1864
|
const { requestId, serviceName } = request;
|
|
@@ -1511,7 +1886,7 @@ router$5.post("/api/v1/view/notification_list", async (req, res) => {
|
|
|
1511
1886
|
});
|
|
1512
1887
|
}
|
|
1513
1888
|
});
|
|
1514
|
-
router$
|
|
1889
|
+
router$7.post("/api/v1/view/notification_one/:id", async (req, res) => {
|
|
1515
1890
|
try {
|
|
1516
1891
|
const request = await micro.json(req);
|
|
1517
1892
|
const { requestId, serviceName } = request;
|
|
@@ -1540,7 +1915,7 @@ router$5.post("/api/v1/view/notification_one/:id", async (req, res) => {
|
|
|
1540
1915
|
});
|
|
1541
1916
|
}
|
|
1542
1917
|
});
|
|
1543
|
-
router$
|
|
1918
|
+
router$7.post("/api/v1/view/notification_filter", async (req, res) => {
|
|
1544
1919
|
try {
|
|
1545
1920
|
const request = await micro.json(req);
|
|
1546
1921
|
const { requestId, serviceName, filterData, limit, offset } = request;
|
|
@@ -1569,7 +1944,7 @@ router$5.post("/api/v1/view/notification_filter", async (req, res) => {
|
|
|
1569
1944
|
}
|
|
1570
1945
|
});
|
|
1571
1946
|
// StorageViewService endpoints
|
|
1572
|
-
router$
|
|
1947
|
+
router$7.post("/api/v1/view/storage_one/:id", async (req, res) => {
|
|
1573
1948
|
try {
|
|
1574
1949
|
const request = await micro.json(req);
|
|
1575
1950
|
const { requestId, serviceName } = request;
|
|
@@ -1598,7 +1973,7 @@ router$5.post("/api/v1/view/storage_one/:id", async (req, res) => {
|
|
|
1598
1973
|
});
|
|
1599
1974
|
}
|
|
1600
1975
|
});
|
|
1601
|
-
router$
|
|
1976
|
+
router$7.post("/api/v1/view/storage_list/live", async (req, res) => {
|
|
1602
1977
|
try {
|
|
1603
1978
|
const request = await micro.json(req);
|
|
1604
1979
|
const { requestId, serviceName } = request;
|
|
@@ -1626,7 +2001,7 @@ router$5.post("/api/v1/view/storage_list/live", async (req, res) => {
|
|
|
1626
2001
|
});
|
|
1627
2002
|
}
|
|
1628
2003
|
});
|
|
1629
|
-
router$
|
|
2004
|
+
router$7.post("/api/v1/view/storage_list/backtest", async (req, res) => {
|
|
1630
2005
|
try {
|
|
1631
2006
|
const request = await micro.json(req);
|
|
1632
2007
|
const { requestId, serviceName } = request;
|
|
@@ -1655,7 +2030,7 @@ router$5.post("/api/v1/view/storage_list/backtest", async (req, res) => {
|
|
|
1655
2030
|
}
|
|
1656
2031
|
});
|
|
1657
2032
|
// LogViewService endpoints
|
|
1658
|
-
router$
|
|
2033
|
+
router$7.post("/api/v1/view/log_list", async (req, res) => {
|
|
1659
2034
|
try {
|
|
1660
2035
|
const request = await micro.json(req);
|
|
1661
2036
|
const { requestId, serviceName } = request;
|
|
@@ -1683,7 +2058,7 @@ router$5.post("/api/v1/view/log_list", async (req, res) => {
|
|
|
1683
2058
|
});
|
|
1684
2059
|
}
|
|
1685
2060
|
});
|
|
1686
|
-
router$
|
|
2061
|
+
router$7.post("/api/v1/view/log_one/:id", async (req, res) => {
|
|
1687
2062
|
try {
|
|
1688
2063
|
const request = await micro.json(req);
|
|
1689
2064
|
const { requestId, serviceName } = request;
|
|
@@ -1712,7 +2087,7 @@ router$5.post("/api/v1/view/log_one/:id", async (req, res) => {
|
|
|
1712
2087
|
});
|
|
1713
2088
|
}
|
|
1714
2089
|
});
|
|
1715
|
-
router$
|
|
2090
|
+
router$7.post("/api/v1/view/log_filter", async (req, res) => {
|
|
1716
2091
|
try {
|
|
1717
2092
|
const request = await micro.json(req);
|
|
1718
2093
|
const { requestId, serviceName, filterData, limit, offset } = request;
|
|
@@ -1741,7 +2116,7 @@ router$5.post("/api/v1/view/log_filter", async (req, res) => {
|
|
|
1741
2116
|
}
|
|
1742
2117
|
});
|
|
1743
2118
|
// StatusViewService endpoints
|
|
1744
|
-
router$
|
|
2119
|
+
router$7.post("/api/v1/view/status_list", async (req, res) => {
|
|
1745
2120
|
try {
|
|
1746
2121
|
const request = await micro.json(req);
|
|
1747
2122
|
const { requestId, serviceName } = request;
|
|
@@ -1769,7 +2144,7 @@ router$5.post("/api/v1/view/status_list", async (req, res) => {
|
|
|
1769
2144
|
});
|
|
1770
2145
|
}
|
|
1771
2146
|
});
|
|
1772
|
-
router$
|
|
2147
|
+
router$7.post("/api/v1/view/status_one/:id", async (req, res) => {
|
|
1773
2148
|
try {
|
|
1774
2149
|
const request = await micro.json(req);
|
|
1775
2150
|
const { requestId, serviceName } = request;
|
|
@@ -1806,7 +2181,7 @@ function getModulesPath() {
|
|
|
1806
2181
|
return join(basePath, "../../../");
|
|
1807
2182
|
}
|
|
1808
2183
|
|
|
1809
|
-
const router$
|
|
2184
|
+
const router$6 = Router({
|
|
1810
2185
|
params: true,
|
|
1811
2186
|
});
|
|
1812
2187
|
// getModulesPath
|
|
@@ -1823,7 +2198,7 @@ const ASSET_32 = CC_ENABLE_MOCK
|
|
|
1823
2198
|
const cache128 = new Map();
|
|
1824
2199
|
const cache32 = new Map();
|
|
1825
2200
|
const cacheSvg = new Map();
|
|
1826
|
-
router$
|
|
2201
|
+
router$6.get("/icon/128/:filename", async (req, res) => {
|
|
1827
2202
|
const filename = req.params.filename;
|
|
1828
2203
|
// Check cache first
|
|
1829
2204
|
if (cache128.has(filename)) {
|
|
@@ -1839,7 +2214,7 @@ router$4.get("/icon/128/:filename", async (req, res) => {
|
|
|
1839
2214
|
}
|
|
1840
2215
|
return await micro.send(res, 404, "File not found (128)");
|
|
1841
2216
|
});
|
|
1842
|
-
router$
|
|
2217
|
+
router$6.get("/icon/32/:filename", async (req, res) => {
|
|
1843
2218
|
const filename = req.params.filename;
|
|
1844
2219
|
// Check cache first
|
|
1845
2220
|
if (cache32.has(filename)) {
|
|
@@ -1855,7 +2230,7 @@ router$4.get("/icon/32/:filename", async (req, res) => {
|
|
|
1855
2230
|
}
|
|
1856
2231
|
return await micro.send(res, 404, "File not found (32)");
|
|
1857
2232
|
});
|
|
1858
|
-
router$
|
|
2233
|
+
router$6.get("/icon/svg/:filename", async (req, res) => {
|
|
1859
2234
|
const filename = req.params.filename;
|
|
1860
2235
|
// Check cache first
|
|
1861
2236
|
if (cacheSvg.has(filename)) {
|
|
@@ -1871,7 +2246,7 @@ router$4.get("/icon/svg/:filename", async (req, res) => {
|
|
|
1871
2246
|
}
|
|
1872
2247
|
return await micro.send(res, 404, "File not found (svg)");
|
|
1873
2248
|
});
|
|
1874
|
-
router$
|
|
2249
|
+
router$6.get("/icon/:filename", async (req, res) => {
|
|
1875
2250
|
const filename = req.params.filename;
|
|
1876
2251
|
// Check cache first
|
|
1877
2252
|
if (cache32.has(filename)) {
|
|
@@ -1888,10 +2263,10 @@ router$4.get("/icon/:filename", async (req, res) => {
|
|
|
1888
2263
|
return await micro.send(res, 404, "File not found (root)");
|
|
1889
2264
|
});
|
|
1890
2265
|
|
|
1891
|
-
const router$
|
|
2266
|
+
const router$5 = Router({
|
|
1892
2267
|
params: true,
|
|
1893
2268
|
});
|
|
1894
|
-
router$
|
|
2269
|
+
router$5.post("/api/v1/dict/symbol/list", async (req, res) => {
|
|
1895
2270
|
try {
|
|
1896
2271
|
const request = await micro.json(req);
|
|
1897
2272
|
const { requestId, serviceName } = request;
|
|
@@ -1919,7 +2294,7 @@ router$3.post("/api/v1/dict/symbol/list", async (req, res) => {
|
|
|
1919
2294
|
});
|
|
1920
2295
|
}
|
|
1921
2296
|
});
|
|
1922
|
-
router$
|
|
2297
|
+
router$5.post("/api/v1/dict/symbol/map", async (req, res) => {
|
|
1923
2298
|
try {
|
|
1924
2299
|
const request = await micro.json(req);
|
|
1925
2300
|
const { requestId, serviceName } = request;
|
|
@@ -1947,7 +2322,7 @@ router$3.post("/api/v1/dict/symbol/map", async (req, res) => {
|
|
|
1947
2322
|
});
|
|
1948
2323
|
}
|
|
1949
2324
|
});
|
|
1950
|
-
router$
|
|
2325
|
+
router$5.post("/api/v1/dict/symbol/one", async (req, res) => {
|
|
1951
2326
|
try {
|
|
1952
2327
|
const request = await micro.json(req);
|
|
1953
2328
|
const { requestId, serviceName, id } = request;
|
|
@@ -1976,6 +2351,686 @@ router$3.post("/api/v1/dict/symbol/one", async (req, res) => {
|
|
|
1976
2351
|
}
|
|
1977
2352
|
});
|
|
1978
2353
|
|
|
2354
|
+
const router$4 = Router({
|
|
2355
|
+
params: true,
|
|
2356
|
+
});
|
|
2357
|
+
router$4.post("/api/v1/markdown_mock/strategy_data", async (req, res) => {
|
|
2358
|
+
try {
|
|
2359
|
+
const request = await micro.json(req);
|
|
2360
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2361
|
+
const data = await ioc.markdownMockService.getStrategyData(symbol, strategyName, exchangeName, frameName);
|
|
2362
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2363
|
+
ioc.loggerService.log("/api/v1/markdown_mock/strategy_data ok", { request, result: omit(result, "data") });
|
|
2364
|
+
return await micro.send(res, 200, result);
|
|
2365
|
+
}
|
|
2366
|
+
catch (error) {
|
|
2367
|
+
ioc.loggerService.log("/api/v1/markdown_mock/strategy_data error", { error: errorData(error) });
|
|
2368
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2369
|
+
}
|
|
2370
|
+
});
|
|
2371
|
+
router$4.post("/api/v1/markdown_mock/strategy_report", async (req, res) => {
|
|
2372
|
+
try {
|
|
2373
|
+
const request = await micro.json(req);
|
|
2374
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2375
|
+
const data = await ioc.markdownMockService.getStrategyReport(symbol, strategyName, exchangeName, frameName);
|
|
2376
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2377
|
+
ioc.loggerService.log("/api/v1/markdown_mock/strategy_report ok", { request, result: omit(result, "data") });
|
|
2378
|
+
return await micro.send(res, 200, result);
|
|
2379
|
+
}
|
|
2380
|
+
catch (error) {
|
|
2381
|
+
ioc.loggerService.log("/api/v1/markdown_mock/strategy_report error", { error: errorData(error) });
|
|
2382
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2383
|
+
}
|
|
2384
|
+
});
|
|
2385
|
+
router$4.post("/api/v1/markdown_mock/backtest_data", async (req, res) => {
|
|
2386
|
+
try {
|
|
2387
|
+
const request = await micro.json(req);
|
|
2388
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2389
|
+
const data = await ioc.markdownMockService.getBacktestData(symbol, strategyName, exchangeName, frameName);
|
|
2390
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2391
|
+
ioc.loggerService.log("/api/v1/markdown_mock/backtest_data ok", { request, result: omit(result, "data") });
|
|
2392
|
+
return await micro.send(res, 200, result);
|
|
2393
|
+
}
|
|
2394
|
+
catch (error) {
|
|
2395
|
+
ioc.loggerService.log("/api/v1/markdown_mock/backtest_data error", { error: errorData(error) });
|
|
2396
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2397
|
+
}
|
|
2398
|
+
});
|
|
2399
|
+
router$4.post("/api/v1/markdown_mock/backtest_report", async (req, res) => {
|
|
2400
|
+
try {
|
|
2401
|
+
const request = await micro.json(req);
|
|
2402
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2403
|
+
const data = await ioc.markdownMockService.getBacktestReport(symbol, strategyName, exchangeName, frameName);
|
|
2404
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2405
|
+
ioc.loggerService.log("/api/v1/markdown_mock/backtest_report ok", { request, result: omit(result, "data") });
|
|
2406
|
+
return await micro.send(res, 200, result);
|
|
2407
|
+
}
|
|
2408
|
+
catch (error) {
|
|
2409
|
+
ioc.loggerService.log("/api/v1/markdown_mock/backtest_report error", { error: errorData(error) });
|
|
2410
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2411
|
+
}
|
|
2412
|
+
});
|
|
2413
|
+
router$4.post("/api/v1/markdown_mock/live_data", async (req, res) => {
|
|
2414
|
+
try {
|
|
2415
|
+
const request = await micro.json(req);
|
|
2416
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName } = request;
|
|
2417
|
+
const data = await ioc.markdownMockService.getLiveData(symbol, strategyName, exchangeName);
|
|
2418
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2419
|
+
ioc.loggerService.log("/api/v1/markdown_mock/live_data ok", { request, result: omit(result, "data") });
|
|
2420
|
+
return await micro.send(res, 200, result);
|
|
2421
|
+
}
|
|
2422
|
+
catch (error) {
|
|
2423
|
+
ioc.loggerService.log("/api/v1/markdown_mock/live_data error", { error: errorData(error) });
|
|
2424
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2425
|
+
}
|
|
2426
|
+
});
|
|
2427
|
+
router$4.post("/api/v1/markdown_mock/live_report", async (req, res) => {
|
|
2428
|
+
try {
|
|
2429
|
+
const request = await micro.json(req);
|
|
2430
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName } = request;
|
|
2431
|
+
const data = await ioc.markdownMockService.getLiveReport(symbol, strategyName, exchangeName);
|
|
2432
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2433
|
+
ioc.loggerService.log("/api/v1/markdown_mock/live_report ok", { request, result: omit(result, "data") });
|
|
2434
|
+
return await micro.send(res, 200, result);
|
|
2435
|
+
}
|
|
2436
|
+
catch (error) {
|
|
2437
|
+
ioc.loggerService.log("/api/v1/markdown_mock/live_report error", { error: errorData(error) });
|
|
2438
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2439
|
+
}
|
|
2440
|
+
});
|
|
2441
|
+
router$4.post("/api/v1/markdown_mock/breakeven_data", async (req, res) => {
|
|
2442
|
+
try {
|
|
2443
|
+
const request = await micro.json(req);
|
|
2444
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2445
|
+
const data = await ioc.markdownMockService.getBreakevenData(symbol, strategyName, exchangeName, frameName);
|
|
2446
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2447
|
+
ioc.loggerService.log("/api/v1/markdown_mock/breakeven_data ok", { request, result: omit(result, "data") });
|
|
2448
|
+
return await micro.send(res, 200, result);
|
|
2449
|
+
}
|
|
2450
|
+
catch (error) {
|
|
2451
|
+
ioc.loggerService.log("/api/v1/markdown_mock/breakeven_data error", { error: errorData(error) });
|
|
2452
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2453
|
+
}
|
|
2454
|
+
});
|
|
2455
|
+
router$4.post("/api/v1/markdown_mock/breakeven_report", async (req, res) => {
|
|
2456
|
+
try {
|
|
2457
|
+
const request = await micro.json(req);
|
|
2458
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2459
|
+
const data = await ioc.markdownMockService.getBreakevenReport(symbol, strategyName, exchangeName, frameName);
|
|
2460
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2461
|
+
ioc.loggerService.log("/api/v1/markdown_mock/breakeven_report ok", { request, result: omit(result, "data") });
|
|
2462
|
+
return await micro.send(res, 200, result);
|
|
2463
|
+
}
|
|
2464
|
+
catch (error) {
|
|
2465
|
+
ioc.loggerService.log("/api/v1/markdown_mock/breakeven_report error", { error: errorData(error) });
|
|
2466
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2467
|
+
}
|
|
2468
|
+
});
|
|
2469
|
+
router$4.post("/api/v1/markdown_mock/risk_data", async (req, res) => {
|
|
2470
|
+
try {
|
|
2471
|
+
const request = await micro.json(req);
|
|
2472
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2473
|
+
const data = await ioc.markdownMockService.getRiskData(symbol, strategyName, exchangeName, frameName);
|
|
2474
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2475
|
+
ioc.loggerService.log("/api/v1/markdown_mock/risk_data ok", { request, result: omit(result, "data") });
|
|
2476
|
+
return await micro.send(res, 200, result);
|
|
2477
|
+
}
|
|
2478
|
+
catch (error) {
|
|
2479
|
+
ioc.loggerService.log("/api/v1/markdown_mock/risk_data error", { error: errorData(error) });
|
|
2480
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2481
|
+
}
|
|
2482
|
+
});
|
|
2483
|
+
router$4.post("/api/v1/markdown_mock/risk_report", async (req, res) => {
|
|
2484
|
+
try {
|
|
2485
|
+
const request = await micro.json(req);
|
|
2486
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2487
|
+
const data = await ioc.markdownMockService.getRiskReport(symbol, strategyName, exchangeName, frameName);
|
|
2488
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2489
|
+
ioc.loggerService.log("/api/v1/markdown_mock/risk_report ok", { request, result: omit(result, "data") });
|
|
2490
|
+
return await micro.send(res, 200, result);
|
|
2491
|
+
}
|
|
2492
|
+
catch (error) {
|
|
2493
|
+
ioc.loggerService.log("/api/v1/markdown_mock/risk_report error", { error: errorData(error) });
|
|
2494
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2495
|
+
}
|
|
2496
|
+
});
|
|
2497
|
+
router$4.post("/api/v1/markdown_mock/partial_data", async (req, res) => {
|
|
2498
|
+
try {
|
|
2499
|
+
const request = await micro.json(req);
|
|
2500
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2501
|
+
const data = await ioc.markdownMockService.getPartialData(symbol, strategyName, exchangeName, frameName);
|
|
2502
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2503
|
+
ioc.loggerService.log("/api/v1/markdown_mock/partial_data ok", { request, result: omit(result, "data") });
|
|
2504
|
+
return await micro.send(res, 200, result);
|
|
2505
|
+
}
|
|
2506
|
+
catch (error) {
|
|
2507
|
+
ioc.loggerService.log("/api/v1/markdown_mock/partial_data error", { error: errorData(error) });
|
|
2508
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2509
|
+
}
|
|
2510
|
+
});
|
|
2511
|
+
router$4.post("/api/v1/markdown_mock/partial_report", async (req, res) => {
|
|
2512
|
+
try {
|
|
2513
|
+
const request = await micro.json(req);
|
|
2514
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2515
|
+
const data = await ioc.markdownMockService.getPartialReport(symbol, strategyName, exchangeName, frameName);
|
|
2516
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2517
|
+
ioc.loggerService.log("/api/v1/markdown_mock/partial_report ok", { request, result: omit(result, "data") });
|
|
2518
|
+
return await micro.send(res, 200, result);
|
|
2519
|
+
}
|
|
2520
|
+
catch (error) {
|
|
2521
|
+
ioc.loggerService.log("/api/v1/markdown_mock/partial_report error", { error: errorData(error) });
|
|
2522
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2523
|
+
}
|
|
2524
|
+
});
|
|
2525
|
+
router$4.post("/api/v1/markdown_mock/highest_profit_data", async (req, res) => {
|
|
2526
|
+
try {
|
|
2527
|
+
const request = await micro.json(req);
|
|
2528
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2529
|
+
const data = await ioc.markdownMockService.getHighestProfitData(symbol, strategyName, exchangeName, frameName);
|
|
2530
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2531
|
+
ioc.loggerService.log("/api/v1/markdown_mock/highest_profit_data ok", { request, result: omit(result, "data") });
|
|
2532
|
+
return await micro.send(res, 200, result);
|
|
2533
|
+
}
|
|
2534
|
+
catch (error) {
|
|
2535
|
+
ioc.loggerService.log("/api/v1/markdown_mock/highest_profit_data error", { error: errorData(error) });
|
|
2536
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2537
|
+
}
|
|
2538
|
+
});
|
|
2539
|
+
router$4.post("/api/v1/markdown_mock/highest_profit_report", async (req, res) => {
|
|
2540
|
+
try {
|
|
2541
|
+
const request = await micro.json(req);
|
|
2542
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2543
|
+
const data = await ioc.markdownMockService.getHighestProfitReport(symbol, strategyName, exchangeName, frameName);
|
|
2544
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2545
|
+
ioc.loggerService.log("/api/v1/markdown_mock/highest_profit_report ok", { request, result: omit(result, "data") });
|
|
2546
|
+
return await micro.send(res, 200, result);
|
|
2547
|
+
}
|
|
2548
|
+
catch (error) {
|
|
2549
|
+
ioc.loggerService.log("/api/v1/markdown_mock/highest_profit_report error", { error: errorData(error) });
|
|
2550
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2551
|
+
}
|
|
2552
|
+
});
|
|
2553
|
+
router$4.post("/api/v1/markdown_mock/schedule_data", async (req, res) => {
|
|
2554
|
+
try {
|
|
2555
|
+
const request = await micro.json(req);
|
|
2556
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2557
|
+
const data = await ioc.markdownMockService.getScheduleData(symbol, strategyName, exchangeName, frameName);
|
|
2558
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2559
|
+
ioc.loggerService.log("/api/v1/markdown_mock/schedule_data ok", { request, result: omit(result, "data") });
|
|
2560
|
+
return await micro.send(res, 200, result);
|
|
2561
|
+
}
|
|
2562
|
+
catch (error) {
|
|
2563
|
+
ioc.loggerService.log("/api/v1/markdown_mock/schedule_data error", { error: errorData(error) });
|
|
2564
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2565
|
+
}
|
|
2566
|
+
});
|
|
2567
|
+
router$4.post("/api/v1/markdown_mock/schedule_report", async (req, res) => {
|
|
2568
|
+
try {
|
|
2569
|
+
const request = await micro.json(req);
|
|
2570
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2571
|
+
const data = await ioc.markdownMockService.getScheduleReport(symbol, strategyName, exchangeName, frameName);
|
|
2572
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2573
|
+
ioc.loggerService.log("/api/v1/markdown_mock/schedule_report ok", { request, result: omit(result, "data") });
|
|
2574
|
+
return await micro.send(res, 200, result);
|
|
2575
|
+
}
|
|
2576
|
+
catch (error) {
|
|
2577
|
+
ioc.loggerService.log("/api/v1/markdown_mock/schedule_report error", { error: errorData(error) });
|
|
2578
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2579
|
+
}
|
|
2580
|
+
});
|
|
2581
|
+
router$4.post("/api/v1/markdown_mock/performance_data", async (req, res) => {
|
|
2582
|
+
try {
|
|
2583
|
+
const request = await micro.json(req);
|
|
2584
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2585
|
+
const data = await ioc.markdownMockService.getPerformanceData(symbol, strategyName, exchangeName, frameName);
|
|
2586
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2587
|
+
ioc.loggerService.log("/api/v1/markdown_mock/performance_data ok", { request, result: omit(result, "data") });
|
|
2588
|
+
return await micro.send(res, 200, result);
|
|
2589
|
+
}
|
|
2590
|
+
catch (error) {
|
|
2591
|
+
ioc.loggerService.log("/api/v1/markdown_mock/performance_data error", { error: errorData(error) });
|
|
2592
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2593
|
+
}
|
|
2594
|
+
});
|
|
2595
|
+
router$4.post("/api/v1/markdown_mock/performance_report", async (req, res) => {
|
|
2596
|
+
try {
|
|
2597
|
+
const request = await micro.json(req);
|
|
2598
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2599
|
+
const data = await ioc.markdownMockService.getPerformanceReport(symbol, strategyName, exchangeName, frameName);
|
|
2600
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2601
|
+
ioc.loggerService.log("/api/v1/markdown_mock/performance_report ok", { request, result: omit(result, "data") });
|
|
2602
|
+
return await micro.send(res, 200, result);
|
|
2603
|
+
}
|
|
2604
|
+
catch (error) {
|
|
2605
|
+
ioc.loggerService.log("/api/v1/markdown_mock/performance_report error", { error: errorData(error) });
|
|
2606
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2607
|
+
}
|
|
2608
|
+
});
|
|
2609
|
+
router$4.post("/api/v1/markdown_mock/sync_data", async (req, res) => {
|
|
2610
|
+
try {
|
|
2611
|
+
const request = await micro.json(req);
|
|
2612
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2613
|
+
const data = await ioc.markdownMockService.getSyncData(symbol, strategyName, exchangeName, frameName);
|
|
2614
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2615
|
+
ioc.loggerService.log("/api/v1/markdown_mock/sync_data ok", { request, result: omit(result, "data") });
|
|
2616
|
+
return await micro.send(res, 200, result);
|
|
2617
|
+
}
|
|
2618
|
+
catch (error) {
|
|
2619
|
+
ioc.loggerService.log("/api/v1/markdown_mock/sync_data error", { error: errorData(error) });
|
|
2620
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2621
|
+
}
|
|
2622
|
+
});
|
|
2623
|
+
router$4.post("/api/v1/markdown_mock/sync_report", async (req, res) => {
|
|
2624
|
+
try {
|
|
2625
|
+
const request = await micro.json(req);
|
|
2626
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2627
|
+
const data = await ioc.markdownMockService.getSyncReport(symbol, strategyName, exchangeName, frameName);
|
|
2628
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2629
|
+
ioc.loggerService.log("/api/v1/markdown_mock/sync_report ok", { request, result: omit(result, "data") });
|
|
2630
|
+
return await micro.send(res, 200, result);
|
|
2631
|
+
}
|
|
2632
|
+
catch (error) {
|
|
2633
|
+
ioc.loggerService.log("/api/v1/markdown_mock/sync_report error", { error: errorData(error) });
|
|
2634
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2635
|
+
}
|
|
2636
|
+
});
|
|
2637
|
+
router$4.post("/api/v1/markdown_mock/heat_data", async (req, res) => {
|
|
2638
|
+
try {
|
|
2639
|
+
const request = await micro.json(req);
|
|
2640
|
+
const { requestId, serviceName, strategyName, exchangeName, frameName } = request;
|
|
2641
|
+
const data = await ioc.markdownMockService.getHeatData(strategyName, exchangeName, frameName);
|
|
2642
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2643
|
+
ioc.loggerService.log("/api/v1/markdown_mock/heat_data ok", { request, result: omit(result, "data") });
|
|
2644
|
+
return await micro.send(res, 200, result);
|
|
2645
|
+
}
|
|
2646
|
+
catch (error) {
|
|
2647
|
+
ioc.loggerService.log("/api/v1/markdown_mock/heat_data error", { error: errorData(error) });
|
|
2648
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2649
|
+
}
|
|
2650
|
+
});
|
|
2651
|
+
router$4.post("/api/v1/markdown_mock/heat_report", async (req, res) => {
|
|
2652
|
+
try {
|
|
2653
|
+
const request = await micro.json(req);
|
|
2654
|
+
const { requestId, serviceName, strategyName, exchangeName, frameName } = request;
|
|
2655
|
+
const data = await ioc.markdownMockService.getHeatReport(strategyName, exchangeName, frameName);
|
|
2656
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2657
|
+
ioc.loggerService.log("/api/v1/markdown_mock/heat_report ok", { request, result: omit(result, "data") });
|
|
2658
|
+
return await micro.send(res, 200, result);
|
|
2659
|
+
}
|
|
2660
|
+
catch (error) {
|
|
2661
|
+
ioc.loggerService.log("/api/v1/markdown_mock/heat_report error", { error: errorData(error) });
|
|
2662
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2663
|
+
}
|
|
2664
|
+
});
|
|
2665
|
+
router$4.post("/api/v1/markdown_mock/walker_data", async (req, res) => {
|
|
2666
|
+
try {
|
|
2667
|
+
const request = await micro.json(req);
|
|
2668
|
+
const { requestId, serviceName, symbol, walkerName } = request;
|
|
2669
|
+
const data = await ioc.markdownMockService.getWalkerData(symbol, walkerName);
|
|
2670
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2671
|
+
ioc.loggerService.log("/api/v1/markdown_mock/walker_data ok", { request, result: omit(result, "data") });
|
|
2672
|
+
return await micro.send(res, 200, result);
|
|
2673
|
+
}
|
|
2674
|
+
catch (error) {
|
|
2675
|
+
ioc.loggerService.log("/api/v1/markdown_mock/walker_data error", { error: errorData(error) });
|
|
2676
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2677
|
+
}
|
|
2678
|
+
});
|
|
2679
|
+
router$4.post("/api/v1/markdown_mock/walker_report", async (req, res) => {
|
|
2680
|
+
try {
|
|
2681
|
+
const request = await micro.json(req);
|
|
2682
|
+
const { requestId, serviceName, symbol, walkerName } = request;
|
|
2683
|
+
const data = await ioc.markdownMockService.getWalkerReport(symbol, walkerName);
|
|
2684
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2685
|
+
ioc.loggerService.log("/api/v1/markdown_mock/walker_report ok", { request, result: omit(result, "data") });
|
|
2686
|
+
return await micro.send(res, 200, result);
|
|
2687
|
+
}
|
|
2688
|
+
catch (error) {
|
|
2689
|
+
ioc.loggerService.log("/api/v1/markdown_mock/walker_report error", { error: errorData(error) });
|
|
2690
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2691
|
+
}
|
|
2692
|
+
});
|
|
2693
|
+
|
|
2694
|
+
const router$3 = Router({
|
|
2695
|
+
params: true,
|
|
2696
|
+
});
|
|
2697
|
+
router$3.post("/api/v1/markdown_view/strategy_data", async (req, res) => {
|
|
2698
|
+
try {
|
|
2699
|
+
const request = await micro.json(req);
|
|
2700
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2701
|
+
const data = await ioc.markdownViewService.getStrategyData(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2702
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2703
|
+
ioc.loggerService.log("/api/v1/markdown_view/strategy_data ok", { request, result: omit(result, "data") });
|
|
2704
|
+
return await micro.send(res, 200, result);
|
|
2705
|
+
}
|
|
2706
|
+
catch (error) {
|
|
2707
|
+
ioc.loggerService.log("/api/v1/markdown_view/strategy_data error", { error: errorData(error) });
|
|
2708
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2709
|
+
}
|
|
2710
|
+
});
|
|
2711
|
+
router$3.post("/api/v1/markdown_view/strategy_report", async (req, res) => {
|
|
2712
|
+
try {
|
|
2713
|
+
const request = await micro.json(req);
|
|
2714
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2715
|
+
const data = await ioc.markdownViewService.getStrategyReport(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2716
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2717
|
+
ioc.loggerService.log("/api/v1/markdown_view/strategy_report ok", { request, result: omit(result, "data") });
|
|
2718
|
+
return await micro.send(res, 200, result);
|
|
2719
|
+
}
|
|
2720
|
+
catch (error) {
|
|
2721
|
+
ioc.loggerService.log("/api/v1/markdown_view/strategy_report error", { error: errorData(error) });
|
|
2722
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2723
|
+
}
|
|
2724
|
+
});
|
|
2725
|
+
router$3.post("/api/v1/markdown_view/backtest_data", async (req, res) => {
|
|
2726
|
+
try {
|
|
2727
|
+
const request = await micro.json(req);
|
|
2728
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2729
|
+
const data = await ioc.markdownViewService.getBacktestData(symbol, strategyName, exchangeName, frameName);
|
|
2730
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2731
|
+
ioc.loggerService.log("/api/v1/markdown_view/backtest_data ok", { request, result: omit(result, "data") });
|
|
2732
|
+
return await micro.send(res, 200, result);
|
|
2733
|
+
}
|
|
2734
|
+
catch (error) {
|
|
2735
|
+
ioc.loggerService.log("/api/v1/markdown_view/backtest_data error", { error: errorData(error) });
|
|
2736
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2737
|
+
}
|
|
2738
|
+
});
|
|
2739
|
+
router$3.post("/api/v1/markdown_view/backtest_report", async (req, res) => {
|
|
2740
|
+
try {
|
|
2741
|
+
const request = await micro.json(req);
|
|
2742
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName } = request;
|
|
2743
|
+
const data = await ioc.markdownViewService.getBacktestReport(symbol, strategyName, exchangeName, frameName);
|
|
2744
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2745
|
+
ioc.loggerService.log("/api/v1/markdown_view/backtest_report ok", { request, result: omit(result, "data") });
|
|
2746
|
+
return await micro.send(res, 200, result);
|
|
2747
|
+
}
|
|
2748
|
+
catch (error) {
|
|
2749
|
+
ioc.loggerService.log("/api/v1/markdown_view/backtest_report error", { error: errorData(error) });
|
|
2750
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2751
|
+
}
|
|
2752
|
+
});
|
|
2753
|
+
router$3.post("/api/v1/markdown_view/live_data", async (req, res) => {
|
|
2754
|
+
try {
|
|
2755
|
+
const request = await micro.json(req);
|
|
2756
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName } = request;
|
|
2757
|
+
const data = await ioc.markdownViewService.getLiveData(symbol, strategyName, exchangeName);
|
|
2758
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2759
|
+
ioc.loggerService.log("/api/v1/markdown_view/live_data ok", { request, result: omit(result, "data") });
|
|
2760
|
+
return await micro.send(res, 200, result);
|
|
2761
|
+
}
|
|
2762
|
+
catch (error) {
|
|
2763
|
+
ioc.loggerService.log("/api/v1/markdown_view/live_data error", { error: errorData(error) });
|
|
2764
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2765
|
+
}
|
|
2766
|
+
});
|
|
2767
|
+
router$3.post("/api/v1/markdown_view/live_report", async (req, res) => {
|
|
2768
|
+
try {
|
|
2769
|
+
const request = await micro.json(req);
|
|
2770
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName } = request;
|
|
2771
|
+
const data = await ioc.markdownViewService.getLiveReport(symbol, strategyName, exchangeName);
|
|
2772
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2773
|
+
ioc.loggerService.log("/api/v1/markdown_view/live_report ok", { request, result: omit(result, "data") });
|
|
2774
|
+
return await micro.send(res, 200, result);
|
|
2775
|
+
}
|
|
2776
|
+
catch (error) {
|
|
2777
|
+
ioc.loggerService.log("/api/v1/markdown_view/live_report error", { error: errorData(error) });
|
|
2778
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2779
|
+
}
|
|
2780
|
+
});
|
|
2781
|
+
router$3.post("/api/v1/markdown_view/breakeven_data", async (req, res) => {
|
|
2782
|
+
try {
|
|
2783
|
+
const request = await micro.json(req);
|
|
2784
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2785
|
+
const data = await ioc.markdownViewService.getBreakevenData(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2786
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2787
|
+
ioc.loggerService.log("/api/v1/markdown_view/breakeven_data ok", { request, result: omit(result, "data") });
|
|
2788
|
+
return await micro.send(res, 200, result);
|
|
2789
|
+
}
|
|
2790
|
+
catch (error) {
|
|
2791
|
+
ioc.loggerService.log("/api/v1/markdown_view/breakeven_data error", { error: errorData(error) });
|
|
2792
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2793
|
+
}
|
|
2794
|
+
});
|
|
2795
|
+
router$3.post("/api/v1/markdown_view/breakeven_report", async (req, res) => {
|
|
2796
|
+
try {
|
|
2797
|
+
const request = await micro.json(req);
|
|
2798
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2799
|
+
const data = await ioc.markdownViewService.getBreakevenReport(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2800
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2801
|
+
ioc.loggerService.log("/api/v1/markdown_view/breakeven_report ok", { request, result: omit(result, "data") });
|
|
2802
|
+
return await micro.send(res, 200, result);
|
|
2803
|
+
}
|
|
2804
|
+
catch (error) {
|
|
2805
|
+
ioc.loggerService.log("/api/v1/markdown_view/breakeven_report error", { error: errorData(error) });
|
|
2806
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2807
|
+
}
|
|
2808
|
+
});
|
|
2809
|
+
router$3.post("/api/v1/markdown_view/risk_data", async (req, res) => {
|
|
2810
|
+
try {
|
|
2811
|
+
const request = await micro.json(req);
|
|
2812
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2813
|
+
const data = await ioc.markdownViewService.getRiskData(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2814
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2815
|
+
ioc.loggerService.log("/api/v1/markdown_view/risk_data ok", { request, result: omit(result, "data") });
|
|
2816
|
+
return await micro.send(res, 200, result);
|
|
2817
|
+
}
|
|
2818
|
+
catch (error) {
|
|
2819
|
+
ioc.loggerService.log("/api/v1/markdown_view/risk_data error", { error: errorData(error) });
|
|
2820
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2821
|
+
}
|
|
2822
|
+
});
|
|
2823
|
+
router$3.post("/api/v1/markdown_view/risk_report", async (req, res) => {
|
|
2824
|
+
try {
|
|
2825
|
+
const request = await micro.json(req);
|
|
2826
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2827
|
+
const data = await ioc.markdownViewService.getRiskReport(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2828
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2829
|
+
ioc.loggerService.log("/api/v1/markdown_view/risk_report ok", { request, result: omit(result, "data") });
|
|
2830
|
+
return await micro.send(res, 200, result);
|
|
2831
|
+
}
|
|
2832
|
+
catch (error) {
|
|
2833
|
+
ioc.loggerService.log("/api/v1/markdown_view/risk_report error", { error: errorData(error) });
|
|
2834
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2835
|
+
}
|
|
2836
|
+
});
|
|
2837
|
+
router$3.post("/api/v1/markdown_view/partial_data", async (req, res) => {
|
|
2838
|
+
try {
|
|
2839
|
+
const request = await micro.json(req);
|
|
2840
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2841
|
+
const data = await ioc.markdownViewService.getPartialData(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2842
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2843
|
+
ioc.loggerService.log("/api/v1/markdown_view/partial_data ok", { request, result: omit(result, "data") });
|
|
2844
|
+
return await micro.send(res, 200, result);
|
|
2845
|
+
}
|
|
2846
|
+
catch (error) {
|
|
2847
|
+
ioc.loggerService.log("/api/v1/markdown_view/partial_data error", { error: errorData(error) });
|
|
2848
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2849
|
+
}
|
|
2850
|
+
});
|
|
2851
|
+
router$3.post("/api/v1/markdown_view/partial_report", async (req, res) => {
|
|
2852
|
+
try {
|
|
2853
|
+
const request = await micro.json(req);
|
|
2854
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2855
|
+
const data = await ioc.markdownViewService.getPartialReport(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2856
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2857
|
+
ioc.loggerService.log("/api/v1/markdown_view/partial_report ok", { request, result: omit(result, "data") });
|
|
2858
|
+
return await micro.send(res, 200, result);
|
|
2859
|
+
}
|
|
2860
|
+
catch (error) {
|
|
2861
|
+
ioc.loggerService.log("/api/v1/markdown_view/partial_report error", { error: errorData(error) });
|
|
2862
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2863
|
+
}
|
|
2864
|
+
});
|
|
2865
|
+
router$3.post("/api/v1/markdown_view/highest_profit_data", async (req, res) => {
|
|
2866
|
+
try {
|
|
2867
|
+
const request = await micro.json(req);
|
|
2868
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2869
|
+
const data = await ioc.markdownViewService.getHighestProfitData(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2870
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2871
|
+
ioc.loggerService.log("/api/v1/markdown_view/highest_profit_data ok", { request, result: omit(result, "data") });
|
|
2872
|
+
return await micro.send(res, 200, result);
|
|
2873
|
+
}
|
|
2874
|
+
catch (error) {
|
|
2875
|
+
ioc.loggerService.log("/api/v1/markdown_view/highest_profit_data error", { error: errorData(error) });
|
|
2876
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2877
|
+
}
|
|
2878
|
+
});
|
|
2879
|
+
router$3.post("/api/v1/markdown_view/highest_profit_report", async (req, res) => {
|
|
2880
|
+
try {
|
|
2881
|
+
const request = await micro.json(req);
|
|
2882
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2883
|
+
const data = await ioc.markdownViewService.getHighestProfitReport(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2884
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2885
|
+
ioc.loggerService.log("/api/v1/markdown_view/highest_profit_report ok", { request, result: omit(result, "data") });
|
|
2886
|
+
return await micro.send(res, 200, result);
|
|
2887
|
+
}
|
|
2888
|
+
catch (error) {
|
|
2889
|
+
ioc.loggerService.log("/api/v1/markdown_view/highest_profit_report error", { error: errorData(error) });
|
|
2890
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2891
|
+
}
|
|
2892
|
+
});
|
|
2893
|
+
router$3.post("/api/v1/markdown_view/schedule_data", async (req, res) => {
|
|
2894
|
+
try {
|
|
2895
|
+
const request = await micro.json(req);
|
|
2896
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2897
|
+
const data = await ioc.markdownViewService.getScheduleData(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2898
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2899
|
+
ioc.loggerService.log("/api/v1/markdown_view/schedule_data ok", { request, result: omit(result, "data") });
|
|
2900
|
+
return await micro.send(res, 200, result);
|
|
2901
|
+
}
|
|
2902
|
+
catch (error) {
|
|
2903
|
+
ioc.loggerService.log("/api/v1/markdown_view/schedule_data error", { error: errorData(error) });
|
|
2904
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2905
|
+
}
|
|
2906
|
+
});
|
|
2907
|
+
router$3.post("/api/v1/markdown_view/schedule_report", async (req, res) => {
|
|
2908
|
+
try {
|
|
2909
|
+
const request = await micro.json(req);
|
|
2910
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2911
|
+
const data = await ioc.markdownViewService.getScheduleReport(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2912
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2913
|
+
ioc.loggerService.log("/api/v1/markdown_view/schedule_report ok", { request, result: omit(result, "data") });
|
|
2914
|
+
return await micro.send(res, 200, result);
|
|
2915
|
+
}
|
|
2916
|
+
catch (error) {
|
|
2917
|
+
ioc.loggerService.log("/api/v1/markdown_view/schedule_report error", { error: errorData(error) });
|
|
2918
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2919
|
+
}
|
|
2920
|
+
});
|
|
2921
|
+
router$3.post("/api/v1/markdown_view/performance_data", async (req, res) => {
|
|
2922
|
+
try {
|
|
2923
|
+
const request = await micro.json(req);
|
|
2924
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2925
|
+
const data = await ioc.markdownViewService.getPerformanceData(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2926
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2927
|
+
ioc.loggerService.log("/api/v1/markdown_view/performance_data ok", { request, result: omit(result, "data") });
|
|
2928
|
+
return await micro.send(res, 200, result);
|
|
2929
|
+
}
|
|
2930
|
+
catch (error) {
|
|
2931
|
+
ioc.loggerService.log("/api/v1/markdown_view/performance_data error", { error: errorData(error) });
|
|
2932
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2933
|
+
}
|
|
2934
|
+
});
|
|
2935
|
+
router$3.post("/api/v1/markdown_view/performance_report", async (req, res) => {
|
|
2936
|
+
try {
|
|
2937
|
+
const request = await micro.json(req);
|
|
2938
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2939
|
+
const data = await ioc.markdownViewService.getPerformanceReport(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2940
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2941
|
+
ioc.loggerService.log("/api/v1/markdown_view/performance_report ok", { request, result: omit(result, "data") });
|
|
2942
|
+
return await micro.send(res, 200, result);
|
|
2943
|
+
}
|
|
2944
|
+
catch (error) {
|
|
2945
|
+
ioc.loggerService.log("/api/v1/markdown_view/performance_report error", { error: errorData(error) });
|
|
2946
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2947
|
+
}
|
|
2948
|
+
});
|
|
2949
|
+
router$3.post("/api/v1/markdown_view/sync_data", async (req, res) => {
|
|
2950
|
+
try {
|
|
2951
|
+
const request = await micro.json(req);
|
|
2952
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2953
|
+
const data = await ioc.markdownViewService.getSyncData(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2954
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2955
|
+
ioc.loggerService.log("/api/v1/markdown_view/sync_data ok", { request, result: omit(result, "data") });
|
|
2956
|
+
return await micro.send(res, 200, result);
|
|
2957
|
+
}
|
|
2958
|
+
catch (error) {
|
|
2959
|
+
ioc.loggerService.log("/api/v1/markdown_view/sync_data error", { error: errorData(error) });
|
|
2960
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2961
|
+
}
|
|
2962
|
+
});
|
|
2963
|
+
router$3.post("/api/v1/markdown_view/sync_report", async (req, res) => {
|
|
2964
|
+
try {
|
|
2965
|
+
const request = await micro.json(req);
|
|
2966
|
+
const { requestId, serviceName, symbol, strategyName, exchangeName, frameName, backtest } = request;
|
|
2967
|
+
const data = await ioc.markdownViewService.getSyncReport(symbol, strategyName, exchangeName, frameName, backtest);
|
|
2968
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2969
|
+
ioc.loggerService.log("/api/v1/markdown_view/sync_report ok", { request, result: omit(result, "data") });
|
|
2970
|
+
return await micro.send(res, 200, result);
|
|
2971
|
+
}
|
|
2972
|
+
catch (error) {
|
|
2973
|
+
ioc.loggerService.log("/api/v1/markdown_view/sync_report error", { error: errorData(error) });
|
|
2974
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2975
|
+
}
|
|
2976
|
+
});
|
|
2977
|
+
router$3.post("/api/v1/markdown_view/heat_data", async (req, res) => {
|
|
2978
|
+
try {
|
|
2979
|
+
const request = await micro.json(req);
|
|
2980
|
+
const { requestId, serviceName, strategyName, exchangeName, frameName, backtest } = request;
|
|
2981
|
+
const data = await ioc.markdownViewService.getHeatData(strategyName, exchangeName, frameName, backtest);
|
|
2982
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2983
|
+
ioc.loggerService.log("/api/v1/markdown_view/heat_data ok", { request, result: omit(result, "data") });
|
|
2984
|
+
return await micro.send(res, 200, result);
|
|
2985
|
+
}
|
|
2986
|
+
catch (error) {
|
|
2987
|
+
ioc.loggerService.log("/api/v1/markdown_view/heat_data error", { error: errorData(error) });
|
|
2988
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
2989
|
+
}
|
|
2990
|
+
});
|
|
2991
|
+
router$3.post("/api/v1/markdown_view/heat_report", async (req, res) => {
|
|
2992
|
+
try {
|
|
2993
|
+
const request = await micro.json(req);
|
|
2994
|
+
const { requestId, serviceName, strategyName, exchangeName, frameName, backtest } = request;
|
|
2995
|
+
const data = await ioc.markdownViewService.getHeatReport(strategyName, exchangeName, frameName, backtest);
|
|
2996
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
2997
|
+
ioc.loggerService.log("/api/v1/markdown_view/heat_report ok", { request, result: omit(result, "data") });
|
|
2998
|
+
return await micro.send(res, 200, result);
|
|
2999
|
+
}
|
|
3000
|
+
catch (error) {
|
|
3001
|
+
ioc.loggerService.log("/api/v1/markdown_view/heat_report error", { error: errorData(error) });
|
|
3002
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
3003
|
+
}
|
|
3004
|
+
});
|
|
3005
|
+
router$3.post("/api/v1/markdown_view/walker_data", async (req, res) => {
|
|
3006
|
+
try {
|
|
3007
|
+
const request = await micro.json(req);
|
|
3008
|
+
const { requestId, serviceName, symbol, walkerName } = request;
|
|
3009
|
+
const data = await ioc.markdownViewService.getWalkerData(symbol, walkerName);
|
|
3010
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
3011
|
+
ioc.loggerService.log("/api/v1/markdown_view/walker_data ok", { request, result: omit(result, "data") });
|
|
3012
|
+
return await micro.send(res, 200, result);
|
|
3013
|
+
}
|
|
3014
|
+
catch (error) {
|
|
3015
|
+
ioc.loggerService.log("/api/v1/markdown_view/walker_data error", { error: errorData(error) });
|
|
3016
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
3017
|
+
}
|
|
3018
|
+
});
|
|
3019
|
+
router$3.post("/api/v1/markdown_view/walker_report", async (req, res) => {
|
|
3020
|
+
try {
|
|
3021
|
+
const request = await micro.json(req);
|
|
3022
|
+
const { requestId, serviceName, symbol, walkerName } = request;
|
|
3023
|
+
const data = await ioc.markdownViewService.getWalkerReport(symbol, walkerName);
|
|
3024
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
3025
|
+
ioc.loggerService.log("/api/v1/markdown_view/walker_report ok", { request, result: omit(result, "data") });
|
|
3026
|
+
return await micro.send(res, 200, result);
|
|
3027
|
+
}
|
|
3028
|
+
catch (error) {
|
|
3029
|
+
ioc.loggerService.log("/api/v1/markdown_view/walker_report error", { error: errorData(error) });
|
|
3030
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
3031
|
+
}
|
|
3032
|
+
});
|
|
3033
|
+
|
|
1979
3034
|
const router$2 = Router({
|
|
1980
3035
|
params: true,
|
|
1981
3036
|
});
|
|
@@ -2007,6 +3062,34 @@ router$2.post("/api/v1/global/signal_pending_price", async (req, res) => {
|
|
|
2007
3062
|
});
|
|
2008
3063
|
}
|
|
2009
3064
|
});
|
|
3065
|
+
router$2.post("/api/v1/global/backtest_list", async (req, res) => {
|
|
3066
|
+
try {
|
|
3067
|
+
const request = await micro.json(req);
|
|
3068
|
+
const { requestId, serviceName } = request;
|
|
3069
|
+
const data = await ioc.backtestMetaService.list();
|
|
3070
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
3071
|
+
ioc.loggerService.log("/api/v1/global/backtest_list ok", { request, result: omit(result, "data") });
|
|
3072
|
+
return await micro.send(res, 200, result);
|
|
3073
|
+
}
|
|
3074
|
+
catch (error) {
|
|
3075
|
+
ioc.loggerService.log("/api/v1/global/backtest_list error", { error: errorData(error) });
|
|
3076
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
3077
|
+
}
|
|
3078
|
+
});
|
|
3079
|
+
router$2.post("/api/v1/global/live_list", async (req, res) => {
|
|
3080
|
+
try {
|
|
3081
|
+
const request = await micro.json(req);
|
|
3082
|
+
const { requestId, serviceName } = request;
|
|
3083
|
+
const data = await ioc.liveMetaService.list();
|
|
3084
|
+
const result = { data, status: "ok", error: "", requestId, serviceName };
|
|
3085
|
+
ioc.loggerService.log("/api/v1/global/live_list ok", { request, result: omit(result, "data") });
|
|
3086
|
+
return await micro.send(res, 200, result);
|
|
3087
|
+
}
|
|
3088
|
+
catch (error) {
|
|
3089
|
+
ioc.loggerService.log("/api/v1/global/live_list error", { error: errorData(error) });
|
|
3090
|
+
return await micro.send(res, 200, { status: "error", error: getErrorMessage(error) });
|
|
3091
|
+
}
|
|
3092
|
+
});
|
|
2010
3093
|
|
|
2011
3094
|
const require = createRequire(import.meta.url);
|
|
2012
3095
|
function getPublicPath() {
|
|
@@ -2019,20 +3102,26 @@ const router = Router({
|
|
|
2019
3102
|
params: true,
|
|
2020
3103
|
});
|
|
2021
3104
|
router.all("/api/v1/health/*", (req, res) => {
|
|
2022
|
-
return router$
|
|
3105
|
+
return router$9(req, res, finalhandler(req, res));
|
|
2023
3106
|
});
|
|
2024
3107
|
router.all("/api/v1/mock/*", (req, res) => {
|
|
2025
|
-
return router$
|
|
3108
|
+
return router$8(req, res, finalhandler(req, res));
|
|
2026
3109
|
});
|
|
2027
3110
|
router.all("/api/v1/view/*", (req, res) => {
|
|
2028
|
-
return router$
|
|
3111
|
+
return router$7(req, res, finalhandler(req, res));
|
|
2029
3112
|
});
|
|
2030
|
-
router.all("/
|
|
3113
|
+
router.all("/api/v1/markdown_mock/*", (req, res) => {
|
|
2031
3114
|
return router$4(req, res, finalhandler(req, res));
|
|
2032
3115
|
});
|
|
2033
|
-
router.all("/api/v1/
|
|
3116
|
+
router.all("/api/v1/markdown_view/*", (req, res) => {
|
|
2034
3117
|
return router$3(req, res, finalhandler(req, res));
|
|
2035
3118
|
});
|
|
3119
|
+
router.all("/icon/*", (req, res) => {
|
|
3120
|
+
return router$6(req, res, finalhandler(req, res));
|
|
3121
|
+
});
|
|
3122
|
+
router.all("/api/v1/dict/*", (req, res) => {
|
|
3123
|
+
return router$5(req, res, finalhandler(req, res));
|
|
3124
|
+
});
|
|
2036
3125
|
router.all("/api/v1/global/*", (req, res) => {
|
|
2037
3126
|
return router$2(req, res, finalhandler(req, res));
|
|
2038
3127
|
});
|