{"id":140147,"date":"2026-06-02T03:07:28","date_gmt":"2026-06-02T01:07:28","guid":{"rendered":"https:\/\/news.abusizz.ch\/value-etfs-comeback-der-substanzaktien-haengt-den-msci-world-ab\/"},"modified":"2026-06-02T03:07:28","modified_gmt":"2026-06-02T01:07:28","slug":"value-etfs-comeback-der-substanzaktien-haengt-den-msci-world-ab","status":"publish","type":"post","link":"https:\/\/news.abusizz.ch\/de\/value-etfs-comeback-der-substanzaktien-haengt-den-msci-world-ab\/","title":{"rendered":"Value ETFs: Comeback der Substanzaktien h\u00e4ngt den MSCI World ab"},"content":{"rendered":"<div>\n<div id=\"attachment_88311\" style=\"width: 410px\" class=\"wp-caption alignleft\">\n<p id=\"caption-attachment-88311\" class=\"wp-caption-text\">Value ETFs erleben 2026 eine Renaissance: Solide Unternehmensgewinne und hohe Cashflows r\u00fccken wieder in den Anleger-Fokus. (Bild: Magnific.com, freepik)<\/p>\n<\/div>\n<p>Wahnsinn an den M\u00e4rkten! W\u00e4hrend die \u00fcberhitzten Tech-Lieblinge zunehmend Federn lassen m\u00fcssen, feiert die vermeintlich verstaubte Substanzaktie ein fulminantes Comeback. Seit Jahresbeginn schie\u00dfen Value-ETFs um teils \u00fcber 30 Prozent nach oben und stellen den klassischen <a href=\"https:\/\/www.ftd.de\/boerse\/anlagestrategie\/msci-world-ist-der-beliebte-etf-eine-mogelpackung-diese-alternativen-gibt-es\/\" target=\"_blank\" rel=\"noopener\">MSCI World<\/a> damit tief in den Schatten. Es ist die gro\u00dfe Abrechnung an der B\u00f6rse und das Ende einer jahrelangen Tech-Monokultur. Anleger k\u00f6nnen mit ETFs von iShares, Xtrackers oder SPDR davon profitieren.<\/p>\n<h3>Klumpenrisiko im MSCI World: Die gro\u00dfe Rotation in Value ETFs<\/h3>\n<p>Jahrelang gab es f\u00fcr Anleger nur eine Richtung: Tech, Growth, immer spektakul\u00e4rer, immer teurer. Doch an den Finanzm\u00e4rkten w\u00e4chst kein Baum bis in den Himmel. Die gigantische Klumpenbildung im standardm\u00e4\u00dfigen MSCI World, in dem eine Handvoll Tech-Riesen die Richtung diktieren, ist pl\u00f6tzlich vom Segen zum Fluch geworden. Sobald der Hype um k\u00fcnstliche Intelligenz eine kurze Atempause einlegt, ger\u00e4t das gesamte globale Fundament ins Wanken.<\/p>\n<p>Genau hier kommt der <a href=\"https:\/\/www.ftd.de\/boerse\/anlagestrategie\/value-aktien-anlagechancen-auf-warren-buffetts-spuren\/\" target=\"_blank\" rel=\"noopener\">systematische Value-Ansatz<\/a> zum Tragen. Anstatt auf vage Zukunftsversprechen zu setzen, filtern diese Indizes gnadenlos nach harten, fundamentalen Fakten. Gefragt sind Unternehmen mit einem niedrigen <a href=\"https:\/\/www.ftd.de\/boerse\/anlagestrategie\/kgv-bei-aktien-bedeutung-tuecken-und-grenzen-des-kurs-gewinn-verhaeltnisses\/\" target=\"_blank\" rel=\"noopener\">Kurs-Gewinn-Verh\u00e4ltnis<\/a> (KGV) und einem soliden Kurs-Buchwert-Verh\u00e4ltnis (KBV). Was fr\u00fcher als langweilig galt, ist heute der absolute Renditebringer. Anleger schichten ihr Kapital massiv um. Es findet ein historischer Bewertungsausgleich statt, eine R\u00fcckkehr zum Mittelwert. Die Bewertungsschere zwischen astronomisch teurem Wachstum und str\u00e4flich vernachl\u00e4ssigter Substanz war zuletzt so weit ge\u00f6ffnet wie seit der Dotcom-Blase zur Jahrtausendwende nicht mehr.<\/p>\n<h3>Zinsumfeld im Juni 2026: Cashflows f\u00fcttern Value-Unternehmen<\/h3>\n<p>Begleitet wird diese tektonische Verschiebung von einer neuen makro\u00f6konomischen Realit\u00e4t. Die \u00c4ra der Nullzinsen ist vorbei und die globalen Zinsen haben sich auf einem stabilen Niveau eingependelt. Das ver\u00e4ndert die Spielregeln radikal. W\u00e4hrend Wachstumsunternehmen ihre Gewinne, die erst in ferner Zukunft erzielt werden, teuer \u00fcber Kredite finanzieren m\u00fcssen, verdienen Value-Unternehmen ihr Geld im Hier und Jetzt. Sie verf\u00fcgen \u00fcber sprudelnde operative Cashflows, haben deutlich weniger Schulden und k\u00f6nnen ihren Aktion\u00e4ren saftige Dividenden zahlen. In unruhigen Zeiten greift der Markt eben lieber nach dem Spatz in der Hand als nach der Taube auf dem Dach.<\/p>\n<p>Die Anatomie der Value-Strategien spiegelt diese St\u00e4rke perfekt wider \u2013 selbst wenn die Indexanbieter die Kriterien unterschiedlich scharf auslegen. Im Vergleich zum herk\u00f6mmlichen Weltindex, der zu \u00fcber 70 Prozent US-lastig ist, bietet der Value-Ansatz eine sp\u00fcrbar ausgewogenere geografische Verteilung. Der US-Anteil wird deutlich reduziert, w\u00e4hrend japanische und europ\u00e4ische Substanzwerte das Gewicht erhalten, das ihnen zusteht. Bei den Sektoren haben die klassischen Defensivk\u00fcnstler das Sagen. Neben dem Technologiesektor f\u00fchrt das Finanzwesen mit den globalen Gro\u00dfbanken das Feld an, dicht gefolgt vom Gesundheitssektor, stabilen Energiekonzernen und defensiven Basiskonsumg\u00fctern.<\/p>\n<h3>Tech und Substanz-Aktien: Wahre Treiber der aktuellen Rallye<\/h3>\n<p>Wer glaubt, im Value-Segment f\u00e4nden sich nur verstaubte Eisenbahnaktien und traditionelle Autobauer, d\u00fcrfte sich beim Blick auf die wahren Renditetreiber die Augen reiben. Denn das Geheimnis der aktuellen 30-Prozent-Rallye liegt in der lukrativen Kombination aus \u201eOld Economy\u201d und \u201eOld Tech\u201d. Selbst hochprofitable Tech-Giganten wie Alphabet (Google) waren im Vergleich zu ihrer enormen Ertragskraft zeitweise fundamental g\u00fcnstig bewertet. Deshalb flogen sie mit hohem Gewicht in die Value-K\u00f6rbe und trieben die Performance massiv an.<\/p>\n<p>Noch extremer zeigt sich das im \u201eEnhanced Value\u201c-Ansatz von MSCI. Dieser filtert die Fundamentaldaten besonders aggressiv und gewichtet die Aktien entsprechend. Das f\u00fchrt zu einer ungew\u00f6hnlich hohen IT-Quote von \u00fcber 33 Prozent.<\/p>\n<p>Der absolute Performance-Turbo war zuletzt die Halbleiterbranche: Speicherchip-Giganten wie Micron Technology wurden durch tempor\u00e4re zyklische Dellen fundamental spottbillig in den Index gesp\u00fclt. Als der KI-Boom die Nachfrage nach Hardware real explodieren lie\u00df, nahm der Enhanced-Value-Ansatz diesen Hebel voll mit. Auch klassische Netzwerkausr\u00fcster wie Cisco Systems und der Mobilfunkriese Verizon Communications lieferten als verl\u00e4ssliche Dividenden- und Cashflow-Maschinen das perfekte Fundament f\u00fcr die Rallye.<\/p>\n<p>Flankiert wird diese Tech-Elite von traditionellen Schwergewichten. So profitiert die US-Gro\u00dfbank JPMorgan Chase wie nie zuvor von den gestiegenen Zinsmargen, w\u00e4hrend der Energiegigant Exxon Mobil dank disziplinierter Investitionen Rekordsummen \u00fcber Aktienr\u00fcckk\u00e4ufe an die Anleger aussch\u00fcttet.<\/p>\n<h3>Value-ETFs im Vergleich: iShares, Xtrackers und SPDR<\/h3>\n<p>Wer auf die Renaissance der Substanzwerte setzen m\u00f6chte, sollte genauer hinschauen. Denn Value ist nicht gleich Value. Hinter den ETFs verbergen sich unterschiedliche Index-Konzepte, die das Thema \u201eg\u00fcnstige Bewertungen\u201c sehr verschieden interpretieren.<\/p>\n<h4>Die offensive Variante: iShares und Xtrackers<\/h4>\n<p>Der bekannteste Vertreter ist der <a href=\"https:\/\/www.ishares.com\/de\/privatanleger\/de\/produkte\/270048\/ishares-msci-world-value-factor-ucits-etf\" target=\"_blank\" rel=\"noopener\">iShares Edge MSCI World Value Factor UCITS ETF<\/a> (ISIN: IE00BP3QZB59). Er bildet den MSCI World Enhanced Value Index ab und geh\u00f6rt mit einer Gesamtkostenquote von 0,30 Prozent pro Jahr zu den g\u00fcnstigsten M\u00f6glichkeiten, systematisch in Value-Aktien zu investieren. Anleger k\u00f6nnen zwischen einer thesaurierenden und einer aussch\u00fcttenden Anteilsklasse (ISIN: IE00BFYTYS33) w\u00e4hlen.<\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-weight: 400;\"><\/p>\n<div class=\"chartwrapper\" id=\"chartwrapper\" data-chartid=\"6a1d9d8e3540c\"><\/div>\n<p>    <script id=\"tvChartLoader\" async src=\"https:\/\/unpkg.com\/lightweight-charts@4.2.0\/dist\/lightweight-charts.standalone.production.js\"><\/script><\/p>\n<p>    <script id=\"declarations\">\n    var chartid = \"6a1d9d8e3540c\";\n    function renderTV(kursData, chartData,companyName,currency, chartHeight, chartWidth, code, exchange, kursDate, hidetitle, hidelegend, chartid) {      \n    \tconsole.log(\"render chart with id\", document.querySelector(`[data-chartid=\"${chartid}\"]`));\n        let width = chartWidth?chartWidth:600;\n        let ratio = 2\n        let height = chartHeight?chartHeight:(width\/ratio);\n        document.querySelector(`[data-chartid=\"${chartid}\"]`).style.height = chartHeight +50\n        document.querySelector(`[data-chartid=\"${chartid}\"]`).style.width = chartWidth<\/p>\n<p>        \/\/ formatter for x achis dates\n        function customXAchsisFormetter(timePoint, tickMarkType, locale) {\n            let formatOptions = {};\n            const date = new Date(timePoint);<\/p>\n<p>            if(tickMarkType <=1){\n                formatOptions = {day: \"numeric\", month: \"short\",year: \"numeric\",}\n\n            }else{\n                formatOptions = {day: \"numeric\", month: \"short\",year: \"numeric\",}\n            }\n            \/\/ from given date we should use only as UTC date or timestamp\n            \/\/ but to format as locale date we can convert UTC date to local date\n            const localDateFromUtc = new Date(\n                date.getUTCFullYear(),\n                date.getUTCMonth(),\n                date.getUTCDate()\n            );\n\n            return localDateFromUtc.toLocaleString(locale, formatOptions);\n        }\n\n        \/\/create buttons\n        function createSimpleSwitcher(items, activeItem, activeItemChangedCallback) {\n            var switcherElement = document.createElement(\"div\");\n            switcherElement.classList.add(\"switcher\");\n\n            var intervalElements = items.map(function (item) {\n                var itemEl = document.createElement(\"button\");\n                itemEl.innerText = item;\n                itemEl.classList.add(\"switcher-item\");\n                itemEl.classList.toggle(\"switcher-active-item\", item === activeItem);\n                itemEl.addEventListener(\"click\", function () {\n                    onItemClicked(item);\n                });\n                switcherElement.appendChild(itemEl);\n                return itemEl;\n            });\n\n            function onItemClicked(item) {\n                if (item === activeItem) {\n                    return;\n                }\n\n                intervalElements.forEach(function (element, index) {\n                    element.classList.toggle(\"switcher-active-item\", items[index] === item);\n                });\n\n                activeItem = item;\n\n                activeItemChangedCallback(item);\n            }\n\n            return switcherElement;\n        }\n        \/\/ loading: true or false\n        function handleAsyncUI(loading){\n            var IntervalButtons = document.getElementsByClassName(\"switcher-item\");\n             for(var i = 0; i < IntervalButtons.length; i++){\n                IntervalButtons[i].disabled = loading;\n             } \n             var chart = document.getElementsByClassName(\"tv-lightweight-charts\")[0];\n             if(loading){\n            \n            chart.style[\"display\"] = \"flex\"\n            chart.style[\"align-items\"] = \"center\"\n            chart.style[\"justify-content\"] = \"center\"\n\n            var loadingIndicator = document.createElement(\"div\");\n            loadingIndicator.classList.add(\"loader\");\n            \/\/loadingIndicator.innerText = \"Loading\";\n            loadingIndicator.id =\"loadingIndicator\"\n            chart.appendChild(loadingIndicator);\n             }else{\n            document.getElementById(\"loadingIndicator\").remove();\n            chart.style[\"display\"] = null\n            chart.style[\"align-items\"] =null\n            chart.style[\"justify-content\"] = null\n             }\n\n        }\n        var intervals = [\"1M\",\"3M\",\"6M\",\"1Y\",\"3Y\",\"5Y\"];\n        var seriesesData = new Map([\n            [\"1M\", []], \/\/ 1m (interval daten?), 3m, 6m, 1y, 3y, 5y\n            [\"3M\", []],\n            [\"6M\", []],\n            [\"1Y\", chartData],\n            [\"3Y\", []],\n            [\"5Y\", []],\n        ]);\n        var switcherElement = createSimpleSwitcher(intervals, intervals[3], syncToInterval);\n        var chartElement = document.createElement(\"div\");\n        const chart = LightweightCharts.createChart(chartElement, {\n            width: width,\n            height: height,\n            rightPriceScale: {\n                scaleMargins: {\n                    top: 0.2,\n                    bottom: 0.2,\n                },\n                borderVisible: false,\n            },\n            timeScale: {\n                borderVisible: false,\n                lockVisibleTimeRangeOnResize: true,\n\n                rightOffset:1,\n                tickMarkFormatter:customXAchsisFormetter\n\n            },\n            grid: {\n                horzLines: {\n                    color: \"#eee\",\n                    visible: false,\n                },\n                vertLines: {\n                    color: \"#ffffff\",\n                },\n            },\n            crosshair: {\n                horzLine: {\n                    visible: false,\n                    labelVisible: false\n                },\n                vertLine: {\n                    visible: true,\n                    style: 0,\n                    width: 2,\n                    color: \"rgba(80, 50, 25, 0.1)\",\n                    labelVisible: false,\n                }\n            },\n            handleScroll: {\n                mouseWheel: false,\n                pressedMouseMove: false,\n                horzTouchDrag: false,\n                vertTouchDrag: false\n            },\n            handleScale: {\n                axisPressedMouseMove: false,\n                mouseWheel: false,\n                pinch: false,\n            },\n        });\n        var areaSeries = null;\n        var positionDIV = document.querySelector(`[data-chartid=\"${chartid}\"]`)\n        positionDIV.appendChild(chartElement);\n        positionDIV.appendChild(switcherElement);\n        function httpGetAsync(theUrl, callback) {\n            var xmlHttp = new XMLHttpRequest();\n            xmlHttp.onreadystatechange = function () {\n                if (xmlHttp.readyState == 4 &#038;&#038; xmlHttp.status == 200)\n                    callback(xmlHttp.responseText);\n            }\n            xmlHttp.open(\"GET\", theUrl, true); \/\/ true for asynchronous \n            xmlHttp.send(null);\n        }\n        function formatDate(date) {\n            \n            var month = \"\" + (date.getMonth()+1);\n            var day = \"\" + date.getDate();\n            var year = date.getFullYear();\n\n            if (month.length < 2) \n                month = \"0\" + month;\n            if (day.length < 2) \n                day = \"0\" + day;\n            return [year, month, day].join(\"-\");\n        }\n        function getTimeframe(interval){\n            let from = null;\n            let to = formatDate(new Date());\n            switch (interval) {\n                case \"1M\": from = formatDate(new Date(Date.now() - 31 * 24 * 60 * 60 * 1000)); break;\n                case \"3M\": from = formatDate(new Date(Date.now() - 93 * 24 * 60 * 60 * 1000)); break;\n                case \"6M\": from = formatDate(new Date(Date.now() - 186 * 24 * 60 * 60 * 1000)); break;\n                case \"1Y\": from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000)); break;\n                case \"3Y\": from = formatDate(new Date(Date.now() - 1116 * 24 * 60 * 60 * 1000)); break;\n                case \"5Y\": from = formatDate(new Date(Date.now() - 1860 * 24 * 60 * 60 * 1000)); break;\n                default:from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000));\n                \n                }\n            return {from:from, to:to}\n        }\t\n        \/\/ what happens on button click\n        function syncToInterval(interval) {\n            if (areaSeries &#038;&#038; seriesesData.get(interval).length <=0) {\n                console.log(\"GETTING REMOTE DATA\")\n\n                chart.removeSeries(areaSeries);\n                areaSeries = null;\n                let apiToken = \"za1j116n2273ab1vxukuh6\"\n                let timeframe = getTimeframe(interval)\n                let filter = \"adjusted_close\"\n                handleAsyncUI(true)\t\t\t\t\t\t\n                httpGetAsync(\"https:\/\/api.leeway.tech\/api\/v1\/public\/historicalquotes\/\"+encodeURIComponent(code+\".\"+exchange)+\"?apitoken=\"+apiToken+\"&#038;filter=\"+filter+\"&#038;from=\"+timeframe.from+\"&#038;to=\"+timeframe.to, function (res) {\t\n                    let newData = []\n                    newData = JSON.parse(res)\/\/.map(el=>newData.push({time:el.date, value:el.close}))\n                    \/\/ newData = newData.map(el=>{\n                    \/\/     console.log(el.time.year)\n                    \/\/     console.log(el.time.month)\n                    \/\/     console.log(el.time.day)\n                    \/\/     console.log(el)\n                    \/\/     console.log(new Date(el.time.year, el.time.month-1, el.time.day));\n                    \/\/     return{value:el.value, time:el.time, timestamp:new Date(el.time.year, el.time.month-1, el.time.day).getTime()}})\n                    console.log(\"newData\")\n                    console.log(newData)\n                    seriesesData.set(interval, newData)\n                    areaSeries = chart.addAreaSeries({\n                        topColor: \"rgba(33, 108, 173, 0.56)\",\n                        bottomColor: \"rgba(33, 108, 173, 0.04)\",\n                        lineColor: \"rgba(33, 108, 173, 1)\",\n                    lineWidth: 2,\n                });\n                kursData = seriesesData.get(interval)[seriesesData.get(interval).length-1].value\n                areaSeries.setData(seriesesData.get(interval));\n                chart.timeScale().fitContent();\n                handleAsyncUI(false)\t\n                    })\n            }else{\n                console.log(\"GETTING LOADED DATA\")\n                if(areaSeries){\n                    console.log(\"DELETING  LOADED DATA FROM CHART\")\n                    chart.removeSeries(areaSeries);\n                    areaSeries = null;\n                }\n                kursData = seriesesData.get(interval)[seriesesData.get(interval).length-1].value\n                areaSeries = chart.addAreaSeries({\n                topColor: \"rgba(33, 108, 173, 0.56)\",\n                bottomColor: \"rgba(33, 108, 173, 0.04)\",\n                lineColor: \"rgba(33, 108, 173, 1)\",\n                lineWidth: 2,\n            });\n            areaSeries.setData(seriesesData.get(interval));<\/p>\n<p>            chart.timeScale().fitContent();\n            }<\/p>\n<p>        }\n        \/\/ data interval at startup\n        syncToInterval(intervals[3]);\n        \/\/ Name and Kurs as Text in legend<\/p>\n<p>        var watermark = document.createElement(\"img\")\n        watermark.classList.add(\"watermark\")\n        watermark.setAttribute(\"src\", \"https:\/\/api.leeway.tech\/leeway-sign.png\")\n        var testA = document.querySelector(`[data-chartid=\"${chartid}\"]`)\n        var testB = document.querySelector(`[data-chartid=\"${chartid}\"]`).getBoundingClientRect();\n        var test =  testA.getElementsByTagName(\"canvas\")[0].getBoundingClientRect();\n        watermark.style.position = \"absolute\";\n        watermark.style.width = \"90px\";\n        watermark.style.height = \"30px\";\n        watermark.style.display = \"block\";\n        \/\/watermark.style.z-index = \"1000000\";\n        watermark.style.bottom = \"0\";\n        watermark.style.right = \"10px\";<\/p>\n<p>        let linkLW = document.createElement(\"a\")\n        linkLW.href=\"https:\/\/www.ftd.de\/leeway-tech\";\n        linkLW.target = \"_blank\";\n        linkLW.appendChild(watermark)\n        \/\/ append to DOM<\/p>\n<p>        \/\/div-chartwrapper -> div -> div ->  table  -> tr ->  td td -> div\n        const myElementA = document.querySelector(`[data-chartid=\"${chartid}\"]`);\n        let myElementB = myElementA.childNodes[0]\n        let myElementC = myElementB.childNodes[0]\n        let myElementD = myElementC.childNodes[0]\n        let myElementE = myElementD.childNodes[0]\n        let myElementF = myElementE.childNodes[1]\n        let myElementG = myElementF.childNodes[0]\n        myElementG.appendChild(linkLW);<\/p>\n<p>        if(hidelegend == \"false\"){\n            console.log(\"SHOW LEGEND!\")\n            var legend = document.createElement(\"div\");\n            legend.classList.add(\"legend\");\n            var offsets = document.querySelector(`[data-chartid=\"${chartid}\"]`).getBoundingClientRect();\n            var chartwrapperTop = offsets.top;<\/p>\n<p>            var legendHeight = height *-1\n            if(legendHeight>-210){legendHeight = -210;}\n            legend.style.top = legendHeight*1.2  + \"px\"\n            positionDIV.appendChild(legend);<\/p>\n<p>            if(hidetitle == \"false\"){\n                var firstRow = document.createElement(\"div\");\n                firstRow.classList.add(\"titleText\");\t<\/p>\n<p>            }<\/p>\n<p>            var secondRow = document.createElement(\"div\");\n            secondRow.classList.add(\"secondRow\");\t<\/p>\n<p>            if(kursData !== null){\n                if(hidetitle == \"false\"){\n                    firstRow.innerText = companyName\n                    legend.appendChild(firstRow);\n                }<\/p>\n<p>                secondRow.innerText = kursDate +\": \" + Number(kursData).toFixed(2) + \" \"+currency;\n                 legend.appendChild(secondRow);\n            }else{\n                if(hidetitle == \"false\"){\n                    firstRow.innerText = companyName\n                    legend.appendChild(firstRow);\n                }<\/p>\n<p>                legend.appendChild(secondRow);\n            }<\/p>\n<p>            \/\/ cursor moving and handling third row of legend\n            chart.subscribeCrosshairMove((param) => {\n                if (param.time) {\n                    let options = { weekday: \"short\", year: \"numeric\", month: \"numeric\", day: \"numeric\" };\n                    let currentDate = new Date(param.time).toLocaleDateString(\"de-DE\", options)\n                    const price = param.seriesData.get(areaSeries).value;\n                    secondRow.innerText = currentDate + \":  \" + price.toFixed(2) + \" \"+(currency?currency:\" \");\n                }\n            else {\n                secondRow.innerText = kursDate +\": \" + Number(kursData).toFixed(2) + \" \"+currency;<\/p>\n<p>            }\n            });<\/p>\n<p>        }<\/p>\n<p>    }\n    function httpGetAsync(theUrl, callback) {\n            var xmlHttp = new XMLHttpRequest();\n            xmlHttp.onreadystatechange = function () {\n                if (xmlHttp.readyState == 4 && xmlHttp.status == 200)\n                    callback(xmlHttp.responseText);\n            }\n            xmlHttp.open(\"GET\", theUrl, true); \/\/ true for asynchronous \n            xmlHttp.send(null);\n        };\n    function getTimeframe(interval){\n            let from = null;\n            let to = formatDate(new Date());\n            switch (interval) {\n                case \"1M\": from = formatDate(new Date(Date.now() - 31 * 24 * 60 * 60 * 1000)); break;\n                case \"3M\": from = formatDate(new Date(Date.now() - 93 * 24 * 60 * 60 * 1000)); break;\n                case \"6M\": from = formatDate(new Date(Date.now() - 186 * 24 * 60 * 60 * 1000)); break;\n                case \"1Y\": from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000)); break;\n                case \"3Y\": from = formatDate(new Date(Date.now() - 1116 * 24 * 60 * 60 * 1000)); break;\n                case \"5Y\": from = formatDate(new Date(Date.now() - 1860 * 24 * 60 * 60 * 1000)); break;\n                default:from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000));<\/p>\n<p>                }\n            return {from:from, to:to}\n        };\n        function formatDate(date) {<\/p>\n<p>            var  month = \"\" + (date.getMonth()+1);\n            var   day = \"\" + date.getDate();\n            var   year = date.getFullYear();<\/p>\n<p>            if (month.length < 2) \n                month = \"0\" + month;\n            if (day.length < 2) \n                day = \"0\" + day;\n\n            return [year, month, day].join(\"-\");\n        };\n    <\/script><br \/>\n    <script id=\"main\"><\/p>\n<p>    var scriptTV = document.querySelector(\"#tvChartLoader\");\n    scriptTV.addEventListener(\"load\", function() {\n        var chartid = \"6a1d9d8e3540c\";<\/p>\n<p>        var companyName = \"iShares Edge MSCI World Value Factor UCITS ETF USD (Acc) EUR\";\n        if(companyName.length <=0){\n        companyName = \"IS3S - XETRA\";\n        }\n        var code = \"IS3S\";\n        var exchange = \"XETRA\";\n        var currency =\"EUR\";\n        var kursData = null;\n        var kursDataDate = null;\n        var chartHeight = \"\";\n        var chartWidth = \"250\"\n        var hidetitle = \"false\"\n        var hidelegend = \"false\"\n        let apiToken = \"za1j116n2273ab1vxukuh6\"\n        chartWidth = document.querySelector(`[data-chartid=\"${chartid}\"]`).offsetWidth\n        var chartData = [];\n        var timeframe = getTimeframe(\"1Y\");\n        var filter = \"adjusted_close\";\n        \n        httpGetAsync(\"https:\/\/api.leeway.tech\/api\/v1\/public\/historicalquotes\/\"+encodeURIComponent(code+\".\"+exchange)+\"?apitoken=\"+apiToken+\"&#038;filter=\"+filter+\"&#038;from=\"+timeframe.from+\"&#038;to=\"+timeframe.to, function (res) {\t\n            let newData = null;\n             chartData = newData = JSON.parse(res)\n            \/\/ 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()}})\n             kursData = chartData[chartData.length-1].value\n             let options = { weekday: \"short\", year: \"numeric\", month: \"numeric\", day: \"numeric\" };\n             kursDataDate = chartData[chartData.length-1].time\n             let kursDate = new Date(kursDataDate.split(\"-\")[0], Number(kursDataDate.split(\"-\")[1])-1, kursDataDate.split(\"-\")[2]).toLocaleDateString(\"de-DE\", options)<\/p>\n<p>             renderTV(kursData,chartData,companyName,currency, Number(chartHeight), Number(chartWidth), code, exchange, kursDate, hidetitle, hidelegend, chartid)\n        });\n    });\n<\/script><\/span><\/p>\n<p>Der zugrunde liegende Index verfolgt einen konsequenten Faktoransatz. Aktien werden strikt nach fundamentalen Kennzahlen wie Kurs-Gewinn- und Kurs-Buchwert-Verh\u00e4ltnis ausgew\u00e4hlt und gewichtet. Das kann dazu f\u00fchren, dass einzelne Unternehmen zeitweise hohe Positionen im Portfolio einnehmen. W\u00e4hrend der j\u00fcngsten Halbleiter-Rallye erreichte beispielsweise Micron Technology ein Gewicht von mehr als 7 Prozent.<\/p>\n<p>Das Ergebnis ist ein vergleichsweise offensiver Value-Ansatz, der auch vor Technologieaktien nicht zur\u00fcckschreckt, sofern diese g\u00fcnstig bewertet erscheinen.<\/p>\n<p>Wer eine Alternative zu iShares sucht, findet mit dem <a href=\"https:\/\/etf.dws.com\/de-de\/IE00BL25JM42-msci-world-value-ucits-etf-1c\/\" target=\"_blank\" rel=\"noopener\">Xtrackers MSCI World Value UCITS ETF<\/a> (ISIN: IE00BL25JM42) einen nahezu identischen Ansatz. Der ETF bildet denselben Index ab, kostet mit 0,25 Prozent sogar etwas weniger und unterscheidet sich in der Praxis kaum vom iShares-Pendant.<\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-weight: 400;\"><\/p>\n<div class=\"chartwrapper\" id=\"chartwrapper\" data-chartid=\"6a1d9d8e35439\"><\/div>\n<p>    <script id=\"tvChartLoader\" async src=\"https:\/\/unpkg.com\/lightweight-charts@4.2.0\/dist\/lightweight-charts.standalone.production.js\"><\/script><\/p>\n<p>    <script id=\"declarations\">\n    var chartid = \"6a1d9d8e35439\";\n    function renderTV(kursData, chartData,companyName,currency, chartHeight, chartWidth, code, exchange, kursDate, hidetitle, hidelegend, chartid) {      \n    \tconsole.log(\"render chart with id\", document.querySelector(`[data-chartid=\"${chartid}\"]`));\n        let width = chartWidth?chartWidth:600;\n        let ratio = 2\n        let height = chartHeight?chartHeight:(width\/ratio);\n        document.querySelector(`[data-chartid=\"${chartid}\"]`).style.height = chartHeight +50\n        document.querySelector(`[data-chartid=\"${chartid}\"]`).style.width = chartWidth<\/p>\n<p>        \/\/ formatter for x achis dates\n        function customXAchsisFormetter(timePoint, tickMarkType, locale) {\n            let formatOptions = {};\n            const date = new Date(timePoint);<\/p>\n<p>            if(tickMarkType <=1){\n                formatOptions = {day: \"numeric\", month: \"short\",year: \"numeric\",}\n\n            }else{\n                formatOptions = {day: \"numeric\", month: \"short\",year: \"numeric\",}\n            }\n            \/\/ from given date we should use only as UTC date or timestamp\n            \/\/ but to format as locale date we can convert UTC date to local date\n            const localDateFromUtc = new Date(\n                date.getUTCFullYear(),\n                date.getUTCMonth(),\n                date.getUTCDate()\n            );\n\n            return localDateFromUtc.toLocaleString(locale, formatOptions);\n        }\n\n        \/\/create buttons\n        function createSimpleSwitcher(items, activeItem, activeItemChangedCallback) {\n            var switcherElement = document.createElement(\"div\");\n            switcherElement.classList.add(\"switcher\");\n\n            var intervalElements = items.map(function (item) {\n                var itemEl = document.createElement(\"button\");\n                itemEl.innerText = item;\n                itemEl.classList.add(\"switcher-item\");\n                itemEl.classList.toggle(\"switcher-active-item\", item === activeItem);\n                itemEl.addEventListener(\"click\", function () {\n                    onItemClicked(item);\n                });\n                switcherElement.appendChild(itemEl);\n                return itemEl;\n            });\n\n            function onItemClicked(item) {\n                if (item === activeItem) {\n                    return;\n                }\n\n                intervalElements.forEach(function (element, index) {\n                    element.classList.toggle(\"switcher-active-item\", items[index] === item);\n                });\n\n                activeItem = item;\n\n                activeItemChangedCallback(item);\n            }\n\n            return switcherElement;\n        }\n        \/\/ loading: true or false\n        function handleAsyncUI(loading){\n            var IntervalButtons = document.getElementsByClassName(\"switcher-item\");\n             for(var i = 0; i < IntervalButtons.length; i++){\n                IntervalButtons[i].disabled = loading;\n             } \n             var chart = document.getElementsByClassName(\"tv-lightweight-charts\")[0];\n             if(loading){\n            \n            chart.style[\"display\"] = \"flex\"\n            chart.style[\"align-items\"] = \"center\"\n            chart.style[\"justify-content\"] = \"center\"\n\n            var loadingIndicator = document.createElement(\"div\");\n            loadingIndicator.classList.add(\"loader\");\n            \/\/loadingIndicator.innerText = \"Loading\";\n            loadingIndicator.id =\"loadingIndicator\"\n            chart.appendChild(loadingIndicator);\n             }else{\n            document.getElementById(\"loadingIndicator\").remove();\n            chart.style[\"display\"] = null\n            chart.style[\"align-items\"] =null\n            chart.style[\"justify-content\"] = null\n             }\n\n        }\n        var intervals = [\"1M\",\"3M\",\"6M\",\"1Y\",\"3Y\",\"5Y\"];\n        var seriesesData = new Map([\n            [\"1M\", []], \/\/ 1m (interval daten?), 3m, 6m, 1y, 3y, 5y\n            [\"3M\", []],\n            [\"6M\", []],\n            [\"1Y\", chartData],\n            [\"3Y\", []],\n            [\"5Y\", []],\n        ]);\n        var switcherElement = createSimpleSwitcher(intervals, intervals[3], syncToInterval);\n        var chartElement = document.createElement(\"div\");\n        const chart = LightweightCharts.createChart(chartElement, {\n            width: width,\n            height: height,\n            rightPriceScale: {\n                scaleMargins: {\n                    top: 0.2,\n                    bottom: 0.2,\n                },\n                borderVisible: false,\n            },\n            timeScale: {\n                borderVisible: false,\n                lockVisibleTimeRangeOnResize: true,\n\n                rightOffset:1,\n                tickMarkFormatter:customXAchsisFormetter\n\n            },\n            grid: {\n                horzLines: {\n                    color: \"#eee\",\n                    visible: false,\n                },\n                vertLines: {\n                    color: \"#ffffff\",\n                },\n            },\n            crosshair: {\n                horzLine: {\n                    visible: false,\n                    labelVisible: false\n                },\n                vertLine: {\n                    visible: true,\n                    style: 0,\n                    width: 2,\n                    color: \"rgba(80, 50, 25, 0.1)\",\n                    labelVisible: false,\n                }\n            },\n            handleScroll: {\n                mouseWheel: false,\n                pressedMouseMove: false,\n                horzTouchDrag: false,\n                vertTouchDrag: false\n            },\n            handleScale: {\n                axisPressedMouseMove: false,\n                mouseWheel: false,\n                pinch: false,\n            },\n        });\n        var areaSeries = null;\n        var positionDIV = document.querySelector(`[data-chartid=\"${chartid}\"]`)\n        positionDIV.appendChild(chartElement);\n        positionDIV.appendChild(switcherElement);\n        function httpGetAsync(theUrl, callback) {\n            var xmlHttp = new XMLHttpRequest();\n            xmlHttp.onreadystatechange = function () {\n                if (xmlHttp.readyState == 4 &#038;&#038; xmlHttp.status == 200)\n                    callback(xmlHttp.responseText);\n            }\n            xmlHttp.open(\"GET\", theUrl, true); \/\/ true for asynchronous \n            xmlHttp.send(null);\n        }\n        function formatDate(date) {\n            \n            var month = \"\" + (date.getMonth()+1);\n            var day = \"\" + date.getDate();\n            var year = date.getFullYear();\n\n            if (month.length < 2) \n                month = \"0\" + month;\n            if (day.length < 2) \n                day = \"0\" + day;\n            return [year, month, day].join(\"-\");\n        }\n        function getTimeframe(interval){\n            let from = null;\n            let to = formatDate(new Date());\n            switch (interval) {\n                case \"1M\": from = formatDate(new Date(Date.now() - 31 * 24 * 60 * 60 * 1000)); break;\n                case \"3M\": from = formatDate(new Date(Date.now() - 93 * 24 * 60 * 60 * 1000)); break;\n                case \"6M\": from = formatDate(new Date(Date.now() - 186 * 24 * 60 * 60 * 1000)); break;\n                case \"1Y\": from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000)); break;\n                case \"3Y\": from = formatDate(new Date(Date.now() - 1116 * 24 * 60 * 60 * 1000)); break;\n                case \"5Y\": from = formatDate(new Date(Date.now() - 1860 * 24 * 60 * 60 * 1000)); break;\n                default:from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000));\n                \n                }\n            return {from:from, to:to}\n        }\t\n        \/\/ what happens on button click\n        function syncToInterval(interval) {\n            if (areaSeries &#038;&#038; seriesesData.get(interval).length <=0) {\n                console.log(\"GETTING REMOTE DATA\")\n\n                chart.removeSeries(areaSeries);\n                areaSeries = null;\n                let apiToken = \"za1j116n2273ab1vxukuh6\"\n                let timeframe = getTimeframe(interval)\n                let filter = \"adjusted_close\"\n                handleAsyncUI(true)\t\t\t\t\t\t\n                httpGetAsync(\"https:\/\/api.leeway.tech\/api\/v1\/public\/historicalquotes\/\"+encodeURIComponent(code+\".\"+exchange)+\"?apitoken=\"+apiToken+\"&#038;filter=\"+filter+\"&#038;from=\"+timeframe.from+\"&#038;to=\"+timeframe.to, function (res) {\t\n                    let newData = []\n                    newData = JSON.parse(res)\/\/.map(el=>newData.push({time:el.date, value:el.close}))\n                    \/\/ newData = newData.map(el=>{\n                    \/\/     console.log(el.time.year)\n                    \/\/     console.log(el.time.month)\n                    \/\/     console.log(el.time.day)\n                    \/\/     console.log(el)\n                    \/\/     console.log(new Date(el.time.year, el.time.month-1, el.time.day));\n                    \/\/     return{value:el.value, time:el.time, timestamp:new Date(el.time.year, el.time.month-1, el.time.day).getTime()}})\n                    console.log(\"newData\")\n                    console.log(newData)\n                    seriesesData.set(interval, newData)\n                    areaSeries = chart.addAreaSeries({\n                        topColor: \"rgba(33, 108, 173, 0.56)\",\n                        bottomColor: \"rgba(33, 108, 173, 0.04)\",\n                        lineColor: \"rgba(33, 108, 173, 1)\",\n                    lineWidth: 2,\n                });\n                kursData = seriesesData.get(interval)[seriesesData.get(interval).length-1].value\n                areaSeries.setData(seriesesData.get(interval));\n                chart.timeScale().fitContent();\n                handleAsyncUI(false)\t\n                    })\n            }else{\n                console.log(\"GETTING LOADED DATA\")\n                if(areaSeries){\n                    console.log(\"DELETING  LOADED DATA FROM CHART\")\n                    chart.removeSeries(areaSeries);\n                    areaSeries = null;\n                }\n                kursData = seriesesData.get(interval)[seriesesData.get(interval).length-1].value\n                areaSeries = chart.addAreaSeries({\n                topColor: \"rgba(33, 108, 173, 0.56)\",\n                bottomColor: \"rgba(33, 108, 173, 0.04)\",\n                lineColor: \"rgba(33, 108, 173, 1)\",\n                lineWidth: 2,\n            });\n            areaSeries.setData(seriesesData.get(interval));<\/p>\n<p>            chart.timeScale().fitContent();\n            }<\/p>\n<p>        }\n        \/\/ data interval at startup\n        syncToInterval(intervals[3]);\n        \/\/ Name and Kurs as Text in legend<\/p>\n<p>        var watermark = document.createElement(\"img\")\n        watermark.classList.add(\"watermark\")\n        watermark.setAttribute(\"src\", \"https:\/\/api.leeway.tech\/leeway-sign.png\")\n        var testA = document.querySelector(`[data-chartid=\"${chartid}\"]`)\n        var testB = document.querySelector(`[data-chartid=\"${chartid}\"]`).getBoundingClientRect();\n        var test =  testA.getElementsByTagName(\"canvas\")[0].getBoundingClientRect();\n        watermark.style.position = \"absolute\";\n        watermark.style.width = \"90px\";\n        watermark.style.height = \"30px\";\n        watermark.style.display = \"block\";\n        \/\/watermark.style.z-index = \"1000000\";\n        watermark.style.bottom = \"0\";\n        watermark.style.right = \"10px\";<\/p>\n<p>        let linkLW = document.createElement(\"a\")\n        linkLW.href=\"https:\/\/www.ftd.de\/leeway-tech\";\n        linkLW.target = \"_blank\";\n        linkLW.appendChild(watermark)\n        \/\/ append to DOM<\/p>\n<p>        \/\/div-chartwrapper -> div -> div ->  table  -> tr ->  td td -> div\n        const myElementA = document.querySelector(`[data-chartid=\"${chartid}\"]`);\n        let myElementB = myElementA.childNodes[0]\n        let myElementC = myElementB.childNodes[0]\n        let myElementD = myElementC.childNodes[0]\n        let myElementE = myElementD.childNodes[0]\n        let myElementF = myElementE.childNodes[1]\n        let myElementG = myElementF.childNodes[0]\n        myElementG.appendChild(linkLW);<\/p>\n<p>        if(hidelegend == \"false\"){\n            console.log(\"SHOW LEGEND!\")\n            var legend = document.createElement(\"div\");\n            legend.classList.add(\"legend\");\n            var offsets = document.querySelector(`[data-chartid=\"${chartid}\"]`).getBoundingClientRect();\n            var chartwrapperTop = offsets.top;<\/p>\n<p>            var legendHeight = height *-1\n            if(legendHeight>-210){legendHeight = -210;}\n            legend.style.top = legendHeight*1.2  + \"px\"\n            positionDIV.appendChild(legend);<\/p>\n<p>            if(hidetitle == \"false\"){\n                var firstRow = document.createElement(\"div\");\n                firstRow.classList.add(\"titleText\");\t<\/p>\n<p>            }<\/p>\n<p>            var secondRow = document.createElement(\"div\");\n            secondRow.classList.add(\"secondRow\");\t<\/p>\n<p>            if(kursData !== null){\n                if(hidetitle == \"false\"){\n                    firstRow.innerText = companyName\n                    legend.appendChild(firstRow);\n                }<\/p>\n<p>                secondRow.innerText = kursDate +\": \" + Number(kursData).toFixed(2) + \" \"+currency;\n                 legend.appendChild(secondRow);\n            }else{\n                if(hidetitle == \"false\"){\n                    firstRow.innerText = companyName\n                    legend.appendChild(firstRow);\n                }<\/p>\n<p>                legend.appendChild(secondRow);\n            }<\/p>\n<p>            \/\/ cursor moving and handling third row of legend\n            chart.subscribeCrosshairMove((param) => {\n                if (param.time) {\n                    let options = { weekday: \"short\", year: \"numeric\", month: \"numeric\", day: \"numeric\" };\n                    let currentDate = new Date(param.time).toLocaleDateString(\"de-DE\", options)\n                    const price = param.seriesData.get(areaSeries).value;\n                    secondRow.innerText = currentDate + \":  \" + price.toFixed(2) + \" \"+(currency?currency:\" \");\n                }\n            else {\n                secondRow.innerText = kursDate +\": \" + Number(kursData).toFixed(2) + \" \"+currency;<\/p>\n<p>            }\n            });<\/p>\n<p>        }<\/p>\n<p>    }\n    function httpGetAsync(theUrl, callback) {\n            var xmlHttp = new XMLHttpRequest();\n            xmlHttp.onreadystatechange = function () {\n                if (xmlHttp.readyState == 4 && xmlHttp.status == 200)\n                    callback(xmlHttp.responseText);\n            }\n            xmlHttp.open(\"GET\", theUrl, true); \/\/ true for asynchronous \n            xmlHttp.send(null);\n        };\n    function getTimeframe(interval){\n            let from = null;\n            let to = formatDate(new Date());\n            switch (interval) {\n                case \"1M\": from = formatDate(new Date(Date.now() - 31 * 24 * 60 * 60 * 1000)); break;\n                case \"3M\": from = formatDate(new Date(Date.now() - 93 * 24 * 60 * 60 * 1000)); break;\n                case \"6M\": from = formatDate(new Date(Date.now() - 186 * 24 * 60 * 60 * 1000)); break;\n                case \"1Y\": from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000)); break;\n                case \"3Y\": from = formatDate(new Date(Date.now() - 1116 * 24 * 60 * 60 * 1000)); break;\n                case \"5Y\": from = formatDate(new Date(Date.now() - 1860 * 24 * 60 * 60 * 1000)); break;\n                default:from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000));<\/p>\n<p>                }\n            return {from:from, to:to}\n        };\n        function formatDate(date) {<\/p>\n<p>            var  month = \"\" + (date.getMonth()+1);\n            var   day = \"\" + date.getDate();\n            var   year = date.getFullYear();<\/p>\n<p>            if (month.length < 2) \n                month = \"0\" + month;\n            if (day.length < 2) \n                day = \"0\" + day;\n\n            return [year, month, day].join(\"-\");\n        };\n    <\/script><br \/>\n    <script id=\"main\"><\/p>\n<p>    var scriptTV = document.querySelector(\"#tvChartLoader\");\n    scriptTV.addEventListener(\"load\", function() {\n        var chartid = \"6a1d9d8e35439\";<\/p>\n<p>        var companyName = \"Xtrackers MSCI World Value UCITS ETF 1C EUR\";\n        if(companyName.length <=0){\n        companyName = \"XDEV - XETRA\";\n        }\n        var code = \"XDEV\";\n        var exchange = \"XETRA\";\n        var currency =\"EUR\";\n        var kursData = null;\n        var kursDataDate = null;\n        var chartHeight = \"\";\n        var chartWidth = \"250\"\n        var hidetitle = \"false\"\n        var hidelegend = \"false\"\n        let apiToken = \"za1j116n2273ab1vxukuh6\"\n        chartWidth = document.querySelector(`[data-chartid=\"${chartid}\"]`).offsetWidth\n        var chartData = [];\n        var timeframe = getTimeframe(\"1Y\");\n        var filter = \"adjusted_close\";\n        \n        httpGetAsync(\"https:\/\/api.leeway.tech\/api\/v1\/public\/historicalquotes\/\"+encodeURIComponent(code+\".\"+exchange)+\"?apitoken=\"+apiToken+\"&#038;filter=\"+filter+\"&#038;from=\"+timeframe.from+\"&#038;to=\"+timeframe.to, function (res) {\t\n            let newData = null;\n             chartData = newData = JSON.parse(res)\n            \/\/ 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()}})\n             kursData = chartData[chartData.length-1].value\n             let options = { weekday: \"short\", year: \"numeric\", month: \"numeric\", day: \"numeric\" };\n             kursDataDate = chartData[chartData.length-1].time\n             let kursDate = new Date(kursDataDate.split(\"-\")[0], Number(kursDataDate.split(\"-\")[1])-1, kursDataDate.split(\"-\")[2]).toLocaleDateString(\"de-DE\", options)<\/p>\n<p>             renderTV(kursData,chartData,companyName,currency, Number(chartHeight), Number(chartWidth), code, exchange, kursDate, hidetitle, hidelegend, chartid)\n        });\n    });\n<\/script><\/span><\/p>\n<h4>Der Qualit\u00e4tfilterer: SPDR setzt auf Substanz statt Schn\u00e4ppchen<\/h4>\n<p>Einen anderen Weg geht der <a href=\"https:\/\/www.ssga.com\/de\/de\/intermediary\/etfs\/state-street-spdr-msci-world-value-ucits-etf-acc-wval-na\" target=\"_blank\" rel=\"noopener\">SPDR MSCI World Value UCITS ETF<\/a> (ISIN: IE00BJXRT813), der den MSCI World Value Exposure Select Index abbildet.<\/p>\n<p>Hier gen\u00fcgt eine g\u00fcnstige Bewertung allein nicht. Zus\u00e4tzlich m\u00fcssen die Unternehmen strenge Qualit\u00e4tskriterien erf\u00fcllen. Schwache Bilanzen, sinkende Kapitalrenditen oder strukturelle Probleme f\u00fchren zum Ausschluss \u2013 selbst dann, wenn die Aktie auf den ersten Blick attraktiv bewertet erscheint.<\/p>\n<p>Ziel ist es, klassische Value-Fallen zu vermeiden: Unternehmen, die nicht ohne Grund billig sind. Entsprechend sucht man angeschlagene Turnaround-Kandidaten wie Intel unter den gr\u00f6\u00dften Positionen vergeblich. Stattdessen dominieren etablierte Cashflow-Lieferanten wie Cisco Systems sowie die Halbleiter-Zulieferer Applied Materials und Lam Research.<\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-weight: 400;\"><\/p>\n<div class=\"chartwrapper\" id=\"chartwrapper\" data-chartid=\"6a1d9d8e3545e\"><\/div>\n<p>    <script id=\"tvChartLoader\" async src=\"https:\/\/unpkg.com\/lightweight-charts@4.2.0\/dist\/lightweight-charts.standalone.production.js\"><\/script><\/p>\n<p>    <script id=\"declarations\">\n    var chartid = \"6a1d9d8e3545e\";\n    function renderTV(kursData, chartData,companyName,currency, chartHeight, chartWidth, code, exchange, kursDate, hidetitle, hidelegend, chartid) {      \n    \tconsole.log(\"render chart with id\", document.querySelector(`[data-chartid=\"${chartid}\"]`));\n        let width = chartWidth?chartWidth:600;\n        let ratio = 2\n        let height = chartHeight?chartHeight:(width\/ratio);\n        document.querySelector(`[data-chartid=\"${chartid}\"]`).style.height = chartHeight +50\n        document.querySelector(`[data-chartid=\"${chartid}\"]`).style.width = chartWidth<\/p>\n<p>        \/\/ formatter for x achis dates\n        function customXAchsisFormetter(timePoint, tickMarkType, locale) {\n            let formatOptions = {};\n            const date = new Date(timePoint);<\/p>\n<p>            if(tickMarkType <=1){\n                formatOptions = {day: \"numeric\", month: \"short\",year: \"numeric\",}\n\n            }else{\n                formatOptions = {day: \"numeric\", month: \"short\",year: \"numeric\",}\n            }\n            \/\/ from given date we should use only as UTC date or timestamp\n            \/\/ but to format as locale date we can convert UTC date to local date\n            const localDateFromUtc = new Date(\n                date.getUTCFullYear(),\n                date.getUTCMonth(),\n                date.getUTCDate()\n            );\n\n            return localDateFromUtc.toLocaleString(locale, formatOptions);\n        }\n\n        \/\/create buttons\n        function createSimpleSwitcher(items, activeItem, activeItemChangedCallback) {\n            var switcherElement = document.createElement(\"div\");\n            switcherElement.classList.add(\"switcher\");\n\n            var intervalElements = items.map(function (item) {\n                var itemEl = document.createElement(\"button\");\n                itemEl.innerText = item;\n                itemEl.classList.add(\"switcher-item\");\n                itemEl.classList.toggle(\"switcher-active-item\", item === activeItem);\n                itemEl.addEventListener(\"click\", function () {\n                    onItemClicked(item);\n                });\n                switcherElement.appendChild(itemEl);\n                return itemEl;\n            });\n\n            function onItemClicked(item) {\n                if (item === activeItem) {\n                    return;\n                }\n\n                intervalElements.forEach(function (element, index) {\n                    element.classList.toggle(\"switcher-active-item\", items[index] === item);\n                });\n\n                activeItem = item;\n\n                activeItemChangedCallback(item);\n            }\n\n            return switcherElement;\n        }\n        \/\/ loading: true or false\n        function handleAsyncUI(loading){\n            var IntervalButtons = document.getElementsByClassName(\"switcher-item\");\n             for(var i = 0; i < IntervalButtons.length; i++){\n                IntervalButtons[i].disabled = loading;\n             } \n             var chart = document.getElementsByClassName(\"tv-lightweight-charts\")[0];\n             if(loading){\n            \n            chart.style[\"display\"] = \"flex\"\n            chart.style[\"align-items\"] = \"center\"\n            chart.style[\"justify-content\"] = \"center\"\n\n            var loadingIndicator = document.createElement(\"div\");\n            loadingIndicator.classList.add(\"loader\");\n            \/\/loadingIndicator.innerText = \"Loading\";\n            loadingIndicator.id =\"loadingIndicator\"\n            chart.appendChild(loadingIndicator);\n             }else{\n            document.getElementById(\"loadingIndicator\").remove();\n            chart.style[\"display\"] = null\n            chart.style[\"align-items\"] =null\n            chart.style[\"justify-content\"] = null\n             }\n\n        }\n        var intervals = [\"1M\",\"3M\",\"6M\",\"1Y\",\"3Y\",\"5Y\"];\n        var seriesesData = new Map([\n            [\"1M\", []], \/\/ 1m (interval daten?), 3m, 6m, 1y, 3y, 5y\n            [\"3M\", []],\n            [\"6M\", []],\n            [\"1Y\", chartData],\n            [\"3Y\", []],\n            [\"5Y\", []],\n        ]);\n        var switcherElement = createSimpleSwitcher(intervals, intervals[3], syncToInterval);\n        var chartElement = document.createElement(\"div\");\n        const chart = LightweightCharts.createChart(chartElement, {\n            width: width,\n            height: height,\n            rightPriceScale: {\n                scaleMargins: {\n                    top: 0.2,\n                    bottom: 0.2,\n                },\n                borderVisible: false,\n            },\n            timeScale: {\n                borderVisible: false,\n                lockVisibleTimeRangeOnResize: true,\n\n                rightOffset:1,\n                tickMarkFormatter:customXAchsisFormetter\n\n            },\n            grid: {\n                horzLines: {\n                    color: \"#eee\",\n                    visible: false,\n                },\n                vertLines: {\n                    color: \"#ffffff\",\n                },\n            },\n            crosshair: {\n                horzLine: {\n                    visible: false,\n                    labelVisible: false\n                },\n                vertLine: {\n                    visible: true,\n                    style: 0,\n                    width: 2,\n                    color: \"rgba(80, 50, 25, 0.1)\",\n                    labelVisible: false,\n                }\n            },\n            handleScroll: {\n                mouseWheel: false,\n                pressedMouseMove: false,\n                horzTouchDrag: false,\n                vertTouchDrag: false\n            },\n            handleScale: {\n                axisPressedMouseMove: false,\n                mouseWheel: false,\n                pinch: false,\n            },\n        });\n        var areaSeries = null;\n        var positionDIV = document.querySelector(`[data-chartid=\"${chartid}\"]`)\n        positionDIV.appendChild(chartElement);\n        positionDIV.appendChild(switcherElement);\n        function httpGetAsync(theUrl, callback) {\n            var xmlHttp = new XMLHttpRequest();\n            xmlHttp.onreadystatechange = function () {\n                if (xmlHttp.readyState == 4 &#038;&#038; xmlHttp.status == 200)\n                    callback(xmlHttp.responseText);\n            }\n            xmlHttp.open(\"GET\", theUrl, true); \/\/ true for asynchronous \n            xmlHttp.send(null);\n        }\n        function formatDate(date) {\n            \n            var month = \"\" + (date.getMonth()+1);\n            var day = \"\" + date.getDate();\n            var year = date.getFullYear();\n\n            if (month.length < 2) \n                month = \"0\" + month;\n            if (day.length < 2) \n                day = \"0\" + day;\n            return [year, month, day].join(\"-\");\n        }\n        function getTimeframe(interval){\n            let from = null;\n            let to = formatDate(new Date());\n            switch (interval) {\n                case \"1M\": from = formatDate(new Date(Date.now() - 31 * 24 * 60 * 60 * 1000)); break;\n                case \"3M\": from = formatDate(new Date(Date.now() - 93 * 24 * 60 * 60 * 1000)); break;\n                case \"6M\": from = formatDate(new Date(Date.now() - 186 * 24 * 60 * 60 * 1000)); break;\n                case \"1Y\": from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000)); break;\n                case \"3Y\": from = formatDate(new Date(Date.now() - 1116 * 24 * 60 * 60 * 1000)); break;\n                case \"5Y\": from = formatDate(new Date(Date.now() - 1860 * 24 * 60 * 60 * 1000)); break;\n                default:from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000));\n                \n                }\n            return {from:from, to:to}\n        }\t\n        \/\/ what happens on button click\n        function syncToInterval(interval) {\n            if (areaSeries &#038;&#038; seriesesData.get(interval).length <=0) {\n                console.log(\"GETTING REMOTE DATA\")\n\n                chart.removeSeries(areaSeries);\n                areaSeries = null;\n                let apiToken = \"za1j116n2273ab1vxukuh6\"\n                let timeframe = getTimeframe(interval)\n                let filter = \"adjusted_close\"\n                handleAsyncUI(true)\t\t\t\t\t\t\n                httpGetAsync(\"https:\/\/api.leeway.tech\/api\/v1\/public\/historicalquotes\/\"+encodeURIComponent(code+\".\"+exchange)+\"?apitoken=\"+apiToken+\"&#038;filter=\"+filter+\"&#038;from=\"+timeframe.from+\"&#038;to=\"+timeframe.to, function (res) {\t\n                    let newData = []\n                    newData = JSON.parse(res)\/\/.map(el=>newData.push({time:el.date, value:el.close}))\n                    \/\/ newData = newData.map(el=>{\n                    \/\/     console.log(el.time.year)\n                    \/\/     console.log(el.time.month)\n                    \/\/     console.log(el.time.day)\n                    \/\/     console.log(el)\n                    \/\/     console.log(new Date(el.time.year, el.time.month-1, el.time.day));\n                    \/\/     return{value:el.value, time:el.time, timestamp:new Date(el.time.year, el.time.month-1, el.time.day).getTime()}})\n                    console.log(\"newData\")\n                    console.log(newData)\n                    seriesesData.set(interval, newData)\n                    areaSeries = chart.addAreaSeries({\n                        topColor: \"rgba(33, 108, 173, 0.56)\",\n                        bottomColor: \"rgba(33, 108, 173, 0.04)\",\n                        lineColor: \"rgba(33, 108, 173, 1)\",\n                    lineWidth: 2,\n                });\n                kursData = seriesesData.get(interval)[seriesesData.get(interval).length-1].value\n                areaSeries.setData(seriesesData.get(interval));\n                chart.timeScale().fitContent();\n                handleAsyncUI(false)\t\n                    })\n            }else{\n                console.log(\"GETTING LOADED DATA\")\n                if(areaSeries){\n                    console.log(\"DELETING  LOADED DATA FROM CHART\")\n                    chart.removeSeries(areaSeries);\n                    areaSeries = null;\n                }\n                kursData = seriesesData.get(interval)[seriesesData.get(interval).length-1].value\n                areaSeries = chart.addAreaSeries({\n                topColor: \"rgba(33, 108, 173, 0.56)\",\n                bottomColor: \"rgba(33, 108, 173, 0.04)\",\n                lineColor: \"rgba(33, 108, 173, 1)\",\n                lineWidth: 2,\n            });\n            areaSeries.setData(seriesesData.get(interval));<\/p>\n<p>            chart.timeScale().fitContent();\n            }<\/p>\n<p>        }\n        \/\/ data interval at startup\n        syncToInterval(intervals[3]);\n        \/\/ Name and Kurs as Text in legend<\/p>\n<p>        var watermark = document.createElement(\"img\")\n        watermark.classList.add(\"watermark\")\n        watermark.setAttribute(\"src\", \"https:\/\/api.leeway.tech\/leeway-sign.png\")\n        var testA = document.querySelector(`[data-chartid=\"${chartid}\"]`)\n        var testB = document.querySelector(`[data-chartid=\"${chartid}\"]`).getBoundingClientRect();\n        var test =  testA.getElementsByTagName(\"canvas\")[0].getBoundingClientRect();\n        watermark.style.position = \"absolute\";\n        watermark.style.width = \"90px\";\n        watermark.style.height = \"30px\";\n        watermark.style.display = \"block\";\n        \/\/watermark.style.z-index = \"1000000\";\n        watermark.style.bottom = \"0\";\n        watermark.style.right = \"10px\";<\/p>\n<p>        let linkLW = document.createElement(\"a\")\n        linkLW.href=\"https:\/\/www.ftd.de\/leeway-tech\";\n        linkLW.target = \"_blank\";\n        linkLW.appendChild(watermark)\n        \/\/ append to DOM<\/p>\n<p>        \/\/div-chartwrapper -> div -> div ->  table  -> tr ->  td td -> div\n        const myElementA = document.querySelector(`[data-chartid=\"${chartid}\"]`);\n        let myElementB = myElementA.childNodes[0]\n        let myElementC = myElementB.childNodes[0]\n        let myElementD = myElementC.childNodes[0]\n        let myElementE = myElementD.childNodes[0]\n        let myElementF = myElementE.childNodes[1]\n        let myElementG = myElementF.childNodes[0]\n        myElementG.appendChild(linkLW);<\/p>\n<p>        if(hidelegend == \"false\"){\n            console.log(\"SHOW LEGEND!\")\n            var legend = document.createElement(\"div\");\n            legend.classList.add(\"legend\");\n            var offsets = document.querySelector(`[data-chartid=\"${chartid}\"]`).getBoundingClientRect();\n            var chartwrapperTop = offsets.top;<\/p>\n<p>            var legendHeight = height *-1\n            if(legendHeight>-210){legendHeight = -210;}\n            legend.style.top = legendHeight*1.2  + \"px\"\n            positionDIV.appendChild(legend);<\/p>\n<p>            if(hidetitle == \"false\"){\n                var firstRow = document.createElement(\"div\");\n                firstRow.classList.add(\"titleText\");\t<\/p>\n<p>            }<\/p>\n<p>            var secondRow = document.createElement(\"div\");\n            secondRow.classList.add(\"secondRow\");\t<\/p>\n<p>            if(kursData !== null){\n                if(hidetitle == \"false\"){\n                    firstRow.innerText = companyName\n                    legend.appendChild(firstRow);\n                }<\/p>\n<p>                secondRow.innerText = kursDate +\": \" + Number(kursData).toFixed(2) + \" \"+currency;\n                 legend.appendChild(secondRow);\n            }else{\n                if(hidetitle == \"false\"){\n                    firstRow.innerText = companyName\n                    legend.appendChild(firstRow);\n                }<\/p>\n<p>                legend.appendChild(secondRow);\n            }<\/p>\n<p>            \/\/ cursor moving and handling third row of legend\n            chart.subscribeCrosshairMove((param) => {\n                if (param.time) {\n                    let options = { weekday: \"short\", year: \"numeric\", month: \"numeric\", day: \"numeric\" };\n                    let currentDate = new Date(param.time).toLocaleDateString(\"de-DE\", options)\n                    const price = param.seriesData.get(areaSeries).value;\n                    secondRow.innerText = currentDate + \":  \" + price.toFixed(2) + \" \"+(currency?currency:\" \");\n                }\n            else {\n                secondRow.innerText = kursDate +\": \" + Number(kursData).toFixed(2) + \" \"+currency;<\/p>\n<p>            }\n            });<\/p>\n<p>        }<\/p>\n<p>    }\n    function httpGetAsync(theUrl, callback) {\n            var xmlHttp = new XMLHttpRequest();\n            xmlHttp.onreadystatechange = function () {\n                if (xmlHttp.readyState == 4 && xmlHttp.status == 200)\n                    callback(xmlHttp.responseText);\n            }\n            xmlHttp.open(\"GET\", theUrl, true); \/\/ true for asynchronous \n            xmlHttp.send(null);\n        };\n    function getTimeframe(interval){\n            let from = null;\n            let to = formatDate(new Date());\n            switch (interval) {\n                case \"1M\": from = formatDate(new Date(Date.now() - 31 * 24 * 60 * 60 * 1000)); break;\n                case \"3M\": from = formatDate(new Date(Date.now() - 93 * 24 * 60 * 60 * 1000)); break;\n                case \"6M\": from = formatDate(new Date(Date.now() - 186 * 24 * 60 * 60 * 1000)); break;\n                case \"1Y\": from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000)); break;\n                case \"3Y\": from = formatDate(new Date(Date.now() - 1116 * 24 * 60 * 60 * 1000)); break;\n                case \"5Y\": from = formatDate(new Date(Date.now() - 1860 * 24 * 60 * 60 * 1000)); break;\n                default:from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000));<\/p>\n<p>                }\n            return {from:from, to:to}\n        };\n        function formatDate(date) {<\/p>\n<p>            var  month = \"\" + (date.getMonth()+1);\n            var   day = \"\" + date.getDate();\n            var   year = date.getFullYear();<\/p>\n<p>            if (month.length < 2) \n                month = \"0\" + month;\n            if (day.length < 2) \n                day = \"0\" + day;\n\n            return [year, month, day].join(\"-\");\n        };\n    <\/script><br \/>\n    <script id=\"main\"><\/p>\n<p>    var scriptTV = document.querySelector(\"#tvChartLoader\");\n    scriptTV.addEventListener(\"load\", function() {\n        var chartid = \"6a1d9d8e3545e\";<\/p>\n<p>        var companyName = \"SPDR MSCI World Value UCITS ETF\";\n        if(companyName.length <=0){\n        companyName = \"VALW - LSE\";\n        }\n        var code = \"VALW\";\n        var exchange = \"LSE\";\n        var currency =\"GBP\";\n        var kursData = null;\n        var kursDataDate = null;\n        var chartHeight = \"\";\n        var chartWidth = \"250\"\n        var hidetitle = \"false\"\n        var hidelegend = \"false\"\n        let apiToken = \"za1j116n2273ab1vxukuh6\"\n        chartWidth = document.querySelector(`[data-chartid=\"${chartid}\"]`).offsetWidth\n        var chartData = [];\n        var timeframe = getTimeframe(\"1Y\");\n        var filter = \"adjusted_close\";\n        \n        httpGetAsync(\"https:\/\/api.leeway.tech\/api\/v1\/public\/historicalquotes\/\"+encodeURIComponent(code+\".\"+exchange)+\"?apitoken=\"+apiToken+\"&#038;filter=\"+filter+\"&#038;from=\"+timeframe.from+\"&#038;to=\"+timeframe.to, function (res) {\t\n            let newData = null;\n             chartData = newData = JSON.parse(res)\n            \/\/ 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()}})\n             kursData = chartData[chartData.length-1].value\n             let options = { weekday: \"short\", year: \"numeric\", month: \"numeric\", day: \"numeric\" };\n             kursDataDate = chartData[chartData.length-1].time\n             let kursDate = new Date(kursDataDate.split(\"-\")[0], Number(kursDataDate.split(\"-\")[1])-1, kursDataDate.split(\"-\")[2]).toLocaleDateString(\"de-DE\", options)<\/p>\n<p>             renderTV(kursData,chartData,companyName,currency, Number(chartHeight), Number(chartWidth), code, exchange, kursDate, hidetitle, hidelegend, chartid)\n        });\n    });\n<\/script><\/span><\/p>\n<p>Auch bei der Portfoliostruktur setzt SPDR andere Akzente. Der Technologieanteil f\u00e4llt etwas niedriger aus als beim MSCI World Enhanced Value Index. Daf\u00fcr erhalten andere Regionen mehr Gewicht. Besonders auff\u00e4llig ist der hohe Japan-Anteil von rund 20 Prozent, der f\u00fcr eine breitere regionale Diversifikation sorgt.<\/p>\n<p>Der SPDR-ETF ist damit weniger die Wette auf die g\u00fcnstigsten Aktien der Welt, sondern auf die Kombination aus g\u00fcnstiger Bewertung und hoher Unternehmensqualit\u00e4t.<\/p>\n<h3>Fazit Value ETFs: Darum r\u00fcckt die Aktien-Bewertung in den Fokus<\/h3>\n<p>Die Renaissance der Value-Aktien ist mehr als nur eine kurzfristige Marktrotation. Sie zeigt, dass nicht jede Erfolgsgeschichte an der B\u00f6rse unbegrenzt fortgeschrieben werden kann. Nach Jahren, in denen immer mehr Kapital in dieselben Technologieaktien floss, r\u00fccken pl\u00f6tzlich wieder Bewertungen, Cashflows und die Bilanzqualit\u00e4t in den Fokus.<\/p>\n<p><span style=\"font-weight: 400;\">\t\t<\/p>\n<div data-elementor-type=\"section\" data-elementor-id=\"66052\" class=\"elementor elementor-66052\" data-elementor-post-type=\"elementor_library\">\n<section class=\"elementor-section elementor-top-section elementor-element elementor-element-329e521 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"329e521\" data-element_type=\"section\" data-e-type=\"section\">\n<div class=\"elementor-container elementor-column-gap-default\">\n<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d5ce7cd\" data-id=\"d5ce7cd\" data-element_type=\"column\" data-e-type=\"column\">\n<div class=\"elementor-widget-wrap elementor-element-populated\">\n<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-1ae567f elementor-reverse-mobile elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1ae567f\" data-element_type=\"section\" data-e-type=\"section\" data-settings='{\"background_background\":\"gradient\"}'>\n<div class=\"elementor-container elementor-column-gap-default\">\n<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-99f564a\" data-id=\"99f564a\" data-element_type=\"column\" data-e-type=\"column\">\n<div class=\"elementor-widget-wrap elementor-element-populated\">\n<div class=\"elementor-element elementor-element-fdcd32f elementor-widget elementor-widget-image\" data-id=\"fdcd32f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\"src=\"\" title=\"comdirect-logo\" alt=\"comdirect-logo\" loading=\"lazy\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-14abf6e\" data-id=\"14abf6e\" data-element_type=\"column\" data-e-type=\"column\">\n<div class=\"elementor-widget-wrap elementor-element-populated\">\n<div class=\"elementor-element elementor-element-c446c65 elementor-absolute elementor-widget elementor-widget-text-editor\" data-id=\"c446c65\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings='{\"_position\":\"absolute\"}' data-widget_type=\"text-editor.default\">\n<div class=\"elementor-widget-container\">\n<p style=\"font-size: 12px; color: #999999; text-align: center;\">Anzeige<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"elementor-element elementor-element-61031b6 elementor-widget elementor-widget-heading\" data-id=\"61031b6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n<div class=\"elementor-widget-container\">\n<h4 class=\"elementor-heading-title elementor-size-default\">ETFs &amp; Aktien einfach kaufen. <span style=\"color: #216CAD\">Beim Testsieger.<\/span><\/h4>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"elementor-element elementor-element-064cf94 elementor-widget elementor-widget-text-editor\" data-id=\"064cf94\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n<div class=\"elementor-widget-container\">\n<p class=\"sc-ERObt iaSbiG\">Deutschlands bestes Online-Depot.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"elementor-element elementor-element-235f1d2 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"235f1d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-list.default\">\n<div class=\"elementor-widget-container\">\n<ul class=\"elementor-icon-list-items\">\n<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\"><br \/>\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"far fa-circle\"><\/i>\t\t\t\t\t\t<\/span><br \/>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">+240 kostenlose ETF-Sparpl\u00e4ne<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\"><br \/>\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"far fa-circle\"><\/i>\t\t\t\t\t\t<\/span><br \/>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">3,90\u20ac Ordergeb\u00fchren pro Kauf<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\"><br \/>\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"far fa-circle\"><\/i>\t\t\t\t\t\t<\/span><br \/>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Durch die BaFin reguliert<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n<\/ul><\/div>\n<\/p><\/div>\n<div class=\"elementor-element elementor-element-526ff37 elementor-widget elementor-widget-html\" data-id=\"526ff37\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n<div class=\"elementor-widget-container\">\n<div class=\"button-container\">\n        <a class=\"box-affiliate\" href=\"https:\/\/www.ftd.de\/go\/comdirect-depot\/\/\" target=\"_blank\">Zur comdirect*<\/a>\n    <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/section><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/section><\/div>\n<p>\t\t<\/span><\/p>\n<p>F\u00fcr Anleger ist das eine wichtige Erinnerung: Diversifikation bedeutet mehr, als viele Aktien zu besitzen. Wer ausschlie\u00dflich auf klassische Weltindizes setzt, ist heute st\u00e4rker von wenigen US-Technologiekonzernen abh\u00e4ngig, als vielen bewusst ist.<\/p>\n<p>Value-ETFs bieten die M\u00f6glichkeit, dieses Ungleichgewicht auszugleichen. Dabei k\u00f6nnen Anleger zwischen unterschiedlichen Ans\u00e4tzen w\u00e4hlen. Der MSCI-Enhanced-Value-Ansatz von iShares und Xtrackers beispielsweise setzt kompromisslos auf g\u00fcnstige Bewertungen und nimmt daf\u00fcr h\u00f6here Schwankungen in Kauf. Der SPDR-Ansatz kombiniert Value mit Qualit\u00e4tsfiltern und verfolgt einen defensiveren Kurs.<\/p>\n<p>Beide Strategien eint jedoch dieselbe Grund\u00fcberzeugung. Langfristig entscheiden nicht Schlagzeilen, Trends oder Hypes \u00fcber den Anlageerfolg, sondern der Preis, den Anleger f\u00fcr die Ertragskraft eines Unternehmens bezahlen.<\/p>\n<p>Die gro\u00dfe \u00dcberraschung des Jahres 2026 ist es deshalb nicht, dass Value-Aktien steigen. \u00dcberraschend ist vielmehr, dass die lange untersch\u00e4tzten \u201eLangweiler\u201d den Markt daran erinnern, worauf es an der B\u00f6rse am Ende immer ankommt: solide Gewinne, starke Cashflows und vern\u00fcnftige Bewertungen.<\/p>\n<p>\u00a0<\/p>\n<p style=\"font-size: 12px;\">Disclaimer:<br \/>\nKeine Anlageberatung. Kein Aufruf zum Kauf oder Verkauf von Wertpapieren.<\/p>\n<p>Der Beitrag <a href=\"https:\/\/www.ftd.de\/boerse\/exchange-traded-funds\/value-etfs-comeback-substanzaktien-msci-world\/\">Value ETFs: Comeback der Substanzaktien h\u00e4ngt den MSCI World ab<\/a> erschien zuerst auf <a href=\"https:\/\/www.ftd.de\/\">ftd.de<\/a>.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Value ETFs erleben 2026 eine Renaissance: Solide Unternehmensgewinne und hohe Cashflows r\u00fccken wieder in den Anleger-Fokus. (Bild: Magnific.com, freepik) Wahnsinn an den M\u00e4rkten! W\u00e4hrend die \u00fcberhitzten Tech-Lieblinge zunehmend Federn lassen m\u00fcssen, feiert die vermeintlich verstaubte Substanzaktie ein fulminantes Comeback. Seit Jahresbeginn schie\u00dfen Value-ETFs um teils \u00fcber 30 Prozent nach oben und stellen den klassischen MSCI [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":140148,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[22,1],"tags":[],"class_list":["post-140147","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ft","category-topstory"],"_links":{"self":[{"href":"https:\/\/news.abusizz.ch\/de\/wp-json\/wp\/v2\/posts\/140147","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/news.abusizz.ch\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/news.abusizz.ch\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/news.abusizz.ch\/de\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/news.abusizz.ch\/de\/wp-json\/wp\/v2\/comments?post=140147"}],"version-history":[{"count":0,"href":"https:\/\/news.abusizz.ch\/de\/wp-json\/wp\/v2\/posts\/140147\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/news.abusizz.ch\/de\/wp-json\/wp\/v2\/media\/140148"}],"wp:attachment":[{"href":"https:\/\/news.abusizz.ch\/de\/wp-json\/wp\/v2\/media?parent=140147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/news.abusizz.ch\/de\/wp-json\/wp\/v2\/categories?post=140147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/news.abusizz.ch\/de\/wp-json\/wp\/v2\/tags?post=140147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}