试过一百个策略才选第一名,折减夏普怎样把试验台账算进去
试过一百个候选后只拿冠军夏普与零比较,会隐藏选优带来的膨胀。折减夏普DSR把试验SR离散程度、有效独立试验数、选中收益的样本长度、偏度和峰度放进同一公式。本页先把完整台账写出来,再演示代入;由于只有二十四期且构造候选完全相关,所有结果都只能作公式压力情景,不能称真实策略显著性的证明。
一百次台账从哪里来
构造二十四个日频超额收益,以百分数点计,已假定减去同频无风险收益。它们不是股票价格,也不做日收益复利。第i次试验把同一基序列每一期都加上(i-1-49.5)*0.01,i从一到一百。每次对应一个已登记偏移配置,候选虽多,但形状完全相同。这个故意退化的例子能检查台账分母与相关性估计,不能模拟一百个独立真实策略。
日SR等于日均值除日收益样本标准差,后者分母为T-1;年化展示只把日SR乘sqrt(252)。所有DSR代入仍用日SR、日频试验SR方差、日频SR0与T=24,绝不能把年化SR塞进日频偏峰度公式而保持T不变。百分数点或小数同时缩放收益不改变SR,但混频会改变意义。
| 实验日 | 基序列超额收益百分点 | 冠军100收益百分点 |
|---|---|---|
| 1 | -3 | -2.505 |
| 2 | -1 | -0.505 |
| 3 | 0 | 0.495 |
| 4 | 1 | 1.495 |
| 5 | 2 | 2.495 |
| 6 | 1 | 1.495 |
| 7 | -2 | -1.505 |
| 8 | 3 | 3.495 |
| 9 | 0 | 0.495 |
| 10 | 2 | 2.495 |
| 11 | 1 | 1.495 |
| 12 | -1 | -0.505 |
| 13 | 2 | 2.495 |
| 14 | 0 | 0.495 |
| 15 | 1 | 1.495 |
| 16 | 3 | 3.495 |
| 17 | -2 | -1.505 |
| 18 | 2 | 2.495 |
| 19 | 0 | 0.495 |
| 20 | 1 | 1.495 |
| 21 | 2 | 2.495 |
| 22 | -1 | -0.505 |
| 23 | 4 | 4.495 |
| 24 | -2 | -1.505 |
| 试验i | 加法偏移百分点 | 日SR | 仅展示年化SR |
|---|---|---|---|
| 1 | -0.495 | 0.02567929 | 0.40764607 |
| 2 | -0.485 | 0.03118199 | 0.49499879 |
| 3 | -0.475 | 0.0366847 | 0.58235152 |
| 4 | -0.465 | 0.0421874 | 0.66970425 |
| 5 | -0.455 | 0.04769011 | 0.75705698 |
| 6 | -0.445 | 0.05319281 | 0.84440971 |
| 7 | -0.435 | 0.05869552 | 0.93176244 |
| 8 | -0.425 | 0.06419822 | 1.01911517 |
| 9 | -0.415 | 0.06970093 | 1.10646789 |
| 10 | -0.405 | 0.07520363 | 1.19382062 |
| 11 | -0.395 | 0.08070634 | 1.28117335 |
| 12 | -0.385 | 0.08620904 | 1.36852608 |
| 13 | -0.375 | 0.09171174 | 1.45587881 |
| 14 | -0.365 | 0.09721445 | 1.54323154 |
| 15 | -0.355 | 0.10271715 | 1.63058427 |
| 16 | -0.345 | 0.10821986 | 1.71793699 |
| 17 | -0.335 | 0.11372256 | 1.80528972 |
| 18 | -0.325 | 0.11922527 | 1.89264245 |
| 19 | -0.315 | 0.12472797 | 1.97999518 |
| 20 | -0.305 | 0.13023068 | 2.06734791 |
| 21 | -0.295 | 0.13573338 | 2.15470064 |
| 22 | -0.285 | 0.14123609 | 2.24205336 |
| 23 | -0.275 | 0.14673879 | 2.32940609 |
| 24 | -0.265 | 0.1522415 | 2.41675882 |
| 25 | -0.255 | 0.1577442 | 2.50411155 |
| 26 | -0.245 | 0.16324691 | 2.59146428 |
| 27 | -0.235 | 0.16874961 | 2.67881701 |
| 28 | -0.225 | 0.17425231 | 2.76616974 |
| 29 | -0.215 | 0.17975502 | 2.85352246 |
| 30 | -0.205 | 0.18525772 | 2.94087519 |
| 31 | -0.195 | 0.19076043 | 3.02822792 |
| 32 | -0.185 | 0.19626313 | 3.11558065 |
| 33 | -0.175 | 0.20176584 | 3.20293338 |
| 34 | -0.165 | 0.20726854 | 3.29028611 |
| 35 | -0.155 | 0.21277125 | 3.37763884 |
| 36 | -0.145 | 0.21827395 | 3.46499156 |
| 37 | -0.135 | 0.22377666 | 3.55234429 |
| 38 | -0.125 | 0.22927936 | 3.63969702 |
| 39 | -0.115 | 0.23478207 | 3.72704975 |
| 40 | -0.105 | 0.24028477 | 3.81440248 |
| 41 | -0.095 | 0.24578748 | 3.90175521 |
| 42 | -0.085 | 0.25129018 | 3.98910794 |
| 43 | -0.075 | 0.25679288 | 4.07646066 |
| 44 | -0.065 | 0.26229559 | 4.16381339 |
| 45 | -0.055 | 0.26779829 | 4.25116612 |
| 46 | -0.045 | 0.273301 | 4.33851885 |
| 47 | -0.035 | 0.2788037 | 4.42587158 |
| 48 | -0.025 | 0.28430641 | 4.51322431 |
| 49 | -0.015 | 0.28980911 | 4.60057703 |
| 50 | -0.005 | 0.29531182 | 4.68792976 |
| 51 | 0.005 | 0.30081452 | 4.77528249 |
| 52 | 0.015 | 0.30631723 | 4.86263522 |
| 53 | 0.025 | 0.31181993 | 4.94998795 |
| 54 | 0.035 | 0.31732264 | 5.03734068 |
| 55 | 0.045 | 0.32282534 | 5.12469341 |
| 56 | 0.055 | 0.32832805 | 5.21204613 |
| 57 | 0.065 | 0.33383075 | 5.29939886 |
| 58 | 0.075 | 0.33933345 | 5.38675159 |
| 59 | 0.085 | 0.34483616 | 5.47410432 |
| 60 | 0.095 | 0.35033886 | 5.56145705 |
| 61 | 0.105 | 0.35584157 | 5.64880978 |
| 62 | 0.115 | 0.36134427 | 5.73616251 |
| 63 | 0.125 | 0.36684698 | 5.82351523 |
| 64 | 0.135 | 0.37234968 | 5.91086796 |
| 65 | 0.145 | 0.37785239 | 5.99822069 |
| 66 | 0.155 | 0.38335509 | 6.08557342 |
| 67 | 0.165 | 0.3888578 | 6.17292615 |
| 68 | 0.175 | 0.3943605 | 6.26027888 |
| 69 | 0.185 | 0.39986321 | 6.3476316 |
| 70 | 0.195 | 0.40536591 | 6.43498433 |
| 71 | 0.205 | 0.41086862 | 6.52233706 |
| 72 | 0.215 | 0.41637132 | 6.60968979 |
| 73 | 0.225 | 0.42187402 | 6.69704252 |
| 74 | 0.235 | 0.42737673 | 6.78439525 |
| 75 | 0.245 | 0.43287943 | 6.87174798 |
| 76 | 0.255 | 0.43838214 | 6.9591007 |
| 77 | 0.265 | 0.44388484 | 7.04645343 |
| 78 | 0.275 | 0.44938755 | 7.13380616 |
| 79 | 0.285 | 0.45489025 | 7.22115889 |
| 80 | 0.295 | 0.46039296 | 7.30851162 |
| 81 | 0.305 | 0.46589566 | 7.39586435 |
| 82 | 0.315 | 0.47139837 | 7.48321708 |
| 83 | 0.325 | 0.47690107 | 7.5705698 |
| 84 | 0.335 | 0.48240378 | 7.65792253 |
| 85 | 0.345 | 0.48790648 | 7.74527526 |
| 86 | 0.355 | 0.49340919 | 7.83262799 |
| 87 | 0.365 | 0.49891189 | 7.91998072 |
| 88 | 0.375 | 0.50441459 | 8.00733345 |
| 89 | 0.385 | 0.5099173 | 8.09468617 |
| 90 | 0.395 | 0.51542 | 8.1820389 |
| 91 | 0.405 | 0.52092271 | 8.26939163 |
| 92 | 0.415 | 0.52642541 | 8.35674436 |
| 93 | 0.425 | 0.53192812 | 8.44409709 |
| 94 | 0.435 | 0.53743082 | 8.53144982 |
| 95 | 0.445 | 0.54293353 | 8.61880255 |
| 96 | 0.455 | 0.54843623 | 8.70615527 |
| 97 | 0.465 | 0.55393894 | 8.793508 |
| 98 | 0.475 | 0.55944164 | 8.88086073 |
| 99 | 0.485 | 0.56494435 | 8.96821346 |
| 100 | 0.495 | 0.57044705 | 9.05556619 |
偏度峰度与试验离散程度
冠军是第一百次,因为所有试验尺度相同而偏移递增。它的日均值约1.03666667个百分点,样本标准差约1.81728815,日SR约0.57044705。偏度采用中心三阶矩除中心二阶矩的二分之三次幂,即m3/m2^(3/2);峰度采用m4/m2²,是原始峰度,正态参考值为三,不是减三后的超额峰度。这里两项中心矩都用T分母,未作小样本无偏校正,须把这一约定连同公式交给复核者。
算得偏度约负0.13502765,原始峰度约2.24102910。全一百个日SR的样本方差约0.02548546;若漏记前九十次,仅保留末十个相近SR,方差降至约0.00027756。冠军本身的收益没有改变,台账对它的解释已经改变。漏记试验不只是少了N,也会压缩试验SR分布,两个渠道都应展示。
有效试验数需要估计,不能等同运行次数
原论文附录讨论用平均相关性近似独立试验数,插值写作N_hat=rho+(1-rho)*M。程序从全部候选收益两两计算相关,共4950对;本例加常数不改变相关,平均rho为一,因此插值结果恰为一。这个结果不是说研究者没有选择偏差,而是说明如此退化的候选集合无法支持把一百次当作一百个独立SR噪声抽样的假设。
实际候选可能高度相关且不是同一正态SR族,相关估计本身也会不稳。此时应保留试验列表、估计依据和敏感性,不应该为了“更保守”就把名义运行次数冒充有效N。以下N=5、20、100仅是明确施加的压力情景,不是从这份完全相关矩阵估出来的结果。N=1时极值近似中的正态分位表达不适用,本页专设SR0=0的退化PSR对照,不把它偷叫原公式精确的DSR估计。
选优基准与DSR中间量
对N大于一,令Euler常数gamma约0.5772156649,maxZ=(1-gamma)Phi逆(1-1/N)+gammaPhi逆(1-1/(N*e))。零均值试验族下SR0=sqrt(跨试验SR方差)maxZ。冠军的不确定性分母平方项D=1-skewSR+(kurtosis_raw-1)*SR²/4,z=(SR-SR0)*sqrt(T-1)/sqrt(D),最后取Phi(z)。D若非正、尺度为零或T不足,不应输出一个看起来正常的概率。
| 情景 | 假定有效N | 日SR方差 | 正态分位1 | 正态分位2 | 极值maxZ | 日SR0 | 分母平方项D | z | Phi(z)代入值 |
|---|---|---|---|---|---|---|---|---|---|
| 相关退化边界 | 1 | 0.02548546 | 空(null) | 空(null) | 0 | 0 | 1.17798689 | 2.52062957 | 0.99414275 |
| 完整台账_N5 | 5 | 0.02548546 | 0.84162123 | 1.44966566 | 1.192594 | 0.1903877 | 1.17798689 | 1.67936505 | 0.95345954 |
| 完整台账_N20 | 20 | 0.02548546 | 1.64485363 | 2.08810966 | 1.90070795 | 0.3034322 | 1.17798689 | 1.17985629 | 0.88097131 |
| 完整台账_N100 | 100 | 0.02548546 | 2.32634787 | 2.68021044 | 2.53060289 | 0.40398968 | 1.17798689 | 0.73552379 | 0.76898972 |
| 漏记90次_N10 | 10 | 0.00027756 | 1.28155157 | 1.78924176 | 1.5745983 | 0.02623323 | 1.17798689 | 2.40471304 | 0.99190742 |
完整台账且假定N=100时,SR0约0.40398968,代入Phi(z)约0.76898972;漏记九十次并假定N=10,SR0约0.02623323,代入值约0.99190742。后一数字更高不能证明漏记后的策略更可靠,展示的是把选择环境缩小会怎样改变公式。这里的极值正态近似、独立有效次数和短样本矩估计都没有得到实证验证,尤其不能据0.99宣称真实优势概率已经达到百分之九十九。
复核和使用边界
复核时先由基序列和偏移公式重建一百列,再核冠军与全台账SR方差;随后独立算中心矩,确认峰度没有误减三。再核年化列只出现在展示,分位函数输入严格在零一之间。最后对照完整与漏记情景,确认冠军收益完全相同,变化仅来自台账方差和假定N。这样才能发现将收益方差误当试验SR方差、将一百个随机种子误当独立策略的混淆。
Bailey与López de Prado的DSR原论文在2014年7月版本的式一、式二与附录A.3讨论极值基准、非正态矩及有效试验数;本页实际使用这些方法章节,不声称全文所有实验已复现。论文不保证这份二十四期退化构造具有可靠推断效力。DSR代入也不补救标签泄漏、成本漏记、未知研究尝试或结构突变,真实策略需要另行验证这些条件。
小样本矩与相关收益不能被忽略
DSR公式中的样本长度不是策略运行次数,二十四是冠军收益的观测期数,一百是候选试验台账长度,两者不能交换。日收益若存在自相关,标准SR估计误差公式并不因加入偏峰度就自动具备HAC修正;不能随意把T减半,便声称依赖问题已经处理。应根据具体推断方法评估误差结构,或将结果明确降为代入演示。
偏度为负会改变分母,峰度偏离三也会改变分母,但二十四期估计的高阶矩很不稳定,几条极端收益可能主导它们。把异常值删除后再算会同时改变冠军SR与矩估计,也成为一次新的研究选择。若使用缩尾或稳健矩,必须把方法与原公式适配问题说清,不能直接把稳健统计量塞入同一名称而不说明。
本例完全相关但平均收益随常数平移的构造,尤其不满足将一百个SR看成同一零均值正态噪声族的经济叙事。有效N插值的退化暴露的正是这个问题。保存这些失效条件,比拿高代入值作为通过标记更有教学价值;任何压力情景数字都不应用于真实资金决策。
继续核对研究流程时,可回到时序交叉验证母题;遇到相邻任务,再分别查看因子多重检验Holm与BH、PBO组合对称交叉验证。本文的滚动验证工具链接仅作基础流程说明,新增审计和统计计算由本页独立表格与模型交付。
道积君编辑组,AI辅助编写与核算。本文为构造教学实验,来源说明方法,数字由明示输入计算,不代表真实策略、收益预测或统计审定。
复算资料
本篇编号DJ4-063。下载Python复算脚本(文本)与构造输入输出JSON,按编号核对本篇。脚本改存为.py后可用Python标准库运行,数据不是实际用户记录。