feat: improve backtest system and add OpenRouter balance query

This commit is contained in:
TIANHE
2026-01-12 04:01:17 +08:00
parent 5a4c770279
commit bd5db753df
11 changed files with 1996 additions and 413 deletions
+23
View File
@@ -729,6 +729,7 @@ const locale = {
'dashboard.indicator.backtest.commission': 'Commission Rate (%)',
'dashboard.indicator.backtest.commissionHint': 'Charged on notional value (incl. leverage) per trade; both entry & exit are deducted from balance.',
'dashboard.indicator.backtest.leverage': 'Leverage',
'dashboard.indicator.backtest.timeframe': 'Timeframe',
'dashboard.indicator.backtest.tradeDirection': 'Trade Direction',
'dashboard.indicator.backtest.longOnly': 'Long Only',
'dashboard.indicator.backtest.shortOnly': 'Short Only',
@@ -737,6 +738,11 @@ const locale = {
'dashboard.indicator.backtest.rerun': 'Run Again',
'dashboard.indicator.backtest.close': 'Close',
'dashboard.indicator.backtest.running': 'Running indicator backtest...',
'dashboard.indicator.backtest.loadingTip1': 'Fetching historical K-line data...',
'dashboard.indicator.backtest.loadingTip2': 'Executing strategy signal calculation...',
'dashboard.indicator.backtest.loadingTip3': 'Simulating trade execution...',
'dashboard.indicator.backtest.loadingTip4': 'Calculating backtest metrics...',
'dashboard.indicator.backtest.loadingTip5': 'Almost done, please wait...',
'dashboard.indicator.backtest.results': 'Backtest Results',
'dashboard.indicator.backtest.totalReturn': 'Total Return',
'dashboard.indicator.backtest.annualReturn': 'Annual Return',
@@ -782,6 +788,15 @@ const locale = {
'dashboard.indicator.backtest.profit': 'P&L',
'dashboard.indicator.backtest.success': 'Backtest completed',
'dashboard.indicator.backtest.failed': 'Backtest failed, please try again later',
'dashboard.indicator.backtest.quickSelect': 'Quick Select',
// Multi-timeframe backtest precision hints
'dashboard.indicator.backtest.precisionMode': 'Backtest Precision Mode',
'dashboard.indicator.backtest.estimatedCandles': 'Est. {count} candles to process',
'dashboard.indicator.backtest.highPrecisionDesc': 'Using 1-minute candles for high-precision backtest, stop-loss/take-profit triggers are more accurate',
'dashboard.indicator.backtest.mediumPrecisionDesc': 'Range exceeds 30 days, using 5-minute candles to balance precision and performance',
'dashboard.indicator.backtest.standardModeWarning': 'Using Standard Backtest Mode',
'dashboard.indicator.backtest.standardModeDesc': 'Current config does not support high-precision backtest, using strategy timeframe',
'dashboard.indicator.backtest.onlyCryptoSupported': 'High-precision backtest only supports cryptocurrency market',
'dashboard.indicator.backtest.noIndicatorCode': 'This indicator has no backtestable code',
'dashboard.indicator.backtest.noSymbol': 'Please select a trading symbol first',
'dashboard.indicator.backtest.dateRangeExceeded': 'Backtest date range exceeded: {timeframe} timeframe allows max {maxRange}',
@@ -1892,6 +1907,14 @@ const locale = {
'settings.saveSuccess': 'Settings saved successfully',
'settings.saveFailed': 'Failed to save settings',
'settings.loadFailed': 'Failed to load settings',
'settings.openrouterBalance': 'OpenRouter Account Balance',
'settings.queryBalance': 'Query Balance',
'settings.balanceUsage': 'Used',
'settings.balanceRemaining': 'Remaining',
'settings.balanceLimit': 'Total Limit',
'settings.balanceQuerySuccess': 'Balance query successful',
'settings.balanceQueryFailed': 'Failed to query balance',
'settings.balanceNotQueried': 'Click "Query Balance" to get account info',
'settings.default': 'Default',
'settings.pleaseSelect': 'Please select',
'settings.inputApiKey': 'Enter key',
+23
View File
@@ -638,6 +638,7 @@ const locale = {
'dashboard.indicator.backtest.commission': '手续费率(%',
'dashboard.indicator.backtest.commissionHint': '按名义价值(含杠杆)收取;每笔成交(开/平仓)都会从余额扣除。',
'dashboard.indicator.backtest.leverage': '杠杆倍率',
'dashboard.indicator.backtest.timeframe': 'K线周期',
'dashboard.indicator.backtest.tradeDirection': '交易方向',
'dashboard.indicator.backtest.longOnly': '做多',
'dashboard.indicator.backtest.shortOnly': '做空',
@@ -646,6 +647,11 @@ const locale = {
'dashboard.indicator.backtest.rerun': '重新回测',
'dashboard.indicator.backtest.close': '关闭',
'dashboard.indicator.backtest.running': '正在进行指标回测...',
'dashboard.indicator.backtest.loadingTip1': '正在获取历史K线数据...',
'dashboard.indicator.backtest.loadingTip2': '正在执行策略信号计算...',
'dashboard.indicator.backtest.loadingTip3': '正在模拟交易执行...',
'dashboard.indicator.backtest.loadingTip4': '正在计算回测指标...',
'dashboard.indicator.backtest.loadingTip5': '即将完成,请稍候...',
'dashboard.indicator.backtest.results': '回测结果',
'dashboard.indicator.backtest.totalReturn': '总收益率',
'dashboard.indicator.backtest.annualReturn': '年化收益',
@@ -687,6 +693,15 @@ const locale = {
'dashboard.indicator.backtest.profit': '盈亏',
'dashboard.indicator.backtest.success': '回测完成',
'dashboard.indicator.backtest.failed': '回测失败,请稍后重试',
'dashboard.indicator.backtest.quickSelect': '快速选择',
// 多时间框架回测精度提示
'dashboard.indicator.backtest.precisionMode': '回测精度模式',
'dashboard.indicator.backtest.estimatedCandles': '预计处理约 {count} 根K线',
'dashboard.indicator.backtest.highPrecisionDesc': '使用1分钟级别K线进行高精度回测,止损止盈触发更精确',
'dashboard.indicator.backtest.mediumPrecisionDesc': '回测区间超过30天,使用5分钟级别K线以平衡精度与性能',
'dashboard.indicator.backtest.standardModeWarning': '使用标准回测模式',
'dashboard.indicator.backtest.standardModeDesc': '当前配置不支持高精度回测,将使用策略K线进行回测',
'dashboard.indicator.backtest.onlyCryptoSupported': '高精度回测仅支持加密货币市场',
'dashboard.indicator.backtest.noIndicatorCode': '该指标没有可回测的代码',
'dashboard.indicator.backtest.noSymbol': '请先选择交易标的',
'dashboard.indicator.backtest.dateRangeExceeded': '回测时间范围超出限制:{timeframe}周期最多可回测{maxRange}',
@@ -1631,6 +1646,14 @@ const locale = {
'settings.saveSuccess': '设置保存成功',
'settings.saveFailed': '保存设置失败',
'settings.loadFailed': '加载配置失败',
'settings.openrouterBalance': 'OpenRouter 账户余额',
'settings.queryBalance': '查询余额',
'settings.balanceUsage': '已使用',
'settings.balanceRemaining': '剩余额度',
'settings.balanceLimit': '总限额',
'settings.balanceQuerySuccess': '余额查询成功',
'settings.balanceQueryFailed': '余额查询失败',
'settings.balanceNotQueried': '点击"查询余额"获取账户信息',
'settings.default': '默认',
'settings.pleaseSelect': '请选择',
'settings.inputApiKey': '请输入密钥',
+23
View File
@@ -638,6 +638,7 @@ const locale = {
'dashboard.indicator.backtest.commission': '手續費率(%',
'dashboard.indicator.backtest.commissionHint': '按名義價值(含槓桿)收取;每筆成交(開/平倉)都會從餘額扣除。',
'dashboard.indicator.backtest.leverage': '槓杆倍率',
'dashboard.indicator.backtest.timeframe': 'K線週期',
'dashboard.indicator.backtest.tradeDirection': '交易方向',
'dashboard.indicator.backtest.longOnly': '做多',
'dashboard.indicator.backtest.shortOnly': '做空',
@@ -646,6 +647,11 @@ const locale = {
'dashboard.indicator.backtest.rerun': '重新回測',
'dashboard.indicator.backtest.close': '關閉',
'dashboard.indicator.backtest.running': '正在進行指標回測...',
'dashboard.indicator.backtest.loadingTip1': '正在獲取歷史K線數據...',
'dashboard.indicator.backtest.loadingTip2': '正在執行策略信號計算...',
'dashboard.indicator.backtest.loadingTip3': '正在模擬交易執行...',
'dashboard.indicator.backtest.loadingTip4': '正在計算回測指標...',
'dashboard.indicator.backtest.loadingTip5': '即將完成,請稍候...',
'dashboard.indicator.backtest.results': '回測結果',
'dashboard.indicator.backtest.totalReturn': '總收益率',
'dashboard.indicator.backtest.annualReturn': '年化收益',
@@ -687,6 +693,15 @@ const locale = {
'dashboard.indicator.backtest.profit': '盈虧',
'dashboard.indicator.backtest.success': '回測完成',
'dashboard.indicator.backtest.failed': '回測失敗,請稍後重試',
'dashboard.indicator.backtest.quickSelect': '快速選擇',
// 多時間框架回測精度提示
'dashboard.indicator.backtest.precisionMode': '回測精度模式',
'dashboard.indicator.backtest.estimatedCandles': '預計處理約 {count} 根K線',
'dashboard.indicator.backtest.highPrecisionDesc': '使用1分鐘級別K線進行高精度回測,止損止盈觸發更精確',
'dashboard.indicator.backtest.mediumPrecisionDesc': '回測區間超過30天,使用5分鐘級別K線以平衡精度與性能',
'dashboard.indicator.backtest.standardModeWarning': '使用標準回測模式',
'dashboard.indicator.backtest.standardModeDesc': '當前配置不支持高精度回測,將使用策略K線進行回測',
'dashboard.indicator.backtest.onlyCryptoSupported': '高精度回測僅支持加密貨幣市場',
'dashboard.indicator.backtest.noIndicatorCode': '該指標沒有可回測的代碼',
'dashboard.indicator.backtest.noSymbol': '請先選擇交易標的',
'dashboard.indicator.backtest.dateRangeExceeded': '回測時間範圍超出限制:{timeframe}周期最多可回測{maxRange}',
@@ -1631,6 +1646,14 @@ const locale = {
'settings.saveSuccess': '設置保存成功',
'settings.saveFailed': '保存設置失敗',
'settings.loadFailed': '加載配置失敗',
'settings.openrouterBalance': 'OpenRouter 賬戶餘額',
'settings.queryBalance': '查詢餘額',
'settings.balanceUsage': '已使用',
'settings.balanceRemaining': '剩餘額度',
'settings.balanceLimit': '總限額',
'settings.balanceQuerySuccess': '餘額查詢成功',
'settings.balanceQueryFailed': '餘額查詢失敗',
'settings.balanceNotQueried': '點擊"查詢餘額"獲取賬戶信息',
'settings.default': '默認',
'settings.pleaseSelect': '請選擇',
'settings.inputApiKey': '請輸入密鑰',