update
This commit is contained in:
parent
bf9b02c0b1
commit
dbd3a6322c
@ -298,19 +298,30 @@ DIF和DEA的位置关系,MACD柱状图变化,判断动能强弱和买卖信
|
|||||||
- 第三段:短期可能的催化因素
|
- 第三段:短期可能的催化因素
|
||||||
|
|
||||||
## 四、投资建议
|
## 四、投资建议
|
||||||
清晰分段,每个时间维度独立:
|
基于技术面分析,给出具体的操作建议和点位:
|
||||||
|
|
||||||
**短期(1-2周)**
|
**短期(1-2周)操作建议**
|
||||||
明确的操作建议(买入/持有/观望/减仓)及理由。
|
- 明确的操作建议:买入/持有/观望/减仓
|
||||||
|
- **具体点位建议**:
|
||||||
|
- 如果建议买入:给出建议买入价格区间(基于支撑位)
|
||||||
|
- 如果建议卖出:给出建议卖出价格区间(基于压力位)
|
||||||
|
- 止损位:明确的止损价格点位
|
||||||
|
- 止盈位:明确的止盈价格点位
|
||||||
|
- 操作理由:基于技术指标的具体分析
|
||||||
|
|
||||||
**中期(1-3个月)**
|
**中期(1-3个月)策略**
|
||||||
趋势判断和策略建议。
|
- 趋势判断(上涨/下跌/震荡)
|
||||||
|
- 关键价格区间:
|
||||||
|
- 上方目标位:具体价格
|
||||||
|
- 下方支撑位:具体价格
|
||||||
|
- 策略建议
|
||||||
|
|
||||||
**长期(半年以上)**
|
**长期(半年以上)**
|
||||||
投资价值评估。
|
投资价值评估和长期持有建议。
|
||||||
|
|
||||||
**风险提示**
|
**风险提示**
|
||||||
主要风险点和注意事项。
|
- 主要风险点和注意事项
|
||||||
|
- 需要关注的关键价格位
|
||||||
|
|
||||||
## 五、总结
|
## 五、总结
|
||||||
用一句话概括核心观点。
|
用一句话概括核心观点。
|
||||||
|
|||||||
@ -139,6 +139,22 @@ class CacheService:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"清除过期缓存失败: {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()
|
cache_service = CacheService()
|
||||||
|
|||||||
@ -109,12 +109,15 @@ class TushareService:
|
|||||||
logger.error(f"无效的股票代码: {stock_code}")
|
logger.error(f"无效的股票代码: {stock_code}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# 默认获取最近60个交易日
|
# 默认获取最近180个交易日(约6个月),确保技术指标计算准确
|
||||||
|
# MA60需要至少60个交易日,加上缓冲期,180天可以覆盖约120个交易日
|
||||||
if not start_date:
|
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:
|
if not end_date:
|
||||||
end_date = datetime.now().strftime('%Y%m%d')
|
end_date = datetime.now().strftime('%Y%m%d')
|
||||||
|
|
||||||
|
logger.info(f"获取K线数据: {stock_code}, 时间范围: {start_date} - {end_date}")
|
||||||
|
|
||||||
# 获取日线数据
|
# 获取日线数据
|
||||||
if period == 'D':
|
if period == 'D':
|
||||||
df = self.pro.daily(
|
df = self.pro.daily(
|
||||||
|
|||||||
47
clear_cache.py
Normal file
47
clear_cache.py
Normal 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()
|
||||||
Loading…
Reference in New Issue
Block a user