diff options
| author | JSDurand <mmemmew@gmail.com> | 2026-10-21 15:28:20 +0800 |
|---|---|---|
| committer | JSDurand <mmemmew@gmail.com> | 2026-10-21 15:28:20 +0800 |
| commit | 75dd524fadc022d9e6845f41f19203c3d5a951cd (patch) | |
| tree | b08ec82fe4358c5f9ea047794bb1ff888b35d64d /web/template.html | |
| parent | 5c00355c2ccd94195bdb90e1c1e6f51acbcdd7a5 (diff) | |
- fetch_tw_daily.sh: --snapshot mode (one file per trading day, merged by
symbol), retries, validation of numeric fields
- cron_daily.sh (VPS): lock, pruning, e-mail alerts on failure
- sync_from_vps.sh (Mac): rsync snapshots and merge into per-stock CSVs
- run.sh: pick data files for a symbol, build, analyse, open the page
- lib.sh: LC_ALL=C; fetch.sh: small fixes
- data.rs: repair rows whose open/close fall outside high/low
- template: horizontal hover lines in the RSI and KD panels
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Diffstat (limited to 'web/template.html')
| -rw-r--r-- | web/template.html | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/web/template.html b/web/template.html index 45fa874..966a584 100644 --- a/web/template.html +++ b/web/template.html @@ -206,6 +206,14 @@ function render() { const c = D.candles[hover]; s += `<line class="guide" x1="${M.l}" x2="${W-M.r}" y1="${py(c.Close)}" y2="${py(c.Close)}"/>` + `<text x="${W-M.r+4}" y="${py(c.Close)+4}" style="fill:${css('--fg')};font-weight:600">${fmt(c.Close)}</text>`; + // same horizontal crosshair for the indicator panels, at the hovered bar's values + for (const [p, arr, color] of [[R, D.rsi, css('--accent')], [K, D.k, css('--line1')], [K, D.d, css('--line2')]]) { + const v = arr[hover]; + if (v == null) continue; + const y = ind(p, v); + s += `<line x1="${M.l}" x2="${W-M.r}" y1="${y}" y2="${y}" stroke="${color}" stroke-width="1" stroke-dasharray="4 3"/>` + + `<text x="${W-M.r+4}" y="${y+4}" style="fill:${color};font-weight:600">${fmt(v, 1)}</text>`; + } } svg.innerHTML = s; updateInfo(); |
