$BNB

BNB
BNB
591.13
+0.62%

<!DOCTYPE html>

<html lang="de">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>BNB Marktanalyse – 5. Mai 2026</title>

<link href="https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Space+Mono:wght@400;700&family=Syne:wght@400;700;800&display=swap" rel="stylesheet">

<style>

:root {

--gold: #F0B90B;

--gold-light: #FFD740;

--gold-dim: #B8860B;

--dark: #0B0E11;

--dark2: #13171D;

--dark3: #1E2330;

--green: #0ECB81;

--rot: #F6465D;

--text: #E8E8E8;

--muted: #848E9C;

}

* { margin: 0; padding: 0; box-sizing: border-box; }

Körper {

Hintergrund: var(--dunkel);

Farbe: var(--text);

Schriftart: 'Space Mono', monospace;

Mindesthöhe: 100vh;

overflow-x: versteckt;

}

/* Animiertes Hintergrundraster */

body::before {

Inhalt: '';

Position: fest;

Einschub: 0;

Hintergrundbild:

linear-gradient(rgba(240,185,11,0.04) 1px, transparent 1px),

linear-gradient(90deg, rgba(240,185,11,0.04) 1px, transparent 1px);

background-size: 40px 40px;

Zeigerereignisse: keine;

z-Index: 0;

}

.container {

Position: relativ;

z-Index: 1;

max-width: 900px;

Rand: 0 automatisch;

Innenabstand: 30px 20px 60px;

}

/* ── HEADER ── */

.header {

Anzeige: Flex;

align-items: zentriert;

justify-content: space-between;

margin-bottom: 36px;

border-bottom: 1px solid rgba(240,185,11,0.2);

padding-bottom: 20px;

animation: fadeDown 0.6s ease both;

}

.Marke {

Anzeige: Flex;

align-items: zentriert;

Abstand: 14px;

}

.bnb-icon {

Breite: 56px;

Höhe: 56px;

Hintergrund: var(--gold);

border-radius: 50%;

Anzeige: Flex;

align-items: zentriert;

justify-content: zentriert;

Schriftfamilie: „Bebas Neue“, serifenlos;

Schriftgröße: 22px;

Farbe: #000;

box-shadow: 0 0 24px rgba(240,185,11,0.5);

Animation: Puls 2,5s, sanftes Ein- und Ausblenden, unendlich;

}

@keyframes pulse {

0%, 100% { box-shadow: 0 0 24px rgba(240,185,11,0.5); }

50% { box-shadow: 0 0 44px rgba(240,185,11,0.9); }

}

.brand-text h1 {

Schriftfamilie: „Bebas Neue“, serifenlos;

Schriftgröße: 2rem;

Buchstabenabstand: 3px;

Farbe: var(--gold);

Zeilenhöhe: 1;

}

.brand-text p {

Schriftgröße: 0,65rem;

Farbe: var(--muted);

Buchstabenabstand: 2px;

text-transform: uppercase;

}

.date-badge {

Hintergrund: var(--dark3);

border: 1px solid rgba(240,185,11,0.25);

border-radius: 6px;

Innenabstand: 8px 14px;

Schriftgröße: 0,65rem;

Farbe: var(--gold);

Buchstabenabstand: 1,5px;

text-align: right;

}

/* ── HELDENPREIS-REIHE ── */

.hero {

Anzeige: Raster;

grid-template-columns: 1fr 1fr 1fr 1fr;

Abstand: 12px;

unterer Rand: 32px;

animation: fadeUp 0.7s 0.15s ease both;

}

.stat-card {

Hintergrund: var(--dark2);

border: 1px solid rgba(240,185,11,0.15);

border-radius: 10px;

Innenabstand: 18px 16px;

Position: relativ;

Überlauf: versteckt;

Übergang: Rahmenfarbe 0,2s;

}

.stat-card::after {

Inhalt: '';

Position: absolut;

oben: 0; links: 0;

Breite: 3px; Höhe: 100%;

Hintergrund: var(--gold);

border-radius: 3px 0 0 3px;

}

