<!DOCTYPE html>
<html lang="ru"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Order-Flow — TP1%/SL0.5% все разрезы</title>
<style>
:root{--bg:#0a0e17;--card:rgba(255,255,255,.04);--border:rgba(255,255,255,.09);
--txt:#e6edf3;--muted:#8b98a9;--green:#21d07a;--red:#f6465d;--blue:#3b82f6;--amber:#f59e0b}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
background:radial-gradient(1200px 600px at 80% -10%,rgba(59,130,246,.10),transparent),
radial-gradient(900px 500px at 0% 0%,rgba(245,158,11,.07),transparent),var(--bg);
color:var(--txt);min-height:100vh;padding:22px 14px;line-height:1.45}
.wrap{max-width:1060px;margin:0 auto}
header{margin-bottom:12px}
h1{font-size:21px;font-weight:700;letter-spacing:-.5px}
h1 .em{background:linear-gradient(90deg,var(--amber),var(--blue));-webkit-background-clip:text;background-clip:text;color:transparent}
.sub{color:var(--muted);font-size:12px;margin-top:5px}
.glass{background:var(--card);border:1px solid var(--border);border-radius:13px}
.warn{padding:11px 15px;margin-bottom:13px;border-left:3px solid var(--amber);font-size:11.5px;background:rgba(245,158,11,.06)}
.warn b{color:var(--amber)}
.section{padding:14px 16px;margin-bottom:13px}
.section h2{font-size:13px;font-weight:600;margin-bottom:4px}
.section .h{font-size:11px;color:var(--muted);margin-bottom:9px}
table{width:100%;border-collapse:collapse;font-size:11.5px}
th,td{text-align:right;padding:6px 5px}
th:first-child,td:first-child{text-align:left}
th{color:var(--muted);font-weight:500;font-size:9.5px;text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--border)}
tr+tr td{border-top:1px solid rgba(255,255,255,.045)}
td{font-variant-numeric:tabular-nums}
tr.best{background:rgba(33,208,122,.12)}
tr.best td:first-child{font-weight:700;color:var(--green)}
.pos{color:var(--green)}.neg{color:var(--red)}.mut{color:var(--muted)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:13px}
.exit{display:flex;height:24px;border-radius:7px;overflow:hidden;font-size:10.5px;font-weight:700;margin-bottom:5px}
.exit>div{display:flex;align-items:center;justify-content:center}
.verdict{padding:14px 16px;border-left:3px solid var(--amber);font-size:12px}
.verdict b{color:var(--amber)}
.foot{color:var(--muted);font-size:10px;margin-top:7px;text-align:center}
</style></head>
<body><div class="wrap">
<header>
<h1>💸 Order-Flow — <span class="em">TP 1% / SL 0.5%</span>, все разрезы</h1>
<div class="sub" id="sub"></div>
</header>
<div class="warn glass" id="warn"></div>
<div class="section glass">
<h2>⏱ Тайм-стоп (вкл короткие 3-5 мин)</h2>
<div class="h">net P&L/сделку, maker. 🟢 = лучший. TP/SL/⏱ = чем закрылась.</div>
<table id="sweep"><thead><tr><th>Тайм-стоп</th><th>n</th><th>WR</th><th>net/сд.</th><th>Σ</th><th>TP</th><th>SL</th><th>⏱</th></tr></thead><tbody></tbody></table>
</div>
<div class="section glass">
<h2>🚪 Чем закрывались (тайм-стоп 5 мин)</h2>
<div class="exit" id="exit"></div>
<div class="sub" id="exitCap"></div>
</div>
<div class="grid2">
<div class="section glass" style="margin:0"><h2>📈 Направление (5м)</h2><table id="t_dir"></table></div>
<div class="section glass" style="margin:0"><h2>🎚 Confidence (5м)</h2><table id="t_conf"></table></div>
</div>
<div class="grid2">
<div class="section glass" style="margin:0"><h2>🔥 Символы (5м)</h2><table id="t_sym"></table></div>
<div class="section glass" style="margin:0"><h2>🕐 Часы UTC (5м)</h2><table id="t_hour"></table></div>
</div>
<div class="verdict glass" id="verdict"></div>
<div class="foot" id="foot"></div>
</div>
<script>
const D = {"tp": 1.0, "sl": 0.5, "fee": 0.036, "sweep": [{"hold": 3, "n": 112, "wr": 39.3, "net_exp": -0.0104, "net_tot": -1.16, "tp_n": 8, "sl_n": 26, "time_n": 78}, {"hold": 5, "n": 112, "wr": 44.6, "net_exp": -0.0101, "net_tot": -1.13, "tp_n": 11, "sl_n": 36, "time_n": 65}, {"hold": 10, "n": 113, "wr": 40.7, "net_exp": -0.0243, "net_tot": -2.74, "tp_n": 18, "sl_n": 51, "time_n": 44}, {"hold": 15, "n": 114, "wr": 37.7, "net_exp": -0.0661, "net_tot": -7.54, "tp_n": 20, "sl_n": 59, "time_n": 35}, {"hold": 30, "n": 117, "wr": 35.0, "net_exp": -0.0419, "net_tot": -4.91, "tp_n": 29, "sl_n": 68, "time_n": 20}], "hold_cuts": 5, "exit": {"tp": 11, "sl": 36, "time": 65}, "dir": [{"k": "LONG", "n": 73, "wr": 43.8, "net_exp": -0.004, "net_tot": -0.29}, {"k": "SHORT", "n": 39, "wr": 46.2, "net_exp": -0.0215, "net_tot": -0.84}], "conf": [{"k": "50-59", "n": 91, "wr": 48.4, "net_exp": 0.0183, "net_tot": 1.67}, {"k": "60-69", "n": 14, "wr": 28.6, "net_exp": -0.1986, "net_tot": -2.78}, {"k": "70+", "n": 7, "wr": 28.6, "net_exp": -0.0019, "net_tot": -0.01}], "sym": [{"k": "LAB", "n": 13, "wr": 15.4, "net_exp": -0.2668, "net_tot": -3.47}, {"k": "FET", "n": 11, "wr": 54.5, "net_exp": 0.0546, "net_tot": 0.6}, {"k": "PORTAL", "n": 11, "wr": 36.4, "net_exp": -0.055, "net_tot": -0.61}, {"k": "HOME", "n": 9, "wr": 44.4, "net_exp": -0.114, "net_tot": -1.03}, {"k": "BCH", "n": 7, "wr": 28.6, "net_exp": -0.1893, "net_tot": -1.33}, {"k": "HYPE", "n": 7, "wr": 57.1, "net_exp": 0.1522, "net_tot": 1.07}, {"k": "H", "n": 6, "wr": 33.3, "net_exp": -0.2054, "net_tot": -1.23}, {"k": "EPIC", "n": 6, "wr": 33.3, "net_exp": -0.0932, "net_tot": -0.56}, {"k": "LIT", "n": 5, "wr": 100.0, "net_exp": 0.4651, "net_tot": 2.33}, {"k": "UB", "n": 5, "wr": 60.0, "net_exp": 0.1279, "net_tot": 0.64}], "hour": [{"k": "06:00", "n": 10, "wr": 30.0, "net_exp": -0.0326, "net_tot": -0.33}, {"k": "07:00", "n": 64, "wr": 46.9, "net_exp": -0.0145, "net_tot": -0.93}, {"k": "08:00", "n": 38, "wr": 44.7, "net_exp": 0.0033, "net_tot": 0.12}]};
const pct=(v,d=3)=>(v>0?'+':'')+v.toFixed(d)+'%';
const sgn=v=>v>0?'pos':v<0?'neg':'mut';
const SW=D.sweep, best=SW.reduce((a,b)=>b.net_exp>a.net_exp?b:a);
document.getElementById('sub').textContent =
`TP ${D.tp}% / SL ${D.sl}% (R:R 2:1) · maker ${D.fee}% · реальные сигналы × path depth.db (10с) · срезы при тайм-стопе 5 мин`;
document.getElementById('warn').innerHTML =
`⚠️ <b>~1.5ч / ~112 сделок = ШУМ.</b> Все net в пределах ±0.07%/сделку. На этой выборке TP1%/SL0.5% выходит <b>слегка в минус</b> по всем тайм-стопам (vs ~ноль у TP1.5%) — но разница не значима. Это данные для анализа механики, НЕ вывод. Maker-залив по цене сигнала.`;
document.querySelector('#sweep tbody').innerHTML=SW.map(s=>{
const b=s===best;
return `<tr class="${b?'best':''}"><td>${s.hold} мин ${b?'🟢':''}</td><td class="mut">${s.n}</td><td>${s.wr}%</td>
<td class="${sgn(s.net_exp)}" style="font-weight:700">${pct(s.net_exp)}</td>
<td class="${sgn(s.net_tot)}">${pct(s.net_tot,1)}</td>
<td class="pos">${s.tp_n}</td><td class="neg">${s.sl_n}</td><td class="mut">${s.time_n}</td></tr>`;
}).join('');
const e=D.exit,et=e.tp+e.sl+e.time;
document.getElementById('exit').innerHTML=
`<div style="width:${100*e.tp/et}%;background:rgba(33,208,122,.55)">TP ${e.tp}</div>`+
`<div style="width:${100*e.sl/et}%;background:rgba(246,70,93,.55)">SL ${e.sl}</div>`+
`<div style="width:${100*e.time/et}%;background:rgba(139,152,169,.4)">⏱ ${e.time}</div>`;
document.getElementById('exitCap').innerHTML=`TP +1% достаётся ${e.tp} раз (${(100*e.tp/et).toFixed(0)}%) — чуть чаще чем +1.5%, но всё равно мало за 5 мин. Доминируют выход по времени и стоп.`;
function tbl(id,rows,head){
document.getElementById(id).innerHTML=
`<thead><tr><th>${head}</th><th>n</th><th>WR</th><th>net/сд.</th><th>Σ</th></tr></thead><tbody>`+
rows.map(r=>`<tr><td>${r.k}</td><td class="mut">${r.n}</td><td>${r.wr}%</td>
<td class="${sgn(r.net_exp)}" style="font-weight:600">${pct(r.net_exp)}</td>
<td class="${sgn(r.net_tot)}">${pct(r.net_tot,1)}</td></tr>`).join('')+`</tbody>`;
}
tbl('t_dir',D.dir,'Сторона'); tbl('t_conf',D.conf,'Conf'); tbl('t_sym',D.sym,'Символ'); tbl('t_hour',D.hour,'Час');
document.getElementById('verdict').innerHTML =
`<b>Для анализа (всё в пределах шума, n~112):</b><br>`+
`• Тайм-стоп: короткие 3-5 мин чуть лучше длинных (15м худший −0.066%). Чем дольше держишь — тем больше ловишь стоп −0.5%.<br>`+
`• TP1%/SL0.5% vs TP1.5%/SL0.5%: на этом окне 1.5% был чуть лучше (≈0 vs ≈−0.01). Близкий тейк не помог.<br>`+
`• Confidence: бакет 50-59 (+0.018%) лучше 60-69 (−0.20%) — но это инверсия от ожидаемого, явно шум (n14).<br>`+
`• Символы: разброс LIT +0.47% / LAB −0.27% — случайность на 5-13 сделках.<br>`+
`<b>Главное:</b> на 1.5ч ни один параметр не выделяется значимо. Реальный сигнал/шум проявится только на неделях (Фаза 1). Сейчас всё ≈ ноль ± комиссия.`;
document.getElementById('foot').textContent='Реальные сигналы signal_log × path depth.db · path-resolved · Бендер';
</script>
</body></html>