# MACD柱颜色日线择时回测报告

## 核心回答（仅限本次已回测样本）

区间 2015-01-05 至 2026-09-30，股票 299 只，参数(12,26,9)，含成本。
“大部分”=严格超过50%，结果全部由程序计算。单股赚钱占比指每只独立100万账户；月/年指等权组合账户。
单笔口径：单股汇总往返胜率34.46%，结论“否”；组合完整持仓周期胜率31.74%，结论“否”。

赚钱股票口径：178/299只单股账户期末收益为正（59.53%），结论“是”。

多数月份/年份口径：组合完整月份75/141盈利（53.19%），结论“是”；完整年份6/11盈利（54.55%），结论“是”。最近不完整年份单列，不能与全年直接对比。

上述“是/否”均为**有条件的前复权价格代理历史样本结果**，不代表未来或真实券商账户的保证。
总体判定：**有条件，不能据此确认长期账户“大部分时间赚钱”**。组合期末净值908528.03元，相对初始1000000.00元，总收益-9.15%；即使盈利月份或年份略占多数，也不保证累计收益为正。单笔胜率不足一半可以与多数股票最终赚钱同时存在，原因需结合盈亏大小而不是只数次数。
```csv
definition,numerator,denominator,fraction,majority,wilson_low,wilson_high
portfolio_closed_position_cycle_win_rate,6969,21958,0.31737863,False,0.31125458,0.32356657
single_pooled_roundtrip_win_rate,9664,28042,0.34462592,False,0.33908514,0.35020926
profitable_single_stock_fraction,178,299,0.59531773,True,0.53881493,0.64940236
portfolio_positive_month_fraction,75,141,0.53191489,True,0.44980249,0.61233442
portfolio_positive_year_fraction,6,12,0.5,False,0.2537816,0.7462184
portfolio_positive_complete_month_fraction,75,141,0.53191489,True,0.44980249,0.61233442
portfolio_positive_complete_year_fraction,6,11,0.54545455,True,0.28009154,0.78728728
single_accounts_with_majority_positive_months,0,299,0,False,0,0.012684719
single_accounts_with_majority_positive_years,98,299,0.3277592,False,0.27703243,0.38285562
```

这些样本内比例不能保证未来“大部分时间盈利”。当前成分股回溯、历史ST缺失、复权账本代理和同收盘执行等限制使结果只能归为**有条件的研究证据**；不能称作严格可执行的历史沪深300实盘验证。

## 假设与数据口径
以下费用与资金文字为默认参数说明；实际参数若改变，以manifest.json的config及各笔账本为准。

