diff --git a/config/config.yaml b/config/config.yaml index f4c38ac..53497d7 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -56,9 +56,9 @@ strategy: enabled: true # 是否启用K线形态策略 min_entity_ratio: 0.55 # 前两根阳线实体最小占振幅比例(55%) final_yang_min_ratio: 0.40 # 最后阳线实体最小占振幅比例(40%) - timeframes: ["daily", "weekly", "monthly"] # 支持的时间周期 + timeframes: ["daily", "weekly"] # 支持的时间周期 scan_stocks_count: 1000 # 扫描股票数量限制 - analysis_days: 90 # 分析的历史天数 + analysis_days: 60 # 分析的历史天数 # 监控配置 monitor: diff --git a/src/data/data_fetcher.py b/src/data/data_fetcher.py index 73941e0..f9e8231 100644 --- a/src/data/data_fetcher.py +++ b/src/data/data_fetcher.py @@ -267,7 +267,7 @@ class ADataFetcher: def search_stocks(self, keyword: str) -> pd.DataFrame: """ - 搜索股票 + 搜索股票(基于本地股票列表) Args: keyword: 搜索关键词 @@ -276,7 +276,23 @@ class ADataFetcher: 搜索结果DataFrame """ try: - results = self.client.stock.info.search(keyword) + # 获取完整股票列表 + all_stocks = self.get_stock_list() + if all_stocks.empty: + return pd.DataFrame() + + # 在股票代码和名称中搜索关键词 + keyword = str(keyword).strip() + if not keyword: + return pd.DataFrame() + + # 支持按代码或名称模糊搜索 + mask = ( + all_stocks['stock_code'].str.contains(keyword, case=False, na=False) | + all_stocks['short_name'].str.contains(keyword, case=False, na=False) + ) + + results = all_stocks[mask].copy() logger.info(f"搜索股票'{keyword}'成功,找到{len(results)}个结果") return results except Exception as e: diff --git a/src/strategy/kline_pattern_strategy.py b/src/strategy/kline_pattern_strategy.py index 466b69e..fb774ea 100644 --- a/src/strategy/kline_pattern_strategy.py +++ b/src/strategy/kline_pattern_strategy.py @@ -33,7 +33,7 @@ class KLinePatternStrategy: self.min_entity_ratio = config.get('min_entity_ratio', 0.55) # 前两根阳线实体部分最小比例 self.final_yang_min_ratio = config.get('final_yang_min_ratio', 0.40) # 最后阳线实体部分最小比例 self.max_turnover_ratio = config.get('max_turnover_ratio', 40.0) # 最后阳线最大换手率(%) - self.timeframes = config.get('timeframes', ['daily', 'weekly', 'monthly']) # 支持的时间周期 + self.timeframes = config.get('timeframes', ['daily', 'weekly']) # 支持的时间周期 logger.info("K线形态策略初始化完成")