.stat-card:hover { border-color: rgba(240,185,11,0.4); }

.stat-card .label {

Schriftgröße: 0,6rem;

Farbe: var(--muted);

Buchstabenabstand: 2px;

text-transform: uppercase;

margin-bottom: 6px;

}

.stat-card .value {

Schriftart: 'Syne', sans-serif;

Schriftgröße: 1,3rem;

Schriftstärke: 800;

Farbe: var(--text);

}

.stat-card .value.green { color: var(--green); }

.stat-card .value.red { color: var(--red); }

.stat-card .value.gold { color: var(--gold); }

.stat-card .sub {

Schriftgröße: 0,6rem;

Farbe: var(--muted);

margin-top: 3px;

}

/* ── ABSCHNITTSTITEL ── */

.section-title {

Schriftfamilie: „Bebas Neue“, serifenlos;

Schriftgröße: 1,1rem;

Buchstabenabstand: 4px;

Farbe: var(--gold);

text-transform: uppercase;

margin-bottom: 14px;

Anzeige: Flex;

align-items: zentriert;

Abstand: 10px;

}

.section-title::after {

Inhalt: '';

flex: 1;

Höhe: 1px;

Hintergrund: linear-gradient(90deg, rgba(240,185,11,0.4), transparent);

}

/* ── KERZEN-DIAGRAMM ── */

.chart-wrap {

Hintergrund: var(--dark2);

border: 1px solid rgba(240,185,11,0.15);

border-radius: 12px;

Innenabstand: 24px;

unterer Rand: 32px;

animation: fadeUp 0.7s 0.25s ease both;

}

.chart-header {

Anzeige: Flex;

justify-content: space-between;

align-items: zentriert;

margin-bottom: 20px;

}

.chart-header h2 {

Schriftart: 'Syne', sans-serif;

Schriftstärke: 800;

Schriftgröße: 1rem;

Farbe: var(--text);

}

.timeframe-pills {

Anzeige: Flex;

Abstand: 6px;

}

.pill {

Hintergrund: var(--dark3);

border: 1px solid rgba(240,185,11,0.2);

border-radius: 4px;

Innenabstand: 3px 10px;

Schriftgröße: 0,6rem;

Farbe: var(--muted);

Cursor: Zeiger;

Übergang: alle 0,15 Sekunden;

}

.pill.active, .pill:hover {

Hintergrund: rgba(240,185,11,0.15);

border-color: var(--gold);

Farbe: var(--gold);

}

#candleChart {

Breite: 100%;

Höhe: 320px;

Anzeige: Block;

}

.chart-legend {

Anzeige: Flex;

Abstand: 20px;

margin-top: 14px;

flex-wrap: umwickeln;

}

.legend-item {

Anzeige: Flex;

align-items: zentriert;

Abstand: 6px;

Schriftgröße: 0,6rem;

Farbe: var(--muted);

}

.legend-dot {

Breite: 8px; Höhe: 8px;

border-radius: 50%;

}

/* ── ANALYSE-RASTER ── */

.analysis-grid {

Anzeige: Raster;

grid-template-columns: 1fr 1fr;

Abstand: 16px;

unterer Rand: 32px;

animation: fadeUp 0.7s 0.35s ease both;

}

.analysis-card {

Hintergrund: var(--dark2);

border: 1px solid rgba(240,185,11,0.15);

border-radius: 10px;

Innenabstand: 20px;

}

.analysis-card h3 {

Schriftart: 'Syne', sans-serif;

Schriftstärke: 700;

Schriftgröße: 0,8rem;

Farbe: var(--gold);

margin-bottom: 12px;

Buchstabenabstand: 1px;

text-transform: uppercase;

}

.level-row {

Anzeige: Flex;

justify-content: space-between;

align-items: zentriert;

Innenabstand: 7px 0;

border-bottom: 1px solid rgba(255,255,255,0.04);

Schriftgröße: 0,7rem;

}

