update
This commit is contained in:
parent
07eea6ca14
commit
1d7f510fc6
@ -56,7 +56,7 @@ strategy:
|
||||
enabled: true # 是否启用K线形态策略
|
||||
min_entity_ratio: 0.55 # 前两根阳线实体最小占振幅比例(55%)
|
||||
final_yang_min_ratio: 0.40 # 最后阳线实体最小占振幅比例(40%)
|
||||
timeframes: ["1h", "daily", "weekly"] # 支持的时间周期
|
||||
timeframes: ["daily", "weekly"] # 支持的时间周期
|
||||
scan_stocks_count: 5000 # 扫描股票数量限制
|
||||
analysis_days: 60 # 分析的历史天数
|
||||
follow_up_days: 30 # 后续强势验证天数(形态完成后N天内不回踩阴线高点且不跌破EMA20)
|
||||
|
||||
@ -71,7 +71,7 @@ strategy:
|
||||
enabled: true # 是否启用K线形态策略
|
||||
min_entity_ratio: 0.55 # 前两根阳线实体最小占振幅比例(55%)
|
||||
final_yang_min_ratio: 0.40 # 最后阳线实体最小占振幅比例(40%)
|
||||
timeframes: ["1h", "daily", "weekly"] # 支持的时间周期
|
||||
timeframes: ["daily", "weekly"] # 支持的时间周期
|
||||
scan_stocks_count: 100 # Docker环境默认扫描股票数量
|
||||
analysis_days: 60 # 分析的历史天数
|
||||
follow_up_days: 30 # 后续强势验证天数(形态完成后N天内不回踩阴线高点且不跌破EMA20)
|
||||
|
||||
@ -334,7 +334,7 @@ class ADataFetcher:
|
||||
stock_code: 股票代码
|
||||
start_date: 开始日期
|
||||
end_date: 结束日期
|
||||
period: 数据周期 ('1h', 'daily', 'weekly', 'monthly')
|
||||
period: 数据周期 ('daily', 'weekly', 'monthly')
|
||||
|
||||
Returns:
|
||||
历史行情DataFrame
|
||||
@ -348,7 +348,6 @@ class ADataFetcher:
|
||||
|
||||
# 根据周期设置k_type参数
|
||||
k_type_map = {
|
||||
'1h': 60, # 1小时线(60分钟)
|
||||
'daily': 1, # 日线
|
||||
'weekly': 2, # 周线
|
||||
'monthly': 3 # 月线
|
||||
|
||||
@ -283,13 +283,7 @@ class KLinePatternStrategy:
|
||||
end_date = datetime.now().strftime('%Y-%m-%d')
|
||||
|
||||
for timeframe in self.timeframes:
|
||||
# 针对1小时周期调整分析天数,避免数据量过大
|
||||
if timeframe == '1h':
|
||||
# 1小时数据只分析最近7天
|
||||
analysis_days = min(days, 7)
|
||||
else:
|
||||
analysis_days = days
|
||||
|
||||
analysis_days = days
|
||||
start_date = (datetime.now() - timedelta(days=analysis_days)).strftime('%Y-%m-%d')
|
||||
logger.info(f"🔍 分析股票: {stock_code}({stock_name}) | 周期: {timeframe}")
|
||||
|
||||
|
||||
@ -107,8 +107,8 @@
|
||||
<span class="badge badge-light-primary">{{ signal.strategy_name }}</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="badge bg-{% if signal.timeframe == 'daily' %}primary{% elif signal.timeframe == '1h' %}info{% else %}success{% endif %}">
|
||||
{{ 'D' if signal.timeframe == 'daily' else ('1H' if signal.timeframe == '1h' else 'W') }}
|
||||
<span class="badge bg-{% if signal.timeframe == 'daily' %}primary{% else %}success{% endif %}">
|
||||
{{ 'D' if signal.timeframe == 'daily' else 'W' }}
|
||||
</span>
|
||||
</td>
|
||||
<td class="text-muted">{{ signal.signal_date | datetime_format('%m-%d') }}</td>
|
||||
|
||||
@ -96,8 +96,8 @@
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<span class="badge bg-{% if alert.timeframe == 'daily' %}primary{% elif alert.timeframe == '1h' %}info{% else %}success{% endif %}">
|
||||
{{ '日线' if alert.timeframe == 'daily' else ('1小时' if alert.timeframe == '1h' else '周线') }}
|
||||
<span class="badge bg-{% if alert.timeframe == 'daily' %}primary{% else %}success{% endif %}">
|
||||
{{ '日线' if alert.timeframe == 'daily' else '周线' }}
|
||||
</span>
|
||||
</td>
|
||||
<td class="text-muted">{{ alert.original_signal_date | datetime_format('%Y-%m-%d') }}</td>
|
||||
|
||||
@ -18,7 +18,6 @@
|
||||
<option value="">所有周期</option>
|
||||
<option value="daily" {% if timeframe == 'daily' or not timeframe %}selected{% endif %}>日线</option>
|
||||
<option value="weekly" {% if timeframe == 'weekly' %}selected{% endif %}>周线</option>
|
||||
<option value="1h" {% if timeframe == '1h' %}selected{% endif %}>1小时</option>
|
||||
</select>
|
||||
|
||||
<select name="days" class="form-select form-select-sm">
|
||||
@ -96,8 +95,8 @@
|
||||
<span class="badge badge-light-primary">{{ signal.strategy_name }}</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="badge bg-{% if signal.timeframe == 'daily' %}primary{% elif signal.timeframe == '1h' %}info{% else %}success{% endif %}">
|
||||
{{ '日线' if signal.timeframe == 'daily' else ('1小时' if signal.timeframe == '1h' else '周线') }}
|
||||
<span class="badge bg-{% if signal.timeframe == 'daily' %}primary{% else %}success{% endif %}">
|
||||
{{ '日线' if signal.timeframe == 'daily' else '周线' }}
|
||||
</span>
|
||||
</td>
|
||||
<td class="text-muted">{{ signal.signal_date | datetime_format('%Y-%m-%d') }}</td>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user