#!/bin/bash
# A股K线指标每日扫描自动化脚本 (v5 - K线行情版)
# 执行顺序：1.扫描全市场 2.市值过滤(>=100亿,排除ST) 3.获取行业概念 4.获取K线+实时行情 5.回测+交易信号 6.生成报告
set -e

WORK_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
OUTPUT_DIR="$WORK_DIR"
DATA_DIR="$WORK_DIR/data"

echo "=========================================="
echo "A股K线指标每日扫描 - $(date '+%Y-%m-%d %H:%M:%S')"
echo "过滤条件: 市值>=100亿, 排除ST/*ST"
echo "含: K线图+实时行情+历史回测+交易信号"
echo "=========================================="

cd "$WORK_DIR"

# Step 0: 交易日判断（仅 A 股交易日出报告；--force 或 FORCE=1 可跳过）
if [ "$1" == "--force" ] || [ "${FORCE:-0}" == "1" ]; then
  echo "[0/7] 已强制运行，跳过交易日判断"
else
  if ! python3 trading_day_check.py; then
    echo "[0/7] 今天非 A 股交易日，跳过本次扫描（如需强制：bash daily_scan_runner.sh --force）"
    exit 0
  fi
  echo "[0/7] 今天是 A 股交易日，继续扫描"
fi

# Step 1: 扫描全市场
echo ""
echo "[1/6] 开始扫描A股全市场..."
python3 stock_scanner.py
echo "[1/6] 扫描完成"

# Step 2: 市值过滤（排除<100亿和ST/*ST）
echo ""
echo "[2/6] 市值过滤（排除市值<100亿和ST/*ST）..."
python3 filter_by_marketcap_v2.py
echo "[2/6] 过滤完成"

# Step 3: 获取行业和概念数据
echo ""
echo "[3/6] 获取行业和概念数据..."
python3 fetch_industry_v2.py || echo "行业数据获取部分失败，继续执行"
echo "[3/6] 行业概念数据获取完成"

# Step 4: 获取K线和实时行情数据
echo ""
echo "[4/6] 获取K线和实时行情数据..."
python3 fetch_kline_data.py || echo "K线数据获取部分失败，继续执行"
echo "[4/6] K线行情数据获取完成"

# Step 5: 回测历史指标表现并生成交易信号
echo ""
echo "[5/6] 回测历史指标表现并生成交易信号..."
python3 backtest_engine.py
echo "[5/6] 回测与交易信号生成完成"

# Step 6: 生成回测交易版HTML报告
echo ""
echo "[6/6] 生成K线行情版可视化报告..."
python3 generate_report_v5.py
echo "[6/6] 报告生成完成"

echo ""
echo "=========================================="
echo "全部完成! $(date '+%Y-%m-%d %H:%M:%S')"
echo "报告位置: $OUTPUT_DIR/A股K线指标扫描报告.html"
echo "回测结果: $DATA_DIR/backtest_results.json"
echo "K线数据: $DATA_DIR/kline_data.json"
echo "=========================================="