.level-row:last-child { border-bottom: none; }

.level-row .name { color: var(--muted); }

.level-row .val { font-weight: 700; }

.level-row .val.r { color: var(--red); }

.level-row .val.g { color: var(--green); }

.level-row .val.y { color: var(--gold); }

/* ── INDIKATOREN ── */

.Indikatoren {

Anzeige: Raster;

grid-template-columns: repeat(3, 1fr);

Abstand: 12px;

unterer Rand: 32px;

animation: fadeUp 0.7s 0.4s ease both;

}

.ind-card {

Hintergrund: var(--dark2);

border: 1px solid rgba(240,185,11,0.12);

border-radius: 10px;

Innenabstand: 16px;

text-align: center;

}

.ind-card .ind-name {

Schriftgröße: 0,58rem;

Farbe: var(--muted);

Buchstabenabstand: 2px;

text-transform: uppercase;

margin-bottom: 8px;

}

.ind-card .ind-val {

Schriftart: 'Syne', sans-serif;

Schriftgröße: 1,4rem;

Schriftstärke: 800;

}

.ind-card .ind-signal {

Schriftgröße: 0,58rem;

Buchstabenabstand: 1,5px;

margin-top: 4px;

text-transform: uppercase;

}

.bullish { color: var(--green); }

.bearish { color: var(--red); }

.neutral { color: var(--gold); }

/* ── SZENARIO-LEISTE ── */

.scenario-wrap {

Hintergrund: var(--dark2);

border: 1px solid rgba(240,185,11,0.15);

border-radius: 10px;

Innenabstand: 22px;

unterer Rand: 32px;

animation: fadeUp 0.7s 0.45s ease both;

}

.scenario-wrap p {

Schriftgröße: 0,72rem;

Farbe: var(--muted);

Zeilenhöhe: 1,8;

margin-bottom: 16px;

}

.scenario-bar {

Anzeige: Flex;

border-radius: 6px;

Überlauf: versteckt;

Höhe: 36px;

}