1. 红柱为 DIF−DEA>0，绿柱为 DIF−DEA<0，零柱不构成相反颜色；跨零比较严格按用户定义。EMA adjust=False，从上市第一笔价格初始化；不将柱乘 2（不影响符号）。
2. 当前沪深300快照固定股票池：**存在幸存者与前视选股偏差**；不等同历史动态沪深300。若提供历史 metadata，则逐日限制 member 和 ST；缺失区间不得买入。默认只能排除当前名称含 ST 的股票，不能保证剔除历史 ST。
3. 前复权收盘计算信号与持仓市值；实际未复权价格确定整手和成交费用。为避免用历史前复权价计算100股与最低佣金，持仓使用归一化单位=实际股数×原价/前复权价。公司行动以复权总收益代理隐含调整持股，未精确建模现金分红、除权到账日、红利税、配股；不是逐股真实券商账本。
4. 同日最终收盘确认后按同日收盘价成交是理想化、含交易时点前视的假设，不能直接实盘执行。每日等权再平衡也使用当日收盘市值。需另行验证次日开盘成交策略，才可讨论可执行性。
5. 佣金双边0.03%且每笔最少5元，卖出印花税0.05%，过户费双边0.001%，滑点每边0.1%；固定应用于全历史，未套用历史费率变更；无风险收益率0、252日年化。免成本实验同时关闭佣金、税费和滑点。
6. 初始资金100万；单股全仓模式对池内每只股票独立投入100万，不能相加视作一个100万账户。组合目标对有效信号持仓每日等权，现金不进入权重分母，但剩余现金计入净值、收益为0。受整手和资金锁定限制，实际权重可偏离目标；再平衡增加成本。
7. 买入100股整数倍；归一化公司行动产生的零碎剩余持股退出时允许一次卖清（简化）。买入当日不能卖出，卖出收入下一个交易日才可再买（按用户资金T+1要求的保守假设）。次日才能卖出并不保证资金使用规则与券商实盘一致。
8. 涨跌停以原始涨跌幅与板块限幅比较、0.06个百分点容差近似，保守认为收盘封板即不可买/卖；买入封板跳过至下次红柱交叉，卖出封板保持退出意图并顺延。无法据日线推断排队成交；不精确覆盖全部IPO无涨跌停阶段、特殊重新上市规则。
9. 原始无成交/缺行视为停牌，期间前复权市值前填，MACD仅在观测交易行计算，复牌首个有成交日比较上个有效交易柱；停牌期间没有可见新柱，因此不虚构跨零信号。未清仓意图等到复牌再执行；组合可能在复牌日补足已有有效信号仓位。
10. 满60个可观测交易记录才允许买入；上市初期停牌等造成交易龄口径与上市后市场交易日龄不同。数据缺失与真正停牌无法仅凭行情区分。数据下载不全默认整体失败，不自动缩小股票池。
11. 基准为同池每股初始等额预算、首个合格可交易日尝试一次买入、后续不再平衡的持有账户，执行同样费用与买入约束；首次因整手或涨停不能买入的预算留作现金，上市较晚股票的预算等到满60记录再尝试。100万无法确保购买300只股票各100股，故实际基准并非理论无整手的全投资等权指数；另输出忽略整手与成本的理论等权参考。期限末持仓按市值计入、不强制卖出。已闭合仓位周期计算交易统计，未实现持仓不计按笔胜率。
12. 组合“单笔”定义一只股票从零仓位到零仓位的完整持仓周期，包含中间再平衡实现损益；收益分母为周期内已卖出部分分摊买入成本。不是订单胜率，不与纯单股往返收益混同。
13. 市况仅用沪深300过去60交易日涨幅>10%为牛、<-10%为熊，其余震荡，标签滞后1日。市况收益为该标签日收益的连乘，非连续可投资子账户；交易胜率按入场标签归类，不代表整笔只处于该市况。
14. 年度滚动为每年初现金重置、参数预先固定、指标承接历史，年末按市值结束；是样本外视角的固定规则年度分段，不是严格未见数据的独立研究验证。年度内最后月份/年份可能不完整，另标记完整区间。
15. “大部分”阈值严格>50%，等于50%回答否；同时给Wilson胜率区间、股票占比/月/年。交易与股票高度相关，Wilson仅描述二项独立近似，不可作为可推广的显著性证明。

本次实际采集来源与差异（优先于上述默认AKShare接口口径）：
```json
{
  "source": "AKShare documented Tencent/Sina upstream; direct urllib transport fallback; old fqkline/newfqkline mirror",
  "universe_url": "https://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeData",
  "calendar": "actual CSI300 daily index dates, not a forecast exchange calendar",
  "warmup_start": "2013-01-01",
  "pct": "qfq_exact percentage change approximates exchange ex-right reference; no additive Tencent qfq used for backtest",
  "failures": [],
  "adjustment": "Sina multiplicative qfq (raw close / dated positive factor), exactly AKShare stock_zh_a_daily factor convention",
  "indicator_price": "qfq rounded to 2 decimals as AKShare Sina daily",
  "ledger_price": "unrounded multiplicative qfq",
  "factor_failures": []
}
```
本次备用缓存直接请求AKShare文档支持的腾讯原价与新浪乘法复权因子，未声称调用AKShare库。腾讯加减法前复权存在非正值，已被弃用且原响应仍保留；本次前复权=原收盘/新浪当日因子，指标价按AKShare新浪接口四舍五入至2位小数，收益计价保留未舍入精度。
EMA在2013年首笔正价格起预热，故不是从上市开始；交易龄按2013年起观测记录（2015年之前已有约两年预热，较早上市股票均满60记录）。涨跌停检查用乘法前复权精确价收益近似除权参考涨跌幅，仍需官方限价核验特殊日期。缓存日历来自沪深300实际行情交易日，最新年份完整性按12月末以前一律判为未完整。
前复权收益是含公司行动的价格代理，默认隐含分红再投资。它不等同实际股数、分红到账和红利税逐笔核验的券商账本；经济回报比加减法复权更合理，但真实分红到账前的可投资现金与持股整手仍存在近似。
逐股价格范围、最后行情日期和原价/复权收益差异见data_quality.csv；这些差异不能只凭日线认定为错误数据或真实公司行动。

