import akshare as ak
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
import warnings
warnings.filterwarnings('ignore')

print("测试东方财富数据源...")
print("=" * 50)

try:
    # 获取创业板50的30分钟K线数据
    symbol = "399673"  # 创业板50指数
    print(f"正在获取{symbol}的30分钟K线数据...")
    
    data = ak.index_zh_a_hist_min_em(symbol=symbol, period="30")
    
    if not data.empty:
        print(f"[SUCCESS] 成功获取{len(data)}条30分钟数据")
        print(f"数据列名: {data.columns.tolist()}")
        print(f"数据时间范围: {data.index[0]} 到 {data.index[-1]}")
        
        # 检查最新数据时间
        latest_time = data.index[-1]
        current_time = datetime.now()
        
        print(f"[LATEST] 最新数据时间: {latest_time}")
        print(f"[CURRENT] 当前时间: {current_time}")
        
        # 检查数据列是否有具体时间
        if hasattr(latest_time, 'hour'):
            time_diff = current_time - latest_time
            print(f"[DELAY] 数据延迟: {time_diff}")
        else:
            print(f"[INFO] 数据可能只有日期，没有具体时间")
        
        # 显示最近几条数据
        print(f"\n最近5条数据:")
        print(data.tail())
        
    else:
        print("[ERROR] 获取的数据为空")
        
except Exception as e:
    print(f"[ERROR] 获取数据失败: {e}")
    import traceback
    traceback.print_exc()

print("=" * 50)
print("测试完成")