外观
场内基金回测
支持 ETF 与具有场内上市信息的 LOF,使用 asset_type="cn_etf" 和 stock 账户。cn_etf 是本发行包的场内基金数据链路名称;ETF/LOF 在框架内统一作为 ETF 类型处理。支持日频和 1 分钟,限场内买卖,不模拟场外申购赎回或净值成交。
基准选择统一见按策略选择基准。
数据加载
纯基金策略把所有基金代码放入 codes:
python
from localquant.mod.localquant_mod_seeddata_source import load_framework_data
bundle = load_framework_data(
["510300.SH"], "2024-05-27", "2024-06-07",
base_url="http://127.0.0.1:28637", asset_type="cn_etf",
include_yield_curve=False,
)股票与基金共同交易时,使用 asset_type="cn_stock",股票放 codes、基金放 etf_codes,二者不得重叠。两类标的共享账户现金与仓位约束。基金作基准也通过 codes 或 etf_codes 加载,不放进 index_codes;分析基准再设置为对应基金代码。
| 内容 | 数据来源 |
|---|---|
| 不复权日线 | cn_fund_daily_basic_data |
| 后复权收盘 | cn_fund_hfq_quotes |
| 涨跌停 | cn_fund_limit_data |
| 分红 | cn_fund_dividend |
| 基础信息 | cn_etf_basic_info;缺失代码从 cn_fund_basic_info 场内行补齐 |
LOF 必须有可用的场内基础信息和配套行情;不是任意基金代码都能通过该入口交易。加载、注册和预热见数据加载。
价格与份额
成交量与订单数量单位为份,成交额为元。撮合、普通 bar 与估值使用场内不复权价格。日线 history_bars(..., adjust_type="post") 只支持 "close" 或 ["datetime", "close"];"pre"/"none" 返回原始价格,分钟不复权。未提供基金净值字段 acc_net_value/unit_net_value/discount_rate。
基金分红按税前额加载,除息日记应收,发放日到账。份额折算由价格、后复权行情及现金分红推导,并由框架调整持仓。策略不得再自行调整份额或重复入账。推导需要前置行情,加载区间首日不能据自身行情推导折算;现金分红记录不完整可能被误识别为折算。
普通行情与竞价快照的昨收口径不同,见行情字段。需要跨分红或折算的收益信号时,使用声明清楚的后复权口径,不能直接对原始收盘做 pct_change 当作总回报。
交易与账户约束
默认所有场内基金 market_tplus=1,按 T+1 限制当日卖出;本数据源不逐只区分现实中允许 T+0 的基金。关闭 stock_t1 是整个 stock 账户的回测假设,不能理解为自动识别基金的交易制度。
下单使用股票基金接口。order_shares 的数量为份;当前基金的最小申报量、步长及每手数量均为 100 份,清仓碎份单独处理。可平量读取 get_position(code).closable。T+1、分红再投资、红利税与退市返现开关由股票基金账户配置统一管理,不能给混合账户内的每只标的单独设置。
默认不启用分红再投资;启用后按派息日盘前估值价买入并收取交易费用,再投资份额豁免当日 T+1,余款保留为现金。该行为不代表场外红利再投资业务。
交易费用
基金买卖采用股票基金佣金设置,最低佣金规则相同;基金卖出免股票印花税。ETF/LOF 共用这套模型,不自动加载历史券商差异化费率。
结果
基金仍记在 stock_account/stock_positions,不会产生名为 fund_account 的独立结果表。基金作基准使用后复权收盘。结果字段见股票基金结果,保存与导出见报告操作。