skfolio参数配置咨询:等权投资组合相关设置问题
skfolio等权投资组合参数调整解决方案
1. 修改组合默认纳入的20只资产数量
load_sp500_dataset()默认返回20只SP500成分股,调整数量直接通过n_assets参数指定即可;如果需要自定义挑选特定资产,可通过筛选价格数据的列实现:
# 方式1:加载指定数量的资产(例:50只) prices = load_sp500_dataset(n_assets=50) # 方式2:自定义筛选特定资产(例:选取前10只) prices = load_sp500_dataset() prices_custom = prices[prices.columns[:10]] X = prices_to_returns(prices_custom)
2. 调整调仓频率(从每日改为周度/月度/季度/年度)
默认的EqualWeighted模型是每日再平衡,要修改调仓频率,需用Rebalance策略包装器,通过frequency参数指定pandas兼容的频率字符串:
from skfolio.optimization import Rebalance # 包装等权模型,设置月度调仓 model = Rebalance( estimator=skfolio.optimization.naive.EqualWeighted(), frequency="M" # 可选值:"W"=周度,"Q"=季度,"Y"=年度 ) model.fit(X_train) portfolio = model.predict(X_test)
3. 修改组合运行时段(自定义起始年份如2002年)
load_sp500_dataset()返回的数据集包含更长时间范围,直接通过pandas索引筛选目标时段即可:
prices = load_sp500_dataset() # 筛选2002年1月1日至任意结束日期的数据集 prices_custom_period = prices.loc["2002-01-01":] # 若需指定结束日期:prices.loc["2002-01-01":"2023-12-31"] X = prices_to_returns(prices_custom_period) X_train, X_test = train_test_split(X, test_size=0.33, shuffle=False)
4. 将累计收益图改为复利收益展示
portfolio.plot_cumulative_returns()默认展示的就是复利累计收益(compounding参数默认值为True),若需明确指定或重置参数,直接设置该参数即可:
# 绘制复利累计收益图 portfolio.plot_cumulative_returns(compounding=True)
内容的提问来源于stack exchange,提问作者Hotone
相关产品推荐
相关产品推荐

