176 lines
80 KiB
HTML
176 lines
80 KiB
HTML
|
|
<!doctype html>
|
|||
|
|
<html lang="zh-CN"><head><meta charset="utf-8">
|
|||
|
|
<title>EA 回测分析报告</title>
|
|||
|
|
<style>
|
|||
|
|
:root {--green:#16a34a; --red:#dc2626; --blue:#2563eb; --amber:#f59e0b;}
|
|||
|
|
body { font-family: -apple-system, "Microsoft YaHei", "Segoe UI", sans-serif;
|
|||
|
|
background:#f8fafc; color:#111827; margin:0; padding:20px; line-height:1.5;}
|
|||
|
|
.wrap { max-width: 1100px; margin: 0 auto;}
|
|||
|
|
h1,h2,h3 { color:#1e3a8a;}
|
|||
|
|
h1 { border-bottom:3px solid #1e3a8a; padding-bottom:8px;}
|
|||
|
|
h2 { border-bottom:1px solid #cbd5e1; padding-bottom:4px; margin-top:32px;}
|
|||
|
|
.cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; margin:16px 0;}
|
|||
|
|
.card { background:#fff; padding:14px; border-radius:8px; border:1px solid #e2e8f0;}
|
|||
|
|
.card .k { color:#6b7280; font-size:12px;}
|
|||
|
|
.card .v { font-size:20px; font-weight:600; margin-top:4px;}
|
|||
|
|
.card .v.pos { color:var(--green);} .card .v.neg { color:var(--red);}
|
|||
|
|
table.data { border-collapse:collapse; width:100%; background:#fff; margin:8px 0 16px; font-size:13px;}
|
|||
|
|
table.data th, table.data td { border:1px solid #e2e8f0; padding:6px 8px; text-align:left;}
|
|||
|
|
table.data th { background:#f1f5f9;}
|
|||
|
|
table.data tr:nth-child(even) td { background:#fafbfc;}
|
|||
|
|
td.neg, tr.neg td { color:var(--red);}
|
|||
|
|
td.pos, tr.pos td { color:var(--green);}
|
|||
|
|
.muted { color:#6b7280; font-size:11px;}
|
|||
|
|
code { background:#f1f5f9; padding:1px 5px; border-radius:3px; font-size:12px;}
|
|||
|
|
.chart { width:100%; height:auto; background:#fff; border:1px solid #e2e8f0; border-radius:6px;}
|
|||
|
|
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:12px;}
|
|||
|
|
.note { background:#fef3c7; border-left:4px solid var(--amber); padding:10px 14px; margin:12px 0; border-radius:4px;}
|
|||
|
|
.warn { background:#fee2e2; border-left:4px solid var(--red); padding:10px 14px; margin:12px 0; border-radius:4px;}
|
|||
|
|
.tag { display:inline-block; padding:2px 8px; border-radius:10px; font-size:11px; font-weight:600; margin-left:6px;}
|
|||
|
|
.tag { background:#fee2e2; color:var(--red);}
|
|||
|
|
.tag.ok { background:#dcfce7; color:var(--green);}
|
|||
|
|
.tag.warn { background:#fef3c7; color:var(--amber);}
|
|||
|
|
footer { color:#6b7280; font-size:11px; margin-top:32px; text-align:center;}
|
|||
|
|
.rules > div { background:#fff; border:1px solid #e2e8f0; border-radius:6px; padding:12px 14px; margin:10px 0;}
|
|||
|
|
</style></head><body><div class="wrap">
|
|||
|
|
<h1>EA 回测分析报告</h1>
|
|||
|
|
<p class="muted">EA: <code>M1 GOLD SCALPER PRO</code> 品种: XAUUSD.c
|
|||
|
|
报告A = <code>IS-ReportTester-52845377.xlsx</code> 报告B = <code>OSS-ReportTester-52845377.xlsx</code></p>
|
|||
|
|
|
|||
|
|
<div class="cards">
|
|||
|
|
<div class="card"><div class="k">报告A 净盈利</div><div class="v neg">-962.92</div></div>
|
|||
|
|
<div class="card"><div class="k">报告B 净盈利</div><div class="v neg">-403.50</div></div>
|
|||
|
|
<div class="card"><div class="k">PF (A / B)</div><div class="v">0.69 / 0.94</div></div>
|
|||
|
|
<div class="card"><div class="k">回撤% (A / B)</div><div class="v neg">96.32% / 53.1%</div></div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="note">
|
|||
|
|
<b>实际交易区间</b>:报告A = 2025-07-17 01:58:00 ~ 2025-10-27 22:39:00;报告B = 2026-02-16 01:02:00 ~ 2026-05-29 23:46:00。<br>
|
|||
|
|
<b>输入参数</b>:完全一致。
|
|||
|
|
若两份报告参数相同而结果差异大,说明策略对行情敏感;若参数不同,需先确认对比是否公平。
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<h3>输入参数</h3><table class='data'><thead><tr><th>参数</th><th>报告A</th><th>报告B</th></tr></thead><tbody><tr><td><code>ShowPanel</code></td><td>true</td><td>✓ 一致</td></tr><tr><td><code>Panel_X</code></td><td>20</td><td>✓ 一致</td></tr><tr><td><code>Panel_Y</code></td><td>30</td><td>✓ 一致</td></tr><tr><td><code>Panel_W</code></td><td>543</td><td>✓ 一致</td></tr><tr><td><code>Panel_H</code></td><td>181</td><td>✓ 一致</td></tr><tr><td><code>FilterTradingHours</code></td><td>false</td><td>✓ 一致</td></tr><tr><td><code>Exit</code></td><td>true</td><td>✓ 一致</td></tr><tr><td><code>USEMOVETOBREAKEVEN</code></td><td>false</td><td>✓ 一致</td></tr><tr><td><code>WHENTOMOVETOBE</code></td><td>10.0</td><td>✓ 一致</td></tr><tr><td><code>PIPSTOMOVESL</code></td><td>5.0</td><td>✓ 一致</td></tr><tr><td><code>Lots</code></td><td>0.01</td><td>✓ 一致</td></tr><tr><td><code>MaximumRisk</code></td><td>0.0</td><td>✓ 一致</td></tr><tr><td><code>DecreaseFactor</code></td><td>330.0</td><td>✓ 一致</td></tr><tr><td><code>TrailingStop</code></td><td>2564.0</td><td>✓ 一致</td></tr><tr><td><code>Stop_Loss</code></td><td>1240.0</td><td>✓ 一致</td></tr><tr><td><code>MagicNumber</code></td><td>1234</td><td>✓ 一致</td></tr><tr><td><code>Take_Profit</code></td><td>2000.0</td><td>✓ 一致</td></tr><tr><td><code>FastMA</code></td><td>261</td><td>✓ 一致</td></tr><tr><td><code>SlowMA</code></td><td>385</td><td>✓ 一致</td></tr><tr><td><code>Mom_Sell</code></td><td>595.8</td><td>✓ 一致</td></tr><tr><td><code>Mom_Buy</code></td><td>1513.6</td><td>✓ 一致</td></tr><tr><td><code>FractalNum</code></td><td>6595</td><td>✓ 一致</td></tr></tbody></table>
|
|||
|
|
|
|||
|
|
<h2>1. 核心指标对比</h2>
|
|||
|
|
<table class='data'><thead><tr><th>指标</th><th>IS-ReportTester-52845377.xlsx</th><th>OSS-ReportTester-52845377.xlsx</th><th>单位</th></tr></thead><tbody><tr><td>交易笔数</td><td>1912</td><td>1914</td><td></td></tr><tr><td>净盈利</td><td>-962.92</td><td>-403.50</td><td></td></tr><tr><td>盈利因子 PF</td><td>0.69</td><td>0.94</td><td></td></tr><tr><td>胜率 (%)</td><td>38.13</td><td>44.93</td><td></td></tr><tr><td>平均盈利</td><td>3.00</td><td>7.29</td><td></td></tr><tr><td>平均亏损</td><td>-2.66</td><td>-6.33</td><td></td></tr><tr><td>盈亏比 (avgW/|avgL|)</td><td>1.13</td><td>1.15</td><td></td></tr><tr><td>期望收益/笔</td><td>-0.50</td><td>-0.21</td><td></td></tr><tr><td>最大回撤</td><td>-971.54</td><td>-642.14</td><td></td></tr><tr><td>最大回撤 (%)</td><td>96.32</td><td>53.10</td><td>%</td></tr><tr><td>夏普比率</td><td>-5.00</td><td>-3.33</td><td></td></tr><tr><td>Sortino (逐笔)</td><td>-0.16</td><td>-0.04</td><td></td></tr><tr><td>Calmar (净利/|回撤|)</td><td>-0.99</td><td>-0.63</td><td></td></tr><tr><td>最大连败</td><td>16</td><td>16</td><td>笔</td></tr><tr><td>平均持仓 (分钟)</td><td>39.66</td><td>34.04</td><td></td></tr><tr><td>滚动PF 区间</td><td>0.26~1.25</td><td>0.50~1.90</td><td></td></tr><tr><td>滚动窗口盈利比例</td><td>9.59</td><td>36.99</td><td>%</td></tr></tbody></table>
|
|||
|
|
<p class="muted">Sortino/Calmar 为逐笔口径估算;滚动 PF 以 100 笔窗口滑动,"滚动窗口盈利比例"=窗口 PF>1 的占比(越高越稳定)。</p>
|
|||
|
|
|
|||
|
|
<h2>2. 资金曲线</h2>
|
|||
|
|
<svg viewBox="0 0 760 240" class="chart"><line x1="40" y1="200.0" x2="750" y2="200.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="4" y="203.0" font-size="9" fill="#6b7280">-963</text><line x1="40" y1="152.5" x2="750" y2="152.5" stroke="#e5e7eb" stroke-width="0.5"/><text x="4" y="155.5" font-size="9" fill="#6b7280">-670</text><line x1="40" y1="105.0" x2="750" y2="105.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="4" y="108.0" font-size="9" fill="#6b7280">-377</text><line x1="40" y1="57.5" x2="750" y2="57.5" stroke="#e5e7eb" stroke-width="0.5"/><text x="4" y="60.5" font-size="9" fill="#6b7280">-84</text><line x1="40" y1="10.0" x2="750" y2="10.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="4" y="13.0" font-size="9" fill="#6b7280">209</text><line x1="40" y1="43.9" x2="750" y2="43.9" stroke="#9ca3af" stroke-dasharray="3,3" stroke-width="0.7"/><polyline points="40.0,44.0 40.4,43.9 40.7,43.9 41.1,43.9 41.5,43.9 41.9,43.8 42.2,43.8 42.6,43.6 43.0,43.4 43.3,43.2 43.7,43.0 44.1,42.7 44.5,42.7 44.8,42.5 45.2,42.9 45.6,43.3 45.9,43.0 46.3,43.0 46.7,42.9 47.1,43.2 47.4,43.1 47.8,43.1 48.2,43.8 48.5,43.7 48.9,43.6 49.3,43.8 49.7,44.3 50.0,43.9 50.4,43.7 50.8,43.6 51.1,43.3 51.5,42.7 51.9,44.8 52.3,44.5 52.6,44.4 53.0,44.5 53.4,44.6 53.7,44.6 54.1,44.8 54.5,45.3 54.9,46.3 55.2,46.4 55.6,46.2 56.0,46.2 56.3,46.2 56.7,46.3 57.1,46.2 57.5,46.4 57.8,46.2 58.2,48.3 58.6,48.6 58.9,48.7 59.3,48.9 59.7,49.0 60.1,48.5 60.4,48.8 60.8,48.8 61.2,49.2 61.5,49.2 61.9,49.1 62.3,49.0 62.7,48.9 63.0,48.8 63.4,48.9 63.8,48.9 64.1,48.9 64.5,49.0 64.9,49.9 65.3,49.7 65.6,49.9 66.0,50.2 66.4,50.8 66.8,48.9 67.1,49.0 67.5,49.1 67.9,49.1 68.2,49.3 68.6,49.4 69.0,49.4 69.4,49.5 69.7,49.7 70.1,49.8 70.5,51.9 70.8,52.4 71.2,52.9 71.6,53.3 72.0,52.6 72.3,52.6 72.7,52.7 73.1,52.8 73.4,52.9 73.8,52.9 74.2,52.7 74.6,52.3 74.9,52.9 75.3,52.9 75.7,52.8 76.0,52.2 76.4,52.2 76.8,52.3 77.2,54.4 77.5,51.2 77.9,52.5 78.3,53.0 78.6,53.3 79.0,53.6 79.4,53.7 79.8,54.1 80.1,54.2 80.5,54.0 80.9,53.7 81.2,54.3 81.6,55.2 82.0,54.7 82.4,54.0 82.7,53.9 83.1,53.9 83.5,53.9 83.8,53.9 84.2,54.3 84.6,54.7 85.0,55.0 85.3,55.1 85.7,55.3 86.1,54.7 86.4,54.7 86.8,54.7 87.2,55.2 87.6,55.4 87.9,55.2 88.3,54.9 88.7,54.6 89.0,54.7 89.4,54.8 89.8,54.7 90.2,54.6 90.5,54.7 90.9,54.7 91.3,54.6 91.6,54.6 92.0,54.8 92.4,55.2 92.8,55.5 93.1,54.8 93.5,54.7 93.9,54.4 94.2,54.3 94.6,55.0 95.0,54.8 95.4,54.8 95.7,54.6 96.1,54.4 96.5,54.3 96.8,54.0 97.2,53.7 97.6,53.3 98.0,53.4 98.3,53.1 98.7,52.8 99.1,52.4 99.4,52.8 99.8,52.9 100.2,53.3 100.6,53.4 100.9,53.7 101.3,54.0 101.7,54.1 102.0,54.2 102.4,54.5 102.8,54.6 103.2,54.1 103.5,54.2 103.9,54.3 104.3,54.3 104.6,54.1 105.0,54.1 105.4,54.1 105.8,53.9 106.1,54.4 106.5,54.3 106.9,54.5 107.2,55.2 107.6,55.2 108.0,55.1 108.4,55.1 108.7,54.9 109.1,54.8 109.5,54.6 109.8,54.5 110.2,54.2 110.6,53.9 111.0,53.6 111.3,53.5 111.7,53.8 112.1,53.6 112.4,53.0 112.8,52.8 113.2,53.1 113.6,52.6 113.9,52.1 114.3,51.7 114.7,51.6 115.0,52.8 115.4,52.7 115.8,52.5 116.2,53.5 116.5,53.5 116.9,53.4 117.3,54.8 117.7,55.6 118.0,55.9 118.4,56.0 118.8,56.1 119.1,56.4 119.5,57.0 119.9,56.6 120.3,57.2 120.6,57.2 121.0,57.1 121.4,57.2 121.7,57.3 122.1,57.4 122.5,57.5 122.9,57.3 123.2,57.3 123.6,57.7 124.0,57.4 124.3,58.0 124.7,57.5 125.1,57.7 125.5,58.0 125.8,58.1 126.2,58.3 126.6,58.4 126.9,58.5 127.3,58.7 127.7,59.8 128.1,59.4 128.4,59.4 128.8,59.4 129.2,59.6 129.5,60.5 129.9,59.1 130.3,59.4 130.7,59.7 131.0,59.5 131.4,61.7 131.8,62.6 132.1,61.8 132.5,62.0 132.9,62.0 133.3,62.2 133.6,62.3 134.0,62.2 134.4,62.3 134.7,62.5 135.1,62.5 135.5,62.6 135.9,62.3 136.2,62.5 136.6,62.7 137.0,62.9 137.3,63.1 137.7,63.2 138.1,63.5 138.5,63.3 138.8,63.2 139.2,62.9 139.6,63.1 139.9,63.1 140.3,62.9 140.7,63.6 141.1,64.0 141.4,63.7 141.8,64.5 142.2,64.4 142.5,63.9 142.9,63.3 143.3,63.3 143.7,64.6 144.0,64.1 144.4,63.1 144.8,62.6 145.1,61.7 145.5,60.9 145.9,61.3 146.3,61.4 146.6,61.3 147.0,61.8 147.4,62.0 147.7,62.4 148.1,62.5 148.5,62.6 148.9,62.8 149.2,63.0 149.6,63.1 150.0,62.2 150.3,62.3 150.7,61.5 151.1,61.9 151.5,61.8 151.8,61.7 152.2,61.3 152.6,61.4 152.9,61.0 153.3,60.9 153.7,60.6 154.1,
|
|||
|
|
|
|||
|
|
<h2>3. 方向性诊断</h2>
|
|||
|
|
<table class='data'><thead><tr><th>方向</th><th>指标</th><th>IS-ReportTester-52845377.xlsx</th><th>OSS-ReportTester-52845377.xlsx</th></tr></thead><tbody><tr><td>long</td><td>笔数</td><td>1066</td><td>958</td></tr><tr><td>long</td><td>胜率(%)</td><td>22.98</td><td>27.04</td></tr><tr class='neg'><td>long</td><td>净盈利</td><td>-412.29</td><td>-194.63</td></tr><tr><td>long</td><td>PF</td><td>0.77</td><td>0.94</td></tr><tr><td>long</td><td>平均盈利</td><td>5.48</td><td>12.26</td></tr><tr class='neg'><td>long</td><td>平均亏损</td><td>-2.14</td><td>-4.82</td></tr><tr><td>long</td><td>盈亏比</td><td>2.56</td><td>2.54</td></tr><tr class='neg'><td>long</td><td>期望/笔</td><td>-0.39</td><td>-0.20</td></tr><tr><td>short</td><td>笔数</td><td>846</td><td>956</td></tr><tr><td>short</td><td>胜率(%)</td><td>57.21</td><td>62.87</td></tr><tr class='neg'><td>short</td><td>净盈利</td><td>-550.63</td><td>-208.87</td></tr><tr><td>short</td><td>PF</td><td>0.60</td><td>0.94</td></tr><tr><td>short</td><td>平均盈利</td><td>1.74</td><td>5.15</td></tr><tr class='neg'><td>short</td><td>平均亏损</td><td>-3.85</td><td>-9.31</td></tr><tr><td>short</td><td>盈亏比</td><td>0.45</td><td>0.55</td></tr><tr class='neg'><td>short</td><td>期望/笔</td><td>-0.65</td><td>-0.22</td></tr></tbody></table>
|
|||
|
|
<svg viewBox="0 0 520 240" class="chart"><line x1="50" y1="200.0" x2="504" y2="200.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="44" y="203.0" font-size="9" fill="#6b7280" text-anchor="end">-570</text><line x1="50" y1="112.0" x2="504" y2="112.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="44" y="115.0" font-size="9" fill="#6b7280" text-anchor="end">-252</text><line x1="50" y1="24.0" x2="504" y2="24.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="44" y="27.0" font-size="9" fill="#6b7280" text-anchor="end">66</text><line x1="50" y1="42.3" x2="504" y2="42.3" stroke="#9ca3af" stroke-dasharray="3,3" stroke-width="0.7"/><text x="260" y="16" font-size="11" fill="#374151" text-anchor="middle">各方向净盈亏(A=报告A, B=报告B)</text><rect x="72.7" y="42.3" width="68.1" height="114.0" fill="#dc2626"/><text x="106.8" y="168.3" font-size="10" fill="#111827" text-anchor="middle">-412</text><text x="106.8" y="215.0" font-size="10" fill="#374151" text-anchor="middle">long-A</text><rect x="186.2" y="42.3" width="68.1" height="53.8" fill="#dc2626"/><text x="220.2" y="108.1" font-size="10" fill="#111827" text-anchor="middle">-195</text><text x="220.2" y="215.0" font-size="10" fill="#374151" text-anchor="middle">long-B</text><rect x="299.7" y="42.3" width="68.1" height="152.2" fill="#dc2626"/><text x="333.8" y="206.5" font-size="10" fill="#111827" text-anchor="middle">-551</text><text x="333.8" y="215.0" font-size="10" fill="#374151" text-anchor="middle">short-A</text><rect x="413.2" y="42.3" width="68.1" height="57.8" fill="#dc2626"/><text x="447.2" y="112.0" font-size="10" fill="#111827" text-anchor="middle">-209</text><text x="447.2" y="215.0" font-size="10" fill="#374151" text-anchor="middle">short-B</text></svg>
|
|||
|
|
<p class="muted">若多空胜率/盈亏比显著不对称,是结构性偏差信号,需结合下方 What-If 与建议规则分析。</p>
|
|||
|
|
|
|||
|
|
<h2>4. What-If 假设分析</h2>
|
|||
|
|
<p>对每份报告模拟多种改造场景,重算指标。场景为<b>通用逻辑</b>,不依赖具体 EA 参数。
|
|||
|
|
<b>重点看 PF 是否站上 1、回撤是否收敛、期望是否转正</b>。</p>
|
|||
|
|
<h3>IS-ReportTester-52845377.xlsx</h3><table class='data'><thead><tr><th>场景</th><th>笔数</th><th>净盈利</th><th>PF</th><th>胜率</th><th>最大回撤</th><th>期望/笔</th></tr></thead><tbody><tr class='neg'><td><b>基线(现状)</b><br><span class='muted'>不做任何修改</span></td><td>1912</td><td>-962.92</td><td>0.69</td><td>38.1%</td><td>-971.54</td><td>-0.504</td></tr><tr class='neg'><td><b>仅做空 (sell-only)</b><br><span class='muted'>禁用多头,验证空头方向是否有正期望</span></td><td>846</td><td>-550.63</td><td>0.60</td><td>57.2%</td><td>-562.87</td><td>-0.651</td></tr><tr class='neg'><td><b>仅做多 (buy-only)</b><br><span class='muted'>禁用空头,验证多头方向是否有正期望</span></td><td>1066</td><td>-412.29</td><td>0.77</td><td>23.0%</td><td>-418.15</td><td>-0.387</td></tr><tr class='pos'><td><b>信号反向 (net × -1)</b><br><span class='muted'>盈亏整体取反。若反向后净盈利为正且 PF>1,需警惕信号方向逻辑写反</span></td><td>1912</td><td>+962.92</td><td>1.44</td><td>61.7%</td><td>-82.29</td><td>+0.504</td></tr><tr class='neg'><td><b>过滤最差星期(周四)</b><br><span class='muted'>剔除净盈亏最差的星期 周四</span></td><td>1498</td><td>-637.92</td><td>0.74</td><td>37.9%</td><td>-638.02</td><td>-0.426</td></tr><tr class='neg'><td><b>过滤最差 3 个小时</b><br><span class='muted'>剔除净盈亏最差的 3 个小时窗口</span></td><td>1639</td><td>-629.48</td><td>0.76</td><td>39.3%</td><td>-654.13</td><td>-0.384</td></tr><tr class='neg'><td><b>仓位减半 (net × 0.5)</b><br><span class='muted'>缩小仓位,回撤与盈利同步减半</span></td><td>1912</td><td>-481.46</td><td>0.69</td><td>38.1%</td><td>-485.77</td><td>-0.252</td></tr><tr class='pos'><td><b>盈利单放大 ×1.5</b><br><span class='muted'>模拟改进入场/离场让盈利单兑现更多利润</span></td><td>1912</td><td>+129.79</td><td>1.04</td><td>38.1%</td><td>-257.48</td><td>+0.068</td></tr><tr class='pos'><td><b>亏损截断 ≤ $1.52</b><br><span class='muted'>模拟更紧止损,把单笔亏损封顶在中位亏损水平</span></td><td>1912</td><td>+839.09</td><td>1.62</td><td>38.1%</td><td>-52.81</td><td>+0.439</td></tr><tr class='neg'><td><b>启用 BE (盈利单 ×0.5)</b><br><span class='muted'>模拟盈亏平移触发后盈利单部分回吐,但被保护</span></td><td>1912</td><td>-2055.63</td><td>0.35</td><td>38.1%</td><td>-2059.48</td><td>-1.075</td></tr></tbody></table><h3>OSS-ReportTester-52845377.xlsx</h3><table class='data'><thead><tr><th>场景</th><th>笔数</th><th>净盈利</th><th>PF</th><th>胜率</th><th>最大回撤</th><th>期望/笔</th></tr></thead><tbody><tr class='neg'><td><b>基线(现状)</b><br><span class='muted'>不做任何修改</span></td><td>1914</td><td>-403.50</td><td>0.94</td><td>44.9%</td><td>-642.14</td><td>-0.211</td></tr><tr class='neg'><td><b>仅做空 (sell-only)</b><br><span class='muted'>禁用多头,验证空头方向是否有正期望</span></td><td>956</td><td>-208.87</td><td>0.94</td><td>62.9%</td><td>-328.52</td><td>-0.218</td></tr><tr class='neg'><td><b>仅做多 (buy-only)</b><br><span class='muted'>禁用空头,验证多头方向是否有正期望</span></td><td>958</td><td>-194.63</td><td>0.94</td><td>27.0%</td><td>-449.30</td><td>-0.203</td></tr><tr class='pos'><td><b>信号反向 (net × -1)</b><br><span class='muted'>盈亏整体取反。若反向后净盈利为正且 PF>1,需警惕信号方向逻辑写反</span></td><td>1914</td><td>+403.50</td><td>1.06</td><td>55.0%</td><td>-452.49</td><td>+0.211</td></tr><tr class='neg'><td><b>过滤最差星期(周四)</b><br><span class='muted'>剔除净盈亏最差的星期 周四</span></td><td>1514</td><td>-9.86</td><td>1.00</td><td>46.5%</td><td>-347.70</td><td>-0.007</td></tr><tr class='pos'><td><b>过滤最差 3 个小时</b><br><span class='muted'>剔除净盈亏最差的 3 个小时窗口</span></td><td>1653</td><td>+84.26</td><td>1.02</td><td>46.2%</td><td>-391.04</td><td>+0.051</td></tr><tr class='neg'><td><b>仓
|
|||
|
|
<div class="warn">
|
|||
|
|
<b>必看</b>:"信号反向"场景若两份报告净盈利均转正且 PF>1,需警惕信号方向逻辑写反,应人工复核源码。
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<h2>5. 蒙特卡洛回撤模拟</h2>
|
|||
|
|
<p>将逐笔盈亏随机打乱 1000 次,看<b>顺序无关</b>下的回撤分布。
|
|||
|
|
若"实际回撤"显著差于中位,说明存在<b>连败聚集</b>(顺序有自我相关),建议加连亏保护。</p>
|
|||
|
|
<div class="grid2">
|
|||
|
|
<div><h4>报告A 蒙特卡洛回撤</h4><svg viewBox="0 0 460 220" class="chart"><line x1="50" y1="180.0" x2="444" y2="180.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="44" y="183.0" font-size="9" fill="#6b7280" text-anchor="end">-1059</text><line x1="50" y1="100.0" x2="444" y2="100.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="44" y="103.0" font-size="9" fill="#6b7280" text-anchor="end">-1005</text><line x1="50" y1="20.0" x2="444" y2="20.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="44" y="23.0" font-size="9" fill="#6b7280" text-anchor="end">-952</text><rect x="65.8" y="175.0" width="47.3" height="5.0" fill="#3b82f6"/><text x="89.4" y="171.0" font-size="9" fill="#111827" text-anchor="middle">-1056</text><text x="89.4" y="195.0" font-size="9" fill="#374151" text-anchor="middle">p5(更糟)</text><rect x="144.6" y="86.4" width="47.3" height="93.6" fill="#3b82f6"/><text x="168.2" y="82.4" font-size="9" fill="#111827" text-anchor="middle">-996</text><text x="168.2" y="195.0" font-size="9" fill="#374151" text-anchor="middle">均值</text><rect x="223.4" y="76.9" width="47.3" height="103.1" fill="#3b82f6"/><text x="247.0" y="72.9" font-size="9" fill="#111827" text-anchor="middle">-990</text><text x="247.0" y="195.0" font-size="9" fill="#374151" text-anchor="middle">p50</text><rect x="302.2" y="36.6" width="47.3" height="143.4" fill="#3b82f6"/><text x="325.8" y="32.6" font-size="9" fill="#111827" text-anchor="middle">-963</text><text x="325.8" y="195.0" font-size="9" fill="#374151" text-anchor="middle">p95(较好)</text><rect x="381.0" y="49.5" width="47.3" height="130.5" fill="#dc2626"/><text x="404.6" y="45.5" font-size="9" fill="#111827" text-anchor="middle">-972</text><text x="404.6" y="195.0" font-size="9" fill="#374151" text-anchor="middle">实际</text></svg></div>
|
|||
|
|
<div><h4>报告B 蒙特卡洛回撤</h4><svg viewBox="0 0 460 220" class="chart"><line x1="50" y1="180.0" x2="444" y2="180.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="44" y="183.0" font-size="9" fill="#6b7280" text-anchor="end">-867</text><line x1="50" y1="100.0" x2="444" y2="100.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="44" y="103.0" font-size="9" fill="#6b7280" text-anchor="end">-649</text><line x1="50" y1="20.0" x2="444" y2="20.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="44" y="23.0" font-size="9" fill="#6b7280" text-anchor="end">-432</text><rect x="65.8" y="175.0" width="47.3" height="5.0" fill="#3b82f6"/><text x="89.4" y="171.0" font-size="9" fill="#111827" text-anchor="middle">-854</text><text x="89.4" y="195.0" font-size="9" fill="#374151" text-anchor="middle">p5(更糟)</text><rect x="144.6" y="99.7" width="47.3" height="80.3" fill="#3b82f6"/><text x="168.2" y="95.7" font-size="9" fill="#111827" text-anchor="middle">-649</text><text x="168.2" y="195.0" font-size="9" fill="#374151" text-anchor="middle">均值</text><rect x="223.4" y="96.5" width="47.3" height="83.5" fill="#3b82f6"/><text x="247.0" y="92.5" font-size="9" fill="#111827" text-anchor="middle">-640</text><text x="247.0" y="195.0" font-size="9" fill="#374151" text-anchor="middle">p50</text><rect x="302.2" y="36.6" width="47.3" height="143.4" fill="#3b82f6"/><text x="325.8" y="32.6" font-size="9" fill="#111827" text-anchor="middle">-477</text><text x="325.8" y="195.0" font-size="9" fill="#374151" text-anchor="middle">p95(较好)</text><rect x="381.0" y="97.3" width="47.3" height="82.7" fill="#dc2626"/><text x="404.6" y="93.3" font-size="9" fill="#111827" text-anchor="middle">-642</text><text x="404.6" y="195.0" font-size="9" fill="#374151" text-anchor="middle">实际</text></svg></div>
|
|||
|
|
</div>
|
|||
|
|
<table class='data'><thead><tr><th>分位</th><th>IS-ReportTester-52845377.xlsx</th><th>OSS-ReportTester-52845377.xlsx</th></tr></thead><tbody><tr><td>实际最大回撤</td><td class='neg'>-971.54</td><td class='neg'>-642.14</td></tr><tr><td>蒙特卡洛 5% 分位(更糟)</td><td>-1055.90</td><td>-853.67</td></tr><tr><td>蒙特卡洛 中位</td><td>-989.91</td><td>-640.02</td></tr><tr><td>蒙特卡洛 95% 分位(较好)</td><td>-962.86</td><td>-476.90</td></tr><tr><td>蒙特卡洛 均值</td><td>-996.36</td><td>-648.63</td></tr></tbody></table>
|
|||
|
|
|
|||
|
|
<h2>6. 时段诊断</h2>
|
|||
|
|
<h3>6.1 按小时</h3>
|
|||
|
|
<table class='data'><thead><tr><th>小时</th><th>IS-ReportTester-52845377.xlsx净</th><th>笔</th><th>OSS-ReportTester-52845377.xlsx净</th><th>笔</th><th>双负</th></tr></thead><tbody><tr><td>01</td><td style='background:rgba(220,38,38,0.24912686183872623)'>-42.46</td><td>104</td><td style='background:rgba(22,163,74,0.4173577064948405)'>+114.52</td><td>95</td><td></td></tr><tr><td>02</td><td style='background:rgba(220,38,38,0.256037260120465)'>-45.42</td><td>95</td><td style='background:rgba(220,38,38,0.3587360508007657)'>-89.41</td><td>103</td><td>⚠️</td></tr><tr><td>03</td><td style='background:rgba(220,38,38,0.39704673857216227)'>-105.82</td><td>89</td><td style='background:rgba(220,38,38,0.3105967222300042)'>-68.79</td><td>90</td><td>⚠️</td></tr><tr><td>04</td><td style='background:rgba(220,38,38,0.28662044170518747)'>-58.52</td><td>101</td><td style='background:rgba(22,163,74,0.35700845123033104)'>+88.67</td><td>74</td><td></td></tr><tr><td>05</td><td style='background:rgba(220,38,38,0.23542279497595364)'>-36.59</td><td>84</td><td style='background:rgba(220,38,38,0.4839403277769996)'>-143.04</td><td>71</td><td>⚠️</td></tr><tr><td>06</td><td style='background:rgba(22,163,74,0.17381285894382967)'>+10.20</td><td>86</td><td style='background:rgba(220,38,38,0.3483471074380165)'>-84.96</td><td>70</td><td></td></tr><tr><td>07</td><td style='background:rgba(220,38,38,0.17418639398608582)'>-10.36</td><td>68</td><td style='background:rgba(22,163,74,0.28792781435308396)'>+59.08</td><td>78</td><td></td></tr><tr><td>08</td><td style='background:rgba(220,38,38,0.3653196059205304)'>-92.23</td><td>82</td><td style='background:rgba(220,38,38,0.3490941775225288)'>-85.28</td><td>82</td><td>⚠️</td></tr><tr><td>09</td><td style='background:rgba(220,38,38,0.292760423962273)'>-61.15</td><td>93</td><td style='background:rgba(220,38,38,0.3303240416491572)'>-77.24</td><td>80</td><td>⚠️</td></tr><tr><td>10</td><td style='background:rgba(220,38,38,0.17766493906709624)'>-11.85</td><td>103</td><td style='background:rgba(220,38,38,0.45478124854087876)'>-130.55</td><td>92</td><td>⚠️</td></tr><tr><td>11</td><td style='background:rgba(220,38,38,0.24403744688798618)'>-40.28</td><td>78</td><td style='background:rgba(22,163,74,0.18905775785590884)'>+16.73</td><td>100</td><td></td></tr><tr><td>12</td><td style='background:rgba(220,38,38,0.24674557594434327)'>-41.44</td><td>65</td><td style='background:rgba(22,163,74,0.19741560442639025)'>+20.31</td><td>97</td><td></td></tr><tr><td>13</td><td style='background:rgba(220,38,38,0.46608068356912735)'>-135.39</td><td>102</td><td style='background:rgba(220,38,38,0.65)'>-214.17</td><td>98</td><td>⚠️</td></tr><tr><td>14</td><td style='background:rgba(220,38,38,0.22225568473642432)'>-30.95</td><td>69</td><td style='background:rgba(220,38,38,0.15658355511976468)'>-2.82</td><td>84</td><td>⚠️</td></tr><tr><td>15</td><td style='background:rgba(220,38,38,0.1716883783909978)'>-9.29</td><td>89</td><td style='background:rgba(22,163,74,0.22234906849698838)'>+30.99</td><td>112</td><td></td></tr><tr><td>16</td><td style='background:rgba(220,38,38,0.19522108605313535)'>-19.37</td><td>98</td><td style='background:rgba(22,163,74,0.2938343372087594)'>+61.61</td><td>96</td><td></td></tr><tr><td>17</td><td style='background:rgba(220,38,38,0.18098006256711957)'>-13.27</td><td>82</td><td style='background:rgba(220,38,38,0.21004575804267636)'>-25.72</td><td>94</td><td>⚠️</td></tr><tr><td>18</td><td style='background:rgba(220,38,38,0.167252649764206)'>-7.39</td><td>63</td><td style='background:rgba(220,38,38,0.17430312368679085)'>-10.41</td><td>53</td><td>⚠️</td></tr><tr><td>19</td><td style='background:rgba(220,38,38,0.2470724191063174)'>-41.58</td><td>51</td><td style='background:rgba(220,38,38,0.4094434327870383)'>-111.13</td><td>53</td><td>⚠️</td></tr><tr><td>20</td><td style='background:rgba(220,38,38,0.2477494513704067)'>-41.87</td><td>66</td><td style='background:rgba(22,163,74,0.3525960685436802)'>+86.78</td><td>89</td><td></td></tr><tr><td>21</td><td style='background:rgba(220
|
|||
|
|
<h3>6.2 按星期</h3>
|
|||
|
|
<table class='data'><thead><tr><th>星期</th><th>IS-ReportTester-52845377.xlsx净</th><th>笔</th><th>OSS-ReportTester-52845377.xlsx净</th><th>笔</th><th>双负</th></tr></thead><tbody><tr><td>周一</td><td style='background:rgba(220,38,38,0.2831292551569963)'>-104.81</td><td>346</td><td style='background:rgba(22,163,74,0.29635199674829793)'>+115.22</td><td>363</td><td></td></tr><tr><td>周二</td><td style='background:rgba(220,38,38,0.3284117467737019)'>-140.46</td><td>378</td><td style='background:rgba(220,38,38,0.45643481353520976)'>-241.25</td><td>388</td><td>⚠️</td></tr><tr><td>周三</td><td style='background:rgba(220,38,38,0.29184280052840156)'>-111.67</td><td>364</td><td style='background:rgba(220,38,38,0.2846661924601158)'>-106.02</td><td>393</td><td>⚠️</td></tr><tr><td>周四</td><td style='background:rgba(220,38,38,0.5628137384412153)'>-325.00</td><td>414</td><td style='background:rgba(220,38,38,0.65)'>-393.64</td><td>400</td><td>⚠️</td></tr><tr><td>周五</td><td style='background:rgba(220,38,38,0.5068997053145006)'>-280.98</td><td>410</td><td style='background:rgba(22,163,74,0.43222487552078037)'>+222.19</td><td>370</td><td></td></tr></tbody></table>
|
|||
|
|
<p class="muted">⚠️ = 两份报告同时为负,属系统性劣势时段,应优先过滤。单元格颜色:红=负、绿=正。</p>
|
|||
|
|
|
|||
|
|
<h2>7. 持仓时间分桶</h2>
|
|||
|
|
<table class='data'><thead><tr><th>持仓区间</th><th>IS-ReportTester-52845377.xlsx笔</th><th>净</th><th>均值</th><th>OSS-ReportTester-52845377.xlsx笔</th><th>净</th><th>均值</th></tr></thead><tbody><tr><td><5m</td><td>646</td><td>-439.10</td><td>-0.680</td><td>536</td><td>-569.43</td><td>-1.062</td></tr><tr><td>5-15m</td><td>323</td><td>-328.18</td><td>-1.016</td><td>434</td><td>-168.47</td><td>-0.388</td></tr><tr><td>15-30m</td><td>323</td><td>-225.92</td><td>-0.699</td><td>454</td><td>-361.47</td><td>-0.796</td></tr><tr><td>30-60m</td><td>357</td><td>-130.78</td><td>-0.366</td><td>342</td><td>+276.76</td><td>+0.809</td></tr><tr><td>1-2h</td><td>217</td><td>+145.43</td><td>+0.670</td><td>121</td><td>+225.92</td><td>+1.867</td></tr><tr><td>>2h</td><td>46</td><td>+15.63</td><td>+0.340</td><td>27</td><td>+193.19</td><td>+7.155</td></tr></tbody></table>
|
|||
|
|
<p class="muted">观察哪个持仓区间贡献正/负盈亏,可指导止盈止损时间维度调整。</p>
|
|||
|
|
|
|||
|
|
<h2>8. 数据驱动的优化方向建议</h2>
|
|||
|
|
<p>以下建议<b>由当前数据的特征触发</b>(每条附触发条件、数据、动作),不预设任何策略特定结论。
|
|||
|
|
未触发的规则不显示,未列出的维度表示数据正常。</p>
|
|||
|
|
<div class="rules">
|
|||
|
|
|
|||
|
|
<h3>① 信号方向自检 <span class='tag '>⚠️ 触发</span></h3>
|
|||
|
|
<p><b>触发条件</b>:两份报告"信号反向"场景净盈利均为正且 PF>1。</p>
|
|||
|
|
<p><b>数据</b>:IS 反向后 净=$+962.92 / PF=1.44;
|
|||
|
|
OSS 反向后 净=$+403.50 / PF=1.06。</p>
|
|||
|
|
<p><b>动作</b>:强烈建议人工复核 EA 源码里 buy/sell 信号的方向判定,怀疑方向逻辑写反。</p>
|
|||
|
|
|
|||
|
|
<h3>② 多空方向不对称 <span class='tag '>⚠️ 触发</span></h3>
|
|||
|
|
<p><b>触发条件</b>:两份报告多空胜率差均 > 20 个百分点。</p>
|
|||
|
|
<p><b>数据</b>:IS 多空胜率差 34.2,OSS 多空胜率差 35.8。
|
|||
|
|
较弱方向:long(IS 胜率 23.0%)。</p>
|
|||
|
|
<p><b>动作</b>:审查较弱方向的入场信号;可先单独跑该方向 What-If(sell-only/buy-only)确认其期望。</p>
|
|||
|
|
|
|||
|
|
<h3>③ short 方向:高胜率低盈亏比</h3>
|
|||
|
|
<p><b>触发条件</b>:胜率 > 55% 且盈亏比 < 0.8(赢的太小输的太大,离场管理问题)。</p>
|
|||
|
|
<p><b>数据</b>:IS short 胜率 57.2%,盈亏比 0.45。</p>
|
|||
|
|
<p><b>动作</b>:检查提前离场逻辑是否砍断盈利单;考虑启用盈亏平衡或让盈利单跑到目标价。</p>
|
|||
|
|
|
|||
|
|
<h3>③ long 方向:高盈亏比低胜率</h3>
|
|||
|
|
<p><b>触发条件</b>:胜率 < 40% 且盈亏比 > 1.5(入场时机差但单笔盈亏结构尚可)。</p>
|
|||
|
|
<p><b>数据</b>:IS long 胜率 23.0%,盈亏比 2.56。</p>
|
|||
|
|
<p><b>动作</b>:改进入场过滤条件以提升胜率;或确认止损/止盈设置是否合理。</p>
|
|||
|
|
|
|||
|
|
<h3>④ 时段/星期过滤 <span class='tag warn'>触发</span></h3>
|
|||
|
|
<p><b>触发条件</b>:某时段在两份报告同时为负(系统性劣势)。</p>
|
|||
|
|
<p><b>数据</b>:双负小时 11 个 ['02', '03', '05', '08', '09', '10', '13', '14', '17', '18', '19'];
|
|||
|
|
双负星期:周二、周三、周四。</p>
|
|||
|
|
<p><b>动作</b>:若 EA 有时段过滤参数,开启并剔除上述窗口;否则在信号逻辑中加入时间过滤条件。</p>
|
|||
|
|
|
|||
|
|
<h3>⑤ 回撤控制 <span class='tag warn'>触发</span></h3>
|
|||
|
|
<p><b>触发条件</b>:任一报告最大回撤 > 40%。</p>
|
|||
|
|
<p><b>数据</b>:IS 回撤 96.32%,OSS 回撤 53.1%,最大连败 IS 16 笔 / OSS 16 笔。</p>
|
|||
|
|
<p><b>动作</b>:缩小单笔风险(止损/仓位);考虑在连亏达 N 笔时暂停或减仓;
|
|||
|
|
参考 What-If 表"仓位减半"和"亏损截断"场景的回撤改善效果。</p>
|
|||
|
|
|
|||
|
|
<h3>⑦ 离场优化潜力</h3>
|
|||
|
|
<p><b>触发条件</b>:"盈利单放大×1.5"场景 PF 站上 1 且优于基线。</p>
|
|||
|
|
<p><b>数据</b>:IS 基线 PF 0.69 → 场景 PF 1.04;
|
|||
|
|
OSS 基线 PF 0.94 → 场景 PF 1.41。</p>
|
|||
|
|
<p><b>动作</b>:离场逻辑有改进空间,考虑让盈利单兑现更多利润(放宽止盈/调整提前离场条件)。</p>
|
|||
|
|
|
|||
|
|
<h3>⑧ 参数稳健性</h3>
|
|||
|
|
<p><b>触发条件</b>:两份报告 PF 差异 > 0.2。</p>
|
|||
|
|
<p><b>数据</b>:IS PF 0.69,OSS PF 0.94,差 0.25。</p>
|
|||
|
|
<p><b>动作</b>:策略对行情敏感,建议做参数敏感度扫描找稳健高原(而非单点峰值),并用 Walk-Forward 验证。</p>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<h2>9. Walk-Forward 滚动验证</h2>
|
|||
|
|
<p>将每份报告的逐笔交易按时间切成滚动窗口(IS 45天 + OOS 30天,步长 30天),
|
|||
|
|
计算每个窗口的 IS/OOS 指标。WFE = ΣOOS净 / ΣIS净,越高越稳健;
|
|||
|
|
IS-OOS PF 相关性高=泛化好,低=过拟合风险。数据太短无法切窗会提示。</p>
|
|||
|
|
<h3>报告A: IS-ReportTester-52845377.xlsx</h3>
|
|||
|
|
<div class='cards'><div class='card'><div class='k'>窗口数</div><div class='v'>1</div></div><div class='card'><div class='k'>WFE (ΣOOS净/ΣIS净)</div><div class='v pos'>+0.57</div></div><div class='card'><div class='k'>OOS 盈利窗口占比</div><div class='v'>0%</div></div><div class='card'><div class='k'>IS-OOS PF 相关性</div><div class='v'>—</div></div></div><svg viewBox="0 0 760 260" class="chart"><line x1="46" y1="224.0" x2="744" y2="224.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="40" y="227.0" font-size="9" fill="#6b7280" text-anchor="end">0.00</text><line x1="46" y1="174.0" x2="744" y2="174.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="40" y="177.0" font-size="9" fill="#6b7280" text-anchor="end">0.25</text><line x1="46" y1="124.0" x2="744" y2="124.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="40" y="127.0" font-size="9" fill="#6b7280" text-anchor="end">0.50</text><line x1="46" y1="74.0" x2="744" y2="74.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="40" y="77.0" font-size="9" fill="#6b7280" text-anchor="end">0.75</text><line x1="46" y1="24.0" x2="744" y2="24.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="40" y="27.0" font-size="9" fill="#6b7280" text-anchor="end">1.00</text><line x1="46" y1="24.0" x2="744" y2="24.0" stroke="#9ca3af" stroke-dasharray="3,3" stroke-width="0.8"/><polyline points="46.0,105.1" fill="none" stroke="#2563eb" stroke-width="1.6"><title></title></polyline><polyline points="46.0,79.8" fill="none" stroke="#dc2626" stroke-width="1.6"><title></title></polyline><text x="46.0" y="238.0" font-size="9" fill="#374151" text-anchor="middle">#0</text><text x="46.0" y="238.0" font-size="9" fill="#374151" text-anchor="middle">#0</text><text x="46.0" y="238.0" font-size="9" fill="#374151" text-anchor="middle">#0</text><text x="380" y="16" font-size="11" fill="#374151" text-anchor="middle">滚动窗口 IS vs OOS 盈利因子 (PF=1 为盈亏平衡线)</text><text x="744" y="32" font-size="10" fill="#2563eb" text-anchor="end">IS PF</text><text x="744" y="46" font-size="10" fill="#dc2626" text-anchor="end">OOS PF</text><text x="380" y="256" font-size="9" fill="#6b7280" text-anchor="middle">窗口序号 →</text></svg><table class='data'><thead><tr><th>窗口</th><th>IS区间</th><th>OOS区间</th><th>IS笔</th><th>IS净</th><th>IS PF</th><th>IS胜率</th><th>OOS笔</th><th>OOS净</th><th>OOS PF</th><th>OOS胜率</th><th>OOS回撤</th></tr></thead><tbody><tr><td>#0</td><td>2025-07-17~2025-08-31</td><td>2025-08-31~2025-09-30</td><td>956</td><td>-497.13</td><td>0.59</td><td>39.7%</td><td>607</td><td class='neg'>-281.56</td><td>0.72</td><td>37.4%</td><td>-296.37</td></tr></tbody></table><div class='note'>WFE > 0.5:OOS 能保留 IS 的一半以上盈利,泛化较好。</div>
|
|||
|
|
<h3>报告B: OSS-ReportTester-52845377.xlsx</h3>
|
|||
|
|
<div class='cards'><div class='card'><div class='k'>窗口数</div><div class='v'>1</div></div><div class='card'><div class='k'>WFE (ΣOOS净/ΣIS净)</div><div class='v neg'>-1.64</div></div><div class='card'><div class='k'>OOS 盈利窗口占比</div><div class='v'>0%</div></div><div class='card'><div class='k'>IS-OOS PF 相关性</div><div class='v'>—</div></div></div><svg viewBox="0 0 760 260" class="chart"><line x1="46" y1="224.0" x2="744" y2="224.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="40" y="227.0" font-size="9" fill="#6b7280" text-anchor="end">0.00</text><line x1="46" y1="174.0" x2="744" y2="174.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="40" y="177.0" font-size="9" fill="#6b7280" text-anchor="end">0.26</text><line x1="46" y1="124.0" x2="744" y2="124.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="40" y="127.0" font-size="9" fill="#6b7280" text-anchor="end">0.53</text><line x1="46" y1="74.0" x2="744" y2="74.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="40" y="77.0" font-size="9" fill="#6b7280" text-anchor="end">0.79</text><line x1="46" y1="24.0" x2="744" y2="24.0" stroke="#e5e7eb" stroke-width="0.5"/><text x="40" y="27.0" font-size="9" fill="#6b7280" text-anchor="end">1.05</text><line x1="46" y1="34.3" x2="744" y2="34.3" stroke="#9ca3af" stroke-dasharray="3,3" stroke-width="0.8"/><polyline points="46.0,24.0" fill="none" stroke="#2563eb" stroke-width="1.6"><title></title></polyline><polyline points="46.0,67.1" fill="none" stroke="#dc2626" stroke-width="1.6"><title></title></polyline><text x="46.0" y="238.0" font-size="9" fill="#374151" text-anchor="middle">#0</text><text x="46.0" y="238.0" font-size="9" fill="#374151" text-anchor="middle">#0</text><text x="46.0" y="238.0" font-size="9" fill="#374151" text-anchor="middle">#0</text><text x="380" y="16" font-size="11" fill="#374151" text-anchor="middle">滚动窗口 IS vs OOS 盈利因子 (PF=1 为盈亏平衡线)</text><text x="744" y="32" font-size="10" fill="#2563eb" text-anchor="end">IS PF</text><text x="744" y="46" font-size="10" fill="#dc2626" text-anchor="end">OOS PF</text><text x="380" y="256" font-size="9" fill="#6b7280" text-anchor="middle">窗口序号 →</text></svg><table class='data'><thead><tr><th>窗口</th><th>IS区间</th><th>OOS区间</th><th>IS笔</th><th>IS净</th><th>IS PF</th><th>IS胜率</th><th>OOS笔</th><th>OOS净</th><th>OOS PF</th><th>OOS胜率</th><th>OOS回撤</th></tr></thead><tbody><tr><td>#0</td><td>2026-02-16~2026-04-02</td><td>2026-04-02~2026-05-02</td><td>852</td><td>+182.58</td><td>1.05</td><td>45.1%</td><td>530</td><td class='neg'>-299.73</td><td>0.83</td><td>45.7%</td><td>-338.75</td></tr></tbody></table><div class='warn'>WFE 为负:OOS 累计亏损。即使 IS 段盈利,策略也未能泛化。</div>
|
|||
|
|
|
|||
|
|
<h2>10. 可选扩展分析</h2>
|
|||
|
|
<p>以下三项已实现为独立可复用工具,按需调用:</p>
|
|||
|
|
<ul>
|
|||
|
|
<li><b>参数敏感度扫描</b>:<code>python param_scan.py gen-set ...</code> 生成网格 .set + 批处理脚本,
|
|||
|
|
在 MT5 跑完后 <code>python param_scan.py analyze ...</code> 出响应面热力图 + 3D 曲面 + 高原检测。
|
|||
|
|
<code>python param_scan.py demo</code> 可先看效果。</li>
|
|||
|
|
<li><b>MAE/MFE 分析</b>:MT5 标准 xlsx 不含逐笔 MAE/MFE,需先用 <code>python mae_mfe.py --show-snippet</code>
|
|||
|
|
取 MQL5 代码粘进 EA 导出 CSV,再 <code>python mae_mfe.py mae_mfe.csv</code> 出散点 + TP/SL 扫描热力图。</li>
|
|||
|
|
<li><b>Walk-Forward 独立报告</b>:<code>python walk_forward.py <report.xlsx> --is-days 60 --oos-days 30</code>
|
|||
|
|
出滚动窗口 IS/OOS 验证(本报告第 8 节已内嵌简化版)。</li>
|
|||
|
|
</ul>
|
|||
|
|
<p>其它建议(未实现,需自行扩展):</p>
|
|||
|
|
<ul>
|
|||
|
|
<li><b>多品种/多周期</b>:同策略测多品种多周期,看泛化能力。</li>
|
|||
|
|
<li><b>交易成本敏感度</b>:点差/手续费放大 1.5x、2x 看 PF 退化曲线,评估实盘可行性。</li>
|
|||
|
|
<li><b>信号因子分解</b>:复合信号拆单因子分别回测,剔除拖累项。</li>
|
|||
|
|
</ul>
|
|||
|
|
|
|||
|
|
<footer>由 run_analysis.py 自动生成 · 数据来自 MT5 Strategy Tester 导出的 xlsx · 2026-06-28 02:14</footer>
|
|||
|
|
</div></body></html>
|