## 收益、风险与交易统计
|指标|含成本MACD组合|整手含成本持有基准|
|---|---:|---:|
|总收益|-9.15%|160.28%|
|年化收益|-0.81%|8.49%|
|最大回撤|-58.08%|-33.31%|
|平均现金比例|13.16%|34.27%|
|夏普（无风险0）|0.0476|0.6048|

```csv
total_return,cagr,max_drawdown,sharpe,trades,trades_per_year,avg_holding_calendar_days,win_rate,avg_win,avg_loss,payoff_ratio,expectancy,profit_factor,flat_fraction,average_cash_fraction,positive_month_fraction,positive_year_fraction,open_end_exposure,executed_orders,blocked_buy_attempts,blocked_sell_attempts,paid_fees,slippage_amount,mode,params,costs
-0.091471968,-0.0081417249,-0.5807635,0.047610941,21958,1871.2458,20.225385,0.31737863,0.068612414,-0.038133752,1.7992568,-0.0042547997,0.982371,0,0.13157472,0.53191489,0.5,0.87024151,122401,1145,330,746946.35,492585.39,portfolio,"(12, 26, 9)",True
2.0972906,0.10113647,-0.5405611,0.62796737,24713,2106.025,20.147857,0.3483187,0.066224988,-0.035490704,1.8659812,-5.6918172e-05,1.1883083,0,0.12715833,0.61702128,0.58333333,0.89085387,165514,1338,360,0,0,portfolio,"(12, 26, 9)",False
-0.73313046,-0.10646907,-0.81740257,-0.60965511,37686,3211.5752,10.49395,0.29605158,0.048518877,-0.029759223,1.6303812,-0.0065848677,0.86336385,0,0.20825846,0.43971631,0.25,0.72279472,146792,1617,492,878875.74,536008.08,portfolio,"(6, 13, 5)",True
1.7113471,0.088718847,-0.46217169,0.60029352,47633,4059.2518,10.474986,0.34173787,0.046377834,-0.026987054,1.7185216,-0.0019030289,1.1230622,0,0.19595512,0.59574468,0.75,0.71770241,227816,2081,585,0,0,portfolio,"(6, 13, 5)",False
-0.92514742,-0.19820994,-0.94461825,-1.3690708,47568,4053.7126,7.2091532,0.27884292,0.040639744,-0.026456053,1.5361227,-0.0077468652,0.81331248,0,0.28429424,0.28368794,0.083333333,0.5497224,159896,1660,621,949186.48,552585.39,portfolio,"(5, 8, 3)",True
1.3803824,0.076707102,-0.36104098,0.54970601,69134,5891.5524,7.1721729,0.33848757,0.038636403,-0.023225382,1.6635422,-0.0022607407,1.0916074,0,0.24924479,0.57446809,0.66666667,0.59102677,274217,2464,777,0,0,portfolio,"(5, 8, 3)",False
1.6028472,0.084936331,-0.33314334,0.60476024,0,0,,,,,,,,0,0.34268204,0.56737589,0.58333333,0.81326473,,,,,,buy_hold,none,True
2.713368,0.11829206,-0.43766822,0.6311914,0,0,,,,,,,,0,0.1105729,0.56737589,0.58333333,1,,,,,,buy_hold_fractional_gross,none,False
```

单股全部结果见 single_stock_summary.csv；初始未持仓日也计入空仓比例。持仓天数为自然日。每年平均交易数按实际日历年长度算。组合按笔统计包含再平衡，持有基准的闭合笔数为0不表示没有收益。
年化超额（策略CAGR减基准CAGR）：-9.30780555%。总收益差：-169.43191319%。代价见交易次数、平均现金和成本侵蚀；在没有自相关校正与成分历史的情况下，不宣称统计显著alpha。

## 月、年收益
```csv
count,mean,std,min,25%,50%,75%,max,frequency,positive,zero,negative
141,0.00095211056,0.056874785,-0.23936014,-0.026872372,0.0034937579,0.029093717,0.20582778,month,75,0,66
12,0.0060289297,0.17723368,-0.19412011,-0.14813507,-0.017389755,0.15979562,0.32292914,year,6,0,6
141,0.00095211056,0.056874785,-0.23936014,-0.026872372,0.0034937579,0.029093717,0.20582778,complete_month,75,0,66
11,0.018890133,0.17991535,-0.19412011,-0.14531163,0.012729692,0.16084409,0.32292914,complete_year,6,0,5
```

