name: camp_portfilo
description: “中国商品期货 CAMP/CAPM 投资组合 + 标准跨品种套利组合自动化流程。必须在用户提到 camp_portfilo、camp portfolio、商品期货组合、100万资金、80万方向组合、20万套利组合、9个标准套利对、Y-P套利、风险平价、CAPM beta/alpha、fee.xlsx 保证金、或要自动更新 camp_pp_portfio 研究报告时使用。”
camp_portfilo:商品期货 80/20 最终组合流程
这个 skill 用于e:\quant\camp_pp_portfio项目,把商品期货方向组合和跨品种套利组合做成可复跑流程:
- 80 万普通期货资金分两袖:40 万必选品种袖 + 40 万其他品种袖;两袖都用 CAMP/CAPM + 风险平价。
- 20 万资金袖:从 9 个标准套利对中选择 4 个,强制包含
Y_P豆油-棕榈油套利;这部分默认保持不变。 - 保证金来源:优先使用
fee.xlsx的真实主力合约代码、单手保证金和手续费。 - 数据来源:TqSdk 主连日线,优先用
data_downloader2.py --method kline,因为免费账号通常没有 DataDownloader 历史下载权限。
触发后先做
- 切到项目目录:
e:\quant\camp_pp_portfio。 - 确认关键文件存在:
fee.xlsxconfig/market_snapshot_20260514_from_image.csvconfig/standard_arbitrage_pairs.csvdata_downloader2.pyscripts/camp_portfolio_model.pyscripts/arbitrage_pair_research.pyscripts/build_final_portfolio_report.py
- 如果用户给了新图片或新品种列表,先更新
market_snapshot_*.csv和standard_arbitrage_pairs.csv,再运行流程。
自动更新数据
使用 kline 缓存模式更新所有可验证品种的主连日线:
python data_downloader2.py--start2020-01-01--end2026-05-14--top 0--method kline--kline-length 3000--skip-existing--auth-file"e:\quant\ma_tick\account.json"如果用户没有指定账号文件,优先检查环境变量TQ_USER/TQ_PASSWORD,其次使用当前项目的account.json。不要打印账号密码。
生成普通期货方向组合
运行:
python scripts/camp_portfolio_model.py--capital 1000000--margin-utilization 0.80--max-symbols 6--min-days 500--max-per-sector 1--max-margin-per-lot-ratio 0.20--max-one-lot-risk-ratio 0.035--fee-file fee.xlsx如果用户指定必选品种,用--force-symbols。如果要避免和套利袖重复,用--exclude-symbols排除套利袖腿;强制纳入的品种优先级高于排除列表。
最新三袖 timing 组合示例:用户指定EB2606、V2606、JD2606、M2607、AL2606;套利袖固定含Y_P、C_CS、L_PP、B_M。普通期货 80 万拆成两部分:
- 40 万必选袖:只在用户指定品种中做风险平价。
- 40 万其他袖:排除套利腿和必选品种后,从其它期货中选择。
40 万必选袖命令:
python scripts/camp_portfolio_model.py--capital 1000000--margin-utilization 0.40--max-symbols 5--min-days 500--max-per-sector 0--max-margin-per-lot-ratio 0.20--max-one-lot-risk-ratio 0.035--fee-file fee.xlsx--force-symbols EB,V,JD,M,AL--exclude-symbols Y,P,C,CS,L,PP,B,M--out-dirresults\camp_mandatory4040 万其他袖命令:
python scripts/camp_portfolio_model.py--capital 1000000--margin-utilization 0.40--max-symbols 5--min-days 500--max-per-sector 1--max-margin-per-lot-ratio 0.20--max-one-lot-risk-ratio 0.035--fee-file fee.xlsx--exclude-symbols Y,P,C,CS,L,PP,B,M,EB,V,JD,AL--out-dirresults\camp_other40输出:
results/camp/portfolio_plan.csvresults/camp/portfolio_report.mdresults/camp/risk_metrics.csvresults/camp/correlation_matrix.csv
默认基准结果示例:AG 1手、SN 1手、TL 12手、RU 3手、PG 3手、P 10手,实际保证金约 79.56 万。
40 万必选结果示例:EB 10手、V 25手、JD 28手、M 44手、AL 7手,实际保证金约 39.92 万。
40 万其他结果示例:CU 1手、TL 5手、RU 2手、PG 2手、CF 10手,实际保证金约 39.65 万。
生成 20 万套利组合
运行:
python scripts/arbitrage_pair_research.py--capital 200000--max-pairs 4--force-pairs Y_P规则:
- 9 个标准套利对全部入模。
- 价差为
close_A - close_B。 - 套利对保证金按两腿较小保证金计。
- 强制包含
Y_P豆油-棕榈油。 - 再按 pair_score、价差相关性、风险平价分配 4 个套利对。
输出:
results/arbitrage/pair_portfolio_plan.csvresults/arbitrage/arbitrage_report.mdresults/arbitrage/pair_metrics.csvresults/arbitrage/spread_correlation_matrix.csv
当前基准结果示例:Y_P 3组、C_CS 59组、L_PP 10组、B_M 19组,实际保证金约 19.89 万。
合并最终组合
运行:
python scripts/build_final_portfolio_report.py--capital 1000000如果方向袖输出到results/camp_timing,用:
python scripts/build_final_portfolio_report.py--capital 1000000--camp results\camp_timing\portfolio_plan.csv--arbitrage results\arbitrage\pair_portfolio_plan.csv--out-dirresults\final_timing如果使用最新三袖结构,用:
python scripts/build_final_split_portfolio_report.py--capital 1000000输出:
results/final/final_portfolio_report.mdresults/final/camp_sleeve.csvresults/final/arbitrage_sleeve.csv
当前基准合计保证金约994,526元,使用率约99.45%。解释时要提醒:方向组合和套利组合是两个资金袖独立计算,实盘前需要在交易系统层做净头寸汇总,尤其P棕榈油同时出现在方向组合和Y_P套利里。
当前 timing 合计保证金约997,536元,使用率约99.75%。解释时要提醒:M豆粕同时出现在用户必选方向袖和B_M套利袖,这是用户必选导致的保留重复;其它套利腿已从方向袖排除。
最新三袖 timing 合计保证金约994,629元,使用率约99.46%。解释时要提醒:其他40万普通期货袖已排除套利腿和必选品种;M豆粕因用户指定为必选,仍与B_M套利袖重叠。
指标解释
beta:单品种或价差相对组合基准的系统性风险暴露。alpha:相对基准的超额收益估计。risk_contribution:按实际手数后的风险贡献,不是保证金占比。spread_half_life_days:价差偏离均值后回归一半所需天数。spread_zscore_252:当前价差相对最近 252 日均值偏离几个标准差。pair_score:综合腿间相关、成交量、价差波动、价差 beta 和半衰期的排序分。
回复用户时
回复要包含:
- 数据是否已更新、多少品种/套利对入模。
- 40 万必选普通期货袖的品种、合约、手数和保证金。
- 40 万其他普通期货袖的品种、合约、手数和保证金。
- 20 万套利组合的套利对、两腿合约、组数和保证金。
- 最终三袖报告路径:
results/final_timing_split/final_split_portfolio_report.md。 - 如果用户指定必选品种,说明哪些品种因必选保留,哪些套利腿被排除以避免重复。
- 风险提示:保证金和手续费来自
fee.xlsx,实盘还要做净头寸汇总、交易所套利保证金规则确认和滑点/手续费复核。
最终 timing 组合报告:40万必选 + 40万其他 + 20万套利
账户资金:1,000,000 元。
必选普通期货袖实际保证金:399,209 元。
其他普通期货袖实际保证金:396,510 元。
跨品种套利袖实际保证金:198,910 元。
合计实际保证金:994,629 元,使用率 99.46%。
去重说明:其他40万普通期货袖已排除套利腿和必选品种;M豆粕因用户指定为必选,仍与B_M套利袖重叠。实盘前需要在交易系统层做净头寸汇总。
重复检查
| 检查项 | 重复品种 |
|---|---|
| 必选40与套利20 | M |
| 其他40与套利20 | 无 |
| 必选40与其他40 | 无 |
40万必选普通期货袖
| 品种 | 合约 | 分类 | 手数 | 单手保证金 | 实际保证金 | beta | alpha | 风险贡献 |
|---|---|---|---|---|---|---|---|---|
| EB 苯乙烯 | eb2607 | 化工期货 | 10 | 5818 | 58175 | 1.44 | -1.31% | 18.8% |
| V PVC | v2609 | 化工期货 | 25 | 2804 | 70111 | 1.22 | -9.11% | 18.1% |
| JD 鸡蛋 | jd2607 | 农产品期货 | 28 | 2616 | 73245 | 0.42 | 0.80% | 21.0% |
| M 豆粕 | m2609 | 农产品期货 | 44 | 2138 | 94063 | 0.63 | -0.96% | 19.9% |
| AL 铝 | al2606 | 有色金属期货 | 7 | 14802 | 103614 | 0.90 | 4.58% | 22.2% |
40万其他普通期货袖
| 品种 | 合约 | 分类 | 手数 | 单手保证金 | 实际保证金 | beta | alpha | 风险贡献 |
|---|---|---|---|---|---|---|---|---|
| CU 铜 | cu2606 | 有色金属期货 | 1 | 64170 | 64170 | 0.96 | 7.72% | 23.3% |
| TL 三十年期国债 | TL2606 | 金融期货 | 5 | 39501 | 197505 | -0.12 | 4.23% | 15.5% |
| RU 天然橡胶 | ru2609 | 化工期货 | 2 | 19586 | 39171 | 1.11 | 0.90% | 18.6% |
| PG 液化石油气 | pg2607 | 能源期货 | 2 | 19027 | 38054 | 1.39 | 13.25% | 26.2% |
| CF 棉花 | CF609 | 农产品期货 | 10 | 5761 | 57610 | 0.83 | -1.50% | 16.3% |
20万跨品种套利袖
| 套利对 | 合约A | 合约B | 手数 | 每组保证金 | 实际保证金 | 腿间相关 | hedge beta | 价差zscore | 风险贡献 |
|---|---|---|---|---|---|---|---|---|---|
| 豆油-棕榈油 | y2609 | p2609 | 3 | 5986 | 17957 | 0.816 | 0.594 | -0.48 | 20.1% |
| 玉米-玉米淀粉 | c2607 | cs2607 | 59 | 1623 | 95757 | 0.682 | 0.499 | -0.25 | 26.9% |
| 塑料-聚丙烯 | l2609 | pp2609 | 10 | 4458 | 44578 | 0.901 | 0.876 | -2.83 | 25.2% |
| 豆二-豆粕 | b2607 | m2609 | 19 | 2138 | 40618 | 0.660 | 0.778 | -1.20 | 27.8% |
文件索引
| 文件 | 内容 |
|---|---|
results/camp_mandatory40/portfolio_plan.csv | 40万必选普通期货袖明细 |
results/camp_other40/portfolio_plan.csv | 40万其他普通期货袖明细 |
results/arbitrage/pair_portfolio_plan.csv | 20万套利袖明细 |
results/final_timing_split/final_split_portfolio_report.md | 本最终组合报告 |