CAMP和风险平价联用下的投资组合构建【skills】
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 --start 2020-01-01 --end 2026-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-dir results\camp_mandatory40
40 万其他袖命令:
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-dir results\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-dir results\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 |
本最终组合报告 |
经过调整,考虑过流动性和操作难易度,以及对冲的需要;
一键组合汇总
账户资金:1,000,000 元。
必选袖保证金:497,941 元。
其他袖保证金:297,984 元。
套利袖保证金:197,528 元。
合计保证金:993,454 元,使用率 99.35%。
资金袖汇总
| 资金袖 | 实际保证金 | 资金权重 | 统一风险贡献 |
|---|---|---|---|
| arbitrage20 | 197528 | 19.88% | 3.78% |
| mandatory40 | 497941 | 50.12% | 67.24% |
| other40 | 297984 | 29.99% | 28.98% |
必选方向袖
| 品种 | 合约 | 手数 | 单手保证金 | 实际保证金 | 风险贡献(袖内) |
|---|---|---|---|---|---|
| FG 玻璃 | FG609 | 37 | 2098 | 77626 | 19.09% |
| SA 纯碱 | SA609 | 32 | 2185 | 69926 | 19.64% |
| JM 焦煤 | jm2609 | 8 | 8946 | 71568 | 22.05% |
| RU 天然橡胶 | ru2609 | 6 | 19586 | 117513 | 19.24% |
| CF 棉花 | CF609 | 28 | 5761 | 161308 | 19.97% |
其他方向袖
| 品种 | 合约 | 手数 | 单手保证金 | 实际保证金 | 风险贡献(袖内) |
|---|---|---|---|---|---|
| M 豆粕 | m2609 | 58 | 2138 | 123992 | 35.91% |
| V PVC | v2609 | 33 | 2804 | 92547 | 30.41% |
| EB 苯乙烯 | eb2607 | 14 | 5818 | 81445 | 33.68% |
套利袖
| 套利对 | 合约A | 合约B | 组数 | 每组保证金 | 实际保证金 | 风险贡献(袖内) |
|---|---|---|---|---|---|---|
| Y_P 豆油-棕榈油 | y2609 | p2609 | 33 | 5986 | 197528 | 100.00% |
资产级统一风险贡献
| 资产类型 | 资产ID | 归属袖 | 合约 | 资金权重 | 统一风险贡献 | 组合beta |
|---|---|---|---|---|---|---|
| arbitrage | Y_P | arbitrage20 | y2609 / p2609 | 19.88% | 3.78% | 0.190 |
| direction | CF | mandatory40 | CF609 | 16.24% | 13.28% | 0.818 |
| direction | EB | other40 | eb2607 | 8.20% | 9.16% | 1.117 |
| direction | FG | mandatory40 | FG609 | 7.81% | 13.02% | 1.666 |
| direction | JM | mandatory40 | jm2609 | 7.20% | 14.74% | 2.047 |
| direction | M | other40 | m2609 | 12.48% | 8.92% | 0.715 |
| direction | RU | mandatory40 | ru2609 | 11.83% | 13.02% | 1.101 |
| direction | SA | mandatory40 | SA609 | 7.04% | 13.17% | 1.871 |
| direction | V | other40 | v2609 | 9.32% | 10.90% | 1.170 |
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)