""" 数据库模块测试示例。 运行方式(在项目根目录 trade/ 下): python -m engine.example.test_db 前提条件: docker compose up -d data 模块已同步过 K 线数据到 TimescaleDB """ import asyncio from datetime import datetime, timedelta, timezone from engine.config import print_config_summary from engine.data import KlineRecord, KlineReader, close_pool async def main(): print("=" * 60) print(" Trade Engine — 数据库模块测试") print("=" * 60) print_config_summary() reader = KlineReader() # 获取最近 100 根 BTCUSDT 5m K 线 klines = await reader.get_klines_by_count( symbol="BTCUSDT", interval="1m", count=5, ) print(f"\n查询到 {len(klines)} 根 K 线:") for k in klines[:5]: print(f" {k.time.isoformat()} | O={k.open:.2f} H={k.high:.2f} " f"L={k.low:.2f} C={k.close:.2f} V={k.volume:.4f}") if len(klines) > 5: print(f" ... 剩余 {len(klines) - 5} 根") await close_pool() if __name__ == "__main__": asyncio.run(main())