核心功能
FinLab是专为台湾股市(TSE/OTC)设计的量化交易开发框架,提供从数据获取到实盘下单的完整工作流。其核心架构围绕FinLabDataFrame展开,支持直觉化的布尔条件组合(&、|、~)与因子运算,大幅降低策略开发门槛。
数据层涵盖股价、财报、筹码、技术指标等900+字段,通过data.get("<TABLE>:<COLUMN>")统一访问。特别值得一提的是其data.universe()机制,可快速筛选产业类别或市场别,避免代码中硬编码股票清单。
回测引擎sim()设计务实,支持月/日频度再平衡、停损停利、移动止损、仓位上限等风控参数。回传报告同时提供对象式API(report.metrics.sharpe_ratio())与字典式API(report.get_stats()['monthly_sharpe']),但需注意两者键名差异。
显著优势
- 本土化深度:数据与交易逻辑针对台湾市场优化,含中文字段名、台湾券商API(Sinopac等)
- 执行效率:
uv run --with零配置执行,OAuth自动登录省去Token手动管理 - 实盘衔接:
Position.from_report()可直接对接券商API,减少策略到生产的转换成本
潜在局限
- 平台锁定:数据源与券商API深度耦合台湾市场,难以迁移至其他市场
- 黑箱风险:部分数据清洗逻辑未开源,使用者难以验证数据质量
- 费率假设:回测默认手续费结构可能与实际券商优惠方案不符,需手动校准
适合人群
- 台湾散户/法人进行多因子选股策略研发
- 需要快速验证idea、要求「看到图表而非代码」的实务派交易者
- 已持有Sinopac等支持券商账户的活跃用户
常规风险
- 前视偏误(Lookahead Bias):文档特别提醒避免
iloc手动索引,必须使用shift(1)确保时间点正确 - 容量限制:免费版每日500MB、VIP版5GB,高频策略可能触顶
- 过度拟合:60+范例策略虽丰富,但直接复制历史绩优因子易导致未来失效