update
This commit is contained in:
parent
27bd4e97e9
commit
9424dffe00
@ -60,17 +60,32 @@ class NewsAnalyzer:
|
||||
|
||||
**分析要求**:
|
||||
1. market_impact: 对市场的潜在影响(high/medium/low)
|
||||
- **high**: 对市场或公司有**实质性、深远影响**的事件
|
||||
* 改变行业格局或公司生存状态
|
||||
* 监管政策重大变化(批准、禁止、调查)
|
||||
* 系统性风险事件(破产、退市、重大欺诈)
|
||||
- **medium**: 对价格有**短期影响**但不会改变长期趋势的事件
|
||||
* 财报业绩、管理层变动、一般并购
|
||||
* 评级调整、业务合作或重组
|
||||
- **low**: 常规信息,影响有限
|
||||
* 分析师观点、价格波动、一般评论
|
||||
|
||||
**判断原则**: 问自己"这条新闻会改变市场/公司的长期格局吗?" 如果会→high,如果只是短期波动→medium,如果无关紧要→low
|
||||
⚠️ **high(重大影响)- 请严格判断,只有以下情况才标记为 high**:
|
||||
- 监管层面:ETF批准/拒绝、交易所封禁/解禁、央行政策重大变化
|
||||
- 企业层面:破产/退市/重大并购(>100亿美元)、财务造假
|
||||
- 技术层面:严重安全漏洞(被盗>1亿美元)、网络暂停
|
||||
- 宏观层面:重大地缘政治事件、经济数据远超预期
|
||||
|
||||
❌ **以下情况不应该标记为 high**:
|
||||
- 普通价格波动(涨跌<10%)
|
||||
- 分析师观点/评级调整
|
||||
- CEO发表常规评论
|
||||
- 一般业务合作/投资
|
||||
- 常规财报发布(非意外业绩)
|
||||
|
||||
- **medium**: 对价格有**短期影响**但不会改变长期趋势的事件
|
||||
* 财报业绩、管理层变动、一般并购、机构评级调整
|
||||
* 业务合作、技术升级、普通投资新闻
|
||||
|
||||
- **low**: 常规信息,影响有限
|
||||
* 分析师观点、一般评论、价格波动、市场常规动态
|
||||
|
||||
**判断原则**:
|
||||
1. 问自己"这条新闻会改变市场/公司的长期格局吗?"
|
||||
2. 如果会→high,如果只是短期波动→medium,如果无关紧要→low
|
||||
3. 宁可判断为 medium,也不要过度判断为 high
|
||||
4. 价格波动类新闻,除非涨跌>15%,否则不应是 high
|
||||
|
||||
2. impact_type: 对价格的影响方向(bullish=利好, bearish=利空, neutral=中性)
|
||||
3. sentiment: 新闻情绪(positive=正面, negative=负面, neutral=中性)
|
||||
@ -120,12 +135,25 @@ class NewsAnalyzer:
|
||||
]
|
||||
```
|
||||
|
||||
**market_impact 判断标准**:
|
||||
- **high**: 对市场或公司有**实质性、深远影响**的事件(改变行业格局或公司生存状态)
|
||||
- **medium**: 对价格有**短期影响**但不会改变长期趋势的事件(财报、管理层变动、一般并购等)
|
||||
**market_impact 判断标准(严格)**:
|
||||
|
||||
⚠️ **high(重大影响)- 请严格判断**:
|
||||
- 监管:ETF批准/拒绝、交易所封禁/解禁、央行政策重大变化
|
||||
- 企业:破产/退市、重大并购(>100亿美元)、财务造假
|
||||
- 技术:严重安全漏洞(被盗>1亿美元)、网络暂停
|
||||
- 宏观:重大地缘政治事件、经济数据远超预期
|
||||
|
||||
❌ **以下情况不应该标记为 high**:
|
||||
- 普通价格波动(涨跌<10%)
|
||||
- 分析师观点/评级调整
|
||||
- CEO发表常规评论
|
||||
- 一般业务合作/投资
|
||||
- 常规财报发布(非意外业绩)
|
||||
|
||||
- **medium**: 对价格有**短期影响**但不会改变长期趋势
|
||||
- **low**: 常规信息,影响有限
|
||||
|
||||
**判断原则**: 问自己"这条新闻会改变市场/公司的长期格局吗?" 如果会→high,如果只是短期波动→medium。
|
||||
**判断原则**: 问自己"这条新闻会改变市场/公司的长期格局吗?" 如果会→high,否则→medium/low
|
||||
|
||||
请只输出 JSON 数组,不要包含其他解释。
|
||||
"""
|
||||
@ -359,23 +387,23 @@ class NewsAnalyzer:
|
||||
"""
|
||||
score = 0.0
|
||||
|
||||
# 市场影响
|
||||
impact_weights = {'high': 50, 'medium': 30, 'low': 10}
|
||||
score += impact_weights.get(analysis.get('market_impact', 'low'), 10)
|
||||
# 市场影响(更严格的权重)
|
||||
impact_weights = {'high': 50, 'medium': 25, 'low': 5} # 降低 low 和 medium 的权重
|
||||
score += impact_weights.get(analysis.get('market_impact', 'low'), 5)
|
||||
|
||||
# 方向性(利空利好比中性重要)
|
||||
if analysis.get('impact_type') in ['bullish', 'bearish']:
|
||||
score += 15
|
||||
score += 10 # 从 15 降低到 10
|
||||
|
||||
# 置信度
|
||||
score += (analysis.get('confidence', 50) / 100) * 10
|
||||
# 置信度(降低权重)
|
||||
score += (analysis.get('confidence', 50) / 100) * 8 # 从 10 降低到 8
|
||||
|
||||
# 质量分数
|
||||
score += quality_score * 20
|
||||
# 质量分数(保持)
|
||||
score += quality_score * 15 # 从 20 降低到 15
|
||||
|
||||
# 是否有相关代码
|
||||
# 是否有相关代码(提高重要性)
|
||||
if analysis.get('relevant_symbols'):
|
||||
score += 5
|
||||
score += 12 # 从 5 提高到 12
|
||||
|
||||
return score
|
||||
|
||||
|
||||
@ -243,7 +243,7 @@ class NewsAgent:
|
||||
self.stats['total_analyzed'] += analyzed_count
|
||||
logger.info(f"分析了 {analyzed_count} 条文章")
|
||||
|
||||
# 6. 发送通知(仅批量发送)
|
||||
# 6. 发送通知(仅批量发送)- 增加过滤条件
|
||||
if high_priority_articles:
|
||||
# 按优先级排序
|
||||
high_priority_articles.sort(
|
||||
@ -251,11 +251,36 @@ class NewsAgent:
|
||||
reverse=True
|
||||
)
|
||||
|
||||
# 额外过滤:只推送真正重要的新闻
|
||||
truly_important_articles = []
|
||||
for article in high_priority_articles:
|
||||
impact = article.get('market_impact', 'low')
|
||||
priority = article.get('priority', 0)
|
||||
confidence = article.get('llm_analyzed', False) and article.get('relevant_symbols')
|
||||
|
||||
# 推送条件(满足其一即可):
|
||||
# 1. high 影响 + 优先级 >= 55
|
||||
# 2. high 影响 + 有明确相关代码
|
||||
# 3. 优先级 >= 60(特别重要)
|
||||
should_notify = (
|
||||
(impact == 'high' and priority >= 55) or
|
||||
(impact == 'high' and confidence) or
|
||||
(priority >= 60)
|
||||
)
|
||||
|
||||
if should_notify:
|
||||
truly_important_articles.append(article)
|
||||
|
||||
# 批量发送最多10条
|
||||
await self.notifier.notify_news_batch(high_priority_articles[:10])
|
||||
for article in high_priority_articles[:10]:
|
||||
self.db_service.mark_as_notified(article['id'])
|
||||
self.stats['total_notified'] += 1
|
||||
if truly_important_articles:
|
||||
await self.notifier.notify_news_batch(trulyy_important_articles[:10])
|
||||
for article in truly_important_articles[:10]:
|
||||
self.db_service.mark_as_notified(article['id'])
|
||||
self.stats['total_notified'] += 1
|
||||
|
||||
logger.info(f"推送了 {len(trulyy_important_articles)} 条真正重要的新闻(从 {len(high_priority_articles)} 条 high 中筛选)")
|
||||
else:
|
||||
logger.info(f"没有达到推送标准的新闻({len(high_priority_articles)} 条 high 但不够重要)")
|
||||
|
||||
self.stats['last_notify_time'] = datetime.utcnow().isoformat()
|
||||
|
||||
|
||||
@ -193,30 +193,47 @@ def get_enabled_sources(category: str = None) -> list:
|
||||
# 关键词配置 - 用于第一级过滤
|
||||
CRYPTO_KEYWORDS = {
|
||||
'high_impact': [
|
||||
# 监管相关
|
||||
'SEC', 'regulation', 'ban', 'approve', 'ETF', 'legal',
|
||||
'监管', '批准', '合法化', '禁令',
|
||||
# 监管相关(只保留真正重大的)
|
||||
'SEC ETF', 'ETF approved', 'ETF rejected', 'regulation ban',
|
||||
'监管禁令', 'ETF批准', 'ETF拒绝',
|
||||
|
||||
# 重大事件
|
||||
'hack', 'exploit', 'bankruptcy', 'acquisition', 'merger',
|
||||
'blackrock', 'grayscale', 'fidelity', '比特大陆', '币安',
|
||||
# 重大事件(只保留真正重大的)
|
||||
'hack $', 'exploit $', ' $ billion hack', # 需要金额上下文,避免普通新闻
|
||||
'bankruptcy', '破产', 'shut down', '暂停交易',
|
||||
'exchange collapse', '交易所倒闭',
|
||||
|
||||
# 市场动态
|
||||
'all-time high', ' ATH ', 'crash', 'surge', 'plunge',
|
||||
# 超级机构(重大新闻才推送)
|
||||
'BlackRock ETF', 'Grayscale ETF', 'Fidelity ETF',
|
||||
'贝莱德ETF', '灰度ETF',
|
||||
|
||||
# 重大安全事故
|
||||
'bridge exploit', 'smart contract hack', '$ million stolen',
|
||||
'跨链桥攻击', '智能合约漏洞',
|
||||
],
|
||||
'medium_impact': [
|
||||
# 一般监管
|
||||
'SEC', 'regulation', 'legal', '合规', '监管',
|
||||
'approve', 'ban', '禁令',
|
||||
|
||||
# 市场动态(常见的价格波动)
|
||||
'ATH', 'all-time high', 'crash', 'surge', 'plunge',
|
||||
'历史新高', '暴跌', '暴涨', '突破',
|
||||
|
||||
# 技术更新
|
||||
'upgrade', 'fork', 'airdrop', 'launch',
|
||||
'升级', '分叉', '空投', '上线',
|
||||
|
||||
# 并购/合作
|
||||
'partnership', 'acquisition', 'merger',
|
||||
'合作', '并购', '收购',
|
||||
|
||||
# 宏观经济
|
||||
'fed', 'inflation', 'recession', 'interest rate',
|
||||
'美联储', '通胀', '加息', '降息',
|
||||
],
|
||||
'medium_impact': [
|
||||
'partnership', 'integration', 'listing', 'delisting',
|
||||
'合作', '上线', '下架',
|
||||
|
||||
# 机构和钱包
|
||||
'whale', 'wallet', 'exchange',
|
||||
'巨鲸', '钱包', '交易所',
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user