mandelkow.fr

Categories

Startseite > Periodika > Tageszeitungen > Bundesrepublik Deutschland > Financial Times Deutschland

Financial Times Deutschland

„Wir denken global, recherchieren gründlich, stellen Nachrichten in den Vordergrund. Unsere wichtigsten journalistischen Werte sind Präzision und Fairness. Wir haben Mut zur Meinung und ordnen Informationen in einen Kontext ein. Die FTD ist kompakt. Und sie ist lachsrosa.“ — Steffen Klusmann, Chefredakteur der Financial Times Deutschland

http://www.ftd.de/

Artikel

  • Buchungszeiten bei der Targobank: Alle Infos im Überblick

    8. Mai, von Carlos Arad — Konto & Karten

    Interessieren Sie sich dafür, wie schnell Ihre Überweisungen bei der Targobank bearbeitet werden? In diesem Artikel geben wir Ihnen einen umfassenden Überblick über die Buchungszeiten bei der Targobank

    Erfahren Sie, welche Faktoren die Geschwindigkeit Ihrer Transaktionen beeinflussen und wie Sie sicherstellen können, dass Ihr Geld genau dann ankommt, wenn Sie es benötigen. 

    Buchungszeiten Targobank: Um diese Uhrzeiten wird bei der Targobank gebucht

    Die Buchungszeiten der Targobank orientieren sich weitgehend an den allgemeinen Bankarbeitszeiten, es gibt jedoch spezifische Zeitfenster, innerhalb derer Transaktionen abgewickelt werden. Hier ist ein Überblick über die typischen Buchungszeiten bei der Targobank:

    1. Überweisungen zwischen Targobank Konten:
      • Überweisungen zwischen Konten der Targobank werden in der Regel sofort durchgeführt und das Geld ist fast augenblicklich verfügbar.
    2. Eingehende Überweisungen von anderen Banken:
      • Für Überweisungen, die von anderen Banken kommen, beginnt die Targobank mit der Buchung früh am Morgen. Die meisten Überweisungen werden bis zum frühen Nachmittag verarbeitet, sofern sie vor dem Cut-Off der sendenden Bank eingegangen sind. Normalerweise können Sie damit rechnen, dass das Geld bis spätestens 14:00 Uhr auf Ihrem Konto verbucht wird.
    3. Ausgehende Überweisungen zu anderen Banken:
      • Ausgehende Überweisungen werden mehrmals täglich bearbeitet. Die Cut-Off-Zeiten für eine taggleiche Verarbeitung liegen in der Regel vor 14:00 Uhr. Überweisungen, die nach dieser Zeit getätigt werden, werden am nächsten Werktag bearbeitet.
    4. Buchungen am Wochenende und an Feiertagen:
      • Wie bei den meisten Banken finden bei der Targobank keine Buchungen an Wochenenden oder gesetzlichen Feiertagen statt. Überweisungen, die an diesen Tagen eingereicht werden, werden am nächsten Werktag bearbeitet.

    Es ist immer eine gute Idee, sich bei Ihrer spezifischen Filiale oder im Online-Banking Ihrer Bank über die genauen Buchungszeiten zu informieren, da es gelegentlich zu Abweichungen kommen kann. Dies kann Ihnen helfen, Ihre Finanzplanung entsprechend zu gestalten.

    Buchungszeiten verkürzen: So funktioniert’s bei der Targobank

    Tipp Beschreibung
    Nutzung von Instant Payments Nutzen Sie SEPA Instant Payments für Überweisungen in Echtzeit, 24/7 verfügbar.
    Einhalten der Cut-Off-Zeiten Tätigen Sie Überweisungen vor dem Cut-Off um 14:00 Uhr für eine Verarbeitung am selben Tag.
    Online- und Mobile-Banking Führen Sie Überweisungen online oder über die Mobile App durch, um Zeit zu sparen.
    Frühe Überweisungen Planen Sie regelmäßige Überweisungen am frühen Morgen, um frühere Verarbeitung zu gewährleisten.
    Klärung bei der Bank Erkundigen Sie sich direkt bei der Targobank nach spezifischen Maßnahmen zur Beschleunigung von Transaktionen.

    Auslandsüberweisungen bei der Targobank: So wird bei Überweisungen ins Ausland gebucht

    Auslandsüberweisungen bei der Targobank werden etwas anders gehandhabt als nationale Überweisungen, vor allem aufgrund der beteiligten internationalen Banken und zusätzlichen Bearbeitungszeiten. Hier ist eine Übersicht, wie bei der Targobank Überweisungen ins Ausland gebucht werden:

    1. Überweisungsmethoden:
      • Die Targobank bietet verschiedene Methoden für Auslandsüberweisungen an, darunter SEPA-Überweisungen innerhalb Europas und SWIFT-Überweisungen für Länder außerhalb der SEPA-Zone.
    2. Bearbeitungszeit:
      • SEPA-Überweisungen werden in der Regel innerhalb von 1 bis 2 Werktagen bearbeitet. Diese Überweisungen sind effizient und kostengünstig für Transaktionen innerhalb Europas.
      • SWIFT-Überweisungen können zwischen 2 und 5 Werktagen dauern, abhängig von der Anzahl der beteiligten Korrespondenzbanken und dem Zielland. Diese Methode wird für Überweisungen in Länder verwendet, die nicht am SEPA-Verfahren teilnehmen.
    3. Gebühren:
      • Für Auslandsüberweisungen können unterschiedliche Gebühren anfallen, die je nach Zielland, Währung und Überweisungsmethode variieren. Die Targobank informiert über diese Gebühren im Voraus, sodass Kunden die Kosten transparent einsehen können.
    4. Währungsumrechnung:
      • Bei Transaktionen in einer anderen Währung als dem Euro wird der Wechselkurs zum Zeitpunkt der Verarbeitung der Überweisung angewendet. Die Targobank bietet hierfür tagesaktuelle Wechselkurse.
    5. Zusätzliche Informationen:
      • Für internationale Überweisungen ist es wichtig, korrekte und vollständige Angaben zu machen, einschließlich IBAN und BIC/SWIFT-Code des Empfängers, um Verzögerungen zu vermeiden.
    6. Sicherheitsüberprüfungen:
      • Auslandsüberweisungen unterliegen strengen Sicherheitsüberprüfungen, um Betrug und Geldwäsche zu verhindern. Dies kann in einigen Fällen zusätzliche Bearbeitungszeit erfordern.
    7. Kundensupport:
      • Bei Fragen oder Problemen bietet die Targobank spezielle Unterstützung für internationale Transaktionen durch ihren Kundenservice.

    Durch das Verständnis dieser Prozesse können Kunden der Targobank ihre internationalen Überweisungen effizient planen und durchführen, um sicherzustellen, dass ihr Geld pünktlich und sicher am Zielort ankommt.

    Buchungszeiten im direkten Vergleich mit anderen Banken

    Hier ist eine Übersicht über die Buchungszeiten deutscher Banken. Diese Zeiten sind wichtig, um zu wissen, wann Überweisungen abgeschickt werden müssen, um am selben Tag bearbeitet zu werden. Die angegebenen Zeiten können je nach Bank und spezifischen Umständen variieren.

    Bank Annahmefrist für Überweisungen Bemerkungen
    Deutsche Bank 15:59 Uhr (lokale Filialen) Tägliche Sammelüberweisung. Zentrale Filialen haben schnellere Bearbeitungszeiten.
    Sparkasse 19:30 Uhr (Berliner Sparkasse)
    Volksbanken 16:40 Uhr
    Postbank 14:00 Uhr
    N26 Schnelle Buchungszeiten, da Direktbank ohne Filialen.
    ING 18:00 Uhr
    DKB 15:00 Uhr

    Diese Tabelle zeigt die unterschiedlichen Annahmefristen für Überweisungen bei den verschiedenen großen Banken in Deutschland. Es ist sinnvoll, diese Zeiten zu beachten, um sicherzustellen, dass Überweisungen rechtzeitig ausgeführt werden.

    Der Beitrag Buchungszeiten bei der Targobank: Alle Infos im Überblick erschien zuerst auf ftd.de.

  • Bankbezeichnung einfach erklärt (+Liste von größten Banken)

    7. Mai, von Carlos Arad — Konto & Karten

    Im Alltag werden Sie immer wieder über den Begriff der Bankbezeichnung stolpern. Dabei handelt es sich um den vollständigen Namen der entsprechenden Bank.

    In diesem Beitrag erfahren Sie, wofür Sie die Bankbezeichnung benötigen und wie Sie diese finden können. Außerdem stellen wir eine Übersicht für Sie  mit den Daten der wichtigsten Banken zur Verfügung.

    Definition: Was ist die Bankbezeichnung?

    Die Bankbezeichnung, oft auch als Bankname bekannt, bezieht sich auf den offiziellen Namen einer Bank oder eines Finanzinstituts. Dieser Name wird verwendet, um die Institution im Finanzwesen und unter Kunden eindeutig zu identifizieren. Er erscheint auf Bankdokumenten, im Online-Banking, auf Kredit- und Debitkarten sowie in den rechtlichen Unterlagen der Bank.

    Die Bankbezeichnung spielt eine wichtige Rolle im Zahlungsverkehr, da sie zusammen mit anderen wichtigen Details wie der IBAN (Internationale Bankkontonummer) und dem BIC (Bank Identifier Code) oder SWIFT-Code benötigt wird, um Geld sicher von einem Konto zum anderen zu überweisen. Diese Angaben stellen sicher, dass Transaktionen korrekt den jeweiligen Konten und Banken zugeordnet werden können.

    Beispiel: Einer der beliebtesten Banken in Deutschland ist die DKB. Die korrekte Bezeichnung für die DKB ist jedoch Deutsche Kreditbank AG und muss so in der Bankbezeichnung geführt werden. Die Abkürzung DKB hat sich hingegen über Jahre hinweg ergeben und wird im normalen Sprachgebrauch genutzt.

    Wofür wird die Bankbezeichnung heutzutage noch benötigt?

    Die Bankbezeichnung ist auch heute noch in verschiedenen Bereichen des Finanzwesens von großer Bedeutung – wenn auch seltener im Privatkundenbereich.

    In den folgenden Fällen ist die Bezeichnung der Bank immer noch relevant:

    1. Identifikation und Verifizierung: Die Bankbezeichnung wird verwendet, um eine bestimmte Bank oder ein Finanzinstitut eindeutig zu identifizieren. Dies ist wichtig für Kunden, Geschäftspartner und Behörden, um sicherzustellen, dass Transaktionen und Geschäfte korrekt abgewickelt werden.
    2. Zahlungsverkehr: Bei Überweisungen und anderen Zahlungstransaktionen wird die Bankbezeichnung benötigt, um sicherzustellen, dass das Geld an die richtige Bank und das richtige Konto überwiesen wird. Sie dient als Referenz für die korrekte Zuordnung von Geldern.
    3. Kontoverwaltung: Die Bankbezeichnung erscheint auf Kontoauszügen, Kreditkarten, Debitkarten und anderen Bankdokumenten. Sie hilft Kunden, ihre Bankkonten richtig zu identifizieren und zu verwalten.
    4. Regulatorische Anforderungen: Banken sind gesetzlich verpflichtet, ihre offiziellen Namen in allen geschäftlichen Dokumenten und Kommunikationen zu verwenden. Die Bankbezeichnung dient als Identifikator für die regulatorischen Behörden, um die Einhaltung der Finanzvorschriften zu überprüfen.
    5. Kundenkommunikation: Die Bankbezeichnung wird in der Kommunikation mit Kunden verwendet, sei es in E-Mails, Briefen oder auf der Website der Bank. Sie hilft dabei, eine klare und eindeutige Identität der Bank zu gewährleisten.

    Insgesamt ist die Bankbezeichnung auch heute noch ein wesentlicher Bestandteil des Finanzsystems und spielt eine wichtige Rolle bei der reibungslosen Abwicklung von Bankgeschäften und -transaktionen.

    Mit IBAN und BIC werden Banken und Konten heute identifiziert

    Die Bankbezeichnung wurde durch BIC und IBAN abgelöst. Im heutigen Zahlungsverkehr spielt sie keine wirklich wichtige Rolle mehr. Lediglich bei der Hinterlegung eines Referenzkontos fragen beispielsweise Depotanbieter die Bank ab.

    Möchten Sie Gelder überweisen, reicht es aus, wenn Sie die IBAN und BIC des Empfängers kennen. Hier können Sie einfach und schnell abgleichen, ob die kontoführende Bank auf der Rechnung mit der ermittelten Bank übereinstimmt.

    Ist dies nicht der Fall, haben Sie sich womöglich verschrieben, da der Name des Kreditinstituts aus der IBAN ermittelt wird.

    Bezeichnung der Bank finden: Wo finden Sie die Information?

    Die Bankbezeichnung kann an verschiedenen Stellen gefunden werden:

    1. Bankdokumente: Die offizielle Bankbezeichnung ist oft auf Kontoauszügen, Kreditkartenabrechnungen, Kredit- und Debitkarten sowie anderen Dokumenten der Bank zu finden.
    2. Online-Banking: Wenn Sie sich in Ihr Online-Banking-Konto einloggen, wird in der Regel der Name Ihrer Bank prominent angezeigt. Dies kann auf der Startseite des Online-Banking-Portals oder in Ihrem persönlichen Dashboard erscheinen.
    3. Bankkarte: Auf Ihrer Bankkarte, sei es eine Debitkarte oder eine Kreditkarte, ist normalerweise der Name Ihrer Bank deutlich sichtbar aufgedruckt.
    4. Website Ihrer Bank: Auf der offiziellen Website Ihrer Bank finden Sie normalerweise den vollständigen Namen der Bank. Dies kann auf der Startseite oder in den Abschnitten „Über uns“ oder „Kontakt“ angezeigt werden.
    5. Kontaktaufnahme mit der Bank: Wenn Sie sich nicht sicher sind, wo Sie die Bankbezeichnung finden können, können Sie auch direkt die Kundenbetreuung Ihrer Bank kontaktieren. Die Mitarbeiter können Ihnen dabei helfen, den offiziellen Namen Ihrer Bank zu ermitteln.

    Es ist wichtig, die genaue Bankbezeichnung zu kennen, insbesondere bei Transaktionen und Kommunikationen mit Ihrer Bank oder anderen Finanzinstituten.

    Übersicht: Bankbezeichnung der größten Banken in Deutschland

    In der Praxis haben Sie verschiedene Möglichkeiten, um die Bezeichnung Ihrer Bank herauszufinden. In der folgenden Übersicht stellen wir die wichtigsten Banken mitsamt aller wichtigen Informationen vor.

    Nummer Name der Bank Bankbezeichnung BIC Bankcode
    1 Deutsche Bank AG Deutsche Bank AG DEUTDEDBXXX 10070000
    2 Commerzbank AG Commerzbank AG COBADEFFXXX 10040000
    3 KfW Bankengruppe KfW Bankengruppe COBADEFFXXX 50020000
    4 DZ Bank AG DZ Bank AG GENODEFFXXX 50060400
    5 Bayerische Landesbank Bayerische Landesbank BYLADEMMXXX 70050000
    6 Landesbank Baden-Württemberg Landesbank Baden-Württemberg SOLADEST600 60050101
    7 Landesbank Hessen-Thüringen Landesbank Hessen-Thüringen HELADEFFXXX 50050500
    8 Landesbank Berlin Holding AG Landesbank Berlin Holding AG BEBEDEBBXXX 10050000
    9 Norddeutsche Landesbank Norddeutsche Landesbank NOLADE2HXXX 25050000
    10 Landesbank Saar Landesbank Saar SALADE55XXX 59050101
    11 Landesbank Rheinland-Pfalz Landesbank Rheinland-Pfalz MALADE51KOB 55050120
    12 Hamburger Sparkasse AG Hamburger Sparkasse AG HASPDEHHXXX 20050550
    13 Landesbank Schleswig-Holstein Landesbank Schleswig-Holstein NOLADE21SHO 21050170
    14 NRW.Bank NRW.Bank NRWBDEDMXXX 30050000
    15 Landesbank Bayern Bayerische Landesbank BYLADEMMXXX 70050500
    16 Landesbank Hessen-Girozentrale Landesbank Hessen-Girozentrale HELADEFFXXX 50050500
    17 Landesbank Bremen Landesbank Bremen SBREDE22XXX 29050150
    18 Landesbank Brandenburg Landesbank Brandenburg BRBBDE5WXXX 16050000
    19 Helaba Invest Kapitalanlagegesellschaft Helaba Invest Kapitalanlagegesellschaft HELADEFFXXX 50050500
    20 Landesbank Mecklenburg-Vorpommern Landesbank Mecklenburg-Vorpommern NOLADE21LWL 14050000
    21 HypoVereinsbank – UniCredit Bank AG HypoVereinsbank – UniCredit Bank AG HYVEDEMMXXX 70020270
    22 Deutsche Kreditbank AG Deutsche Kreditbank AG BYLADEMMXXX 12030000
    23 Berliner Sparkasse Berliner Sparkasse BELADEBEXXX 10050000
    24 Sparkasse KölnBonn Sparkasse KölnBonn COLSDE33XXX 37050198
    25 LBBW Asset Management Investmentgesell. LBBW Asset Management Investmentgesellschaft SOLADESTXXX 60000000
    26 Oldenburgische Landesbank AG Oldenburgische Landesbank AG OLBODEH2XXX 28020050
    27 Landesbank Thüringen Girozentrale Landesbank Thüringen Girozentrale HELADEFFXXX 82051000
    28 Landesbank Sachsen-Anhalt Landesbank Sachsen-Anhalt NOLADE21LSA 80051000
    29 Bausparkasse Schwäbisch Hall AG Bausparkasse Schwäbisch Hall AG SBHYDE2HXXX 60050101
    30 Frankfurter Sparkasse Frankfurter Sparkasse HELADEF1822 50050222

    Der Beitrag Bankbezeichnung einfach erklärt (+Liste von größten Banken) erschien zuerst auf ftd.de.

  • Mercedes Hauptversammlung: mauer Start 2024, gute Dividende, neuer Chefaufseher

    7. Mai, von Klemens Vogel
    Mercedes-Chef Ola Källenius am Vorabend der IAA Mobility 2023 (Foto: Mercedes-Benz Group AG) - Mercedes Hauptversammlung 2024: gute Dividende, neuer Aufsichtsratschef – aber keine Würstchen

    Mercedes-Chef Ola Källenius am Vorabend der IAA Mobility 2023 (Foto: Mercedes-Benz Group AG)

    Stuttgart – Mercedes-Chef Källenius übt Harmonie mit der Politik – während andere Dax-Manager Kritik üben. Noch sind die Aktionäre zufrieden, doch auch der Luxusautobauer spürt Gegenwind. Mit der Hauptversammlung 2024 übernimmt nun ein eher raubeiniger Vertreter den Aufsichtsratsvorsitz.

    2024 ist Mercedes schwach gestartet: Minus 4,4 Prozent beim Umsatz, minus 29,1 Prozent beim Ergebnis vor Gewinn und Steuern im 1. Quartal. Gründe seien Modellwechsel und Probleme mit Lieferketten. Der Absatz schrumpfte um 6,6 Prozent auf 568.400 Fahrzeuge, davon 47.500 reine E-Autos.

    +++ Virtuelle Hauptversammlung der Mercedes-Benz Group AG +++

    Die Hauptversammlung des DAX-Konzerns findet am Mittwoch, den 8. Mai 2024, um 10 Uhr (MESZ) ausschließlich virtuell statt. Für Aktionäre war Anmeldeschluss am 3. Mai. Die Eröffnung sowie die Reden des Aufsichtsratsvorsitzenden und des Vorstandsvorsitzenden können live verfolgt werden.

    Trotzdem sieht das Management den Konzern auf Kurs: „Wir bestätigen unsere finanziellen Ziele für 2024“, sagte Finanzchef Harald Wilhelm beim letzten Quartalsbericht. Das heißt: Der Umsatz würde 2024 auf dem Niveau des Vorjahrs liegen, das EBIT (Ergebnis vor Zinsen und Steuern) leicht darunter.

    Luxus und Masse zugleich – Anstieg der Dividende

    Oder hat Mercedes ein grundsätzliches Problem? „Die Luxusstrategie des Konzerns ist gefährdet“, meint etwa Moritz Kronenberger von Union Investment. Denn zum einen will Mercedes 2 Millionen Neuwagen jährlich verkaufen, zum anderen hochexklusive Segmente bedienen – ein Spagat.

    Die gute Nachricht für Aktionäre: Die Dividende soll steigen. 5,30 Euro je Aktie will das Management empfehlen – für das Geschäftsjahr 2022 waren es 5,20 Euro. Gemessen am Schlusskurs vom Freitag (71,58 Euro) liegt die Dividendenrendite bei rund 7,4 Prozent, einer der höchsten Werte im Dax.

    Platz 1 in der Gehaltsrangliste – Neuer Mercedes-Chefkontrolleur

    Da dürften die Aktionäre dem Mercedes-Boss Ola Källenius vorerst sein Topsalär gönnen: 2023 verdiente der Deutsch-Schwede mehr als jeder andere Dax-Vorstand – 12,74 Millionen Euro. Hinter ihm folgen Börsenchef Theodor Weimer mit 10,60 Millionen und Belén Garijo (Merck) mit 10,53 Millionen Euro.

    Ein Highlight der Hauptversammlung ist der Wechsel an der Aufsichtsratsspitze. Der frühere BMW-Chef Bernd Pischetsrieder hört nach 3 Jahren auf. Auf ihn folgt als Chefkontrolleur Martin Brudermüller, bis vor 2 Wochen noch CEO des Chemieriesen BASF, der für klare Worte bekannt ist.

     

    <script id="tvChartLoader" async src="https://unpkg.com/lightweight-charts/dist/lightweight-charts.standalone.production.js"></script> <script id="declarations">
    var chartid = "663e1dbca5860";
    function renderTV(kursData, chartData,companyName,currency, chartHeight, chartWidth, code, exchange, kursDate, hidetitle, hidelegend, chartid) {
    console.log("render chart with id", document.querySelector(`[data-chartid="${chartid}"]`));
    let width = chartWidth?chartWidth:600;
    let ratio = 2
    let height = chartHeight?chartHeight:(width/ratio);
    document.querySelector(`[data-chartid="${chartid}"]`).style.height = chartHeight +50
    document.querySelector(`[data-chartid="${chartid}"]`).style.width = chartWidth

    // formatter for x achis dates
    function customXAchsisFormetter(timePoint, tickMarkType, locale) {
    let formatOptions = {};
    const date = new Date(timePoint);

    if(tickMarkType <=1){
    formatOptions = {day: "numeric", month: "short",year: "numeric",}

    }else{
    formatOptions = {day: "numeric", month: "short",year: "numeric",}
    }
    // from given date we should use only as UTC date or timestamp
    // but to format as locale date we can convert UTC date to local date
    const localDateFromUtc = new Date(
    date.getUTCFullYear(),
    date.getUTCMonth(),
    date.getUTCDate()
    );

    return localDateFromUtc.toLocaleString(locale, formatOptions);
    }

    //create buttons
    function createSimpleSwitcher(items, activeItem, activeItemChangedCallback) {
    var switcherElement = document.createElement("div");
    switcherElement.classList.add("switcher");

    var intervalElements = items.map(function (item) {
    var itemEl = document.createElement("button");
    itemEl.innerText = item;
    itemEl.classList.add("switcher-item");
    itemEl.classList.toggle("switcher-active-item", item === activeItem);
    itemEl.addEventListener("click", function () {
    onItemClicked(item);
    });
    switcherElement.appendChild(itemEl);
    return itemEl;
    });

    function onItemClicked(item) {
    if (item === activeItem) {
    return;
    }

    intervalElements.forEach(function (element, index) {
    element.classList.toggle("switcher-active-item", items[index] === item);
    });

    activeItem = item;

    activeItemChangedCallback(item);
    }

    return switcherElement;
    }
    // loading: true or false
    function handleAsyncUI(loading){
    var IntervalButtons = document.getElementsByClassName("switcher-item");
    for(var i = 0; i < IntervalButtons.length; i++){
    IntervalButtons[i].disabled = loading;
    }
    var chart = document.getElementsByClassName("tv-lightweight-charts")[0];
    if(loading){

    chart.style["display"] = "flex"
    chart.style["align-items"] = "center"
    chart.style["justify-content"] = "center"

    var loadingIndicator = document.createElement("div");
    loadingIndicator.classList.add("loader");
    //loadingIndicator.innerText = "Loading";
    loadingIndicator.id ="loadingIndicator"
    chart.appendChild(loadingIndicator);
    }else{
    document.getElementById("loadingIndicator").remove();
    chart.style["display"] = null
    chart.style["align-items"] =null
    chart.style["justify-content"] = null
    }

    }
    var intervals = ["1M","3M","6M","1Y","3Y","5Y"];
    var seriesesData = new Map([
    ["1M", []], // 1m (interval daten?), 3m, 6m, 1y, 3y, 5y
    ["3M", []],
    ["6M", []],
    ["1Y", chartData],
    ["3Y", []],
    ["5Y", []],
    ]);
    var switcherElement = createSimpleSwitcher(intervals, intervals[3], syncToInterval);
    var chartElement = document.createElement("div");
    const chart = LightweightCharts.createChart(chartElement, {
    width: width,
    height: height,
    rightPriceScale: {
    scaleMargins: {
    top: 0.2,
    bottom: 0.2,
    },
    borderVisible: false,
    },
    timeScale: {
    borderVisible: false,
    lockVisibleTimeRangeOnResize: true,

    rightOffset:1,
    tickMarkFormatter:customXAchsisFormetter

    },
    grid: {
    horzLines: {
    color: "#eee",
    visible: false,
    },
    vertLines: {
    color: "#ffffff",
    },
    },
    crosshair: {
    horzLine: {
    visible: false,
    labelVisible: false
    },
    vertLine: {
    visible: true,
    style: 0,
    width: 2,
    color: "rgba(80, 50, 25, 0.1)",
    labelVisible: false,
    }
    },
    handleScroll: {
    mouseWheel: false,
    pressedMouseMove: false,
    horzTouchDrag: false,
    vertTouchDrag: false
    },
    handleScale: {
    axisPressedMouseMove: false,
    mouseWheel: false,
    pinch: false,
    },
    });
    var areaSeries = null;
    var positionDIV = document.querySelector(`[data-chartid="${chartid}"]`)
    positionDIV.appendChild(chartElement);
    positionDIV.appendChild(switcherElement);
    function httpGetAsync(theUrl, callback) {
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.onreadystatechange = function () {
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
    callback(xmlHttp.responseText);
    }
    xmlHttp.open("GET", theUrl, true); // true for asynchronous
    xmlHttp.send(null);
    }
    function formatDate(date) {

    var month = "" + (date.getMonth()+1);
    var day = "" + date.getDate();
    var year = date.getFullYear();

    if (month.length < 2)
    month = "0" + month;
    if (day.length < 2)
    day = "0" + day;
    return [year, month, day].join("-");
    }
    function getTimeframe(interval){
    let from = null;
    let to = formatDate(new Date());
    switch (interval) {
    case "1M": from = formatDate(new Date(Date.now() - 31 * 24 * 60 * 60 * 1000)); break;
    case "3M": from = formatDate(new Date(Date.now() - 93 * 24 * 60 * 60 * 1000)); break;
    case "6M": from = formatDate(new Date(Date.now() - 186 * 24 * 60 * 60 * 1000)); break;
    case "1Y": from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000)); break;
    case "3Y": from = formatDate(new Date(Date.now() - 1116 * 24 * 60 * 60 * 1000)); break;
    case "5Y": from = formatDate(new Date(Date.now() - 1860 * 24 * 60 * 60 * 1000)); break;
    default:from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000));

    }
    return {from:from, to:to}
    }
    // what happens on button click
    function syncToInterval(interval) {
    if (areaSeries && seriesesData.get(interval).length <=0) {
    console.log("GETTING REMOTE DATA")

    chart.removeSeries(areaSeries);
    areaSeries = null;
    let apiToken = "za1j116n2273ab1vxukuh6"
    let timeframe = getTimeframe(interval)
    let filter = "adjusted_close"
    handleAsyncUI(true)
    httpGetAsync("https://api.leeway.tech/api/v1/public/historicalquotes/"+encodeURIComponent(code+"."+exchange)+"?apitoken="+apiToken+"&filter="+filter+"&from="+timeframe.from+"&to="+timeframe.to, function (res) {
    let newData = []
    newData = JSON.parse(res)//.map(el=>newData.push({time:el.date, value:el.close}))
    // newData = newData.map(el=>{
    // console.log(el.time.year)
    // console.log(el.time.month)
    // console.log(el.time.day)
    // console.log(el)
    // console.log(new Date(el.time.year, el.time.month-1, el.time.day));
    // return{value:el.value, time:el.time, timestamp:new Date(el.time.year, el.time.month-1, el.time.day).getTime()}})
    console.log("newData")
    console.log(newData)
    seriesesData.set(interval, newData)
    areaSeries = chart.addAreaSeries({
    topColor: "rgba(33, 108, 173, 0.56)",
    bottomColor: "rgba(33, 108, 173, 0.04)",
    lineColor: "rgba(33, 108, 173, 1)",
    lineWidth: 2,
    });
    kursData = seriesesData.get(interval)[seriesesData.get(interval).length-1].value
    areaSeries.setData(seriesesData.get(interval));
    chart.timeScale().fitContent();
    handleAsyncUI(false)
    })
    }else{
    console.log("GETTING LOADED DATA")
    if(areaSeries){
    console.log("DELETING LOADED DATA FROM CHART")
    chart.removeSeries(areaSeries);
    areaSeries = null;
    }
    kursData = seriesesData.get(interval)[seriesesData.get(interval).length-1].value
    areaSeries = chart.addAreaSeries({
    topColor: "rgba(33, 108, 173, 0.56)",
    bottomColor: "rgba(33, 108, 173, 0.04)",
    lineColor: "rgba(33, 108, 173, 1)",
    lineWidth: 2,
    });
    areaSeries.setData(seriesesData.get(interval));

    chart.timeScale().fitContent();
    }


    }
    // data interval at startup
    syncToInterval(intervals[3]);
    // Name and Kurs as Text in legend



    var watermark = document.createElement("img")
    watermark.classList.add("watermark")
    watermark.setAttribute("src", "https://api.leeway.tech/leeway-sign.png")
    var testA = document.querySelector(`[data-chartid="${chartid}"]`)
    var testB = document.querySelector(`[data-chartid="${chartid}"]`).getBoundingClientRect();
    var test = testA.getElementsByTagName("canvas")[0].getBoundingClientRect();
    watermark.style.position = "absolute";
    watermark.style.width = "90px";
    watermark.style.height = "30px";
    watermark.style.display = "block";
    //watermark.style.z-index = "1000000";
    watermark.style.bottom = "0";
    watermark.style.right = "10px";


    let linkLW = document.createElement("a")
    linkLW.href="https://www.ftd.de/leeway-tech";
    linkLW.target = "_blank";
    linkLW.appendChild(watermark)
    // append to DOM

    //div-chartwrapper -> div -> div -> table -> tr -> td td -> div
    const myElementA = document.querySelector(`[data-chartid="${chartid}"]`);
    let myElementB = myElementA.childNodes[0]
    let myElementC = myElementB.childNodes[0]
    let myElementD = myElementC.childNodes[0]
    let myElementE = myElementD.childNodes[0]
    let myElementF = myElementE.childNodes[1]
    let myElementG = myElementF.childNodes[0]
    myElementG.appendChild(linkLW);




    if(hidelegend == "false"){
    console.log("SHOW LEGEND!")
    var legend = document.createElement("div");
    legend.classList.add("legend");
    var offsets = document.querySelector(`[data-chartid="${chartid}"]`).getBoundingClientRect();
    var chartwrapperTop = offsets.top;

    var legendHeight = height *-1
    if(legendHeight>-210){legendHeight = -210;}
    legend.style.top = legendHeight*1.2 + "px"
    positionDIV.appendChild(legend);

    if(hidetitle == "false"){
    var firstRow = document.createElement("div");
    firstRow.classList.add("titleText");

    }

    var secondRow = document.createElement("div");
    secondRow.classList.add("secondRow");

    if(kursData !== null){
    if(hidetitle == "false"){
    firstRow.innerText = companyName
    legend.appendChild(firstRow);
    }

    secondRow.innerText = kursDate +": " + Number(kursData).toFixed(2) + " "+currency;
    legend.appendChild(secondRow);
    }else{
    if(hidetitle == "false"){
    firstRow.innerText = companyName
    legend.appendChild(firstRow);
    }

    legend.appendChild(secondRow);
    }


    // cursor moving and handling third row of legend
    chart.subscribeCrosshairMove((param) => {
    if (param.time) {
    let options = { weekday: "short", year: "numeric", month: "numeric", day: "numeric" };
    let currentDate = new Date(param.time).toLocaleDateString("de-DE", options)
    const price = param.seriesData.get(areaSeries).value;
    secondRow.innerText = currentDate + ": " + price.toFixed(2) + " "+(currency?currency:" ");
    }
    else {
    secondRow.innerText = kursDate +": " + Number(kursData).toFixed(2) + " "+currency;

    }
    });

    }

    }
    function httpGetAsync(theUrl, callback) {
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.onreadystatechange = function () {
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
    callback(xmlHttp.responseText);
    }
    xmlHttp.open("GET", theUrl, true); // true for asynchronous
    xmlHttp.send(null);
    };
    function getTimeframe(interval){
    let from = null;
    let to = formatDate(new Date());
    switch (interval) {
    case "1M": from = formatDate(new Date(Date.now() - 31 * 24 * 60 * 60 * 1000)); break;
    case "3M": from = formatDate(new Date(Date.now() - 93 * 24 * 60 * 60 * 1000)); break;
    case "6M": from = formatDate(new Date(Date.now() - 186 * 24 * 60 * 60 * 1000)); break;
    case "1Y": from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000)); break;
    case "3Y": from = formatDate(new Date(Date.now() - 1116 * 24 * 60 * 60 * 1000)); break;
    case "5Y": from = formatDate(new Date(Date.now() - 1860 * 24 * 60 * 60 * 1000)); break;
    default:from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000));

    }
    return {from:from, to:to}
    };
    function formatDate(date) {

    var month = "" + (date.getMonth()+1);
    var day = "" + date.getDate();
    var year = date.getFullYear();

    if (month.length < 2)
    month = "0" + month;
    if (day.length < 2)
    day = "0" + day;

    return [year, month, day].join("-");
    };
    </script>
    <script id="main">

    var scriptTV = document.querySelector("#tvChartLoader");
    scriptTV.addEventListener("load", function() {
    var chartid = "663e1dbca5860";

    var companyName = "MERCEDES-BENZ GROUP AG";
    if(companyName.length <=0){
    companyName = "MBG - XETRA";
    }
    var code = "MBG";
    var exchange = "XETRA";
    var currency ="EUR";
    var kursData = null;
    var kursDataDate = null;
    var chartHeight = "";
    var chartWidth = "250"
    var hidetitle = "false"
    var hidelegend = "false"
    let apiToken = "za1j116n2273ab1vxukuh6"
    chartWidth = document.querySelector(`[data-chartid="${chartid}"]`).offsetWidth
    var chartData = [];
    var timeframe = getTimeframe("1Y");
    var filter = "adjusted_close";

    httpGetAsync("https://api.leeway.tech/api/v1/public/historicalquotes/"+encodeURIComponent(code+"."+exchange)+"?apitoken="+apiToken+"&filter="+filter+"&from="+timeframe.from+"&to="+timeframe.to, function (res) {
    let newData = null;
    chartData = newData = JSON.parse(res)
    // chartData = chartData.map(el=>{return{value:el.value, time:el.time, timestamp:new Date(el.time.year, el.time.month-1, el.time.day).getTime()}})
    kursData = chartData[chartData.length-1].value
    let options = { weekday: "short", year: "numeric", month: "numeric", day: "numeric" };
    kursDataDate = chartData[chartData.length-1].time
    let kursDate = new Date(kursDataDate.split("-")[0], Number(kursDataDate.split("-")[1])-1, kursDataDate.split("-")[2]).toLocaleDateString("de-DE", options)

    renderTV(kursData,chartData,companyName,currency, Number(chartHeight), Number(chartWidth), code, exchange, kursDate, hidetitle, hidelegend, chartid)
    });
    });
    </script>

     

    Disclaimer:
    Alle Angaben ohne Gewähr auf Vollständigkeit, Richtigkeit und Aktualität. Der Text stellt keine Handelsempfehlung oder Anlageberatung dar.

    Der Beitrag Mercedes Hauptversammlung: mauer Start 2024, gute Dividende, neuer Chefaufseher erschien zuerst auf ftd.de.

  • BMW Quartalszahlen: Oberwasser im harten Wettbewerb? Prognose und Überblick

    7. Mai, von Klemens Vogel
    BMW-Chef Oliver Zipse mit dem BMW Vision Neue Klasse (Foto: BMW AG, München) - BMW Quartalszahlen: Oberwasser im harten Wettbewerb? Prognose und Überblick

    BMW-Chef Oliver Zipse mit dem BMW Vision Neue Klasse (Foto: BMW AG, München)

    München – Besser spät als nie: Der deutsche Premiumhersteller BMW bastelt an seiner E-Auto-Strategie. Doch der DAX-Konzern steht unter Wettbewerbsdruck, im April ging es an der Börse abwärts. Kann die BMW Group und ihr CEO Oliver Zipse mit den Quartalszahlen skeptische Analysten überzeugen? Die Reden sowie Fragerunden mit Journalisten und Analysten werden live übertragen.

    Licht und Schatten bot die Jahresbilanz 2023: Der Umsatz stieg um 9 Prozent auf 155,5 Milliarden Euro, der Nettogewinn ging auf 12,2 Milliarden Euro zurück. Allerdings hatte BMW im Jahr davor mit 18,6 Milliarden Euro einen Rekordgewinn eingefahren, nach 12,5 Milliarden Euro im Jahr 2021.

    15 Prozent vollelektrische Fahrzeuge – dieses Ziel hat BMW 2023 erreicht. Im laufenden Jahr 2024 soll schon jeder fünfte Neuwagen ein reines E-Auto sein, 2025 visiert der Konzern 25 Prozent an. Man habe für die Wachstumsziele mit mehr als 15 vollelektrischen Modellen ein starkes Fundament, so BMW.

    Solider Absatz im 1. Quartal 2024 – E-Auto-Offensive ab 2025

    Der Anteil reiner E-Autos ist im 1. Quartal gestiegen –von 11 auf 13,9 Prozent im Vergleich zum Vorjahresquartal. 82.700 BEVs setzte der Autobauer ab, 595.000 Autos waren es insgesamt. Das bedeutet ein Absatzplus 1,1 Prozent, während etwa Konkurrent Mercedes weniger verkaufte.

    Den großen Elektro-Wurf bereitet der Konzern gerade vor: Unter dem Etikett „Neue Klasse“ arbeitet die Marke BMW an der künftigen Plattform für Elektromodelle. Los geht es nach aktueller Planung im Herbst 2025 mit dem neuen Elektro-SUV iX3 – die Studie Vision Neue Klasse X gibt einen Ausblick.

    Neue Batteriefabrik in Bayern – Investition in China

    Parallel treibt BMW sein Elektro-Ökosystem in der Produktion voran: So bereitet der Konzern sein Landshuter Werk mit 200 Millionen Euro auf den Bau von Elektro-Komponenten für die „Neue Klasse“ vor. Und in Niederbayern hat der Autobauer grünes Licht für den Bau einer Batteriefabrik erhalten.

    Auch in China will BMW die „Neue Klasse“ produzieren. Dafür hat das Unternehmen weitere rund 2,6 Milliarden Euro bereitgestellt, mit denen es die Produktionsstätten in der Provinz Liaoning ausbauen will. 187.000 Autos (minus 3,8 Prozent) verkaufte die BMW-Gruppe im 1. Quartal im Reich der Mitte.

     

    <script id="tvChartLoader" async src="https://unpkg.com/lightweight-charts/dist/lightweight-charts.standalone.production.js"></script> <script id="declarations">
    var chartid = "663e1dbca70c9";
    function renderTV(kursData, chartData,companyName,currency, chartHeight, chartWidth, code, exchange, kursDate, hidetitle, hidelegend, chartid) {
    console.log("render chart with id", document.querySelector(`[data-chartid="${chartid}"]`));
    let width = chartWidth?chartWidth:600;
    let ratio = 2
    let height = chartHeight?chartHeight:(width/ratio);
    document.querySelector(`[data-chartid="${chartid}"]`).style.height = chartHeight +50
    document.querySelector(`[data-chartid="${chartid}"]`).style.width = chartWidth

    // formatter for x achis dates
    function customXAchsisFormetter(timePoint, tickMarkType, locale) {
    let formatOptions = {};
    const date = new Date(timePoint);

    if(tickMarkType <=1){
    formatOptions = {day: "numeric", month: "short",year: "numeric",}

    }else{
    formatOptions = {day: "numeric", month: "short",year: "numeric",}
    }
    // from given date we should use only as UTC date or timestamp
    // but to format as locale date we can convert UTC date to local date
    const localDateFromUtc = new Date(
    date.getUTCFullYear(),
    date.getUTCMonth(),
    date.getUTCDate()
    );

    return localDateFromUtc.toLocaleString(locale, formatOptions);
    }

    //create buttons
    function createSimpleSwitcher(items, activeItem, activeItemChangedCallback) {
    var switcherElement = document.createElement("div");
    switcherElement.classList.add("switcher");

    var intervalElements = items.map(function (item) {
    var itemEl = document.createElement("button");
    itemEl.innerText = item;
    itemEl.classList.add("switcher-item");
    itemEl.classList.toggle("switcher-active-item", item === activeItem);
    itemEl.addEventListener("click", function () {
    onItemClicked(item);
    });
    switcherElement.appendChild(itemEl);
    return itemEl;
    });

    function onItemClicked(item) {
    if (item === activeItem) {
    return;
    }

    intervalElements.forEach(function (element, index) {
    element.classList.toggle("switcher-active-item", items[index] === item);
    });

    activeItem = item;

    activeItemChangedCallback(item);
    }

    return switcherElement;
    }
    // loading: true or false
    function handleAsyncUI(loading){
    var IntervalButtons = document.getElementsByClassName("switcher-item");
    for(var i = 0; i < IntervalButtons.length; i++){
    IntervalButtons[i].disabled = loading;
    }
    var chart = document.getElementsByClassName("tv-lightweight-charts")[0];
    if(loading){

    chart.style["display"] = "flex"
    chart.style["align-items"] = "center"
    chart.style["justify-content"] = "center"

    var loadingIndicator = document.createElement("div");
    loadingIndicator.classList.add("loader");
    //loadingIndicator.innerText = "Loading";
    loadingIndicator.id ="loadingIndicator"
    chart.appendChild(loadingIndicator);
    }else{
    document.getElementById("loadingIndicator").remove();
    chart.style["display"] = null
    chart.style["align-items"] =null
    chart.style["justify-content"] = null
    }

    }
    var intervals = ["1M","3M","6M","1Y","3Y","5Y"];
    var seriesesData = new Map([
    ["1M", []], // 1m (interval daten?), 3m, 6m, 1y, 3y, 5y
    ["3M", []],
    ["6M", []],
    ["1Y", chartData],
    ["3Y", []],
    ["5Y", []],
    ]);
    var switcherElement = createSimpleSwitcher(intervals, intervals[3], syncToInterval);
    var chartElement = document.createElement("div");
    const chart = LightweightCharts.createChart(chartElement, {
    width: width,
    height: height,
    rightPriceScale: {
    scaleMargins: {
    top: 0.2,
    bottom: 0.2,
    },
    borderVisible: false,
    },
    timeScale: {
    borderVisible: false,
    lockVisibleTimeRangeOnResize: true,

    rightOffset:1,
    tickMarkFormatter:customXAchsisFormetter

    },
    grid: {
    horzLines: {
    color: "#eee",
    visible: false,
    },
    vertLines: {
    color: "#ffffff",
    },
    },
    crosshair: {
    horzLine: {
    visible: false,
    labelVisible: false
    },
    vertLine: {
    visible: true,
    style: 0,
    width: 2,
    color: "rgba(80, 50, 25, 0.1)",
    labelVisible: false,
    }
    },
    handleScroll: {
    mouseWheel: false,
    pressedMouseMove: false,
    horzTouchDrag: false,
    vertTouchDrag: false
    },
    handleScale: {
    axisPressedMouseMove: false,
    mouseWheel: false,
    pinch: false,
    },
    });
    var areaSeries = null;
    var positionDIV = document.querySelector(`[data-chartid="${chartid}"]`)
    positionDIV.appendChild(chartElement);
    positionDIV.appendChild(switcherElement);
    function httpGetAsync(theUrl, callback) {
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.onreadystatechange = function () {
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
    callback(xmlHttp.responseText);
    }
    xmlHttp.open("GET", theUrl, true); // true for asynchronous
    xmlHttp.send(null);
    }
    function formatDate(date) {

    var month = "" + (date.getMonth()+1);
    var day = "" + date.getDate();
    var year = date.getFullYear();

    if (month.length < 2)
    month = "0" + month;
    if (day.length < 2)
    day = "0" + day;
    return [year, month, day].join("-");
    }
    function getTimeframe(interval){
    let from = null;
    let to = formatDate(new Date());
    switch (interval) {
    case "1M": from = formatDate(new Date(Date.now() - 31 * 24 * 60 * 60 * 1000)); break;
    case "3M": from = formatDate(new Date(Date.now() - 93 * 24 * 60 * 60 * 1000)); break;
    case "6M": from = formatDate(new Date(Date.now() - 186 * 24 * 60 * 60 * 1000)); break;
    case "1Y": from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000)); break;
    case "3Y": from = formatDate(new Date(Date.now() - 1116 * 24 * 60 * 60 * 1000)); break;
    case "5Y": from = formatDate(new Date(Date.now() - 1860 * 24 * 60 * 60 * 1000)); break;
    default:from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000));

    }
    return {from:from, to:to}
    }
    // what happens on button click
    function syncToInterval(interval) {
    if (areaSeries && seriesesData.get(interval).length <=0) {
    console.log("GETTING REMOTE DATA")

    chart.removeSeries(areaSeries);
    areaSeries = null;
    let apiToken = "za1j116n2273ab1vxukuh6"
    let timeframe = getTimeframe(interval)
    let filter = "adjusted_close"
    handleAsyncUI(true)
    httpGetAsync("https://api.leeway.tech/api/v1/public/historicalquotes/"+encodeURIComponent(code+"."+exchange)+"?apitoken="+apiToken+"&filter="+filter+"&from="+timeframe.from+"&to="+timeframe.to, function (res) {
    let newData = []
    newData = JSON.parse(res)//.map(el=>newData.push({time:el.date, value:el.close}))
    // newData = newData.map(el=>{
    // console.log(el.time.year)
    // console.log(el.time.month)
    // console.log(el.time.day)
    // console.log(el)
    // console.log(new Date(el.time.year, el.time.month-1, el.time.day));
    // return{value:el.value, time:el.time, timestamp:new Date(el.time.year, el.time.month-1, el.time.day).getTime()}})
    console.log("newData")
    console.log(newData)
    seriesesData.set(interval, newData)
    areaSeries = chart.addAreaSeries({
    topColor: "rgba(33, 108, 173, 0.56)",
    bottomColor: "rgba(33, 108, 173, 0.04)",
    lineColor: "rgba(33, 108, 173, 1)",
    lineWidth: 2,
    });
    kursData = seriesesData.get(interval)[seriesesData.get(interval).length-1].value
    areaSeries.setData(seriesesData.get(interval));
    chart.timeScale().fitContent();
    handleAsyncUI(false)
    })
    }else{
    console.log("GETTING LOADED DATA")
    if(areaSeries){
    console.log("DELETING LOADED DATA FROM CHART")
    chart.removeSeries(areaSeries);
    areaSeries = null;
    }
    kursData = seriesesData.get(interval)[seriesesData.get(interval).length-1].value
    areaSeries = chart.addAreaSeries({
    topColor: "rgba(33, 108, 173, 0.56)",
    bottomColor: "rgba(33, 108, 173, 0.04)",
    lineColor: "rgba(33, 108, 173, 1)",
    lineWidth: 2,
    });
    areaSeries.setData(seriesesData.get(interval));

    chart.timeScale().fitContent();
    }


    }
    // data interval at startup
    syncToInterval(intervals[3]);
    // Name and Kurs as Text in legend



    var watermark = document.createElement("img")
    watermark.classList.add("watermark")
    watermark.setAttribute("src", "https://api.leeway.tech/leeway-sign.png")
    var testA = document.querySelector(`[data-chartid="${chartid}"]`)
    var testB = document.querySelector(`[data-chartid="${chartid}"]`).getBoundingClientRect();
    var test = testA.getElementsByTagName("canvas")[0].getBoundingClientRect();
    watermark.style.position = "absolute";
    watermark.style.width = "90px";
    watermark.style.height = "30px";
    watermark.style.display = "block";
    //watermark.style.z-index = "1000000";
    watermark.style.bottom = "0";
    watermark.style.right = "10px";


    let linkLW = document.createElement("a")
    linkLW.href="https://www.ftd.de/leeway-tech";
    linkLW.target = "_blank";
    linkLW.appendChild(watermark)
    // append to DOM

    //div-chartwrapper -> div -> div -> table -> tr -> td td -> div
    const myElementA = document.querySelector(`[data-chartid="${chartid}"]`);
    let myElementB = myElementA.childNodes[0]
    let myElementC = myElementB.childNodes[0]
    let myElementD = myElementC.childNodes[0]
    let myElementE = myElementD.childNodes[0]
    let myElementF = myElementE.childNodes[1]
    let myElementG = myElementF.childNodes[0]
    myElementG.appendChild(linkLW);




    if(hidelegend == "false"){
    console.log("SHOW LEGEND!")
    var legend = document.createElement("div");
    legend.classList.add("legend");
    var offsets = document.querySelector(`[data-chartid="${chartid}"]`).getBoundingClientRect();
    var chartwrapperTop = offsets.top;

    var legendHeight = height *-1
    if(legendHeight>-210){legendHeight = -210;}
    legend.style.top = legendHeight*1.2 + "px"
    positionDIV.appendChild(legend);

    if(hidetitle == "false"){
    var firstRow = document.createElement("div");
    firstRow.classList.add("titleText");

    }

    var secondRow = document.createElement("div");
    secondRow.classList.add("secondRow");

    if(kursData !== null){
    if(hidetitle == "false"){
    firstRow.innerText = companyName
    legend.appendChild(firstRow);
    }

    secondRow.innerText = kursDate +": " + Number(kursData).toFixed(2) + " "+currency;
    legend.appendChild(secondRow);
    }else{
    if(hidetitle == "false"){
    firstRow.innerText = companyName
    legend.appendChild(firstRow);
    }

    legend.appendChild(secondRow);
    }


    // cursor moving and handling third row of legend
    chart.subscribeCrosshairMove((param) => {
    if (param.time) {
    let options = { weekday: "short", year: "numeric", month: "numeric", day: "numeric" };
    let currentDate = new Date(param.time).toLocaleDateString("de-DE", options)
    const price = param.seriesData.get(areaSeries).value;
    secondRow.innerText = currentDate + ": " + price.toFixed(2) + " "+(currency?currency:" ");
    }
    else {
    secondRow.innerText = kursDate +": " + Number(kursData).toFixed(2) + " "+currency;

    }
    });

    }

    }
    function httpGetAsync(theUrl, callback) {
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.onreadystatechange = function () {
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
    callback(xmlHttp.responseText);
    }
    xmlHttp.open("GET", theUrl, true); // true for asynchronous
    xmlHttp.send(null);
    };
    function getTimeframe(interval){
    let from = null;
    let to = formatDate(new Date());
    switch (interval) {
    case "1M": from = formatDate(new Date(Date.now() - 31 * 24 * 60 * 60 * 1000)); break;
    case "3M": from = formatDate(new Date(Date.now() - 93 * 24 * 60 * 60 * 1000)); break;
    case "6M": from = formatDate(new Date(Date.now() - 186 * 24 * 60 * 60 * 1000)); break;
    case "1Y": from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000)); break;
    case "3Y": from = formatDate(new Date(Date.now() - 1116 * 24 * 60 * 60 * 1000)); break;
    case "5Y": from = formatDate(new Date(Date.now() - 1860 * 24 * 60 * 60 * 1000)); break;
    default:from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000));

    }
    return {from:from, to:to}
    };
    function formatDate(date) {

    var month = "" + (date.getMonth()+1);
    var day = "" + date.getDate();
    var year = date.getFullYear();

    if (month.length < 2)
    month = "0" + month;
    if (day.length < 2)
    day = "0" + day;

    return [year, month, day].join("-");
    };
    </script>
    <script id="main">

    var scriptTV = document.querySelector("#tvChartLoader");
    scriptTV.addEventListener("load", function() {
    var chartid = "663e1dbca70c9";

    var companyName = "BAY.MOTOREN WERKE AG ST";
    if(companyName.length <=0){
    companyName = "BMW - XETRA";
    }
    var code = "BMW";
    var exchange = "XETRA";
    var currency ="EUR";
    var kursData = null;
    var kursDataDate = null;
    var chartHeight = "";
    var chartWidth = "250"
    var hidetitle = "false"
    var hidelegend = "false"
    let apiToken = "za1j116n2273ab1vxukuh6"
    chartWidth = document.querySelector(`[data-chartid="${chartid}"]`).offsetWidth
    var chartData = [];
    var timeframe = getTimeframe("1Y");
    var filter = "adjusted_close";

    httpGetAsync("https://api.leeway.tech/api/v1/public/historicalquotes/"+encodeURIComponent(code+"."+exchange)+"?apitoken="+apiToken+"&filter="+filter+"&from="+timeframe.from+"&to="+timeframe.to, function (res) {
    let newData = null;
    chartData = newData = JSON.parse(res)
    // chartData = chartData.map(el=>{return{value:el.value, time:el.time, timestamp:new Date(el.time.year, el.time.month-1, el.time.day).getTime()}})
    kursData = chartData[chartData.length-1].value
    let options = { weekday: "short", year: "numeric", month: "numeric", day: "numeric" };
    kursDataDate = chartData[chartData.length-1].time
    let kursDate = new Date(kursDataDate.split("-")[0], Number(kursDataDate.split("-")[1])-1, kursDataDate.split("-")[2]).toLocaleDateString("de-DE", options)

    renderTV(kursData,chartData,companyName,currency, Number(chartHeight), Number(chartWidth), code, exchange, kursDate, hidetitle, hidelegend, chartid)
    });
    });
    </script>

    Aussichten für Gewinn und Umsatz

    Das BMW-Ergebnis pro Aktie soll im 1. Quartal 2024 im Vergleich zum Vorjahresquartal nach oben gehen: Bei rund 4,25 Euro liegt die mittlere Schätzung von 3 Analysten laut finanzen.net. Im 1. Quartal 2023 waren es nur rund 3,77 Euro – im Vorquartal allerdings rund 5,31 Euro.

    Beim Umsatz rechnen die Experten mit einem sehr kleinen Plus. Bei rund 36,90 Milliarden Euro liegt die Prognose im Schnitt für das 1. Quartal. Das sind mehr als die rund 36,85 Milliarden Euro im 1. Quartal 2023 – aber weniger als die rund 42,97 Milliarden im Vorquartal. Das Geschäftsjahr endet am 31. Dezember.

     

    Disclaimer:
    Alle Angaben ohne Gewähr auf Vollständigkeit, Richtigkeit und Aktualität. Der Text stellt keine Handelsempfehlung oder Anlageberatung dar.

    Der Beitrag BMW Quartalszahlen: Oberwasser im harten Wettbewerb? Prognose und Überblick erschien zuerst auf ftd.de.

  • Batterie-Innovation: Natrium-Akku geht in Serie – Konkurrenz für Lithium-Ionen

    6. Mai, von ftd_admin
    Erste kommerzielle Produktion von Natrium-Ionen-Batterien in den USA (Foto: Business Wire) - Batterie-Innovation: Natrium-Akku geht in Serie - Konkurrenz für Lithium-Ionen

    Erste kommerzielle Produktion von Natrium-Ionen-Batterien in den USA (Foto: Business Wire)

    Holland/Basel – Der Natrium-Ionen-Batterie-Pionier Natron Energy hat mit der Serienproduktion seines Stromspeichers begonnen. Damit fordert er die Hersteller von Lithium-Ionen-Batterien vor allem in Südostasien heraus, denn der Speicher auf Natrium-Basis ist schnell aufladbar und langlebiger als Lithium-Ionen-Batterien. Da Natrium bis zu 1.000 Mal häufiger auf der Erde vorkommt und in den USA uneingeschränkt zur Verfügung steht, ist die Rohstoffbeschaffung unproblematisch – zumal die neue Batterie auch ohne Kobalt und Nickel auskommt. Die Natriumbatterie begnügt sich mit Massenwaren wie Aluminium, Eisen und Mangan.

    Erste große Produktionsanlage

    Während die meisten Natrium-Ionen-Designs noch im Laborstadium sind, hat das 2013 gegründete Unternehmen Natron Energy die erste große Produktionsanlage weltweit in Betrieb genommen. Das Unternehmen feierte den offiziellen Produktionsstart Anfang vergangener Woche mit einer Zeremonie in seiner Produktionsstätte in Holland im US-Bundesstaat Michigan.

    „Natrium-Ionen-Batterien bieten eine einzigartige Alternative zu Lithium-Ionen-Batterien mit höherer Leistung, schnellerer Wiederaufladung, längerer Lebensdauer und einer absolut sicheren und stabilen Chemie. Die Elektrifizierung unserer Wirtschaft hängt von der Entwicklung und Produktion neuer, innovativer Energiespeicherlösungen ab. Wir bei Natron sind stolz darauf, eine solche Batterie ohne die Verwendung von Konfliktmineralien oder Materialien mit fragwürdigen Umweltauswirkungen zu liefern“, so Natron-Gründer und Co-CEO Colin Wessells.

    50.000 Lade- und Entladezyklen

    Die Aufladung dauert nach Unternehmensangaben 5 bis 15 Minuten. Die Batterie übersteht klaglos 50.000 Lade- und Entladezyklen und ist unbrennbar. Für die Herstellung der Elektroden wird Preußisch (auch Berliner) Blau benötigt, das Chemiker als Eisen(III)hexacyanidoferrat(II/III) bezeichnen. Diese Schlüsselkomponenten liefert Arxada, ein Baseler Feinchemikalienhersteller. Vertraglich ist eine Menge von Material vereinbart, die für Batterien mit einer Leistung von 600 Megawatt pro Jahr reicht. Diese Produktionsmenge soll Schritt für Schritt erreicht werden. Wessells und seine Kollegen sehen die Fabrik in Holland als Modell für künftige Fabriken, in denen Natrium-Ionen-Batterien im Gigawatt-Maßstab hergestellt werden.

    Einziger Nachteil der neuen Batterie: Die Leistungsdichte kommt an die von Lithium-Ionen-Batterien nicht heran. In Autos müssten also viel größere Stromspeicher eingebaut werden. Deshalb sieht Wessells eher stationäre Anwendungen, etwa um Stromlücken, die aufgrund des Wetters entstehen, schließen zu können. Der chinesische Batteriehersteller Catl will diese Batterien auch für mobile Anwendungen einsetzen, ist aber noch nicht so weit wie Natron.

     

    Quelle: www.pressetext.com
    (pte001/06.05.2024/06:00)

    Der Beitrag Batterie-Innovation: Natrium-Akku geht in Serie – Konkurrenz für Lithium-Ionen erschien zuerst auf ftd.de.