```csv
date,return
2015-01-31,0.028385415
2015-02-28,0.028905304
2015-03-31,0.13273275
2015-04-30,0.12575814
2015-05-31,0.063122393
2015-06-30,-0.028977465
2015-07-31,-0.18113181
2015-08-31,-0.15026995
2015-09-30,-0.10159218
2015-10-31,0.036567669
2015-11-30,-0.0054621868
2015-12-31,-0.0022942494
2016-01-31,-0.23936014
2016-02-29,-0.023456659
2016-03-31,0.09078203
2016-04-30,-0.030392466
2016-05-31,0.0078131741
2016-06-30,0.0064483927
2016-07-31,0.027687552
2016-08-31,0.0034937579
2016-09-30,-0.023439484
2016-10-31,0.023654407
2016-11-30,0.039318502
2016-12-31,-0.046851209
2017-01-31,0.0063785087
2017-02-28,0.029093717
2017-03-31,-0.011056844
2017-04-30,-0.023016629
2017-05-31,-0.011523565
2017-06-30,0.036152277
2017-07-31,0.043828589
2017-08-31,0.0087836936
2017-09-30,0.033838036
2017-10-31,0.041637547
2017-11-30,0.013966793
2017-12-31,-0.016659588
2018-01-31,0.030344549
2018-02-28,-0.0027866339
2018-03-31,0.01640368
2018-04-30,-0.037499079
2018-05-31,0.0021291506
2018-06-30,-0.08302008
2018-07-31,0.015155741
2018-08-31,-0.059009267
2018-09-30,0.011572649
2018-10-31,-0.077815271
2018-11-30,0.0023761633
2018-12-31,-0.023246246
2019-01-31,0.014045532
2019-02-28,0.15690586
2019-03-31,0.017053251
2019-04-30,-0.030281212
2019-05-31,-0.073691372
2019-06-30,0.02829621
2019-07-31,0.010196665
2019-08-31,0.0038099151
2019-09-30,-0.0043392763
2019-10-31,0.012712183
2019-11-30,-0.0048882864
2019-12-31,0.078549949
2020-01-31,0.011522023
2020-02-29,0.030187302
2020-03-31,-0.069890967
2020-04-30,0.039584358
2020-05-31,-0.0052175124
2020-06-30,0.051158817
2020-07-31,0.16011998
2020-08-31,-0.014461869
2020-09-30,-0.038406469
2020-10-31,0.01791346
2020-11-30,0.088860232
2020-12-31,0.030395884
2021-01-31,0.021017393
2021-02-28,0.017949633
2021-03-31,-0.022394105
2021-04-30,0.032609999
2021-05-31,0.023683122
2021-06-30,-0.0032584651
2021-07-31,0.020485604
2021-08-31,0.03211622
2021-09-30,0.024480237
2021-10-31,-0.0079674924
2021-11-30,-0.024192416
2021-12-31,0.039970119
2022-01-31,-0.065550354
2022-02-28,0.015026104
2022-03-31,-0.076105105
2022-04-30,-0.066687827
2022-05-31,0.057845078
2022-06-30,0.075841045
2022-07-31,-0.065292801
2022-08-31,-0.015423544
2022-09-30,-0.077175048
2022-10-31,-0.042260006
2022-11-30,0.087140267
2022-12-31,-0.020453624
2023-01-31,0.05653849
2023-02-28,0.0036522244
2023-03-31,0.037137882
2023-04-30,0.0016244131
2023-05-31,-0.026872372
2023-06-30,-0.0030528066
2023-07-31,0.056668943
2023-08-31,-0.073329385
2023-09-30,-0.027137187
2023-10-31,-0.04442935
2023-11-30,-0.013850203
2023-12-31,-0.0071417968
2024-01-31,-0.060623295
2024-02-29,0.053589503
2024-03-31,-0.019232423
2024-04-30,0.018224399
2024-05-31,0.00050601211
2024-06-30,-0.026010532
2024-07-31,0.006480735
2024-08-31,-0.062390141
2024-09-30,0.20582778
2024-10-31,-0.030155887
2024-11-30,-0.032567706
2024-12-31,-0.015165334
2025-01-31,-0.031622672
2025-02-28,0.042494131
2025-03-31,-0.0093033911
2025-04-30,-0.065148399
2025-05-31,0.0061120433
2025-06-30,0.0092235693
2025-07-31,0.044429017
2025-08-31,0.054484951
2025-09-30,0.026446617
2025-10-31,-0.0090487917
2025-11-30,-0.023934762
2025-12-31,0.02790813
2026-01-31,0.054991339
2026-02-28,-0.021212038
2026-03-31,-0.047821679
2026-04-30,0.012529131
2026-05-31,-0.034643403
2026-06-30,-0.064887622
2026-07-31,0.065964163
2026-08-31,-0.046529263
2026-09-30,-0.0534837
```

