This commit is contained in:
aaron 2026-02-03 16:42:26 +08:00
parent bf9b02c0b1
commit dbd3a6322c
4 changed files with 86 additions and 9 deletions

View File

@ -298,19 +298,30 @@ DIF和DEA的位置关系MACD柱状图变化判断动能强弱和买卖信
- 第三段短期可能的催化因素
## 四、投资建议
清晰分段每个时间维度独立
基于技术面分析给出具体的操作建议和点位
**短期1-2**
明确的操作建议买入/持有/观望/减仓及理由
**短期1-2操作建议**
- 明确的操作建议买入/持有/观望/减仓
- **具体点位建议**
- 如果建议买入给出建议买入价格区间基于支撑位
- 如果建议卖出给出建议卖出价格区间基于压力位
- 止损位明确的止损价格点位
- 止盈位明确的止盈价格点位
- 操作理由基于技术指标的具体分析
**中期1-3个月**
趋势判断和策略建议
**中期1-3个月策略**
- 趋势判断上涨/下跌/震荡
- 关键价格区间
- 上方目标位具体价格
- 下方支撑位具体价格
- 策略建议
**长期半年以上**
投资价值评估
投资价值评估和长期持有建议
**风险提示**
主要风险点和注意事项
- 主要风险点和注意事项
- 需要关注的关键价格位
## 五、总结
用一句话概括核心观点

View File

@ -139,6 +139,22 @@ class CacheService:
except Exception as e:
logger.error(f"清除过期缓存失败: {e}")
def clear_all(self) -> int:
"""
清除所有缓存
Returns:
删除的键数量
"""
try:
count = len(self._cache)
self._cache.clear()
logger.info(f"清除了所有缓存,共{count}")
return count
except Exception as e:
logger.error(f"清除所有缓存失败: {e}")
return 0
# 创建全局实例
cache_service = CacheService()

View File

@ -109,12 +109,15 @@ class TushareService:
logger.error(f"无效的股票代码: {stock_code}")
return None
# 默认获取最近60个交易日
# 默认获取最近180个交易日约6个月确保技术指标计算准确
# MA60需要至少60个交易日加上缓冲期180天可以覆盖约120个交易日
if not start_date:
start_date = (datetime.now() - timedelta(days=90)).strftime('%Y%m%d')
start_date = (datetime.now() - timedelta(days=180)).strftime('%Y%m%d')
if not end_date:
end_date = datetime.now().strftime('%Y%m%d')
logger.info(f"获取K线数据: {stock_code}, 时间范围: {start_date} - {end_date}")
# 获取日线数据
if period == 'D':
df = self.pro.daily(

47
clear_cache.py Normal file
View File

@ -0,0 +1,47 @@
#!/usr/bin/env python3
"""
清除缓存脚本
用于清除旧的K线数据缓存确保使用新的180天数据
"""
import sys
from pathlib import Path
# 添加项目路径
sys.path.insert(0, str(Path(__file__).parent / 'backend'))
from app.services.cache_service import cache_service
def main():
print("=" * 60)
print("清除K线数据缓存")
print("=" * 60)
try:
# 方案1清除K线相关缓存
kline_count = cache_service.clear_pattern("kline:")
print(f"\n✓ 清除K线缓存: {kline_count}")
# 方案2清除所有缓存可选
print("\n是否清除所有缓存?(y/n): ", end="")
choice = input().strip().lower()
if choice == 'y':
total_count = cache_service.clear_all()
print(f"✓ 清除所有缓存: {total_count}")
print("\n说明:")
print("- 已清除K线数据缓存")
print("- 下次查询时将使用新的180天数据范围")
print("- 技术指标将基于更完整的历史数据计算")
print("\n建议:重启应用以确保生效")
print(" pm2 restart stock-agent")
except Exception as e:
print(f"\n✗ 清除缓存失败: {e}")
import traceback
print(traceback.format_exc())
print("\n" + "=" * 60)
if __name__ == "__main__":
main()