{"id":58,"date":"2026-01-06T16:52:11","date_gmt":"2026-01-06T15:52:11","guid":{"rendered":"https:\/\/poodr.se\/?page_id=58"},"modified":"2026-01-11T11:02:54","modified_gmt":"2026-01-11T10:02:54","slug":"magic","status":"publish","type":"page","link":"https:\/\/poodr.se\/","title":{"rendered":"Nordic Magic Formula"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Nordic Magic Formula \u00e4r ett screeningverktyg baserat p\u00e5 Joel Greenblatts v\u00e4lk\u00e4nda metod \u201cThe Magic Formula\u201d, beskriven i The Little Book That Beats the Market. Modellen \u00e4r anpassad f\u00f6r de nordiska b\u00f6rserna och s\u00f6ker systematiskt efter bolag som kombinerar h\u00f6g l\u00f6nsamhet med attraktiv v\u00e4rdering. Den g\u00f6r detta genom att rangordna bolag p\u00e5 tv\u00e5 nyckeltal: Return on Capital (ROC) och Earnings Yield (EY). Resultatet blir en transparent lista d\u00e4r bolag med b\u00e4st total rank hamnar h\u00f6gst. Syftet \u00e4r att skapa ett konsekvent och repeterbart urval som kan anv\u00e4ndas som underlag f\u00f6r vidare analys och portf\u00f6ljbeslut.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><strong><sup>Disclaimer<\/sup><\/strong><\/em><br><em><sub>Detta \u00e4r ett informations- och analysverktyg och utg\u00f6r inte investeringsr\u00e5d eller personlig rekommendation. Investeringar i finansiella instrument \u00e4r f\u00f6renade med risk. V\u00e4rdet p\u00e5 aktier kan b\u00e5de \u00f6ka och minska och du kan f\u00f6rlora hela eller delar av ditt investerade kapital. Historisk data \u00e4r ingen garanti f\u00f6r framtida resultat. Du ansvarar sj\u00e4lv f\u00f6r dina investeringsbeslut.<\/sub><\/em><\/p>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Mer information om modellen<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Modellen startar med ett tydligt urval: de st\u00f6rsta b\u00f6rsnoterade bolagen per marknad (upp till 200 bolag totalt). F\u00f6r att g\u00f6ra urvalet j\u00e4mf\u00f6rbart mellan l\u00e4nder anv\u00e4nds en gemensam tr\u00f6skel i euro (t.ex. minst 500 miljoner EUR i b\u00f6rsv\u00e4rde). Syftet \u00e4r att fokusera p\u00e5 bolag med b\u00e4ttre likviditet, mer stabil rapportering och h\u00f6gre datakvalitet.<\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Rangordning: konsekvent och transparent<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Bolagen rankas var f\u00f6r sig p\u00e5 ROC och EY. D\u00e4refter summeras dessa tv\u00e5 rankningar till en total rank:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ROC-rank (1 \u00e4r b\u00e4st)<\/li>\n\n\n\n<li>EY-rank (1 \u00e4r b\u00e4st)<\/li>\n\n\n\n<li>Total rank = ROC-rank + EY-rank (l\u00e4gst total rank \u00e4r b\u00e4st)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Detta \u00e4r k\u00e4rnan i Magic Formula: modellen f\u00f6rs\u00f6ker hitta bolag som \u00e4r b\u00e5de bra och billiga, utan att beh\u00f6va gissa framtiden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Skandinavisk praktisk anpassning och datarobusthet<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">F\u00f6r att modellen ska fungera i nordisk milj\u00f6 har vissa praktiska f\u00f6rb\u00e4ttringar implementerats:<br><br><strong>Operativt investerat kapital:<\/strong> modellen f\u00f6rs\u00f6ker i f\u00f6rsta hand ber\u00e4kna investerat kapital p\u00e5 ett s\u00e4tt som speglar verksamhetens kapitalbindning, inte finansieringsstruktur.<br><br><strong>Valutanormalisering:<\/strong> j\u00e4mf\u00f6rbara tr\u00f6sklar och urval \u00f6ver flera valutor.<br><br><strong>Hantering av A\/B-aktier:<\/strong> om ett bolag har flera aktieslag beh\u00e5lls normalt den mest likvida aktien, f\u00f6r att g\u00f6ra listan mer anv\u00e4ndbar i praktiken.<br><\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Tv\u00e5 k\u00e4rnnyckeltal \u2013 samma princip som Greenblatt<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Varje bolag analyseras med tv\u00e5 centrala m\u00e5tt:<br><br><strong>A. Return on Capital (ROC) \u2013 kvalitet i verksamheten<\/strong><br>ROC visar hur effektivt bolaget skapar r\u00f6relseresultat i relation till det kapital som kr\u00e4vs f\u00f6r att driva verksamheten. H\u00f6g ROC signalerar ofta stark aff\u00e4rsmodell, priss\u00e4ttningskraft och effektiv kapitalanv\u00e4ndning.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>B. Earnings Yield (EY) \u2013 v\u00e4rdering i f\u00f6rh\u00e5llande till f\u00f6retagsv\u00e4rde<\/strong><br>EY m\u00e4ter r\u00f6relseresultatet i relation till bolagets f\u00f6retagsv\u00e4rde (Enterprise Value). Det ger en mer r\u00e4ttvis j\u00e4mf\u00f6relse \u00e4n P\/E eftersom EV tar h\u00e4nsyn till b\u00e5de kassa och skulder. H\u00f6g EY inneb\u00e4r i praktiken att du betalar \u201cmindre\u201d f\u00f6r vinsten, givet bolagets kapitalstruktur.<\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Hur resultatet \u00e4r t\u00e4nkt att anv\u00e4ndas<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Nordic Magic Formula ska inte ses som en \u201csp\u00e5kula\u201d, utan som en metod f\u00f6r att skapa disciplin och konsekvens. Den ger en tydlig lista \u00f6ver bolag som uppfyller kriterierna och kan anv\u00e4ndas som:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>shortlist f\u00f6r vidare fundamental analys,<\/li>\n\n\n\n<li>screening f\u00f6r att hitta bolag man annars missar,<\/li>\n\n\n\n<li>bas f\u00f6r en systematisk portf\u00f6ljstrategi.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Greenblatts ursprungliga id\u00e9 bygger dessutom p\u00e5 att modellen fungerar b\u00e4st som en korg, inte som en enskild aktie. M\u00e5let \u00e4r d\u00e4rf\u00f6r inte att hitta \u201cden b\u00e4sta aktien\u201d, utan att systematiskt identifiera en grupp av starkt rankade bolag som sammantaget har b\u00e4ttre sannolikhet att prestera v\u00e4l \u00f6ver tid.<\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Backtesting och validering<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Detta backtest simulerar hur Nordic Magic Formula hade presterat under vald period genom att skapa en ranking enligt modellen (h\u00f6g avkastning p\u00e5 kapital och h\u00f6g EBIT-yield), v\u00e4lja exempelvis Top 30 aktier, och ber\u00e4kna portf\u00f6ljens avkastning med lika vikt per aktie. Startv\u00e4rde tas fr\u00e5n f\u00f6rsta tillg\u00e4ngliga handelsdag p\u00e5 eller efter startdatum och slutv\u00e4rde fr\u00e5n sista handelsdag p\u00e5 eller f\u00f6re slutdatum, baserat p\u00e5 Adjusted Close (eller Close om Adjusted saknas). <br><br>Resultatet j\u00e4mf\u00f6rs mot Dow Jones Industrial Average (^DJI) och OMXS30. Notera att detta \u00e4r en f\u00f6renklad simulering: den antar att alla aktier k\u00f6ps samtidigt vid start, medan Greenblatts ursprungsmodell normalt bygger portf\u00f6ljen gradvis \u00f6ver tid och kan ombalanseras. Transaktionskostnader, skatt, slippage och valutaeffekter ing\u00e5r inte. Detta \u00e4r ett analysverktyg och inte investeringsr\u00e5d.<br><br><a href=\"https:\/\/poodr.se\/index.php\/backtest-for-nordic-magic-formula\/\" data-type=\"page\" data-id=\"71\"><strong>TILL BACKTEST <\/strong><\/a>><\/p>\n<\/details>\n\n\n<div id=\"mf-wrap\" style=\"border:1px solid #ddd;padding:12px;border-radius:8px;\">\n  <div style=\"display:flex;gap:12px;align-items:center;flex-wrap:wrap;\">\n    <strong>Magic Formula<\/strong>\n\n    <div style=\"display:flex;gap:10px;align-items:center;flex-wrap:wrap;\">\n      <label><input type=\"checkbox\" class=\"mf-country\" value=\"SE\" checked> Sverige<\/label>\n      <label><input type=\"checkbox\" class=\"mf-country\" value=\"DK\" checked> Danmark<\/label>\n      <label><input type=\"checkbox\" class=\"mf-country\" value=\"FI\" checked> Finland<\/label>\n      <label><input type=\"checkbox\" class=\"mf-country\" value=\"NO\" checked> Norge<\/label>\n    <\/div>\n\n    <button id=\"mf-start\" type=\"button\" style=\"padding:6px 10px;\">Uppdatera<\/button>\n    <button id=\"mf-force\" type=\"button\" style=\"padding:6px 10px;\">Tvinga uppdatering<\/button>\n    <span id=\"mf-status\">V\u00e4ntar\u2026<\/span>\n  <\/div>\n\n  <div id=\"mf-now\" style=\"margin-top:8px;font-size:12px;opacity:0.85;\"><\/div>\n\n  <div style=\"margin-top:10px;height:10px;background:#f1f1f1;border-radius:999px;overflow:hidden;\">\n    <div id=\"mf-bar\" style=\"height:10px;width:0%;background:#333;\"><\/div>\n  <\/div>\n\n  <div id=\"mf-out\" style=\"margin-top:12px;\"><\/div>\n<\/div>\n\n<script>\n(function(){\n  var ajaxUrl = \"https:\\\/\\\/poodr.se\\\/wp-admin\\\/admin-ajax.php\";\n  var nonce = \"d167a8aee5\";\n\n  var btn = document.getElementById(\"mf-start\");\n  var forceBtn = document.getElementById(\"mf-force\");\n  var status = document.getElementById(\"mf-status\");\n  var bar = document.getElementById(\"mf-bar\");\n  var out = document.getElementById(\"mf-out\");\n  var nowEl = document.getElementById(\"mf-now\");\n\n  function selectedCountries(){\n    var arr = [];\n    var els = document.querySelectorAll(\".mf-country:checked\");\n    for (var i=0; i<els.length; i++) arr.push(els[i].value);\n    return arr;\n  }\n\n  var running = false;\n\n  function fdWithCountries(action){\n    var fd = new FormData();\n    fd.append(\"action\", action);\n    fd.append(\"nonce\", nonce);\n    var cs = selectedCountries();\n    for (var i=0; i<cs.length; i++) fd.append(\"countries[]\", cs[i]);\n    return fd;\n  }\n\n  function resetRun(){\n    return fetch(ajaxUrl, { method:\"POST\", body: fdWithCountries(\"mf_reset_run\"), credentials:\"same-origin\", cache:\"no-store\" });\n  }\n\n  function step(){\n    return fetch(ajaxUrl, { method:\"POST\", body: fdWithCountries(\"mf_process_batch\"), credentials:\"same-origin\", cache:\"no-store\" })\n      .then(function(r){\n        return r.text().then(function(txt){\n          var j = null;\n          try { j = JSON.parse(txt); } catch(e) {}\n\n          if (!r.ok) {\n            running = false;\n            status.textContent = \"AJAX HTTP \" + r.status;\n            out.innerHTML = \"<pre style='white-space:pre-wrap;max-height:260px;overflow:auto;'>\" + (txt || \"\").slice(0,2000) + \"<\/pre>\";\n            return;\n          }\n\n          if (!j || !j.success) {\n            running = false;\n            status.textContent = \"Fel: ej giltigt JSON\/success\";\n            out.innerHTML = \"<pre style='white-space:pre-wrap;max-height:260px;overflow:auto;'>\" + (txt || \"\").slice(0,2000) + \"<\/pre>\";\n            return;\n          }\n\n          var d = j.data;\n\n          if (d.tableHtml && d.done) {\n            bar.style.width = \"100%\";\n            status.textContent = \"Klar\";\n            nowEl.textContent = \"\";\n            out.innerHTML = d.tableHtml;\n            running = false;\n            return;\n          }\n\n          var pct = d.total ? Math.round((d.processed\/d.total)*100) : 0;\n          bar.style.width = pct + \"%\";\n\n          status.textContent =\n            \"Bearbetar: \" + d.processed + \"\/\" + d.total +\n            (d.kept !== null ? (\" \u2022 sparade: \" + d.kept) : \"\") +\n            (d.errors !== null ? (\" \u2022 fel: \" + d.errors) : \"\");\n\n          if (d.now && d.now.length) nowEl.textContent = \"K\u00f6r nu: \" + d.now.join(\", \");\n\n          if (d.done) {\n            running = false;\n            status.textContent = \"Klar (\" + d.kept + \" bolag)\";\n            nowEl.textContent = \"\";\n            if (d.tableHtml) out.innerHTML = d.tableHtml;\n            return;\n          }\n\n          setTimeout(step, 250);\n        });\n      })\n      .catch(function(e){\n        running = false;\n        status.textContent = \"JS-fel: \" + (e && e.message ? e.message : e);\n      });\n  }\n\n  btn.addEventListener(\"click\", function(){\n    if (running) return;\n    if (!selectedCountries().length) { alert(\"V\u00e4lj minst ett land.\"); return; }\n    running = true;\n    status.textContent = \"Startar\u2026\";\n    nowEl.textContent = \"\";\n    out.innerHTML = \"\";\n    bar.style.width = \"0%\";\n    step();\n  });\n\n  forceBtn.addEventListener(\"click\", function(){\n    if (running) return;\n    if (!selectedCountries().length) { alert(\"V\u00e4lj minst ett land.\"); return; }\n    running = true;\n    status.textContent = \"Rensar cache\u2026\";\n    nowEl.textContent = \"\";\n    out.innerHTML = \"\";\n    bar.style.width = \"0%\";\n    resetRun().then(function(){\n      status.textContent = \"Startar om\u2026\";\n      step();\n    }).catch(function(e){\n      running = false;\n      status.textContent = \"Reset-fel: \" + (e && e.message ? e.message : e);\n    });\n  });\n\n  btn.click();\n})();\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nordic Magic Formula \u00e4r ett screeningverktyg baserat p\u00e5 Joel Greenblatts v\u00e4lk\u00e4nda metod \u201cThe Magic Formula\u201d, beskriven i The Little Book That Beats the Market. Modellen \u00e4r anpassad f\u00f6r de nordiska b\u00f6rserna och s\u00f6ker systematiskt efter bolag som kombinerar h\u00f6g l\u00f6nsamhet med attraktiv v\u00e4rdering. Den g\u00f6r detta genom att rangordna bolag p\u00e5 tv\u00e5 nyckeltal: Return on [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"material-hide-sections":[],"footnotes":""},"class_list":["post-58","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/poodr.se\/index.php\/wp-json\/wp\/v2\/pages\/58","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/poodr.se\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/poodr.se\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/poodr.se\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/poodr.se\/index.php\/wp-json\/wp\/v2\/comments?post=58"}],"version-history":[{"count":14,"href":"https:\/\/poodr.se\/index.php\/wp-json\/wp\/v2\/pages\/58\/revisions"}],"predecessor-version":[{"id":86,"href":"https:\/\/poodr.se\/index.php\/wp-json\/wp\/v2\/pages\/58\/revisions\/86"}],"wp:attachment":[{"href":"https:\/\/poodr.se\/index.php\/wp-json\/wp\/v2\/media?parent=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}