```csv
date,return
2015-12-31,-0.1044159
2016-12-31,-0.18620737
2017-12-31,0.15874716
2018-12-31,-0.19412011
2019-12-31,0.20944423
2020-12-31,0.32292914
2021-12-31,0.16294103
2022-12-31,-0.19377667
2023-12-31,-0.047509203
2024-12-31,0.012729692
2025-12-31,0.067029478
2026-12-31,-0.13544431
```

首尾不完整期间与完整期间应区分；观察频数不足和股票相关会削弱推广性。

## 市况与参数稳健性
```csv
regime,days,strategy_compounded_return,benchmark_compounded_return,trades,win_rate
bull,458,0.2157107,0.35367717,3382,0.2788291
bear,320,-0.33393653,0.11856248,2347,0.37622497
range,2077,0.12199901,0.71898986,16229,0.31690184
```

某市况strategy_compounded_return为负即该条件分组内累计亏损；win_rate低于50%即多数已闭合持仓周期亏损，二者不等价。分组是预先定义的机械标签，不能代替公认牛熊划分。
三组参数见summary.csv；逐股参数与成本见single_stock_summary.csv。不得从最高历史收益参数反向挑选后宣称样本外优势。三组均赢也不足证明不依赖参数。
本次三组含费总收益：(12, 26, 9)=-9.15%, (6, 13, 5)=-73.31%, (5, 8, 3)=-92.51%。结果对参数明显敏感；这些参数并非搜索后的最优参数。
```csv
params,gross_total_return,net_total_return,cost_erosion_percentage_points
"(12, 26, 9)",2.0972906,-0.091471968,218.87626
"(5, 8, 3)",1.3803824,-0.92514742,230.55298
"(6, 13, 5)",1.7113471,-0.73313046,244.44776
```

成本侵蚀为免成本与含成本账户总收益的百分点差，包含整手、资金再投资与成交路径变化；并非简单费用加总。直接费用与滑点金额见summary.csv，订单及受限尝试见constraints CSV（包含buy/sell及blocked_buy/blocked_sell）。
年度现金重置结果：
```csv
total_return,cagr,max_drawdown,sharpe,trades,trades_per_year,avg_holding_calendar_days,win_rate,avg_win,avg_loss,payoff_ratio,expectancy,profit_factor,flat_fraction,average_cash_fraction,positive_month_fraction,positive_year_fraction,open_end_exposure,year
-0.1044159,-0.10585505,-0.44524369,-0.21826881,1352,1371.7167,22.486686,0.33727811,0.10499524,-0.062413019,1.682265,-0.0059498796,0.85556806,0,0.13165791,0.5,0,0.74605228,2015
-0.18203905,-0.18397177,-0.26889767,-0.85900293,1482,1499.4474,22.288799,0.36707152,0.057357746,-0.032323748,1.7744769,0.00059577467,0.59525795,0.012295082,0.14952542,0.5,0,0.87315756,2016
0.20154088,0.2047624,-0.068765274,1.9027618,1767,1792.7688,19.786644,0.35540464,0.069961326,-0.029933646,2.3372136,0.0055694905,1.4636688,0,0.11082691,0.75,1,0.93111106,2017
-0.20636194,-0.20903248,-0.28448086,-1.1298716,1720,1745.0833,19.821512,0.26395349,0.044255297,-0.04216409,1.0495969,-0.019353391,0.62960349,0,0.13691111,0.5,0,0.77968161,2018
0.28767465,0.28969424,-0.16052611,1.5589081,1785,1796.064,19.989356,0.36302521,0.067082681,-0.032205252,2.0829733,0.0038387707,1.4110957,0,0.13046645,0.66666667,1,0.95240995,2019
0.38125243,0.38278533,-0.14356175,1.6605003,1805,1811.1985,19.305817,0.33961219,0.082358467,-0.035483575,2.3210307,0.004537019,1.4387959,0,0.13468573,0.66666667,1,0.82684741,2020
0.14147952,0.14325915,-0.077423662,1.0350763,1788,1809.0499,18.881432,0.30257271,0.082079882,-0.042010757,1.9537825,-0.0044643164,1.2011082,0,0.11667666,0.66666667,1,0.91281791,2021
-0.20603888,-0.20870582,-0.26779871,-1.3243261,1827,1853.6438,19.137384,0.2665572,0.071597632,-0.042917398,1.6682659,-0.012392593,0.58947541,0,0.14333717,0.33333333,0,0.8832561,2022
-0.044054046,-0.044681931,-0.18987791,-0.31168498,2042,2071.7792,19.191969,0.28452498,0.05147793,-0.034210287,1.50475,-0.0098298493,0.83731712,0,0.12892663,0.5,0,0.89399847,2023
0.021842793,0.021918619,-0.148918,0.21075727,2086,2093.1635,18.465484,0.33125599,0.062842966,-0.036615878,1.7162763,-0.0036695401,1.0031173,0,0.13789049,0.41666667,1,0.83110095,2024
0.087826629,0.088394392,-0.096045643,0.73390238,2053,2065.7252,19.46566,0.30297126,0.058379931,-0.02822657,2.0682616,-0.0019872894,1.1087744,0.0041152263,0.12947868,0.58333333,1,0.90162889,2025
-0.17398214,-0.22933234,-0.20528342,-1.7377075,1475,2010.2379,16.985085,0.2359322,0.055358857,-0.0406316,1.3624582,-0.01798436,0.56112412,0,0.13770375,0.33333333,0,0.87367851,2026
```