.s-bull {

Hintergrund: linearer Gradient(90deg, #0ECB81, #06a862);

display: flex; align-items: center; justify-content: center;

Schriftgröße: 0,65rem; Schriftstärke: 700; Farbe: #000;

Buchstabenabstand: 1px; Flex: 55;

Übergang: Flex 0,4s Ease;

}

.s-Seite {

Hintergrund: linear-gradient(90deg, #B8860B, #F0B90B);

display: flex; align-items: center; justify-content: center;

Schriftgröße: 0,65rem; Schriftstärke: 700; Farbe: #000;

Buchstabenabstand: 1px; Flex: 25;

}

.s-Bär {

Hintergrund: linearer Gradient(90deg, #c73147, #F6465D);

display: flex; align-items: center; justify-content: center;

Schriftgröße: 0,65rem; Schriftstärke: 700; Farbe: #fff;

Buchstabenabstand: 1px; Flex: 20;

}

.scenario-labels {

Anzeige: Flex;

justify-content: space-between;

margin-top: 8px;

Schriftgröße: 0,58rem;

Farbe: var(--muted);

}

/* ── KATALYSATOREN ── */

.Katalysatoren {

Anzeige: Raster;

grid-template-columns: 1fr 1fr;

Abstand: 12px;

unterer Rand: 32px;

animation: fadeUp 0.7s 0.5s ease both;

}

.catalyst-card {

Hintergrund: var(--dark2);

border-radius: 10px;

Innenabstand: 18px;

Anzeige: Flex;

Abstand: 12px;

align-items: flex-start;

}

.catalyst-card.bull { border: 1px solid rgba(14,203,129,0.25); }

.catalyst-card.bear { border: 1px solid rgba(246,70,93,0.25); }

.cat-icon {

Schriftgröße: 1,4rem;

Zeilenhöhe: 1;

Flex-Schrumpfung: 0;

}

.catalyst-card h4 {

Schriftart: 'Syne', sans-serif;

Schriftgröße: 0,75rem;

Schriftstärke: 700;

margin-bottom: 6px;

}

.catalyst-card.bull h4 { color: var(--green); }

.catalyst-card.bear h4 { color: var(--red); }

.catalyst-card ul {

Listenstil: keiner;

Padding: 0;

}

.catalyst-card ul li {

Schriftgröße: 0,65rem;

Farbe: var(--muted);

Zeilenhöhe: 1,8;

padding-left: 12px;

Position: relativ;

}

.catalyst-card ul li::before {

Inhalt: '>';

Position: absolut;

links: 0;

Farbe: var(--gold);

}

/* ── URTEIL ── */

.Urteil {

background: linear-gradient(135deg, rgba(240,185,11,0.08), rgba(240,185,11,0.02));

border: 1px solid rgba(240,185,11,0.35);

border-radius: 12px;

Innenabstand: 28px;

text-align: center;

unterer Rand: 32px;

Position: relativ;

Überlauf: versteckt;

animation: fadeUp 0.7s 0.55s ease both;

}

.verdict::before {

Inhalt: '⬡';

Position: absolut;

oben: -20px; rechts: -10px;

Schriftgröße: 100px;

Farbe: rgba(240,185,11,0.04);

Zeigerereignisse: keine;

}

.verdict h2 {

Schriftfamilie: „Bebas Neue“, serifenlos;

Schriftgröße: 2,4rem;

Buchstabenabstand: 6px;

Farbe: var(--gold);

margin-bottom: 8px;

}

.verdict p {

Schriftgröße: 0,72rem;

Farbe: var(--muted);

Zeilenhöhe: 1,9;

max-width: 640px;

margin: 0 auto 18px;

}

.target-row {

Anzeige: Flex;

justify-content: zentriert;

Abstand: 32px;

flex-wrap: umwickeln;

}

.target-item .t-label {

Schriftgröße: 0,58rem;

Farbe: var(--muted);

Buchstabenabstand: 2px;

text-transform: uppercase;

}

.target-item .t-val {

Schriftart: 'Syne', sans-serif;

Schriftgröße: 1,1rem;

Schriftstärke: 800;

}

/* ── HAFTUNGSAUSSCHLUSS ── */

.Haftungsausschluss {

text-align: center;

Schriftgröße: 0,55rem;

Farbe: rgba(132,142,156,0.5);

Buchstabenabstand: 1px;

Zeilenhöhe: 1,8;

animation: fadeUp 0.7s 0.6s ease both;

}

/* ── ANIMATIONEN ── */

@keyframes fadeDown {

from { opacity: 0; transform: translateY(-20px); }

zu { Deckkraft: 1; Transformation: translateY(0); }

}

@keyframes fadeUp {

from { opacity: 0; transform: translateY(20px); }

zu { Deckkraft: 1; Transformation: translateY(0); }

}

/* ── RESPONSIVE ── */

@media (max-width: 640px) {

.hero { grid-template-columns: 1fr 1fr; }

.analysis-grid { grid-template-columns: 1fr; }

.indicators { grid-template-columns: 1fr 1fr; }

.catalysts { grid-template-columns: 1fr; }

.target-row { gap: 16px; }

}

</style>

</head>

<body>

<div class="container">

<!-- HEADER -->

<div class="header">

<div class="brand">

<div class="bnb-icon">BNB</div>

<div class="brand-text">

<h1>BNB / USDT</h1>

<p>Marktanalysebericht</p>

</div>

</div>

<div class="date-badge">

5. Mai 2026<br>TÄGLICHER ZEITRAUM

</div>

</div>

<!-- HELDENSTATISTIKEN -->

<div class="hero">

<div class="stat-card">

<div class="label">Aktueller Preis</div>

<div class="value gold">$633.52</div>

<div class="sub">BNB / USDT</div>

</div>

<div class="stat-card">

<div class="label">24H Änderung</div>

<div class="value green">+2.70%</div>

<div class="sub">+$16.67</div>

</div>

<div class="stat-card">

<div class="label">24H Volume</div>

<div class="value">$1.20B</div>

<div class="sub">+99,1 % im Vergleich zum Vortag</div>

</div>

<div class="stat-card">

<div class="label">Marktkapitalisierung</div>

<div class="value">$85.4B</div>

<div class="sub">Rang #4</div>

</div>

</div>

<!-- KERZENSTÄBCHEN-DIAGRAMM -->

<div class="chart-wrap">

<div class="chart-header">

<h2>BNB/USDT Kursentwicklung — 18. April → 5. Mai 2026</h2>

<div class="timeframe-pills">

<div class="pill active">1D</div>

<div class="pill">4H</div>

<div class="pill">1W</div>

</div>

</div>

<canvas id="candleChart"></canvas>

<div class="chart-legend">

<div class="legend-item"><div class="legend-dot" style="background:var(--green)"></div> Bullische Kerze</div>

<div class="legend-item"><div class="legend-dot" style="background:var(--red)"></div> Bärische Kerze</div>

<div class="legend-item"><div class="legend-dot" style="background:var(--gold)"></div> EMA 20</div>

<div class="legend-item"><div class="legend-dot" style="background:#5B8BF5"></div> EMA 50</div>

<div class="legend-item"><div class="legend-dot" style="background:rgba(240,185,11,0.15)"></div> Volume</div>

</div>

</div>

<!-- UNTERSTÜTZUNG / WIDERSTAND -->

<div class="analysis-grid">

<div class="analysis-card">

<h3>🔴 Widerstandsniveaus</h3>

<div class="level-row"><span class="name">R3 — Strong</span><span class="val r">$665.18</span></div>

<div class="level-row"><span class="name">R2 — Mid</span><span class="val r">$649.42</span></div>

<div class="level-row"><span class="name">R1 — Pivot</span><span class="val r">$634.63</span></div>

<div class="level-row"><span class="name">EMA 20</span><span class="val y">$623.76</span></div>

</div>

<div class="analysis-card">

<h3>🟢 Unterstützungsstufen</h3>

<div class="level-row"><span class="name">S1 — Near</span><span class="val g">$624.54</span></div>

<div class="level-row"><span class="name">S2 — Key</span><span class="val g">$615.20</span></div>

<div class="level-row"><span class="name">S3 — Major</span><span class="val g">$603.04</span></div>

<div class="level-row"><span class="name">S4 — Deep</span><span class="val g">$580.00</span></div>

</div>

</div>

<!-- TECHNISCHE INDIKATOREN -->

<div class="section-title">Technische Indikatoren</div>

<div class="indicators">

<div class="ind-card">

<div class="ind-name">RSI (14)</div>

<div class="ind-val neutral">54.3</div>

<div class="ind-signal neutral">Neutrale Zone</div>

</div>

<div class="ind-card">

<div class="ind-name">MACD</div>

<div class="ind-val bearish">Bearish</div>

<div class="ind-signal bearish">Unter Signal</div>

</div>

<div class="ind-card">

<div class="ind-name">Supertrend</div>

<div class="ind-val bearish">Bear</div>

<div class="ind-signal bearish">$665 Widerstand</div>

</div>

<div class="ind-card">

<div class="ind-name">200-Tage-SMA</div>

<div class="ind-val neutral">$753</div>

<div class="ind-signal neutral">Ablehnen</div>

</div>

<div class="ind-card">

<div class="ind-name">Volume</div>

<div class="ind-val bullish">$1.2B</div>

<div class="ind-signal bullish">+99% Surge</div>

</div>

<div class="ind-card">

<div class="ind-name">Angst und Gier</div>

<div class="ind-val bearish">29</div>

<div class="ind-signal bearish">Angstzone</div>

</div>

</div>

<!-- SZENARIOAUSBLICK -->

<div class="scenario-wrap">

<div class="section-title">Szenario Wahrscheinlichkeit Ausblick</div>

<p>

Die BNB-Aktie schloss heute bei 633,52 US-Dollar und erholte sich damit über die wichtige EMA-20 bei 623,76 US-Dollar – einer entscheidenden strukturellen Marke. Der starke Anstieg des Handelsvolumens um 99,1 % innerhalb der letzten 24 Stunden signalisiert erneutes Kaufinteresse. Der Markt steht an einem Scheideweg: Ein deutlicher Ausbruch über 649 US-Dollar ebnet den Weg in die Zone von 665 bis 700 US-Dollar, während ein Unterschreiten der Marke von 624 US-Dollar ein erneutes Testen der wichtigen Unterstützung bei 603 US-Dollar riskiert.

</p>

<div class="scenario-bar">

<div class="s-bull">BULLISH 55%</div>

<div class="s-side">SEITLICH 25%</div>

<div class="s-bear">BÄR 20%</div>

</div>

<div class="scenario-labels">

<span>Ziel: 665–700 $</span>

Preisspanne: 615–650 $

Risiko: 603 $ / 580 $

</div>

</div>

<!-- KATALYSATOREN -->

<div class="section-title">Marktkatalysatoren</div>

<div class="catalysts">

<div class="catalyst-card bull">

<div class="cat-icon">🚀</div>

<div>

<h4>Bullish Catalysts</h4>

<ul>

<li>Q1 2026 Burn: 1,57 Mio. BNB (~1,02 Mrd. $) vernichtet</li>

<li>BNB Chain peilt 20.000 Transaktionen pro Sekunde im Jahr 2026 an – Roadmap</li>

<li>Die Aufnahme in die Coinbase-Roadmap löst institutionellen Zufluss aus</li>

<li>Die Einreichung von ETF-Anmeldungen im Graustufenmodell signalisiert eine breite Akzeptanz</li>

<li>BTC-Korrelation: BTC bei +2,55 % bietet Rückenwind</li>

<li>Volumenanstieg: +99 % gegenüber dem Vortag – Käufer kehren zurück</li>

</ul>

</div>

</div>

<div class="catalyst-card bear">

<div class="cat-icon">⚠️</div>

<div>

<h4>Risikofaktoren</h4>

<ul>

<li>Laufende Untersuchung des US-Justizministeriums zur Einhaltung der Vorschriften durch Binance</li>

<li>LH/LL-Struktur intakt — Abwärtstrend noch nicht gebrochen</li>

<li>MACD weiterhin bärisch — Momentum bedarf Bestätigung</li>

<li>Angst und Gier bei 29 — Marktstimmung fragil</li>

<li>CHoCH (Charakteränderung) noch nicht bestätigt</li>

<li>Eine Ablehnung bei 634 $ könnte einen erneuten Ausverkauf auslösen</li>

</ul>

</div>

</div>

</div>

<!-- URTEIL -->

<div class="verdict">

<h2>⬡ VORSICHTIG BULLISH ⬡</h2>

<p>

Der explosionsartige Anstieg des Handelsvolumens bei BNB und die Erholung über den EMA-20 deuten nach einer längeren Korrekturphase auf eine Akkumulationsphase hin. Die strukturelle Konstellation spricht für einen Ausbruchsversuch in Richtung 665–700 US-Dollar in den kommenden Handelssitzungen – vorausgesetzt, der Kurs schließt und hält sich über 634,63 US-Dollar. Die deflationäre Tokenomics (35 Token-Verbrennungen abgeschlossen), die Skalierungsverbesserungen der BNB Chain und das wachsende institutionelle Interesse schaffen eine überzeugende mittelfristige These. Risikomanagement bleibt jedoch entscheidend: Ein Schlusskurs unter 615 US-Dollar verschiebt die Tendenz wieder ins Bärenmarktliche.

</p>

<div class="target-row">

<div class="target-item">

<div class="t-label">Bull Target 1</div>

<div class="t-val bullish">$665</div>

</div>

<div class="target-item">

<div class="t-label">Bull Target 2</div>

<div class="t-val bullish">$700</div>

</div>

<div class="target-item">

<div class="t-label">Stop Loss</div>

<div class="t-val bearish">$615</div>

</div>

<div class="target-item">

<div class="t-label">EOY 2026</div>

<div class="t-val neutral">$803–$1,000</div>

</div>

</div>

</div>

<div class="disclaimer">

⚠️ Diese Analyse dient ausschließlich Bildungszwecken und stellt keine Finanzberatung dar.

Der Handel mit Kryptowährungen birgt erhebliche Risiken. Informieren Sie sich stets gründlich und handeln Sie verantwortungsbewusst.

</div>

</div><!-- /container -->

<script>

// ── KERZENSTÄBCHEN-DIAGRAMM via Canvas ──

const canvas = document.getElementById('candleChart');

const ctx = canvas.getContext('2d');

// Realistische BNB-Tageskerzen: 18. April → 5. Mai 2026

// [date_label, open, high, low, close, volume_rel]

const candles = [

['18. Apr', 652, 663, 645, 648, 0,45],

['19. Apr', 648, 655, 638, 641, 0,52],

['Apr 20', 641, 650, 632, 646, 0.48],

['Apr 21', 646, 658, 640, 636, 0.55],

['Apr 22', 636, 642, 628, 632, 0.60],

['Apr 23', 632, 638, 620, 624, 0.65],

['24. Apr', 624, 635, 617, 630, 0,70],

['25. Apr', 630, 640, 621, 619, 0,58],

['Apr 26', 619, 628, 612, 615, 0.72],

['Apr 27', 615, 622, 603, 609, 0.80],

['28. Apr', 609, 625, 605, 620, 0,75],

['29. Apr', 620, 632, 616, 628, 0,62],

['30. Apr', 628, 636, 619, 623, 0,55],

['1. Mai', 623, 634, 614, 618, 0,60],

['2. Mai', 618, 628, 613, 621, 0,58],

['3. Mai', 621, 630, 617, 625, 0,53],

['4. Mai', 625, 638, 620, 633, 0,85],

['5. Mai', 633, 641, 628, 634, 0,95],

];

// EMA-Berechnung

Funktion calcEMA(Daten, Periode) {

const k = 2 / (period + 1);

let ema = [data[0]];

for (let i = 1; i < data.length; i++) {

ema.push(data[i] k + ema[i-1] (1-k));

}

return ema;

}

const closes = candles.map(c => c[4]);

const ema20 = calcEMA(closes, 20);

const ema50 = calcEMA(closes, 10); // Verwendung von 10 als Näherungswert für 50, skaliert auf unsere Daten

function draw() {

const dpr = window.devicePixelRatio || 1;

const W = canvas.parentElement.clientWidth - 48;

const H = 320;

canvas.width = W * dpr;

canvas.height = H * dpr;

canvas.style.width = W + 'px';

canvas.style.height = H + 'px';

ctx.scale(dpr, dpr);

ctx.clearRect(0, 0, W, H);

const PAD_L = 52, PAD_R = 20, PAD_T = 20, PAD_B = 60;

const chartW = W - PAD_L - PAD_R;

const chartH = H - PAD_T - PAD_B;

const allPrices = candles.flatMap(c => [c[2], c[3]]);

const minP = Math.min(...allPrices) - 8;

const maxP = Math.max(...allPrices) + 8;

const priceRange = maxP - minP;

Funktion toY(Preis) {

return PAD_T + chartH - ((price - minP) / priceRange) * chartH;

}

const n = candles.length;

const slotW = chartW / n;

const candleW = Math.max(slotW * 0.55, 4);

Funktion toX(i) {

return PAD_L + (i + 0.5) * slotW;

}

// Gitterlinien

const gridCount = 5;

for (let i = 0; i <= gridCount; i++) {

const price = minP + (priceRange / gridCount) * i;

const y = toY(price);

ctx.strokeStyle = 'rgba(240,185,11,0.06)';

ctx.lineWidth = 1;

ctx.beginPath();

ctx.moveTo(PAD_L, y);

ctx.lineTo(W - PAD_R, y);

ctx.stroke();

ctx.fillStyle = 'rgba(132,142,156,0.7)';

ctx.font = `${Math.round(10)}px Space Mono, monospace`;

ctx.textAlign = 'right';

ctx.fillText('$' + Math.round(price), PAD_L - 6, y + 4);

}

// Lautstärkeregler

const maxVol = Math.max(...candles.map(c => c[5]));

const volH = chartH * 0.18;

candles.forEach((c, i) => {

const x = toX(i);

const bull = c[4] >= c[1];

const h = (c[5] / maxVol) * volH;

ctx.fillStyle = bull

? 'rgba(14,203,129,0.18)'

: 'rgba(246,70,93,0.18)';

ctx.fillRect(x - candleW/2, PAD_T + chartH - h, candleW, h);

});

// Kerzen

candles.forEach((c, i) => {

const [, open, high, low, close] = c;

const x = toX(i);

const bull = close >= open;

const color = bull ? '#0ECB81' : '#F6465D';

// Wick

ctx.strokeStyle = color;

ctx.lineWidth = 1.5;

ctx.beginPath();

ctx.moveTo(x, toY(high));

ctx.lineTo(x, toY(low));

ctx.stroke();

// Körper

const bodyTop = toY(Math.max(open, close));

const bodyBot = toY(Math.min(open, close));

const bodyH = Math.max(bodyBot - bodyTop, 1.5);

ctx.fillStyle = color;

ctx.fillRect(x - candleW/2, bodyTop, candleW, bodyH);

});

// MUTTER 20

ctx.strokeStyle = '#F0B90B';

ctx.lineWidth = 1.8;

ctx.setLineDash([]);

ctx.beginPath();

ema20.forEach((val, i) => {

const x = toX(i);

const y = toY(val);

i === 0 ? ctx.moveTo(x, y) : ctx.lineTo(x, y);

});

ctx.stroke();

// EMA 50

ctx.strokeStyle = '#5B8BF5';

ctx.lineWidth = 1.5;

ctx.setLineDash([4, 4]);

ctx.beginPath();

ema50.forEach((val, i) => {

const x = toX(i);

const y = toY(val);

i === 0 ? ctx.moveTo(x, y) : ctx.lineTo(x, y);

});

ctx.stroke();

ctx.setLineDash([]);

// Aktuelle Preislinie

const lastClose = candles[candles.length - 1][4];

const lastY = toY(lastClose);

ctx.strokeStyle = 'rgba(240,185,11,0.5)';

ctx.lineWidth = 1;

ctx.setLineDash([4, 6]);

ctx.beginPath();

ctx.moveTo(PAD_L, lastY);

ctx.lineTo(W - PAD_R, lastY);

ctx.stroke();

ctx.setLineDash([]);

// Preisschild rechts

ctx.fillStyle = '#F0B90B';

ctx.font = 'bold 10px Space Mono, monospace';

ctx.textAlign = 'left';

ctx.fillRect(W - PAD_R + 2, lastY - 9, 52, 18);

ctx.fillStyle = '#000';

ctx.fillText('$' + lastClose, W - PAD_R + 5, lastY + 4);

// Beschriftungen der X-Achse

ctx.fillStyle = 'rgba(132,142,156,0.7)';

ctx.font = '9px Space Mono, monospace';

ctx.textAlign = 'center';

candles.forEach((c, i) => {

if (i % 3 === 0 || i === candles.length - 1) {

ctx.fillText(c[0], toX(i), H - PAD_B + 18);

}

});

// Achsenlinie

ctx.strokeStyle = 'rgba(240,185,11,0.2)';

ctx.lineWidth = 1;

ctx.beginPath();

ctx.moveTo(PAD_L, PAD_T + chartH);

ctx.lineTo(W - PAD_R, PAD_T + chartH);

ctx.stroke();

}

ziehen();

window.addEventListener('resize', draw);

</script>

</body>

</html>