RISK-01 · USO
回撤控制 · 策略证据
查看公开成绩对应的数据标识、实际参数和收益计算记录。
运行编号d5766a06866e
最后纳入的价格日期2026-11-10
证据包生成时间(UTC)2026-11-11 10:55 UTC
计算模型模拟每日目标配置 · 第 3 版
下载以下材料,可复核记录的收益与净值。重算策略决策需使用一致的原始输入,重新下载的行情可能不同。这里记录的是模拟仓位,不是券商成交。
下载复核材料
仅在点击下载时加载并校验压缩文件。负权重表示空头敞口;浏览器不会执行归档代码。
1. 下载完整复核包
下载上方 Python 工具后运行此命令。工具校验共享文件并生成 replay.zip,无需克隆代码仓库。
python e0543584b55263609cc8fd38cd032cb8432af6c2b48da3f53599e6e68c922f59.py https://quantarenas.com/data/evidence/runs/d5766a06866e997f7c85f178af31154a4d8123f5f270d602e3b4da63e9fd94e4/manifest.json --bundle replay.zip2. 复核收益计算
解压 replay.zip,在解压目录用 Python 运行。仅需标准库,即可校验已记录权重、收益贡献和净值;此步骤不重算策略决策。
python scripts/replay_evidence.py data/evidence/runs/d5766a06866e997f7c85f178af31154a4d8123f5f270d602e3b4da63e9fd94e4/manifest.json3. 获取并比对输入
在解压目录中使用记录的 Python 版本并安装锁定依赖。此命令将行情输入下载到本地,报告 inputHashMatches。只有哈希一致才能支持精确重算;供应商修订的数据可能不匹配。也可自行提供一致的原始快照,命名为 private-input.json。
python -m pip install -r requirements-lock.txt
python scripts/recompute_evidence.py data/evidence/runs/d5766a06866e997f7c85f178af31154a4d8123f5f270d602e3b4da63e9fd94e4/manifest.json --fetch-input private-input.json4. 重算原始策略
需要完全一致的原始输入快照和记录的依赖版本,才能运行归档策略并重新滚动选参。原始行情输入不公开;重新下载的数据如有修订,将无法通过哈希匹配,不能声称精确复现。
python scripts/recompute_evidence.py data/evidence/runs/d5766a06866e997f7c85f178af31154a4d8123f5f270d602e3b4da63e9fd94e4/manifest.json --input private-input.json收益计算假设
当日收益使用前一日收盘时的目标仓位计算;新的目标仓位在当日收盘时确定。这是模拟收盘价模型,不是实际测得的成交价格。
- 现金余额权重
- 现金权重等于一减去净资产权重;使用空头或杠杆时,现金可能超过百分之百或为负。
- 决策时间
- 目标权重使用截至当日收盘的行情;前一日目标权重获得本日收盘到收盘的收益。
- 交易费用(基点)
- 0
- 成交假设
- 模拟每日目标配置,不是券商订单或成交;未计融资和借券费用。
- 模拟调仓换手
- 将目标权重与当日收益后漂移的权重比较,按差的绝对值求和;表示收盘时风险资产单边调仓金额占交易前净值的比例。
- 收益区间
- 将各资产的前一日目标权重乘以本日收盘到收盘的收益,再求和;现金收益为零。
- 目标权重变化
- 各资产新旧目标权重差的绝对值之和,仅衡量策略目标变化。
- 滚动选参切换
- 候选策略保留其假设历史状态;测试段首日收益使用此前已发布的目标权重。
实际参数
{
"active": {
"lookback": 252,
"max_drawdown": 0.12,
"min_position": 0.1,
"scale": 0.5
},
"defaults": {
"lookback": 252,
"max_drawdown": 0.1,
"min_position": 0.1,
"scale": 0.5
}
}滚动前推选参记录
默认参数或首次滚动前推之前的历史不是样本外证据。各折分别记录训练和测试边界;选中的候选规则保留自身的假设状态。
1 · 2013-01-04T00:00:00 → 2013-07-03T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": -0.7589613756225174,
"run": 0,
"testEnd": "2013-07-03T00:00:00",
"testStart": "2013-01-04T00:00:00",
"trainEnd": "2013-01-03T00:00:00",
"trainStart": "2010-01-04T00:00:00"
}2 · 2013-07-05T00:00:00 → 2014-01-03T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": -0.36480415089678264,
"run": 0,
"testEnd": "2014-01-03T00:00:00",
"testStart": "2013-07-05T00:00:00",
"trainEnd": "2013-07-03T00:00:00",
"trainStart": "2010-07-06T00:00:00"
}3 · 2014-01-06T00:00:00 → 2014-07-03T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": -0.4893249723476777,
"run": 0,
"testEnd": "2014-07-03T00:00:00",
"testStart": "2014-01-06T00:00:00",
"trainEnd": "2014-01-03T00:00:00",
"trainStart": "2011-01-06T00:00:00"
}4 · 2014-07-07T00:00:00 → 2015-01-07T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": -0.2698020865592405,
"run": 0,
"testEnd": "2015-01-07T00:00:00",
"testStart": "2014-07-07T00:00:00",
"trainEnd": "2014-07-03T00:00:00",
"trainStart": "2011-07-07T00:00:00"
}5 · 2015-01-08T00:00:00 → 2015-07-08T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": -0.7372010064704292,
"run": 0,
"testEnd": "2015-07-08T00:00:00",
"testStart": "2015-01-08T00:00:00",
"trainEnd": "2015-01-07T00:00:00",
"trainStart": "2012-01-09T00:00:00"
}6 · 2015-07-09T00:00:00 → 2016-01-08T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": -0.46694714657727404,
"run": 0,
"testEnd": "2016-01-08T00:00:00",
"testStart": "2015-07-09T00:00:00",
"trainEnd": "2015-07-08T00:00:00",
"trainStart": "2012-07-09T00:00:00"
}7 · 2016-01-11T00:00:00 → 2016-07-11T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": -0.5475053714161969,
"run": 0,
"testEnd": "2016-07-11T00:00:00",
"testStart": "2016-01-11T00:00:00",
"trainEnd": "2016-01-08T00:00:00",
"trainStart": "2013-01-11T00:00:00"
}8 · 2016-07-12T00:00:00 → 2017-01-12T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": -0.8121288304753538,
"run": 0,
"testEnd": "2017-01-12T00:00:00",
"testStart": "2016-07-12T00:00:00",
"trainEnd": "2016-07-11T00:00:00",
"trainStart": "2013-07-12T00:00:00"
}9 · 2017-01-13T00:00:00 → 2017-07-13T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": -0.46718185677094304,
"run": 0,
"testEnd": "2017-07-13T00:00:00",
"testStart": "2017-01-13T00:00:00",
"trainEnd": "2017-01-12T00:00:00",
"trainStart": "2014-01-13T00:00:00"
}10 · 2017-07-14T00:00:00 → 2018-01-12T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": -1.2399167208018496,
"run": 0,
"testEnd": "2018-01-12T00:00:00",
"testStart": "2017-07-14T00:00:00",
"trainEnd": "2017-07-13T00:00:00",
"trainStart": "2014-07-14T00:00:00"
}11 · 2018-01-16T00:00:00 → 2018-07-16T00:00:00
{
"config": {
"lookback": 252,
"max_drawdown": 0.12,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": 0.2398466424486132,
"run": 5,
"testEnd": "2018-07-16T00:00:00",
"testStart": "2018-01-16T00:00:00",
"trainEnd": "2018-01-12T00:00:00",
"trainStart": "2015-01-16T00:00:00"
}12 · 2018-07-17T00:00:00 → 2019-01-17T00:00:00
{
"config": {
"lookback": 252,
"max_drawdown": 0.12,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": 0.3724160588955318,
"run": 5,
"testEnd": "2019-01-17T00:00:00",
"testStart": "2018-07-17T00:00:00",
"trainEnd": "2018-07-16T00:00:00",
"trainStart": "2015-07-17T00:00:00"
}13 · 2019-01-18T00:00:00 → 2019-07-18T00:00:00
{
"config": {
"lookback": 302,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": 0.31650293084657005,
"run": 6,
"testEnd": "2019-07-18T00:00:00",
"testStart": "2019-01-18T00:00:00",
"trainEnd": "2019-01-17T00:00:00",
"trainStart": "2016-01-19T00:00:00"
}14 · 2019-07-19T00:00:00 → 2020-01-17T00:00:00
{
"config": {
"lookback": 302,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": 0.22323052554624404,
"run": 6,
"testEnd": "2020-01-17T00:00:00",
"testStart": "2019-07-19T00:00:00",
"trainEnd": "2019-07-18T00:00:00",
"trainStart": "2016-07-19T00:00:00"
}15 · 2020-01-21T00:00:00 → 2020-07-21T00:00:00
{
"config": {
"lookback": 252,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": 0.20656429236749216,
"run": 3,
"testEnd": "2020-07-21T00:00:00",
"testStart": "2020-01-21T00:00:00",
"trainEnd": "2020-01-17T00:00:00",
"trainStart": "2017-01-23T00:00:00"
}16 · 2020-07-22T00:00:00 → 2021-01-22T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": 0.03325652413284273,
"run": 0,
"testEnd": "2021-01-22T00:00:00",
"testStart": "2020-07-22T00:00:00",
"trainEnd": "2020-07-21T00:00:00",
"trainStart": "2017-07-24T00:00:00"
}17 · 2021-01-25T00:00:00 → 2021-07-23T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": -0.4823767278438117,
"run": 0,
"testEnd": "2021-07-23T00:00:00",
"testStart": "2021-01-25T00:00:00",
"trainEnd": "2021-01-22T00:00:00",
"trainStart": "2018-01-25T00:00:00"
}18 · 2021-07-26T00:00:00 → 2022-01-26T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": 0.037380296209378605,
"run": 0,
"testEnd": "2022-01-26T00:00:00",
"testStart": "2021-07-26T00:00:00",
"trainEnd": "2021-07-23T00:00:00",
"trainStart": "2018-07-26T00:00:00"
}19 · 2022-01-27T00:00:00 → 2022-07-27T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": 0.4762611485754315,
"run": 0,
"testEnd": "2022-07-27T00:00:00",
"testStart": "2022-01-27T00:00:00",
"trainEnd": "2022-01-26T00:00:00",
"trainStart": "2019-01-28T00:00:00"
}20 · 2022-07-28T00:00:00 → 2023-01-27T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.12,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": 0.6344650320384112,
"run": 2,
"testEnd": "2023-01-27T00:00:00",
"testStart": "2022-07-28T00:00:00",
"trainEnd": "2022-07-27T00:00:00",
"trainStart": "2019-07-29T00:00:00"
}21 · 2023-01-30T00:00:00 → 2023-07-28T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": 0.5908351145142529,
"run": 0,
"testEnd": "2023-07-28T00:00:00",
"testStart": "2023-01-30T00:00:00",
"trainEnd": "2023-01-27T00:00:00",
"trainStart": "2020-01-30T00:00:00"
}22 · 2023-07-31T00:00:00 → 2024-01-31T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.12,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": 0.7591240609354174,
"run": 2,
"testEnd": "2024-01-31T00:00:00",
"testStart": "2023-07-31T00:00:00",
"trainEnd": "2023-07-28T00:00:00",
"trainStart": "2020-07-31T00:00:00"
}23 · 2024-02-01T00:00:00 → 2024-08-01T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.12,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": 0.6450153166027388,
"run": 2,
"testEnd": "2024-08-01T00:00:00",
"testStart": "2024-02-01T00:00:00",
"trainEnd": "2024-01-31T00:00:00",
"trainStart": "2021-02-01T00:00:00"
}24 · 2024-08-02T00:00:00 → 2025-01-31T00:00:00
{
"config": {
"lookback": 252,
"max_drawdown": 0.12,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": 0.3731046293712486,
"run": 5,
"testEnd": "2025-01-31T00:00:00",
"testStart": "2024-08-02T00:00:00",
"trainEnd": "2024-08-01T00:00:00",
"trainStart": "2021-08-02T00:00:00"
}25 · 2025-02-03T00:00:00 → 2025-08-01T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": -0.11815227399396327,
"run": 0,
"testEnd": "2025-08-01T00:00:00",
"testStart": "2025-02-03T00:00:00",
"trainEnd": "2025-01-31T00:00:00",
"trainStart": "2022-02-03T00:00:00"
}26 · 2025-08-04T00:00:00 → 2026-02-04T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": -0.43319223874220086,
"run": 0,
"testEnd": "2026-02-04T00:00:00",
"testStart": "2025-08-04T00:00:00",
"trainEnd": "2025-08-01T00:00:00",
"trainStart": "2022-08-04T00:00:00"
}27 · 2026-02-05T00:00:00 → 2026-08-05T00:00:00
{
"config": {
"lookback": 202,
"max_drawdown": 0.08000000000000002,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": -0.3934642743198604,
"run": 0,
"testEnd": "2026-08-05T00:00:00",
"testStart": "2026-02-05T00:00:00",
"trainEnd": "2026-02-04T00:00:00",
"trainStart": "2023-02-06T00:00:00"
}28 · 2026-08-06T00:00:00 → 2026-11-10T00:00:00
{
"config": {
"lookback": 252,
"max_drawdown": 0.12,
"min_position": 0.1,
"scale": 0.5
},
"isSharpe": 0.4019646641457099,
"run": 5,
"testEnd": "2026-11-10T00:00:00",
"testStart": "2026-08-06T00:00:00",
"trainEnd": "2026-08-05T00:00:00",
"trainStart": "2023-08-07T00:00:00"
}运行摘要
| 价格观测数 | 4240 |
|---|---|
| 期末净值 | 0.711829 |
| 累计收益 | -28.82% |
| 目标权重变化天数 | 2017 |
| 累计目标权重变化 | 13435.76% |
| 累计模拟调仓换手 | 13125.89% |
| 目标总敞口 | 80.99% |
| 目标净敞口 | 80.99% |
| 目标现金余额权重 | 19.01% |
| 生效总敞口 | 83.96% |
| 生效净敞口 | 83.96% |
| 生效现金余额权重 | 16.04% |
最新资产权重
| 市场 | 目标 | 生效 |
|---|---|---|
| USO | 80.99% | 83.96% |
目标权重变化衡量策略目标本身的变化。模拟调仓换手还计入收益产生的权重漂移,因此目标不变也可能需要调仓。现金为扣除净敞口后的带符号余额。
相同输入下的计算方式差异
{
"changedReturnDays": 5,
"correctedTerminalEquity": 0.7118293287371148,
"legacyTerminalEquity": 0.7219900776861915,
"maximumDailyReturnDelta": 0.012596982483559175,
"model": "coherent-lagged-target-v2",
"terminalEquityDelta": -0.010160748949076703
}完整运行标识与技术记录
{
"inputHash": "a44b8aee0f7bb68dc53a947621eaac57e8bf44b36db5cd088fd33cb61e9f4c3c",
"ruleVersion": null,
"sameInputAccountingCorrection": {
"changedReturnDays": 5,
"correctedTerminalEquity": 0.7118293287371148,
"legacyTerminalEquity": 0.7219900776861915,
"maximumDailyReturnDelta": 0.012596982483559175,
"model": "coherent-lagged-target-v2",
"terminalEquityDelta": -0.010160748949076703
},
"sourceHashes": {
"scripts/build_data.py": "e3dcc988d80a46f7f5a24396bb4ffcac240da8e1249de18a5a282eacccc52320",
"scripts/enrich_metrics.py": "05611fa9c6de11c261f631cdd8a3314212e7c567f24878a396d057d88752051c",
"scripts/evidence_v2.py": "c4c6523dbbb9513464dca25150f42cbaac7cbfd71bd8afdc855659b2c763d72e",
"scripts/performance_io.py": "42282ff10697ceb56dc7ca2edf79538c2e1e8344da8e6d69ceac4d16ba5c668a",
"scripts/recompute_evidence.py": "a7f59004cb7c356940ee3748439024cd83cac434acb90c0bead2ae19f81be127",
"scripts/replay_evidence.py": "4e04d937c19b9040da6dc9c3c80ac22181b45ffba0131f3a63a4def95865fad6",
"scripts/requirements.txt": "7424048072a2cf3d8c3b4e4f37a5b36c1e7ff3732d893c43295d17d85c5f97d1",
"scripts/strategies/drawdown_control.py": "11baa4a4c265aab0291fa45313bb985857d5018472e666fdf29e0d1e30b58506",
"scripts/strategy_evidence.py": "a3a93d62a84298470af3eb8e7d74e9f0ca0d29cf672d1d2d5449b41904e3d58c"
},
"runId": "d5766a06866e997f7c85f178af31154a4d8123f5f270d602e3b4da63e9fd94e4",
"generatedAt": "2026-11-11T10:55:31.449953+00:00",
"executionModel": {
"cash": "1 - sum(weights); residual may exceed one or be negative for shorts/leverage.",
"decision": "Target weights use bars through close t; previous targets earn (t-1,t].",
"feesBasisPoints": 0,
"fills": "Synthetic daily target allocations, not broker orders or fills; financing/borrow costs omitted.",
"id": "synthetic-daily-target-v3",
"rebalanceTurnover": "Sum(abs(target[t] - target[t-1]*(1+assetReturn[t])/(1+grossReturn[t]))); one-way risky notional at close t after returns, divided by pre-trade equity.",
"return": "Sum of previous target weight times each asset close-to-close return; cash return is zero.",
"targetChange": "Sum(abs(target[t] - target[t-1])); changes in rule targets only.",
"wfo": "Candidate retains its own hypothetical state; first test return uses previous published target."
}
}