## 信号与收益手工可核对过程

独立标量递推 EMA_t=EMA_(t−1)+2/(N+1)×(close_t−EMA_(t−1))，DIF=EMA12−EMA26，DEA以N=9递推；与pandas实现断言一致。以下为真实数据样本，非虚构演示。
**600000 浦发银行**：2015-02-27 前柱=-0.00349731≤0，本柱=0.00179331>0。EMA12=6.50804365，EMA26=6.53910866，两者相减 DIF=-0.03106501；减 DEA=-0.03285832 得本柱。2015-03-03 前柱=0.00340038≥0，卖日柱=-0.00888048<0。毛价格收益=6.297084/6.535473−1=-3.647626%。原买入价14.5300元，68700股，含费支出999518.9659元，前复权收益代理卖出净收入960059.9211元，净账户收益=-3.945904%。与实际往返账本匹配：True。

**600036 招商银行**：2015-02-26 前柱=-0.01032306≤0，本柱=0.00173112>0。EMA12=9.04998182，EMA26=9.10422762，两者相减 DIF=-0.05424580；减 DEA=-0.05597692 得本柱。2015-03-03 前柱=0.01158508≥0，卖日柱=-0.00414000<0。毛价格收益=8.820610/9.131852−1=-3.408316%。原买入价14.6700元，68000股，含费支出998867.1128元，前复权收益代理卖出净收入961816.7369元，净账户收益=-3.705038%。与实际往返账本匹配：True。

**600519 贵州茅台**：2015-02-10 前柱=-0.19203764≤0，本柱=0.07983713>0。EMA12=127.05091332，EMA26=127.51818323，两者相减 DIF=-0.46726991；减 DEA=-0.54710705 得本柱。2015-03-25 前柱=0.19659663≥0，卖日柱=-0.00621677<0。毛价格收益=136.559465/129.546607−1=5.413386%。原买入价182.8800元，5400股，含费支出988845.9993元，前复权收益代理卖出净收入1039128.6115元，净账户收益=5.028261%。与实际往返账本匹配：True。
```csv
symbol,entry,exit,previous_hist,entry_fast,entry_slow,entry_dif,entry_dea,entry_hist,exit_hist,entry_qfq,exit_qfq,name,exit_previous_hist,gross_price_return,raw_entry,shares,buy_fee,sell_fee,buy_debit,sell_credit_proxy,net_account_return,matches_executed_roundtrip,actual_net_pnl
600000,2015-02-27,2015-03-03,-0.0034973071,6.5080437,6.5391087,-0.031065012,-0.032858318,0.0017933051,-0.0088804814,6.5354733,6.2970837,浦发银行,0.0034003834,-0.036476256,14.53,68700,309.75486,778.27894,999518.97,960059.92,-0.039459045,True,-39459.045
600036,2015-02-26,2015-03-03,-0.010323063,9.0499818,9.1042276,-0.054245798,-0.055976923,0.0017311248,-0.0041399989,9.131852,8.8206096,招商银行,0.011585079,-0.034083163,14.67,68000,309.55284,779.70312,998867.11,961816.74,-0.037050376,True,-37050.376
600519,2015-02-10,2015-03-25,-0.19203764,127.05091,127.51818,-0.46726991,-0.54710705,0.079837134,-0.0062167689,129.54661,136.55946,贵州茅台,0.19659663,0.054133858,182.88,5400,306.44726,842.3765,988846,1039128.6,0.050282612,True,50282.612
```

