Betalens 文档
Betalens 是一个用于量化因子分析和回测的 Python 框架。
特性
📊 因子分析 - 支持单因子/双因子/多因子分组、打标签、生成多空权重
📈 数据管理 - PostgreSQL 数据库接口,支持时间序列查询、Wind数据抓取
🔄 回测框架 - 多资产多权重回测,自动获取价格数据,详细的异常处理
📋 绩效分析 - 计算夏普比率、最大回撤等指标,分年度/自定义时段报告
🧪 稳健性检验 - 基于Lucky Factors的因子增量检验、Bootstrap重采样
快速安装
pip install betalens
或从源码安装:
git clone https://github.com/Janiszzz/betalens.git
cd betalens/gitworks
pip install -e .
快速示例
from betalens.datafeed import Datafeed, get_absolute_trade_days
from betalens.factor.factor import (
get_tradable_pool, pre_query_characteristic_data,
single_factor, get_single_factor_weight
)
from betalens.backtest import BacktestBase
from betalens.analyst import PortfolioAnalyzer, ReportExporter
# 1. 准备数据
trading_days = get_absolute_trade_days("2020-04-30", "2024-04-30", "Y")
date_ranges, code_ranges = get_tradable_pool(trading_days)
# 2. 查询因子并分组
data = pre_query_characteristic_data(trading_days, "股息率(报告期)",
date_ranges=date_ranges, code_ranges=code_ranges)
labeled_pool = single_characteristic(data, "股息率(报告期)", {"股息率(报告期)": 10})
# 3. 生成权重
weights = get_single_factor_weight(labeled_pool, {
"factor_key": "股息率(报告期)",
"mode": "classic-long-short"
})
weights["cash"] = 0
# 4. 回测
engine = BacktestBase(weight=weights, symbol="Dividend", amount=1_000_000)
# 5. 绩效分析
analyzer = PortfolioAnalyzer(engine.nav)
print(f"Sharpe: {analyzer.sharpe_ratio():.4f}")
print(f"Max Drawdown: {analyzer.max_drawdown():.2%}")
exporter = ReportExporter(analyzer)
exporter.generate_annual_report()
文档目录
快速开始
API 参考
- Datafeed API
Datafeedread_file()read_csv_with_encoding()cross_section_to_db_format()batch_read_files()batch_write_files()create_directory_tree()check_excel_errors()FillStrategycheck_null_values()check_datetime_column()fix_null_values()drop_duplicates_strict()fix_datetime_column()validate_and_fix()DataValidatorbuild_query()generate_input_pairs()generate_input_range_pairs()build_nearest_query()build_nearest_in_range_query()query_nearest_after()query_nearest_before()query_nearest_in_range_after()query_nearest_in_range_before()query_time_range()get_available_dates()get_latest_date()pivot_to_wide()align_to_dates()calculate_returns()query_industry()get_industry_members()build_industry_records()get_index_universe()get_index_universe_date()process_excel_to_db_format()check_existing_rows()insert_dataframe()get_existing_dates()incremental_insert()save_error_file()process_directory_tree()ConfigManagerget_config()reset_config()get_database_config()get_logging_config()get_excel_config()get_wind_config()get_ede_config()func_timer()get_absolute_trade_days()trade_days_offset()- 子模块
- Factor API
- Backtest API
- Analyst API
- EventStudy API
- Robust API