From 0555c56d762c22186b6a9935d72bfeb79077f0ae Mon Sep 17 00:00:00 2001
From: aaron <>
Date: Tue, 24 Feb 2026 22:02:37 +0800
Subject: [PATCH] update
---
backend/app/models/signal.py | 1 +
frontend/signals.html | 84 +++++++++++++++++++++++++++---------
2 files changed, 65 insertions(+), 20 deletions(-)
diff --git a/backend/app/models/signal.py b/backend/app/models/signal.py
index 1c1787f..e2be392 100644
--- a/backend/app/models/signal.py
+++ b/backend/app/models/signal.py
@@ -69,6 +69,7 @@ class TradingSignal(Base):
'grade': self.grade,
'confidence': self.confidence,
'entry_price': self.entry_price,
+ 'entry_zone': self.entry_zone,
'stop_loss': self.stop_loss,
'take_profit': self.take_profit,
'current_price': self.current_price,
diff --git a/frontend/signals.html b/frontend/signals.html
index 61b0e26..75d1532 100644
--- a/frontend/signals.html
+++ b/frontend/signals.html
@@ -161,18 +161,6 @@
box-shadow: 0 4px 12px rgba(0, 200, 150, 0.1);
}
- .signal-card.buy {
- border-left: 3px solid #00ff41;
- }
-
- .signal-card.sell {
- border-left: 3px solid #ff4444;
- }
-
- .signal-card.hold {
- border-left: 3px solid var(--text-secondary);
- }
-
.signal-header {
display: flex;
justify-content: space-between;
@@ -614,10 +602,10 @@
-
-
-
入场价
-
${{ signal.entry_price?.toFixed(2) }}
+
+
+
{{ getEntryPriceLabel(signal) }}
+
${{ getEntryPrice(signal).toFixed(2) }}
-
+
+
+ 当前价:
+ ${{ signal.current_price?.toFixed(2) }}
+
周期:
{{ getSignalTypeText(signal.signal_type_detail) }}
@@ -643,12 +635,16 @@
仓位:
{{ getPositionSizeText(signal.position_size) }}
+
+ 情绪:
+ {{ getNewsSentimentText(signal.news_sentiment) }}
+
-
-
+
+
分析理由
-
{{ signal.reason }}
+
{{ getCombinedReason(signal) }}
@@ -773,6 +769,54 @@
'heavy': '重仓'
};
return map[size] || size;
+ },
+
+ // 获取入场价格(限价单显示挂单价格,市价单显示入场价)
+ getEntryPrice(signal) {
+ // 如果是限价单且有挂单价格,优先显示挂单价格
+ if (signal.entry_type === 'limit' && signal.entry_zone) {
+ return signal.entry_zone;
+ }
+ // 否则显示普通入场价
+ return signal.entry_price;
+ },
+
+ // 获取入场价格标签
+ getEntryPriceLabel(signal) {
+ if (signal.entry_type === 'limit' && signal.entry_zone) {
+ return '挂单价';
+ }
+ return '入场价';
+ },
+
+ // 获取新闻情绪文本
+ getNewsSentimentText(sentiment) {
+ const map = {
+ 'bullish': '看涨',
+ 'bearish': '看跌',
+ 'neutral': '中性',
+ 'positive': '积极',
+ 'negative': '消极'
+ };
+ return map[sentiment] || sentiment;
+ },
+
+ // 格式化价位数据
+ formatLevels(levels) {
+ if (Array.isArray(levels)) {
+ return levels.map(l => '$' + l.toFixed(2)).join(', ');
+ } else if (typeof levels === 'number') {
+ return '$' + levels.toFixed(2);
+ } else if (typeof levels === 'string') {
+ return levels;
+ }
+ return '';
+ },
+
+ // 合并理由和分析摘要
+ getCombinedReason(signal) {
+ // 优先使用 analysis_summary,如果不存在则使用 reason
+ return signal.analysis_summary || signal.reason || '';
}
},
mounted() {