← Back
<!DOCTYPE html>
<html lang="ru"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Order-Flow — форма веса</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(33,208,122,.10),transparent),
               radial-gradient(900px 500px at 0% 0%,rgba(59,130,246,.08),transparent),var(--bg);
    color:var(--txt);min-height:100vh;padding:22px 14px;line-height:1.45}
  .wrap{max-width:1000px;margin:0 auto}
  header{margin-bottom:12px}
  h1{font-size:21px;font-weight:700;letter-spacing:-.5px}
  h1 .em{background:linear-gradient(90deg,#10b981,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:12px;border-left:3px solid var(--amber);font-size:11.5px;background:rgba(245,158,11,.06)}
  .warn b{color:var(--amber)}
  .section{padding:16px 18px;margin-bottom:12px}
  .section h2{font-size:14px;font-weight:600;margin-bottom:3px}
  .section .h{font-size:11px;color:var(--muted);margin-bottom:12px}
  .row{display:flex;align-items:center;gap:10px;font-size:12.5px;padding:7px 0;border-top:1px solid rgba(255,255,255,.05)}
  .row:first-child{border-top:none}
  .row .nm{width:130px;font-weight:600}
  .row .bar{flex:1;height:20px;border-radius:5px;background:rgba(255,255,255,.04);overflow:hidden;position:relative}
  .row .bar>div{height:100%;border-radius:5px;background:linear-gradient(90deg,rgba(33,208,122,.4),var(--green))}
  .row .v{width:62px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
  .row .wr{width:54px;text-align:right;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
  .row.best .nm{color:var(--green)}
  .row.base .nm{color:var(--muted)}
  .verdict{padding:14px 16px;border-left:3px solid var(--green);font-size:12px}
  .verdict b{color:var(--green)}
  .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">какая форма веса лучше</span></h1>
    <div class="sub" id="sub"></div>
  </header>

  <div class="warn glass" id="warn"></div>

  <div class="section glass">
    <h2>📊 net топ-квартиля (Q4) по форме весовой функции</h2>
    <div class="h">Чем ближе стена к цене — тем больше вес. Бар = Q4 net/сделку, справа WR. Сортировка по Q4 net.</div>
    <div id="bars"></div>
  </div>

  <div class="verdict glass" id="verdict"></div>
  <div class="foot" id="foot"></div>
</div>

<script>
const D = {"tp": 1.5, "sl": 0.5, "fee": 0.036, "forms": [{"name": "flat", "q4n": 40, "q4_wr": 47.5, "q4_net": 0.187, "all_net": 0.071}, {"name": "lin/3 (\u0442\u0435\u043a.\u0432\u0437\u0432\u0435\u0448)", "q4n": 40, "q4_wr": 57.5, "q4_net": 0.381, "all_net": 0.084}, {"name": "lin/1.5", "q4n": 39, "q4_wr": 56.4, "q4_net": 0.355, "all_net": 0.062}, {"name": "inv 1/(d+0.1)", "q4n": 40, "q4_wr": 50.0, "q4_net": 0.295, "all_net": 0.112}, {"name": "exp k=0.5", "q4n": 40, "q4_wr": 55.0, "q4_net": 0.341, "all_net": 0.092}, {"name": "exp k=0.25", "q4n": 40, "q4_wr": 55.0, "q4_net": 0.361, "all_net": 0.127}, {"name": "\u043e\u043a\u043d\u043e \u22641%", "q4n": 39, "q4_wr": 56.4, "q4_net": 0.427, "all_net": 0.062}, {"name": "\u043e\u043a\u043d\u043e \u22640.5%", "q4n": 39, "q4_wr": 59.0, "q4_net": 0.442, "all_net": 0.107}]};
const pct=(v)=>(v>0?'+':'')+v.toFixed(3)+'%';
const F=[...D.forms].sort((a,b)=>b.q4_net-a.q4_net);
const mx=Math.max(...F.map(f=>f.q4_net));
const best=F[0];
document.getElementById('sub').textContent =
  `192 сигнала (4ч-окно) · TP ${D.tp}/SL ${D.sl} · hold 10м · maker ${D.fee}% · метрика = net сильнейшего квартиля (что бы торговали)`;
document.getElementById('warn').innerHTML =
  `⚠️ <b>n≈40 в Q4 (4ч-окно).</b> Тренд чёткий и логичный, но выборка мелкая. «окно ≤0.5%» = считаем дисбаланс ТОЛЬКО по стенам в пределах 0.5% от цены.`;
document.getElementById('bars').innerHTML = F.map(f=>{
  const cls = f===best?'best':(f.name==='flat'?'base':'');
  return `<div class="row ${cls}">
    <div class="nm">${f.name}${f===best?' 🏆':''}${f.name==='flat'?' (тек.)':''}</div>
    <div class="bar"><div style="width:${Math.max(3,100*f.q4_net/mx)}%"></div></div>
    <div class="v pos">${pct(f.q4_net)}</div>
    <div class="wr">WR ${f.q4_wr}%</div>
  </div>`;
}).join('');
document.getElementById('verdict').innerHTML =
  `<b>🎯 Закономерность однозначная: чем уже фокус на БЛИЗКИЕ стены — тем сильнее эдж.</b><br>`+
  `• Победитель — <b>окно ≤0.5%</b>: Q4 net <b>${pct(best.q4_net)}</b>, WR ${best.q4_wr}% (vs плоский +0.187%, WR 47.5%). Рост ~2.4×.<br>`+
  `• Все «ближние» формы (окно ≤1%, exp, lin) бьют плоскую. Дальние стены (1-3% от цены) = чистый шум, текущее окно ±3% их зря мешает в сигнал.<br>`+
  `• Логика рынка: только ликвидность вплотную к цене реально влияет на ближайшее движение. Стена в 2% за 10-30 мин обычно не играет.<br>`+
  `<b>Вывод:</b> главное улучшение — <b>сузить окно дисбаланса с ±3% до ±0.5-1%</b> (даже без хитрого веса). Это сильнее, чем менять TP/SL/тайм-стоп. Кандидат №1 на правку сканера.<br>`+
  `⚠️ n≈40 — подтвердить на бОльшем объёме, но направление совпадает с теорией микроструктуры.`;
document.getElementById('foot').textContent='Форма веса × Q4 net · те же 192 сигнала · forward path · maker 0.036% · Бендер';
</script>
</body></html>