{"id":142817,"date":"2026-08-18T03:02:43","date_gmt":"2026-08-18T01:02:43","guid":{"rendered":"https:\/\/news.abusizz.ch\/fonds-duell-frontier-markets-redwheel-vs-morgan-stanley\/"},"modified":"2026-08-18T03:02:43","modified_gmt":"2026-08-18T01:02:43","slug":"fonds-duell-frontier-markets-redwheel-vs-morgan-stanley","status":"publish","type":"post","link":"https:\/\/news.abusizz.ch\/en\/fonds-duell-frontier-markets-redwheel-vs-morgan-stanley\/","title":{"rendered":"Fonds-Duell \u2013 Frontier Markets: Redwheel vs. Morgan Stanley"},"content":{"rendered":"<div>\n<div id=\"attachment_90545\" style=\"width: 410px\" class=\"wp-caption alignleft\">\n<p id=\"caption-attachment-90545\" class=\"wp-caption-text\">Frontier Markets wie Vietnam oder Kasachstan bieten abseits der etablierten Schwellenl\u00e4nder ein enormes unentdecktes Wachstumspotenzial. (Bild: Magnific AI)<\/p>\n<\/div>\n<p>Vietnam statt China, Kasachstan statt Brasilien, Usbekistan statt Indien: Die n\u00e4chste Generation der Schwellenl\u00e4nder w\u00e4chst dort, wo viele Anleger noch gar nicht hinschauen. Genau hier setzt das n\u00e4chste Fonds-Duell an. Der Redwheel Next Generation Emerging Markets Equity Fund und der Morgan Stanley NextGen Emerging Markets Fund suchen beide nach den B\u00f6rsenstars von morgen \u2013 doch ihre Wege unterscheiden sich. Der eine setzt auf den strukturellen Aufstieg ganzer Volkswirtschaften, der andere kombiniert L\u00e4nderanalyse mit konsequentem Stockpicking. Kurz gesagt: Redwheel spielt die Transformation, Morgan Stanley sucht ihre Gewinner.<\/p>\n<h3>Frontier Markets: Die n\u00e4chste Wachstumswelle beginnt am Rand<\/h3>\n<p>Die gro\u00dfen Schwellenl\u00e4nder sind l\u00e4ngst keine Geheimtipps mehr. China, Indien, Brasilien oder Taiwan geh\u00f6ren zum Standardrepertoire internationaler Anleger. Wer dort investiert, kauft etablierte M\u00e4rkte mit bekannten Chancen \u2013 und bekannten Problemen. Die n\u00e4chste Entwicklungsstufe der Weltwirtschaft k\u00f6nnte dagegen an anderen Orten beginnen: in Hanoi, Almaty, Nairobi oder Jakarta.<\/p>\n<p>Vietnam ist daf\u00fcr das vielleicht beste Beispiel. Internationale Konzerne verlagern Produktionskapazit\u00e4ten ins Land, die Bev\u00f6lkerung ist vergleichsweise jung, die Digitalisierung schreitet voran und eine wachsende Mittelschicht entdeckt Konsum und Kapitalmarkt f\u00fcr sich. Was heute noch nach Nischenmarkt aussieht, k\u00f6nnte in 15 oder 20 Jahren eine ganz andere Bedeutung haben.<\/p>\n<p>In der Finanzwelt werden solche L\u00e4nder h\u00e4ufig als Frontier Markets bezeichnet. Gemeint sind Volkswirtschaften, die noch nicht die Gr\u00f6\u00dfe und Reife klassischer Schwellenl\u00e4nder erreicht haben, aber auf dem Weg dorthin sind. F\u00fcr Anleger ist das verf\u00fchrerisch. Wer fr\u00fch investiert, k\u00f6nnte vom wirtschaftlichen Aufstieg profitieren, bevor die Entwicklung vollst\u00e4ndig in den gro\u00dfen globalen Indizes angekommen ist.<\/p>\n<p>Doch die B\u00f6rsen am Rand haben ihren Preis. Die M\u00e4rkte sind klein und teilweise illiquide, politische Risiken h\u00f6her, W\u00e4hrungen schwankungsanf\u00e4lliger und der Zugang f\u00fcr internationale Anleger oft schwieriger. Ein ETF kann diese Besonderheiten kaum ber\u00fccksichtigen. Genau deshalb ist in Frontier Markets die Auswahl des Fondsmanagers besonders wichtig.<\/p>\n<h3>Management-Duell: Frontier-Spezialist vs. globales Research-Team<\/h3>\n<p>Beim <a href=\"https:\/\/www.redwheel.com\/de\/de\/professional\/product-page\/redwheel-next-generation-emerging-markets-equity-fund_ngen\/\" target=\"_blank\" rel=\"noopener\">Redwheel Next Generation Emerging Markets Equity Fund<\/a> (ISIN: LU2168044571) steht ein ausgewiesener Frontier-Markets-Spezialist an der Spitze. Das Team um James Johnstone und Victor Erch besch\u00e4ftigt sich seit Jahren mit den kleineren und weniger beachteten Schwellenl\u00e4ndern.<\/p>\n<p>\u00a0<\/p>\n<div class=\"chartwrapper\" id=\"chartwrapper\" data-chartid=\"6a8317355aa81\"><\/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 = \"6a8317355aa81\";\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 = \"6a8317355aa81\";<\/p>\n<p>        var companyName = \"Redwheel Next Generation Emerging Markets Equity Fund JA EUR Acc\";\n        if(companyName.length <=0){\n        companyName = \"LU2168044571 - EUFUND\";\n        }\n        var code = \"LU2168044571\";\n        var exchange = \"EUFUND\";\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><\/p>\n<p>Der Ansatz ist ausgesprochen langfristig. Redwheel sucht nach L\u00e4ndern, die einen \u00e4hnlichen Entwicklungspfad einschlagen k\u00f6nnten wie China, S\u00fcdkorea oder Taiwan in fr\u00fcheren Jahrzehnten. Entscheidend sind weniger kurzfristige Konjunkturdaten als strukturelle Ver\u00e4nderungen: neue Produktionsstandorte, Urbanisierung, steigende Einkommen, Infrastrukturinvestitionen und wachsender Rohstoffbedarf.<\/p>\n<p>Die Manager wollen m\u00f6glichst fr\u00fch erkennen, wo sich die n\u00e4chste wirtschaftliche Wachstumsmaschine entwickelt. Daf\u00fcr recherchieren sie vor Ort, sprechen mit Unternehmen und Politikern und versuchen, Ver\u00e4nderungen zu identifizieren, bevor sie f\u00fcr den breiten Kapitalmarkt offensichtlich werden.<\/p>\n<p>Das Engagement in Usbekistan passt perfekt zu diesem Ansatz. Redwheel beteiligte sich 2026 als Cornerstone-Investor am B\u00f6rsengang des Uzbekistan National Investment Fund. Das Beispiel zeigt, wie fr\u00fch das Team bereit ist, auf Reformen und die \u00d6ffnung bislang wenig entwickelter Kapitalm\u00e4rkte zu setzen.<\/p>\n<p>Morgan Stanley verfolgt eine etwas andere Philosophie. Der <a href=\"https:\/\/www.morganstanley.com\/im\/en-us\/financial-advisor\/strategies\/next-gen-emerging-markets.html\" target=\"_blank\" rel=\"noopener\">Morgan Stanley NextGen Emerging Markets Fund<\/a> (ISIN: LU0118140002) kombiniert Top-down-Analyse mit Bottom-up-Stockpicking. Zun\u00e4chst werden die L\u00e4nder analysiert: Wachstum, W\u00e4hrung, Staatsfinanzen, Bewertungen und Anlegerstimmung spielen eine Rolle. Erst danach geht es auf die Ebene der einzelnen Unternehmen.<\/p>\n<p>\u00a0<\/p>\n<div class=\"chartwrapper\" id=\"chartwrapper\" data-chartid=\"6a8317355aaac\"><\/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 = \"6a8317355aaac\";\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 = \"6a8317355aaac\";<\/p>\n<p>        var companyName = \"Morgan Stanley Investment Funds - Emerging Europe Middle East and Africa Equity Fund A\";\n        if(companyName.length <=0){\n        companyName = \"LU0118140002 - EUFUND\";\n        }\n        var code = \"LU0118140002\";\n        var exchange = \"EUFUND\";\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><\/p>\n<p>Das Anlageuniversum ist bewusst weit gefasst. Mindestens 70 Prozent des Verm\u00f6gens m\u00fcssen in Aktien aus Emerging und Frontier Markets investiert sein. Dabei darf der Fonds ausdr\u00fccklich auch L\u00e4nder ber\u00fccksichtigen, die noch nicht zu den klassischen Schwellenl\u00e4ndern geh\u00f6ren, deren Kapitalm\u00e4rkte aber als kommende Wachstumsm\u00e4rkte gelten.<\/p>\n<p>Das Duell lautet deshalb: Redwheel sucht die n\u00e4chste gro\u00dfe Wachstumsstory. Morgan Stanley sucht die besten Unternehmen innerhalb dieser Story.<\/p>\n<h3>Portfolio-Duell: Strukturwandel gegen Stockpicking<\/h3>\n<p>Die unterschiedlichen Philosophien werden beim Blick ins Portfolio sichtbar. Redwheel setzt auf Unternehmen, die unmittelbar vom wirtschaftlichen Aufstieg ihrer Heimatl\u00e4nder profitieren. Zu den gr\u00f6\u00dferen Positionen z\u00e4hlen unter anderem Credicorp, First Quantum Minerals, Impala Platinum, GEK Terna, der National Investment Fund of Uzbekistan, die vietnamesische Military Commercial Joint Stock Bank, BRAC Bank, Amman Mineral und Halyk Bank.<\/p>\n<p>Das ist kein klassisches Emerging-Markets-Portfolio mit den \u00fcblichen Indexschwergewichten. Rohstoffe, Banken, Infrastruktur und Konsum spielen eine wesentlich gr\u00f6\u00dfere Rolle. Redwheel setzt damit auf die reale Wirtschaft: auf Fabriken, Minen, Stromnetze, H\u00e4fen, Banken und eine wachsende Mittelschicht. Auch geografisch geht das Team bewusst dorthin, wo die gro\u00dfen Indizes bislang kaum hinschauen. Indonesien, die Philippinen, Kasachstan, Vietnam, Usbekistan und kleinere europ\u00e4ische M\u00e4rkte geh\u00f6ren zum erweiterten Spielfeld.<\/p>\n<p>Morgan Stanley setzt ebenfalls auf diese L\u00e4nder, konzentriert sich aber st\u00e4rker auf einzelne Unternehmen. Zu den gr\u00f6\u00dferen Positionen z\u00e4hlen Credicorp aus Peru, International Container Terminal Services von den Philippinen, Grupo Cibest, die slowenische NLB Komercijalna Banka, Kazatomprom aus Kasachstan, Banca Transilvania, die \u00e4gyptische Commercial International Bank, Halyk Bank, Safaricom und Buenaventura.<\/p>\n<p>Auff\u00e4llig ist die hohe Gewichtung von Banken. Das hat System: Wenn Volkswirtschaften vom Entwicklungsland zum Schwellenland aufsteigen, steigt meist auch die Kreditdurchdringung. Banken k\u00f6nnen deshalb \u00fcberproportional vom wachsenden Wohlstand profitieren.<\/p>\n<p>Der Unterschied ist subtil, aber entscheidend: Redwheel investiert in die Transformation ganzer Volkswirtschaften. Morgan Stanley sucht die Unternehmen, die aus dieser Transformation besonders viel herausholen k\u00f6nnen.<\/p>\n<h3>Risiko-Duell: Die B\u00f6rsen am Rand sind nichts f\u00fcr schwache Nerven<\/h3>\n<p>Frontier Markets bieten h\u00f6here Wachstumschancen \u2013 aber auch h\u00f6here Risiken. Ein Regierungswechsel, eine W\u00e4hrungskrise oder eine \u00c4nderung der Kapitalverkehrskontrollen kann die Kurse erheblich bewegen. Dazu kommt die geringere Liquidit\u00e4t. Was an der Wall Street kaum auff\u00e4llt, kann an einer kleinen B\u00f6rse einen erheblichen Kursschub oder Kurssturz ausl\u00f6sen.<br \/>\nInteressant ist deshalb der Blick auf die tats\u00e4chliche Schwankung der beiden Fonds.<\/p>\n<p>Beim Redwheel lag die Volatilit\u00e4t zuletzt bei 15,59 Prozent \u00fcber ein Jahr, 13,22 Prozent \u00fcber 3 Jahre und 14,62 Prozent \u00fcber 5 Jahre. Der maximale Verlust \u00fcber 5 Jahre betrug rund 16,9 Prozent.<\/p>\n<p>Morgan Stanley kam auf 14,52 Prozent \u00fcber ein Jahr und 13,13 Prozent \u00fcber 3 Jahre. \u00dcber 5 Jahre lag die Volatilit\u00e4t allerdings bei deutlich h\u00f6heren 16,25 Prozent. Der maximale Verlust erreichte in diesem Zeitraum fast 39 Prozent.<\/p>\n<p>Das ist bemerkenswert. Morgan Stanley war kurzfristig nicht volatiler als Redwheel. \u00dcber den l\u00e4ngeren Zeitraum mussten Anleger allerdings einen erheblich gr\u00f6\u00dferen R\u00fcckschlag verkraften. Auch die Sharpe Ratio spricht f\u00fcr Redwheel: \u00dcber 5 Jahre kommt der Fonds auf rund 1,47, Morgan Stanley lediglich auf 0,08. Wer Frontier Markets kauft, kauft also zwangsl\u00e4ufig Risiko. Die Frage ist vielmehr, wie viel Rendite ein Fondsmanager daf\u00fcr liefert.<\/p>\n<h3>Kosten-Duell: Redwheel startet mit R\u00fcckenwind<\/h3>\n<p>Auch bei den Kosten hat Redwheel die Nase vorn \u2013 zumindest bei den hier betrachteten Anteilsklassen. Die JA-EUR-Anteilsklasse des Redwheel weist laufende Kosten von rund 1,25 Prozent auf. Allerdings ist diese Anteilsklasse institutionell gepr\u00e4gt und mit einer hohen Mindestanlage verbunden. Andere Anteilsklassen k\u00f6nnen sp\u00fcrbar teurer sein.<\/p>\n<p>Beim Morgan Stanley NextGen Emerging Markets Fund liegen die laufenden Kosten der betrachteten A-EUR-Klasse bei rund 1,89 Prozent. Die Verwaltungsgeb\u00fchr betr\u00e4gt 1,60 Prozent, hinzu kommt ein m\u00f6glicher Ausgabeaufschlag von bis zu 5,25 Prozent. Damit geht der Kostenpunkt an Redwheel. Das ist gerade bei einem Spezialfonds relevant. Denn aktive Frontier-Markets-Strategien m\u00fcssen ihren Mehrwert erst einmal verdienen. Je h\u00f6her die Kosten, desto gr\u00f6\u00dfer ist die H\u00fcrde f\u00fcr den Fondsmanager.<\/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<h3>Performance-Duell: Morgan Stanley sprintet, Redwheel l\u00e4uft Marathon<\/h3>\n<p>Und jetzt wird es spannend. Auf der Kurzstrecke hat Morgan Stanley die Nase vorn. \u00dcber ein Jahr kommt der Fonds auf ein Plus von 26,67 Prozent. Redwheel liegt mit 23,66 Prozent knapp dahinter. Doch \u00fcber l\u00e4ngere Zeitr\u00e4ume dreht sich das Bild dramatisch.<\/p>\n<p>Auf 3-Jahres-Sicht erzielte Redwheel 60,15 Prozent. Aus 100 Euro wurden damit rund 160 Euro. Morgan Stanley kommt auf 49,18 Prozent. Noch deutlicher wird der Abstand \u00fcber 5 Jahre. Redwheel legte um 151,91 Prozent zu. Aus 100 Euro wurden also rechnerisch rund 252 Euro. Morgan Stanley schaffte im gleichen Zeitraum gerade einmal 5,31 Prozent. Damit f\u00e4llt das Performance-Urteil klar aus: Morgan Stanley gewinnt die Kurzstrecke. Redwheel gewinnt den Marathon.<\/p>\n<p>Und genau das ist bei einem Investment in die n\u00e4chste Generation der Schwellenl\u00e4nder entscheidend. Die gro\u00dfe Investmentthese braucht Zeit. Produktionsketten werden nicht \u00fcber Nacht verlagert, neue Mittelschichten entstehen nicht innerhalb eines Quartals und aus einem Frontier Market wird nicht \u00fcber Nacht ein etabliertes Schwellenland. Redwheel scheint bislang besser darin gewesen zu sein, diese langfristige Entwicklung in Rendite zu \u00fcbersetzen.<\/p>\n<h3>Urteil: Redwheel gewinnt \u2013 Morgan Stanley ist der Herausforderer<\/h3>\n<p>Beide Fonds setzen auf dieselbe gro\u00dfe Idee: Die n\u00e4chsten Emerging Markets von morgen sind die Frontier Markets von heute. Doch die Umsetzung ist unterschiedlich.<\/p>\n<p>Der Redwheel Next Generation Emerging Markets Equity Fund ist die offensivere Wette auf den strukturellen Aufstieg ganzer Volkswirtschaften. Das Team sucht fr\u00fch nach L\u00e4ndern, in denen sich Produktionsketten verlagern, Infrastruktur entsteht, Rohstoffnachfrage w\u00e4chst und eine neue Mittelschicht entsteht. Dazu kommen eine \u00fcberzeugende Langfristperformance und die niedrigeren Kosten der betrachteten Anteilsklasse.<\/p>\n<p>Der Morgan Stanley NextGen Emerging Markets Fund ist st\u00e4rker \u00fcber den klassischen Investmentprozess aufgebaut. L\u00e4nderanalyse und Stockpicking werden miteinander kombiniert. Das Portfolio ist konzentriert und enth\u00e4lt zahlreiche interessante lokale Champions. Auf Jahressicht hat der Fonds zuletzt sogar die Nase vorn. Doch \u00fcber 3 und insbesondere 5 Jahre ist der Abstand zu gro\u00df, um ihn zu ignorieren.<\/p>\n<p>Das Fazit des Fonds-Duells: Redwheel gewinnt nach Performance, Kosten und langfristigem Rendite-Risiko-Verh\u00e4ltnis. Morgan Stanley bleibt der spannendere Herausforderer f\u00fcr Anleger, die st\u00e4rker auf gezieltes Stockpicking und einen strukturierten L\u00e4nderanalyse-Prozess setzen. Punktsieg f\u00fcr Redwheel.<\/p>\n<p>Die eigentliche Botschaft des Duells geht allerdings \u00fcber die beiden Fonds hinaus. Frontier Markets sind kein Ersatz f\u00fcr ein globales Aktienportfolio. Sie sind eine Wette auf die n\u00e4chste Entwicklungsstufe der Weltwirtschaft \u2013 und damit eine Beimischung f\u00fcr Anleger, die bereit sind, hohe Schwankungen und politische Risiken auszuhalten.<\/p>\n<p>Vielleicht stehen die heutigen Frontier Markets tats\u00e4chlich dort, wo China oder S\u00fcdkorea vor einer Generation standen. Dann k\u00f6nnte die B\u00f6rsengeschichte der n\u00e4chsten gro\u00dfen Schwellenl\u00e4nder gerade erst beginnen.<\/p>\n<p>Morgan Stanley sprintet. Redwheel l\u00e4uft Marathon. Und bei einer Wette auf die Emerging Markets von morgen d\u00fcrfte der l\u00e4ngere Atem entscheidend sein.<\/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\/anlagestrategie\/fonds-duell-frontier-markets-redwheel-vs-morgan-stanley\/\">Fonds-Duell \u2013 Frontier Markets: Redwheel vs. Morgan Stanley<\/a> erschien zuerst auf <a href=\"https:\/\/www.ftd.de\/\">ftd.de<\/a>.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Frontier Markets wie Vietnam oder Kasachstan bieten abseits der etablierten Schwellenl\u00e4nder ein enormes unentdecktes Wachstumspotenzial. (Bild: Magnific AI) Vietnam statt China, Kasachstan statt Brasilien, Usbekistan statt Indien: Die n\u00e4chste Generation der Schwellenl\u00e4nder w\u00e4chst dort, wo viele Anleger noch gar nicht hinschauen. Genau hier setzt das n\u00e4chste Fonds-Duell an. Der Redwheel Next Generation Emerging Markets Equity [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":142818,"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-142817","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ft","category-topstory"],"_links":{"self":[{"href":"https:\/\/news.abusizz.ch\/en\/wp-json\/wp\/v2\/posts\/142817","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/news.abusizz.ch\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/news.abusizz.ch\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/news.abusizz.ch\/en\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/news.abusizz.ch\/en\/wp-json\/wp\/v2\/comments?post=142817"}],"version-history":[{"count":0,"href":"https:\/\/news.abusizz.ch\/en\/wp-json\/wp\/v2\/posts\/142817\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/news.abusizz.ch\/en\/wp-json\/wp\/v2\/media\/142818"}],"wp:attachment":[{"href":"https:\/\/news.abusizz.ch\/en\/wp-json\/wp\/v2\/media?parent=142817"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/news.abusizz.ch\/en\/wp-json\/wp\/v2\/categories?post=142817"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/news.abusizz.ch\/en\/wp-json\/wp\/v2\/tags?post=142817"}],"curies":[{"name":"what","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}