逐行核对previous_hist≤0且entry_hist>0，退出前柱≥0且exit_hist<0（退出前值可从缓存重算）。毛收益=exit_qfq/entry_qfq−1。q=向下取整至100股，买入支出=q×raw_entry×1.001+max(5,成交额×0.0003)+成交额×0.00001。卖出收入代理=q×raw_entry×exit_qfq/entry_qfq×0.999−佣金−0.00051×成交额；账户收益=(收入−支出)/100万。这个独立往返核算不含组合再平衡，也不保证样本成交未被限制；constraints CSV可查执行事件。

## 图表
![资金曲线](equity.png)
![回撤](drawdown.png)
![持仓周期收益分布](trade_returns.png)
![月收益](monthly_heatmap.png)
![市况对比](regimes.png)

## 局限与未验证建议

已验证的是上述代码、缓存数据和明示假设下的结果；未来收益、改进效果均未验证。最关键局限为幸存者偏差、历史ST与特殊交易规则不完整、复权现金流代理、收盘前视、停牌和排队成交近似、终点未平仓的胜率选择偏差及相关样本。

1. 另设次日开盘成交版本，优先解决收盘确认与收盘成交冲突，再比较两版差异。
2. 预先固定200日均线趋势过滤，只在价格高于均线时接纳买入，用真正留出的测试区间检验。
3. 增加波动率目标与单股仓位上限，以减少集中风险；保留真实现金会改变用户基线策略。
4. 预先固定成交额/成交量过滤，避开低流动性标的，使用分钟数据检验涨跌停成交。
5. 比较周线信号、减少每日再平衡频率，评估换手下降是否抵消信号变慢；均属待验证改动。

## 复现
执行 `python macd_backtest.py --cache cache --offline --out results`（缓存、metadata和原始配置需与manifest一致）。全量默认 `python macd_backtest.py --out results`。运行配置与缓存SHA256见manifest.json；下载失败默认拒绝给出完整池结论。历史ST/成分文件应与数据一同保存并核对。
官方数据接口说明：[AKShare股票接口](https://github.com/akfamily/akshare/blob/main/docs/data/stock/stock.md)，[指数成分接口](https://github.com/akfamily/akshare/blob/main/docs/data/index/index.md)。前复权历史随复权基点变化，必须保留本次快照。
[新浪乘法复权官方实现](https://github.com/akfamily/akshare/blob/main/akshare/stock/stock_zh_a_sina.py)以原收盘除以前复权因子；本项目用同一公式构造数据，原价采自腾讯。不同供应商数据混合存在事件时点和舍入差异，已在核对文件中记录。

## 独立交付核验

验证器未导入回测引擎，独立核对306个缓存CSV哈希、122401笔成交订单、费用公式、买入整手、卖出T+1、资金T+1以及逐日持仓和现金。重建净值与资金曲线最大差额1.08266249299e-08元，状态PASS；三只已知样本均匹配实际往返损益。详细证据见validation.json。

完整月份盈利比例为53.19%，独立二项近似Wilson区间为[44.98%, 61.23%]，包含50%。因此虽然样本计数超过一半，不能称作稳健证据证明未来超过一半；序列相关性使该区间本身也只能作描述。

完整年份盈利比例为54.55%，独立二项近似Wilson区间为[28.01%, 78.73%]，包含50%。因此虽然样本计数超过一半，不能称作稳健证据证明未来超过一半；序列相关性使该区间本身也只能作描述。
