feat: 新增外部因素分析模块+综合评分引擎+算法文档重构

新增模块:
- fund_flow_analyzer.py: 主力资金流向分析(P0, ±20)
- market_sentiment.py: 市场情绪指标(P1, ±10)
- external_factors.py: 北向资金/美股/大宗商品/汇率(P2-P4,P7)
- news_analyzer.py: 公告/并购/政策面LLM分析(P5-P6)
- score_engine.py: 综合评分引擎,整合技术面+外部因素

路由更新:
- analysis.py: deep_analyze接入综合评分,根据最终评级修正买卖建议
- market.py: 新增4个外部因素API端点
- trades.py: 交易路由更新

算法文档重构:
- 章节重排: 技术面(二三)→外部因素(四)→买卖决策(五)→数据源(六)→性能(七)
- 架构图更新为五层,标注章节对应
- 5.1/5.2标注纯技术面,5.3整合外部因素修正推荐
This commit is contained in:
selfrelease
2026-07-17 23:50:42 +08:00
parent 04f8b9f951
commit 2b5a32ca1e
23 changed files with 4191 additions and 268 deletions
+21 -2
View File
@@ -1,8 +1,21 @@
"""
应用配置
应用配置 — 所有敏感信息从环境变量读取,支持 .env 文件
"""
import os
# 加载 .env 文件(如果存在)
_env_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '.env')
if os.path.exists(_env_path):
with open(_env_path) as f:
for line in f:
line = line.strip()
if not line or line.startswith('#') or '=' not in line:
continue
key, _, value = line.partition('=')
key, value = key.strip(), value.strip().strip('"').strip("'")
if key and key not in os.environ:
os.environ[key] = value
class Config:
# Flask 配置
SECRET_KEY = os.environ.get('SECRET_KEY', 'stock-app-secret-key-2026')
@@ -23,9 +36,15 @@ class Config:
ALERTS_CACHE_FILE = os.path.join(BASE_DIR, 'alerts_cache.json')
# 阿里云K线API
ALICLOUD_APPCODE = os.environ.get('ALICLOUD_APPCODE', '50528b6544ac4234a8ccb5c9f2c01607')
ALICLOUD_APPCODE = os.environ.get('ALICLOUD_APPCODE', '')
ALICLOUD_KLINE_URL = 'https://jmqqgphqcx.market.alicloudapi.com/finance/a-shares-kline'
# 豆包AI API
DOUBAO_API_KEY = os.environ.get('DOUBAO_API_KEY', '')
# 麦蕊API
MAIRUI_LICENCE = os.environ.get('MAIRUI_LICENCE', '')
# 服务端口
PORT = int(os.environ.get('PORT', 3333))