Price chart: connect close-price dots with orange line, remove candle bodies
Browse filesReplace the individual orange dots with a continuous orange polyline +
dots overlay. Remove the filled candlestick bodies (keep wicks) so the
horizontal flat lines no longer clutter each price point.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
dashboard/templates/index.html
CHANGED
|
@@ -826,14 +826,17 @@
|
|
| 826 |
ctx.strokeStyle = color; ctx.lineWidth = 1;
|
| 827 |
ctx.beginPath(); ctx.moveTo(midX, toY(p.high)); ctx.lineTo(midX, toY(p.low)); ctx.stroke();
|
| 828 |
|
| 829 |
-
// Body (min 1px so single-price ticks still show)
|
| 830 |
-
const bodyTop = Math.min(toY(p.open), toY(p.close));
|
| 831 |
-
const bodyH = Math.max(1, Math.abs(toY(p.close) - toY(p.open)));
|
| 832 |
-
ctx.fillStyle = color;
|
| 833 |
-
ctx.fillRect(x, bodyTop, bodyW, bodyH);
|
| 834 |
});
|
| 835 |
|
| 836 |
-
// Close-price dots (orange)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 837 |
ctx.fillStyle = "rgba(255,152,0,0.9)";
|
| 838 |
points.forEach((p, i) => {
|
| 839 |
const x = pad.left + i * slotW + slotW / 2;
|
|
|
|
| 826 |
ctx.strokeStyle = color; ctx.lineWidth = 1;
|
| 827 |
ctx.beginPath(); ctx.moveTo(midX, toY(p.high)); ctx.lineTo(midX, toY(p.low)); ctx.stroke();
|
| 828 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 829 |
});
|
| 830 |
|
| 831 |
+
// Close-price line + dots (orange)
|
| 832 |
+
ctx.strokeStyle = "rgba(255,152,0,0.85)";
|
| 833 |
+
ctx.lineWidth = 1.5;
|
| 834 |
+
ctx.beginPath();
|
| 835 |
+
points.forEach((p, i) => {
|
| 836 |
+
const x = pad.left + i * slotW + slotW / 2;
|
| 837 |
+
i === 0 ? ctx.moveTo(x, toY(p.close)) : ctx.lineTo(x, toY(p.close));
|
| 838 |
+
});
|
| 839 |
+
ctx.stroke();
|
| 840 |
ctx.fillStyle = "rgba(255,152,0,0.9)";
|
| 841 |
points.forEach((p, i) => {
|
| 842 |
const x = pad.left + i * slotW + slotW / 2;
|