FinLab 是一个量化交易 Python 套件,支持台股(默认)、美股、韩股、日股、港股,以及台湾兴柜(rotc)和可转债(tw_cb),标的涵盖个股与 ETF/基金。
用途与主要能力:通过 data.get("表:列") 获取价格、财报、月营收、估值、法人买卖等数据,用 data.indicator() 计算 RSI、MACD 等技术指标,用 data.universe()/data.set_universe() 按市场或行业筛选,用 data.search() 检索数据集。基于 FinLabDataFrame 方法(rise、sustain、average、rank、industry_rank、is_smallest 等)构建布尔条件与持仓 DataFrame,再用 finlab.backtest.sim() 回测,支持 resample、stop_loss、take_profit、trail_stop、position_limit、fee_ratio、tax_ratio、trade_at_price 等参数,并通过 report.metrics 或 report.get_stats() 读取 CAGR、Sharpe、最大回撤等指标。回测后应调用 report.to_html("report.html") 生成含净值曲线、回撤、月度收益与逐笔交易的自包含 HTML 报告。可选通过 finlab.online.order_executor 的 Position、OrderExecutor 与券商账户(如 SinopacAccount)把回测转为实盘下单,先 view_only=True 预览。
使用方式:需先安装 uv,再执行 uv python install 3.12 与 uv pip install --system "finlab>=2.0.0",或用 uv run --with "finlab" python3 script.py 免环境运行;也可在 FinLab Studio 托管 Jupyter 中直接运行。必须设置 API Token,可用 finlab.login() 走 Google OAuth 自动保存。市场用 data.set_market(<code>) 按会话切换,通用数据集名会解析到当前市场。
限制:Token 分免费(500 MB/日,后缀 #free)与 VIP(5000 MB/日),每日 8:00(UTC+8)重置。部分美股数据(分析师预期、比率、DCF)仅当前快照,不可用于历史回测。需避免前视偏差,如用 shift(1) 而非 iloc[-2],不要手动改写 df.index。实验用 upload=False,仅生产策略用 upload=True。性能上建议默认 lazy=True。具体券商配置、完整参数与更多策略示例见其参考文档,本资料未逐一展开。