{"id":911,"date":"2026-06-24T13:49:36","date_gmt":"2026-06-24T13:49:36","guid":{"rendered":"https:\/\/theindicatorstore.com\/?page_id=911"},"modified":"2026-09-05T14:30:11","modified_gmt":"2026-09-05T14:30:11","slug":"turnkey-reports","status":"publish","type":"page","link":"https:\/\/theindicatorstore.com\/es\/turnkey-reports\/","title":{"rendered":"turnkey reports"},"content":{"rendered":"\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>VPS Systems \u00b7 Live PnL<\/title>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/PapaParse\/5.4.1\/papaparse.min.js\"><\/script>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/4.4.1\/chart.umd.min.js\"><\/script>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=JetBrains+Mono:wght@400;600;700&amp;family=Inter:wght@400;500;600&amp;display=swap\" rel=\"stylesheet\">\n<style>\n*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}\n:root{\n  --bg:#080d14;--surface:#0e1620;--surface2:#16202e;\n  --border:#1e2d42;--text:#cdd9e8;--muted:#4a6080;\n  --green:#1dbd6e;--red:#e05252;--accent:#1a6aff;\n  --mono:'JetBrains Mono',monospace;--sans:'Inter',sans-serif;\n}\nhtml,body{background:var(--bg);color:var(--text);font-family:var(--sans);min-height:100vh}\n#app{max-width:1100px;margin:0 auto;padding:32px 20px 48px}\n.header{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-bottom:28px;border-bottom:1px solid var(--border);padding-bottom:20px}\n.header h1{font-family:var(--mono);font-size:20px;font-weight:700;color:#e8f0fa;letter-spacing:-0.5px}\n.header h1 span{color:var(--accent)}\n.header-meta{font-size:11px;color:var(--muted);margin-top:5px;font-family:var(--mono)}\n.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:6px;animation:pulse 2s infinite}\n@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}\n.cards{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}\n.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:11px 14px;cursor:pointer;min-width:118px;transition:border-color .15s,opacity .15s;position:relative;overflow:hidden}\n.card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--card-color)}\n.card.off{opacity:.28}\n.card-name{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:0.4px;margin-bottom:5px}\n.card-badge{font-size:9px;color:var(--green);margin-left:4px}\n.card-excl{font-size:9px;color:var(--muted);margin-left:4px}\n.card-total{font-family:var(--mono);font-size:18px;font-weight:700}\n.pos{color:var(--green)}.neg{color:var(--red)}\n.controls{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;align-items:center}\n.btn-group{display:flex;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:4px}\n.btn{padding:6px 14px;border-radius:5px;border:none;cursor:pointer;font-size:12px;font-weight:600;transition:all .15s;font-family:var(--sans);background:transparent;color:var(--muted)}\n.btn.ab{background:var(--accent);color:#fff}\n.btn.ag{background:var(--green);color:#000}\n.btn.ay{background:var(--surface2);color:var(--text)}\n.sep{width:1px;background:var(--border);align-self:stretch}\n.chart-box{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px 16px 16px;margin-bottom:16px;position:relative;height:460px}\n.chart-box canvas{max-height:420px}\n.loader{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--muted);font-family:var(--mono);font-size:13px}\n.spinner{width:36px;height:36px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}\n@keyframes spin{to{transform:rotate(360deg)}}\n.err-banner{background:#2a1010;border:1px solid #6b2020;border-radius:6px;padding:8px 14px;font-size:11px;color:#f87171;margin-bottom:16px;font-family:var(--mono)}\n.footer{font-size:11px;color:var(--muted);text-align:center;margin-top:10px;font-family:var(--mono);line-height:1.7}\n.footer .g{color:var(--green)}\n<\/style>\n<div id=\"app\">\n  <div class=\"loader\" id=\"loader\">\n    <div class=\"spinner\"><\/div>\n    <div>Fetching live data from Google Sheets\u2026<\/div>\n  <\/div>\n<\/div>\n<script>\nconst SOURCES = [\n  {name:\"NQ_Reversal\",  color:\"#e05252\", excl:false, url:\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=459772999&single=true&output=csv\"},\n  {name:\"ES_Reversal\",  color:\"#f97316\", excl:false, url:\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1486518444&single=true&output=csv\"},\n  {name:\"NQ_Rebote\",    color:\"#1dbd6e\", excl:false, url:\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1587611422&single=true&output=csv\"},\n  {name:\"NQ_Edge\",      color:\"#a78bfa\", excl:false, url:\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1946471702&single=true&output=csv\"},\n  {name:\"NQ_ATR_Trend\", color:\"#facc15\", excl:false, url:\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1513473091&single=true&output=csv\"},\n  {name:\"ES_ATR_Trend\", color:\"#ec4899\", excl:false, url:\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1491416299&single=true&output=csv\"},\n  {name:\"NQ_Don_Trend\", color:\"#3b82f6\", excl:false, url:\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1387529756&single=true&output=csv\"},\n  {name:\"ES_Don_Trend\", color:\"#06b6d4\", excl:false, url:\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1166594666&single=true&output=csv\"},\n  {name:\"ES_Edge\",      color:\"#64748b\", excl:false, url:\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=959492214&single=true&output=csv\"},\n  {name:\"ES_Rebote\",    color:\"#475569\", excl:false, url:\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1151230794&single=true&output=csv\"},\n];\n\/\/ \u2500\u2500 State \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nlet rawData = {};\nlet allDates = [];\nlet selected     = new Set();      \/\/ filled dynamically after data loads\nlet mode         = \"cumulative\";   \/\/ cumulative | daily\nlet consolidated = false;\nlet profitable   = true;           \/\/ Profitable preset active by default\nlet period       = \"all\";          \/\/ \"15\" | \"30\" | \"all\" \u2014 trading days window\nlet chart        = null;\n\/\/ \u2500\u2500 Helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction parseCSV(text) {\n  const rows = Papa.parse(text, {header:true, skipEmptyLines:true}).data;\n  const daily = {};\n  for (const row of rows) {\n    const pnl = parseFloat(row[\"PnL\"]);\n    if (!pnl || pnl === 0) continue;\n    const date = (row[\"Time Server\"]||\"\").trim().slice(0,10);\n    if (date.length < 10) continue;\n    daily[date] = (daily[date]||0) + pnl;\n  }\n  return daily;\n}\nfunction fmt(v) {\n  if (v==null) return \"\u2013\";\n  return (v>=0?\"+\":\"-\")+\"$\"+Math.abs(v).toLocaleString(\"en-US\",{maximumFractionDigits:0});\n}\nfunction fmtShort(d) {\n  const [,m,day] = d.split(\"-\");\n  return [\"\",\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"][+m]+\" \"+(+day);\n}\n\/\/ Dates visible under the current period filter (last N *trading* days)\nfunction periodDates() {\n  if (period === \"all\") return allDates;\n  return allDates.slice(-parseInt(period, 10));\n}\n\/\/ Totals per system computed over the selected period only\nfunction totals() {\n  const dates = periodDates();\n  const t = {};\n  SOURCES.forEach(({name}) => {\n    t[name] = dates.reduce((a, d) => a + (rawData[name]?.[d] ?? 0), 0);\n  });\n  return t;\n}\n\/\/ Dynamic Profitable preset: PnL > 0 in the selected period, excl systems vetoed\nfunction profitableSet() {\n  const t = totals();\n  return new Set(SOURCES.filter(s => !s.excl && t[s.name] > 0).map(s => s.name));\n}\nfunction visibleSystems() {\n  return SOURCES.filter(s=>selected.has(s.name));\n}\n\/\/ \u2500\u2500 Chart \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction buildCumulativeData() {\n  const dates = periodDates();\n  const run = {};\n  SOURCES.forEach(({name}) => run[name]=0);   \/\/ cumulative restarts at $0 at period start\n  return dates.map(date => {\n    const point = {date};\n    SOURCES.forEach(({name}) => {\n      if (rawData[name]?.[date] != null) run[name] += rawData[name][date];\n      point[name] = +run[name].toFixed(2);\n    });\n    return point;\n  });\n}\nfunction buildConsolidatedData() {\n  const dates = periodDates();\n  const vis = visibleSystems();\n  let running = 0;\n  return dates.map(date => {\n    vis.forEach(({name}) => {\n      if (rawData[name]?.[date] != null) running += rawData[name][date];\n    });\n    return +running.toFixed(2);\n  });\n}\nfunction renderChart() {\n  const dates  = periodDates();\n  const vis    = visibleSystems();\n  const labels = dates.map(fmtShort);\n  const canvas = document.getElementById(\"myChart\");\n  if (!canvas) return;\n  if (chart) { chart.destroy(); chart = null; }\n  if (mode === \"cumulative\") {\n    const cumData = buildCumulativeData();\n    const datasets = consolidated\n      ? [{\n          label: \"Portfolio\",\n          data: buildConsolidatedData(),\n          borderColor: \"#1a6aff\",\n          backgroundColor: \"rgba(26,106,255,0.08)\",\n          borderWidth: 2.5,\n          pointRadius: 0,\n          tension: 0.3,\n          fill: true,\n        }]\n      : vis.map(({name,color}) => ({\n          label: name,\n          data: cumData.map(p => p[name]),\n          borderColor: color,\n          backgroundColor: \"transparent\",\n          borderWidth: 2,\n          pointRadius: 0,\n          tension: 0.3,\n        }));\n    chart = new Chart(canvas, { type:\"line\", data:{labels, datasets}, options:chartOptions(false) });\n  } else {\n    const datasets = consolidated\n      ? [{\n          label: \"Portfolio\",\n          data: dates.map(date => {\n            return visibleSystems().reduce((sum,{name}) => sum + (rawData[name]?.[date] ?? 0), 0);\n          }),\n          backgroundColor: dates.map(date => {\n            const v = visibleSystems().reduce((sum,{name}) => sum + (rawData[name]?.[date] ?? 0), 0);\n            return v >= 0 ? \"#1dbd6ecc\" : \"#e05252cc\";\n          }),\n          borderWidth: 0,\n        }]\n      : vis.map(({name,color}) => ({\n          label: name,\n          data: dates.map(d => rawData[name]?.[d] ?? 0),\n          backgroundColor: color+\"cc\",\n          borderColor: color,\n          borderWidth: 0,\n        }));\n    chart = new Chart(canvas, { type:\"bar\", data:{labels, datasets}, options:chartOptions(!consolidated) });\n  }\n}\nfunction chartOptions(stacked) {\n  return {\n    responsive: true,\n    maintainAspectRatio: false,\n    interaction: { mode:\"index\", intersect:false },\n    plugins: {\n      legend: {\n        labels: { color:\"#4a6080\", font:{family:\"JetBrains Mono\",size:11}, boxWidth:12, padding:16 }\n      },\n      tooltip: {\n        backgroundColor:\"#0e1620\",\n        borderColor:\"#1e2d42\",\n        borderWidth:1,\n        titleColor:\"#4a6080\",\n        bodyColor:\"#cdd9e8\",\n        titleFont:{family:\"JetBrains Mono\",size:11},\n        bodyFont:{family:\"JetBrains Mono\",size:11},\n        padding:12,\n        callbacks: {\n          label: ctx => \" \"+ctx.dataset.label+\": \"+fmt(ctx.parsed.y)\n        }\n      }\n    },\n    scales: {\n      x: {\n        stacked,\n        ticks: { color:\"#4a6080\", font:{family:\"JetBrains Mono\",size:10}, maxTicksLimit:12 },\n        grid:  { color:\"#1e2d42\" }\n      },\n      y: {\n        stacked: false,\n        ticks: {\n          color:\"#4a6080\", font:{family:\"JetBrains Mono\",size:10},\n          callback: v => \"$\"+(v\/1000).toFixed(0)+\"k\"\n        },\n        grid: { color:\"#1e2d42\" }\n      }\n    }\n  };\n}\n\/\/ \u2500\u2500 Render UI \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction renderUI(updatedAt, errors) {\n  const tot  = totals();\n  const prof = profitableSet();\n  const app  = document.getElementById(\"app\");\n  app.innerHTML = `\n    <div class=\"header\">\n      <div>\n        <h1>VPS Systems \u00b7 <span>Live PnL<\/span><\/h1>\n        <div class=\"header-meta\">\n          <span class=\"live-dot\"><\/span>\n          ${periodDates().length} trading days shown \u00b7 loaded ${updatedAt.toLocaleTimeString()}\n        <\/div>\n      <\/div>\n      ${errors.length ? `<div class=\"err-banner\">\u26a0 ${errors.join(\" \u00b7 \")}<\/div>` : \"\"}\n    <\/div>\n    <div class=\"cards\">\n      ${SOURCES.map(({name,color,excl}) => `\n        <div class=\"card ${selected.has(name)?\"\":\"off\"}\" data-name=\"${name}\"\n             style=\"--card-color:${color}; border-color:${selected.has(name)?color:\"var(--border)\"}\">\n          <div class=\"card-name\" style=\"color:${color}\">\n            ${name.replace(\/_\/g,\" \")}\n            ${prof.has(name) ? '<span class=\"card-badge\">\u2713<\/span>' : \"\"}\n            ${excl ? '<span class=\"card-excl\">excl<\/span>' : \"\"}\n          <\/div>\n          <div class=\"card-total ${tot[name]>=0?\"pos\":\"neg\"}\">${fmt(Math.round(tot[name]))}<\/div>\n        <\/div>\n      `).join(\"\")}\n    <\/div>\n    <div class=\"controls\">\n      <div class=\"btn-group\">\n        <button class=\"btn ${mode===\"cumulative\"?\"ab\":\"\"}\" data-mode=\"cumulative\">\ud83d\udcc8 Cumulative<\/button>\n        <button class=\"btn ${mode===\"daily\"?\"ab\":\"\"}\"      data-mode=\"daily\">\ud83d\udcca Daily PnL<\/button>\n      <\/div>\n      <div class=\"sep\"><\/div>\n      <div class=\"btn-group\">\n        <button class=\"btn ${consolidated?\"ab\":\"\"}\" data-action=\"consolidated\">\u2b21 Consolidated<\/button>\n      <\/div>\n      <div class=\"sep\"><\/div>\n      <div class=\"btn-group\">\n        <button class=\"btn\" data-action=\"clear\">Clear<\/button>\n        <button class=\"btn ${profitable?\"ag\":\"\"}\" data-action=\"profitable\">\u2713 Profitable<\/button>\n        <button class=\"btn\" data-action=\"all\">All<\/button>\n      <\/div>\n      <div class=\"sep\"><\/div>\n      <div class=\"btn-group\">\n        <button class=\"btn ${period===\"15\"?\"ab\":\"\"}\"  data-period=\"15\">Last 15 days<\/button>\n        <button class=\"btn ${period===\"30\"?\"ab\":\"\"}\"  data-period=\"30\">Last 30 days<\/button>\n        <button class=\"btn ${period===\"all\"?\"ab\":\"\"}\" data-period=\"all\">All<\/button>\n      <\/div>\n    <\/div>\n    <div class=\"chart-box\">\n      <canvas id=\"myChart\"><\/canvas>\n    <\/div>\n    <p class=\"footer\">\n      Click cards to toggle \u00b7 <span class=\"g\">\u2713 Profitable<\/span> = PnL &gt; 0 in selected period\n    <\/p>\n  `;\n  \/\/ Events \u2014 cards\n  app.querySelectorAll(\".card\").forEach(el => {\n    el.addEventListener(\"click\", () => {\n      const name = el.dataset.name;\n      selected.has(name) ? selected.delete(name) : selected.add(name);\n      profitable = false;\n      renderUI(updatedAt, errors);\n      renderChart();\n    });\n  });\n  \/\/ Events \u2014 mode buttons\n  app.querySelectorAll(\"[data-mode]\").forEach(btn => {\n    btn.addEventListener(\"click\", () => {\n      mode = btn.dataset.mode;\n      renderUI(updatedAt, errors);\n      renderChart();\n    });\n  });\n  \/\/ Events \u2014 period buttons\n  app.querySelectorAll(\"[data-period]\").forEach(btn => {\n    btn.addEventListener(\"click\", () => {\n      period = btn.dataset.period;\n      if (profitable) selected = profitableSet();  \/\/ re-evaluate preset for new window\n      renderUI(updatedAt, errors);\n      renderChart();\n    });\n  });\n  \/\/ Events \u2014 action buttons\n  app.querySelectorAll(\"[data-action]\").forEach(btn => {\n    btn.addEventListener(\"click\", () => {\n      const action = btn.dataset.action;\n      if (action === \"consolidated\") {\n        consolidated = !consolidated;\n      } else if (action === \"clear\") {\n        selected = new Set();\n        profitable = false;\n      } else if (action === \"all\") {\n        selected = new Set(SOURCES.map(s=>s.name));\n        profitable = false;\n      } else if (action === \"profitable\") {\n        selected = profitableSet();\n        profitable = true;\n      }\n      renderUI(updatedAt, errors);\n      renderChart();\n    });\n  });\n  renderChart();\n}\n\/\/ \u2500\u2500 Boot \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n(async () => {\n  const errors = [];\n  await Promise.all(SOURCES.map(async ({name, url}) => {\n    try {\n      const r = await fetch(url);\n      if (!r.ok) throw new Error(\"HTTP \"+r.status);\n      rawData[name] = parseCSV(await r.text());\n    } catch(e) {\n      errors.push(name+\": \"+e.message);\n      rawData[name] = {};\n    }\n  }));\n  const dateSet = new Set();\n  Object.values(rawData).forEach(d => Object.keys(d).forEach(k => dateSet.add(k)));\n  allDates = [...dateSet].sort();\n  selected = profitableSet();   \/\/ default view: dynamically profitable systems\n  renderUI(new Date(), errors);\n})();\n<\/script>\n\n\n\n<!-- ============================================================\n     BLOQUE A  \u2014  Custom HTML de Kadence\n     Va INMEDIATAMENTE DEBAJO del bloque del gr\u00e1fico.\n     Pegar en pesta\u00f1a Text \/ Code. Nunca en Visual.\n     ============================================================ -->\n\n<div class=\"tis-lang-block tis-lang-block--en\" style=\"max-width:1100px;margin:0 auto 14px;padding:0 20px;font-family:Inter,Helvetica,Arial,sans-serif;\">\n  <div style=\"background:#101a26;border:1px solid #24384f;border-left:3px solid #facc15;border-radius:8px;padding:14px 16px;\">\n    <div style=\"font-size:13px;font-weight:600;color:#e8f0fa;margin-bottom:6px;letter-spacing:.2px;\">Not seeing the chart above?<\/div>\n    <div style=\"font-size:13px;line-height:1.65;color:#9fb2c8;\">The report pulls its numbers live from Google Sheets and draws the chart with a JavaScript library loaded from a CDN. If the area above is blank, the usual causes are: JavaScript disabled in your browser, an ad&#8209;blocker or privacy extension blocking the requests, or Firefox&rsquo;s Enhanced Tracking Protection set to Strict. Allow this page in your blocker, or open it in another browser. Either way, the same numbers can be read directly from the source logs listed below.<\/div>\n  <\/div>\n<\/div>\n\n<div class=\"tis-lang-block tis-lang-block--es\" style=\"max-width:1100px;margin:0 auto 14px;padding:0 20px;font-family:Inter,Helvetica,Arial,sans-serif;\">\n  <div style=\"background:#101a26;border:1px solid #24384f;border-left:3px solid #facc15;border-radius:8px;padding:14px 16px;\">\n    <div style=\"font-size:13px;font-weight:600;color:#e8f0fa;margin-bottom:6px;letter-spacing:.2px;\">&iquest;No ves el gr&aacute;fico de arriba?<\/div>\n    <div style=\"font-size:13px;line-height:1.65;color:#9fb2c8;\">El reporte toma los datos en vivo desde Google Sheets y dibuja el gr&aacute;fico con una librer&iacute;a JavaScript que se carga desde un CDN. Si el &aacute;rea de arriba aparece vac&iacute;a, las causas habituales son: JavaScript desactivado en el navegador, un bloqueador de publicidad o extensi&oacute;n de privacidad bloqueando las peticiones, o la Protecci&oacute;n Antirrastreo de Firefox en modo Estricto. Habilit&aacute; esta p&aacute;gina en tu bloqueador, o abrila en otro navegador. De cualquier forma, los mismos n&uacute;meros se pueden leer directamente en las planillas de origen que est&aacute;n m&aacute;s abajo.<\/div>\n  <\/div>\n<\/div>\n\n\n<!-- ============================================================\n     BLOQUE B  \u2014  Custom HTML de Kadence\n     Va debajo del BLOQUE A.\n     ============================================================ -->\n\n<div class=\"tis-lang-block tis-lang-block--en\" style=\"max-width:1100px;margin:0 auto;padding:0 20px 40px;font-family:Inter,Helvetica,Arial,sans-serif;\">\n\n  <div style=\"border-top:1px solid #1e2d42;padding-top:26px;\">\n    <div style=\"font-family:'JetBrains Mono',monospace;font-size:15px;font-weight:700;color:#e8f0fa;letter-spacing:-.3px;margin-bottom:8px;\">Raw trade data<\/div>\n    <div style=\"font-size:13px;line-height:1.7;color:#9fb2c8;margin-bottom:18px;\">Every point in the chart above is calculated from the trade logs below. Each log lists the individual trades of one system with its server timestamp and the PnL of the trade, and updates automatically as the systems continue to run. The logs are published read&#8209;only; open one in the browser or download it as CSV to check the numbers yourself.<\/div>\n  <\/div>\n\n  <div style=\"display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px;\">\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#e05252;letter-spacing:.4px;margin-bottom:7px;\">NQ Reversal<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=459772999&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Open log<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=459772999&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#f97316;letter-spacing:.4px;margin-bottom:7px;\">ES Reversal<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=1486518444&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Open log<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1486518444&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#1dbd6e;letter-spacing:.4px;margin-bottom:7px;\">NQ Rebote<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=1587611422&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Open log<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1587611422&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#a78bfa;letter-spacing:.4px;margin-bottom:7px;\">NQ Edge<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=1946471702&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Open log<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1946471702&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#facc15;letter-spacing:.4px;margin-bottom:7px;\">NQ ATR Trend<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=1513473091&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Open log<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1513473091&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#ec4899;letter-spacing:.4px;margin-bottom:7px;\">ES ATR Trend<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=1491416299&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Open log<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1491416299&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#3b82f6;letter-spacing:.4px;margin-bottom:7px;\">NQ Donchian Trend<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=1387529756&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Open log<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1387529756&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#06b6d4;letter-spacing:.4px;margin-bottom:7px;\">ES Donchian Trend<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=1166594666&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Open log<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1166594666&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#64748b;letter-spacing:.4px;margin-bottom:7px;\">ES Edge<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=959492214&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Open log<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=959492214&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#475569;letter-spacing:.4px;margin-bottom:7px;\">ES Rebote<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=1151230794&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Open log<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1151230794&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n  <\/div>\n\n  <div style=\"background:#0b111a;border:1px solid #1e2d42;border-radius:8px;padding:16px 18px;\">\n    <div style=\"font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;color:#e8f0fa;letter-spacing:.4px;margin-bottom:10px;\">IMPORTANT &mdash; PLEASE READ<\/div>\n    <div style=\"font-size:12px;line-height:1.75;color:#8fa3ba;margin-bottom:9px;\">These results come from <strong style=\"color:#b9c9dc;\">simulated (SIM) accounts<\/strong> running on virtual private servers operated by The Indicator Store. They are not live accounts, not funded accounts and not client accounts. No real money was at risk and no orders were routed to an exchange.<\/div>\n    <div style=\"font-size:12px;line-height:1.75;color:#8fa3ba;margin-bottom:9px;\">Trades are recorded <strong style=\"color:#b9c9dc;\">automatically by our Markers software<\/strong> from the trading platform&rsquo;s execution log. The data is unaudited and may contain errors, omissions, duplicated rows or gaps caused by server restarts, data&#8209;feed interruptions, platform updates or configuration changes.<\/div>\n    <div style=\"font-size:12px;line-height:1.75;color:#8fa3ba;margin-bottom:9px;\">The figures are published for <strong style=\"color:#b9c9dc;\">informational and educational purposes only<\/strong>. Nothing on this page is an offer, a solicitation, investment advice, or a promise or guarantee of any result.<\/div>\n    <div style=\"font-size:12px;line-height:1.75;color:#8fa3ba;margin-bottom:9px;\">Simulated performance has inherent limitations. Because the trades were not executed with real capital, the results cannot fully reflect slippage, partial or missed fills, order rejections, latency, commissions and exchange fees, or the emotional pressure of trading a funded account &mdash; all of which affect actual results.<\/div>\n    <div style=\"font-size:12px;line-height:1.75;color:#8fa3ba;\">Past performance, whether simulated or actual, is not indicative of future results. Futures trading involves substantial risk of loss and is not suitable for every investor.<\/div>\n  <\/div>\n\n<\/div>\n\n<div class=\"tis-lang-block tis-lang-block--es\" style=\"max-width:1100px;margin:0 auto;padding:0 20px 40px;font-family:Inter,Helvetica,Arial,sans-serif;\">\n\n  <div style=\"border-top:1px solid #1e2d42;padding-top:26px;\">\n    <div style=\"font-family:'JetBrains Mono',monospace;font-size:15px;font-weight:700;color:#e8f0fa;letter-spacing:-.3px;margin-bottom:8px;\">Datos crudos de operaciones<\/div>\n    <div style=\"font-size:13px;line-height:1.7;color:#9fb2c8;margin-bottom:18px;\">Cada punto del gr&aacute;fico de arriba se calcula a partir de los registros de operaciones que est&aacute;n debajo. Cada registro lista las operaciones individuales de un sistema con su marca de tiempo del servidor y el PnL de la operaci&oacute;n, y se actualiza autom&aacute;ticamente mientras los sistemas siguen operando. Los registros est&aacute;n publicados en modo solo lectura: pod&eacute;s abrir uno en el navegador o descargarlo en CSV para verificar los n&uacute;meros por tu cuenta.<\/div>\n  <\/div>\n\n  <div style=\"display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px;\">\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#e05252;letter-spacing:.4px;margin-bottom:7px;\">NQ Reversal<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=459772999&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Ver registro<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=459772999&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#f97316;letter-spacing:.4px;margin-bottom:7px;\">ES Reversal<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=1486518444&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Ver registro<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1486518444&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#1dbd6e;letter-spacing:.4px;margin-bottom:7px;\">NQ Rebote<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=1587611422&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Ver registro<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1587611422&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#a78bfa;letter-spacing:.4px;margin-bottom:7px;\">NQ Edge<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=1946471702&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Ver registro<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1946471702&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#facc15;letter-spacing:.4px;margin-bottom:7px;\">NQ ATR Trend<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=1513473091&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Ver registro<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1513473091&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#ec4899;letter-spacing:.4px;margin-bottom:7px;\">ES ATR Trend<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=1491416299&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Ver registro<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1491416299&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#3b82f6;letter-spacing:.4px;margin-bottom:7px;\">NQ Donchian Trend<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=1387529756&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Ver registro<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1387529756&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#06b6d4;letter-spacing:.4px;margin-bottom:7px;\">ES Donchian Trend<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=1166594666&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Ver registro<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1166594666&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#64748b;letter-spacing:.4px;margin-bottom:7px;\">ES Edge<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=959492214&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Ver registro<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=959492214&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n    <div style=\"flex:1 1 210px;background:#0e1620;border:1px solid #1e2d42;border-radius:8px;padding:11px 13px;\">\n      <div style=\"font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:#475569;letter-spacing:.4px;margin-bottom:7px;\">ES Rebote<\/div>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pubhtml?gid=1151230794&amp;single=true\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#1a6aff;font-weight:600;\">Ver registro<\/span><\/a>\n      <span style=\"font-size:12px;color:#2c3e56;margin:0 7px;\">|<\/span>\n      <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQMNblcI9cIeQZn0VO2edqhjQvtb3HbEpt35DfiDkeL5bfJdaFZ4yM5_KNNlM6Lx72KEWTXK9vtvnQV\/pub?gid=1151230794&amp;single=true&amp;output=csv\" target=\"_blank\" rel=\"noopener nofollow\" style=\"text-decoration:none;\"><span style=\"font-size:12px;color:#4a6080;\">CSV<\/span><\/a>\n    <\/div>\n\n  <\/div>\n\n  <div style=\"background:#0b111a;border:1px solid #1e2d42;border-radius:8px;padding:16px 18px;\">\n    <div style=\"font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;color:#e8f0fa;letter-spacing:.4px;margin-bottom:10px;\">IMPORTANTE &mdash; LEER ANTES<\/div>\n    <div style=\"font-size:12px;line-height:1.75;color:#8fa3ba;margin-bottom:9px;\">Estos resultados provienen de <strong style=\"color:#b9c9dc;\">cuentas simuladas (SIM)<\/strong> que corren en servidores privados virtuales operados por The Indicator Store. No son cuentas reales, ni cuentas fondeadas, ni cuentas de clientes. No hubo dinero real en riesgo ni &oacute;rdenes enviadas a un mercado.<\/div>\n    <div style=\"font-size:12px;line-height:1.75;color:#8fa3ba;margin-bottom:9px;\">Las operaciones se registran <strong style=\"color:#b9c9dc;\">autom&aacute;ticamente mediante nuestro software Markers<\/strong> a partir del registro de ejecuciones de la plataforma. Los datos no est&aacute;n auditados y pueden contener errores, omisiones, filas duplicadas o huecos causados por reinicios del servidor, cortes del feed de datos, actualizaciones de la plataforma o cambios de configuraci&oacute;n.<\/div>\n    <div style=\"font-size:12px;line-height:1.75;color:#8fa3ba;margin-bottom:9px;\">Las cifras se publican con fines <strong style=\"color:#b9c9dc;\">informativos y educativos &uacute;nicamente<\/strong>. Nada de lo que figura en esta p&aacute;gina constituye una oferta, una solicitud, asesoramiento de inversi&oacute;n, ni una promesa o garant&iacute;a de resultado alguno.<\/div>\n    <div style=\"font-size:12px;line-height:1.75;color:#8fa3ba;margin-bottom:9px;\">El desempe&ntilde;o simulado tiene limitaciones inherentes. Como las operaciones no se ejecutaron con capital real, los resultados no pueden reflejar por completo el slippage, ejecuciones parciales o no concretadas, rechazos de &oacute;rdenes, latencia, comisiones y tasas de mercado, ni la presi&oacute;n emocional de operar una cuenta fondeada &mdash; todos factores que afectan los resultados reales.<\/div>\n    <div style=\"font-size:12px;line-height:1.75;color:#8fa3ba;\">El desempe&ntilde;o pasado, simulado o real, no es indicativo de resultados futuros. Operar futuros implica un riesgo sustancial de p&eacute;rdida y no es adecuado para todo inversor.<\/div>\n  <\/div>\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>VPS Systems \u00b7 Live PnL Fetching live data from Google Sheets\u2026 Not seeing the chart above? The report pulls its numbers live from Google Sheets and draws the chart with a JavaScript library loaded from a CDN. If the area above is blank, the usual causes are: JavaScript disabled in your browser, an ad&#8209;blocker or&#8230;<\/p>","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_kad_post_transparent":"","_kad_post_title":"hide","_kad_post_layout":"normal","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-911","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/theindicatorstore.com\/es\/wp-json\/wp\/v2\/pages\/911","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/theindicatorstore.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/theindicatorstore.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/theindicatorstore.com\/es\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/theindicatorstore.com\/es\/wp-json\/wp\/v2\/comments?post=911"}],"version-history":[{"count":18,"href":"https:\/\/theindicatorstore.com\/es\/wp-json\/wp\/v2\/pages\/911\/revisions"}],"predecessor-version":[{"id":1616,"href":"https:\/\/theindicatorstore.com\/es\/wp-json\/wp\/v2\/pages\/911\/revisions\/1616"}],"wp:attachment":[{"href":"https:\/\/theindicatorstore.com\/es\/wp-json\/wp\/v2\/media?parent=911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}