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

  • TUI Aktie: Tourismus-Riese startet an Frankfurter Börse – starke Prognosen 2024

    8. April, von Klemens Vogel
    Börsenglocke auf dem Parkett (von links): Nicole Gehrt, Director Investor Relations, CEO Sebastian Ebel, und CFO Mathias Kiep (Foto: TUI AG) - TUI Aktie: Tourismus-Riese startet an Frankfurter Börse – starke Prognosen 2024

    Börsenglocke auf dem Parkett (von links): Nicole Gehrt, Director Investor Relations, CEO Sebastian Ebel, und CFO Mathias Kiep (Foto: TUI AG)

    Frankfurt am Main – Willkommen zurück! Der weltgrößte Touristiker TUI aus Hannover ist wieder im Prime Standard an der Frankfurter Börse gelistet. Die Aktionäre hatten fast einstimmig grünes Licht für den Rückzug aus London gegeben. Am 24. Juni könnte die Aufnahme in den MDAX und das Delisting in London folgen.

    Startschuss heute Morgen: CEO Sebastian Ebel und Finanzvorstand Mathias Kiep läuteten die Glocke zum Handelsstart. Erste Notierung: 7,73 Euro. Leicht hat sich der gebeutelte TUI-Kurs seit Herbst 2023 (unter 5 Euro) erholt, bleibt von Vor-Corona-Niveaus über 50 Euro aber noch weit entfernt.

    Als Meilenstein für den Konzern bezeichnete TUI-Chef Ebel den Börsenumzug, der den Wandel des Konzerns widerspiegele. TUI wolle international noch präsenter werden, profitabel wachsen und dies mit einfacheren Strukturen unterstützen. Dazu gehöre der Fokus auf eine einzige Börsennotierung.

     

    <script id="tvChartLoader" async src="https://unpkg.com/lightweight-charts/dist/lightweight-charts.standalone.production.js"></script> <script id="declarations">
    var chartid = "661927b90b2da";
    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 = "661927b90b2da";

    var companyName = "TUI AG";
    if(companyName.length <=0){
    companyName = "TUI1 - XETRA";
    }
    var code = "TUI1";
    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>

    Schwerpunkt heute in der EU – wegen Fusion nach London

    Vor allem 2 Gründe sprachen für den Umzug: Der Handel von TUI-Aktien hatte sich nach Deutschland verlagert – zuletzt liefen hier 3 Viertel der Transaktionen. Zudem müssen in der EU aktive Fluglinien mehrheitlich im Besitz von heimischen Eignern sein – dies unterstützt der Börsenumzug zusätzlich.

    2014 hatte es die TUI-Aktie nach London verschlagen. Damals übernahm der Reisekonzern aus Hannover die britische TUI Travel. Der damalige Börsenwechsel sollte die Fusion für die Aktionäre des britischen Unternehmens attraktiver machen. Dadurch ergab sich dann ein duales Listing in London und Frankfurt.

    Überraschend starkes Winterquartal – Reiseboom gibt 2024 Anschub

    TUI geht es wieder gut – nach der Fast-Pleite während Corona. Die Staatshilfen hat das Unternehmen mittlerweile zurückgezahlt. Im traditionell schwachen Quartal von Oktober bis Dezember steigerte TUI den Umsatz um 15 Prozent auf 4,3 Milliarden Euro. 6 Prozent mehr Menschen reisten mit dem Veranstalter.

    Die neue Reiselust beschert auch 2024 Rückenwind: 10 Prozent Zuwachs beim Umsatz erwartet der Reisveranstalter im Vergleich zu 2023. Zudem geben die Kunden mehr aus, nach bisherigen Zahlen plus 4 Prozent. „Für den Sommer erwarten wir eine starke Saison“, sagt Finanzvorstand Kiep.

    Starkes Tourismus-Wachstum weltweit – Vertrieb, Flug und Hotel von TUI

    Rosarot sieht momentan die Zukunft der gesamten Branche aus – das verheißen zumindest jüngste Prognosen auf Basis einer Studie des World Travel & Tourism Council (WTTC). Demnach wächst der weltweite wirtschaftliche Beitrag des Tourismus 2024 um 770 Milliarden auf US-Dollar 11,1 Billionen US-Dollar.

    3 Kreuzfahrt-Linien, 5 Fluggesellschaften sowie Hotelmarken mit rund 400 eigenen Häuern gehören zum weltgrößten Touristikveranstalter. Hinzu kommt die Erlebnisplattform tuimusement.com. Den Vertrieb unterstützen etwa 1.200 Reisebüros Europa sowie Service-Center und Online-Plattformen.

     

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

    Der Beitrag TUI Aktie: Tourismus-Riese startet an Frankfurter Börse – starke Prognosen 2024 erschien zuerst auf ftd.de.

  • Prognose US-Inflation – Fed rudert zurück! Der Hellmeyer der Woche KW15

    Schnell informiert:

    Die letzte Woche brachte dem Gold-Kurs neue Höchststände, gleichzeitig gibt es geopolitisch weiterhin kaum Zeichen der Entspannung – im Gegenteil. Bei den Einkaufsmanager-Indizes zieht der globale Süden davon, positiv für Deutschland und Europa ist die gesunkene Inflation. Die aktuelle Woche dominieren die US-Inflationsdaten für März. Die Zeichen für eine Verschiebung der Fed-Zinssenkung mehren sich. Auch die US-Erzeugerpreise werden der Prognose nach steigen. Außerdem schauen die Märkte unter anderem auf den EZB-Zinsentscheid und die Handelsbilanz Chinas.

    Der Wirtschaftsüberblick mit aktueller Einschätzung kurz und prägnant – nur hier beim Hellmeyer der Woche.

    Möchten Sie jede Woche mit Folker Hellmeyer starten? Einfach den ftd.de-Newsletter Weekly News abonnieren!

    Der Beitrag Prognose US-Inflation – Fed rudert zurück! Der Hellmeyer der Woche KW15 erschien zuerst auf ftd.de.

  • Girokonto Vergleich: nur bei 20 Prozent kostenlos – höchste Gebühren bei Sparkassen

    5. April, von ftd_admin

    Besorgter Mann mit Konto-Karte (Foto: Freepik, wayhomestudio) - Girokonto Vergleich: nur bei 20 Prozent kostenlos - höchste Gebühren bei Sparkassen

    Heidelberg – Gut 8 von 10 Bankkunden in Deutschland müssen für ihr Girokonto Gebühren zahlen. Für die Hälfte davon ist das Konto in den vergangenen 2 Jahren teurer geworden. Laut einer neuen Umfrage des Vergleichsportals Verivox unter 1.025 Personen verfügen vor allem Kunden von Sparkassen am seltensten über ein günstiges oder kostenfreies Konto.

    Umsatzbringer Zinswende

    „Infolge der Zinswende ist das Girokonto für viele Banken und Sparkassen zum doppelten Umsatzbringer geworden. Zum einen bescheren die Kontoguthaben den Geldhäusern inzwischen wieder attraktive Zinsüberschüsse und Überziehungen werden mit höheren Dispozinsen bepreist. Zum anderen drehen viele Kreditinstitute weiter an der Gebührenschraube“, so Oliver Maier, Chef der Verivox Finanzvergleich GmbH.

    Während insgesamt knapp die Hälfte der Befragten entweder ein kostenfreies (18 Prozent) oder ein günstiges Konto mit jährlichen Gebühren von weniger als 50 Euro (29 Prozent) besitzt, verfügt unter den Sparkassen-Kunden nicht einmal jeder Dritte über ein günstiges (23 Prozent) oder gar kostenfreies (7 Prozent) Hauptkonto, wie die repräsentative Umfrage zeigt.

    Volks- und Raiffeisenbanken

    Etwas weiter verbreitet sind günstige Konten im genossenschaftlichen Sektor – also bei den Volks- und Raiffeisenbanken, PSD- und Sparda-Banken. Hier zahlt ein Drittel der Befragten weniger als 50 Euro pro Jahr und weitere neun Prozent haben ein Gratis-Konto.

    Der Verivox-Umfrage zufolge besitzen die Kunden von Direktbanken am häufigsten ein kostenfreies oder günstiges Girokonto (jeweils 41 Prozent). Doch auch bei knapp 6 von 10 Kunden einer privaten Filialbank verursacht das Konto entweder gar keine Kosten (29 Prozent) oder die jährlichen Gebühren liegen unter 50 Euro (28 Prozent).

     

    Quelle: www.pressetext.com
    (pte019/05.04.2024/12:30)

    Der Beitrag Girokonto Vergleich: nur bei 20 Prozent kostenlos – höchste Gebühren bei Sparkassen erschien zuerst auf ftd.de.

  • Bitcoin oder Meme Coins kaufen – Pepe und Co explodieren! Das Prognose Update

    5. April, von Klemens Vogel

    Dogecoin Hund in einer Münze (Foto: Freepik, hdphotoai) - Bitcoin oder Meme Coins kaufen – Pepe und Co explodieren! Das Prognose Update

    Während Bitcoin (BTC) sich auf die nächste Etappe aufwärts vorbereitet, explodieren sogenannte Meme-Coins: Keine andere Krypto-Sparte erfährt aktuell einen derartigen Zulauf – weder AI-Coins noch RWA-Token. Ist ja auch kein Wunder: Traum-Renditen von 20.000 Prozent und mehr ziehen viele Anleger magisch an. Prognose: Sollte man jetzt Bitcoin oder Meme-Coins kaufen?

    Wie findet man Meme-Coins?

    100 Dollar in eine Kryptowährung investieren, am nächsten Morgen als Millionär aufwachen: Das ist der große Traum, der das Meme-Coin-Casino aktuell am Laufen hält. Und das nicht zu knapp: Täglich machen Erfolgsmeldungen von Anlegern die Runde, die sich mit Kleinstbeträgen über Nacht finanzielle Unabhängigkeit erzocken. Eine Analyse des Krypto-Info-Portals Coingecko bestätigt: Memecoins sind die Kryptowährungen der Stunde – noch vor Real-World-Assets (RWA) und AI-Token. „Meme Coins waren im 1. Quartal 2024 bei weitem das profitabelste Krypto-Narrativ, da sie die höchsten Renditen von durchschnittlich 1.312,6 Prozent über die Top-Token hinweg verzeichneten“, so die Studie.

    Eine kleine Übersicht der Top-Meme Coins der letzten Wochen: Book of Meme (BOME) konnte seit der Markteinführung Mitte März vergleichsweise bescheidene plus 1.378 Prozent aufwerten. dogwifhat (WIF) erfreut Käufer mit einem Anstieg um plus 1.871 Prozent im vergangenen Quartal. Pepe Coin (PEPE) kommt auf eine Rendite von plus 11.639 Prozent innerhalb der letzten 12 Monate – und Bonk Coin (BONK) ist seit Januar 2023 um sage und schreibe 20.004 Prozent explodiert (Daten von Coinmarketcap.com).

     

    <script id="tvChartLoader" async src="https://unpkg.com/lightweight-charts/dist/lightweight-charts.standalone.production.js"></script> <script id="declarations">
    var chartid = "6617d927ce498";
    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 = "6617d927ce498";

    var companyName = "Bitcoin US-Dollar";
    if(companyName.length <=0){
    companyName = "BTC-USD - CC";
    }
    var code = "BTC-USD";
    var exchange = "CC";
    var currency ="USD";
    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>

    Derartige Renditen sind kein Hexenwerk: Die meisten Meme Coins werden in Milliarden-Stückzahlen auf die Märkte geworfen, kosten pro Token dann nur Cent-Bruchteile. Das führt dazu, dass schon kleinere Investitionsbeträge den Kurs empfindlich aufwärts treiben. Erwirbt ein Entwickler beispielsweise eine gewisse Menge seines eigenen Meme Coins, kann er dadurch den Preis explodieren lassen – und so manchen Marktteilnehmer damit zu einem Kauf bewegen. Es folgt der typische Lebenszyklus eines Meme Coins: Der Kurs geht durch die Decke, Kleinanleger wittern ihre große Chance, steigen ein – und vorab investierte Wale aus. Daraufhin fällt der Preis, immer mehr Halter verkaufen – der Meme Coin tendiert gegen 0, wird wertlos. Ein Schneeballsystem par excellence.

    Es gilt: Meme-Coins kaufen ist und bleibt ein Glücks- und Nullsummenspiel, von dem nur die wenigsten profitieren. Als langfristiges Investment sind sie ungeeignet, kurzfristig mit hohem Verlustrisiko verbunden.

    Bitcoin: Prognose von PlanB – 500.000 Dollar pro BTC!

    Der Run auf Meme Coins wird zudem von schwindender Euphorie begleitet: „Die Stimmung der Menge gegenüber Bitcoin und Kryptomärkten im Allgemeinen ist seit der großen Korrektur vor 3 Wochen ins Wanken geraten“, kommentieren beispielsweise die Blockchain-Forscher von Santiment in einer Prognose. Trader sind demnach tendenziell bearish eingestellt – trotz des bevorstehenden Bitcoin-Halvings am 17. April. Das zeigt sich auch am Bitcoin-Kurs: Der musste innerhalb der letzten 7 Tage -4,84 Prozent verlorengeben, tradet mit 66.670 Dollar deutlich unter dem jüngsten Wochenhoch von 71.200 Dollar.

    Noch kann eine Korrektur vor dem Halving nicht ausgeschlossen werden: Der Tages-Chart zeigt sowohl bullishe als auch bearische Muster – es ist also mit Volatilität (Kursschwankungen) zu rechnen. Der pseudonyme Top-Analyst PlanB betont: Man solle sich „von diesen kleinen Einbrüchen nicht ablenken lassen“ – Bitcoin befinde sich nach wie vor in einem Bullenmarkt. Sein Preisziel: 500.000 Dollar pro BTC.

     

    Disclaimer:
    Der Autor und/oder verbundene Personen oder Unternehmen besitzt Kryptocoins, unter anderem auch Bitcoins. Dieser Beitrag stellt eine Meinungsäußerung und keine Anlageberatung dar.

    Der Beitrag Bitcoin oder Meme Coins kaufen – Pepe und Co explodieren! Das Prognose Update erschien zuerst auf ftd.de.

  • Hershey’s Aktie: solide Dividende, negative News – das Schokoladen-Imperium im Check

    5. April, von ftd_admin
    Schokoriegel und Nüsse fallen vom Himmel (Foto: Freepik, eaktopapps) - Hershey’s Aktie: solide Dividende negative News - das Schokoladen-Imperium im Check

    Schoko-Riegel sind in den USA beliebt (Symbolbild, Foto: Freepik, eaktopapps)

    Für uns Europäer ist Hershey’s nicht die Schokolade erster Wahl. Doch Hershey’s ist unangefochtener Marktführer auf dem US-Markt für Süßwaren. Alles begann 1894, als sich Milton Hershey’s an die Produktion und den Vertrieb von Milchschokoladentafeln wagte. 130 Jahre später ist Hershey’s führender Schokoladen- und Süßwarenhersteller in den USA und verkauft seine Produkte in über 80 Ländern weltweit.

    Von der Schokoladentafel zu einem umfangreichen Produktportfolio

    Im deutschen Raum ist Hershey’s bei Konsumenten bestenfalls durch die Schokolade in ausgewählten Supermärkten bekannt. Der Vertrieb konzentriert sich hauptsächlich auf den nordamerikanischen Markt. Hershey’s hatte es bislang schwer, in Europa erfolgreich Fuß zu fassen, da die Qualität von Milka und Lindt sehr hoch ist, und die Kunden den Marken treu sind.

    Hershey‘s bekannteste Produkte sind die Hershey’s Bars und Hershey’s Reese’s. In den USA werden neben den Riegeln Twizzlers, Kisses und auch KitKat (Lizenz für USA) verkauft. Für gesundheitsbewusste Snackliebhaber gibt es „Zero Sugar“-Produkte, die sich großer Beliebtheit erfreuen. Weitere 10 Prozent werden mit dem Snacksegment erwirtschaftet, welches stärker wächst als das Kernsegment.

    Das Management arbeitet konsequent am Produktportfolio durch Diversifikation und Übernahmen. Die Strategie ist klar: Die Marktstellung im Snackbereich trotz Marktführerschaft weiter stärken.

    Die Integration von Technologien wie Augmented Reality hilft Einzelhandelspartnern, Merchandising richtig zu nutzen und langfristig den Umsatz zu steigern. Des Weiteren wird auf Agiles Fulfillment wert gelegt. Damit reduziert das Unternehmen Abfälle und kurbelt den Absatz an.

    Hershey’s mit hervorragenden Fundamentaldaten

    Hershey’s Erfolgsgeschichte spiegelt sich in den Fundamentaldaten wider. Das Umsatzwachstum lag in den letzten 10 Jahren bei durchschnittlich 5 Prozent, das Gewinnwachstum bei starken 9,1 Prozent und das Free-Cashflow Wachstum bei 6,1 Prozent. Die Bruttomarge kletterte über die vergangenen Jahre auf einen Höchstwert von 46 Prozent und untermauert die Preissetzungsmacht des Unternehmens. Die Nettomarge konnte in den letzten 10 Jahren von rund 7 Prozent auf 16 Prozent angehoben werden.

    Letztlich offenbart ein Blick auf die Kapitalrendite die Effizienz des Süßwarenherstellers. Der ROIC, der eine Schlüsselkennzahl für Anleger sein sollte, pendelte in den letzten 10 Jahren zwischen 21,8 und 33,3 Prozent. Ein Zeichen für einen Burggraben!

     

    <script id="tvChartLoader" async src="https://unpkg.com/lightweight-charts/dist/lightweight-charts.standalone.production.js"></script> <script id="declarations">
    var chartid = "66161d93d45ea";
    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 = "66161d93d45ea";

    var companyName = "Hershey Co";
    if(companyName.length <=0){
    companyName = "HSY - US";
    }
    var code = "HSY";
    var exchange = "US";
    var currency ="USD";
    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>

    Hershey’s bietet aktuell eine Dividendenrendite von 2,8 Prozent

    Hershey’s zahlt seit über 50 Jahren Dividende. In den letzten 15 Jahren wurde die Dividende regelmäßig erhöht. Das Dividendenwachstum lag in den vergangenen 5 Jahren bei jährlich rund 11,2 Prozent, während die Ausschüttungsrate moderate 46,5 Prozent beträgt. Demnach steht auch in den nächsten Jahren einer soliden Dividendenzahlung nichts im Wege.

    Warum liegt Hershey’s aktuell 30 Prozent unter dem Allzeithoch?

    Der Markt preist aktuell mehrere Risiken in das Geschäftsmodell von Hershey’s ein, welches nicht unternehmensspezifisch ist, sondern den gesamten Schokoladenmarkt betreffen. Das Geschäftsmodell wird momentan von mehreren Nachrichten überschattet.

    • Die Kakaopreise erreichen exorbitante neue Höchstpreise. Hershey’s hatte bereits 2023 die Preise deutlich erhöht und wie viele Konsumgüterriesen still und heimlich von der sogenannten Shrinkflation profitiert. Die Margen haben sich trotz Kostendruck verbessert. Nun stellt sich die Frage, wie weit Hershey’s mit der Produkt- und Preispolitik gehen kann, um keine Umsatz- und Gewinneinbußen zu haben. Aktuell puffern bestehende Verträge zwischen Verarbeitern und Herstellern die deutlich höheren Rohstoffpreise noch ab. Die Lage ist jedoch sehr dramatisch und angespannt, nachdem sich der Kakaopreis binnen eines Jahres mehr als verdreifacht hat. Hershey’s Management betont selbst, dass sie alle Maßnahmen treffen werden, um die höheren Kakaopreise abzufedern. Doch wenn die Umstände länger anhalten, werden die Gewinne beeinträchtigt.
    • Ein weiterer Unsicherheitsfaktor ist der Boom der Abnehm-Spritzen. Patienten berichten, dass sie kaum noch Appetit auf Lebensmittel hätten. Seit diesen Meldungen werden Aktien im Genussbereich deutlich günstiger bewertet. Pepsi, Coca Cola, Hershey’s, McDonalds und Co. beteiligen sich aktuell nicht an der Bullenrallye.
    • Letztendlich spielt die anhaltende Inflation und das Konsumverhalten eine wesentliche Rolle. Auch wenn die Nachfrage nach Schokolade stets vorhanden ist, können die Preise nicht unendlich weiter angehoben werden, ohne Absatzrückgänge zu verzeichnen. Umsatz, Margen und Gewinn müssen im Einklang stehen, damit die Bewertung der Hershey’s Aktie attraktiv bleibt. Aktuell wird ein Gewinnwachstum von 3 Prozent erwartet, während der Umsatz stagnieren soll. Das erscheint ein sehr optimistisches Szenario im aktuell inflationären Umfeld (insbesondere bei Kakao) zu sein. Das KGV liegt aktuell bei 20.

    Hershey’s als Investment – das Fazit

    Hershey’s ist seit 130 Jahren am Markt und sticht im Wettbewerbsvergleich mit hohen Margen, einer hohen Kapitalrendite und Beständigkeit hervor. Die aktuelle Nachrichtenlage wirft viele Unsicherheiten. Wer darauf vertraut, dass das Management von Hershey’s weiterhin die richtigen strategischen Entscheidungen trifft und dass der Markt für Süßigkeiten und Snacks bestehen bleibt, kann in ein fundamentales starkes und gesundes Unternehmen investieren, das eine Dividendenrendite von 2,8 Prozent bietet.

    Der Beitrag Hershey’s Aktie: solide Dividende, negative News – das Schokoladen-Imperium im Check erschien zuerst auf ftd.de.