{"id":24,"date":"2025-10-07T01:47:27","date_gmt":"2025-10-07T01:47:27","guid":{"rendered":"https:\/\/qabastore.net\/?page_id=24"},"modified":"2025-12-29T10:33:10","modified_gmt":"2025-12-29T14:33:10","slug":"trading","status":"publish","type":"page","link":"https:\/\/qabastore.net\/index.php\/trading\/","title":{"rendered":"Trading"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"24\" class=\"elementor elementor-24\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1856513 e-flex e-con-boxed e-con e-parent\" data-id=\"1856513\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f9c1337 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"f9c1337\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div style=\"max-width:1100px;margin:20px auto;font-family:system-ui\">\r\n  <div style=\"display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px;\">\r\n    <strong id=\"tr_title\">Trading<\/strong>\r\n\r\n    <button type=\"button\" id=\"tr_m1\">M1<\/button>\r\n    <button type=\"button\" id=\"tr_m5\">M5<\/button>\r\n\r\n    <span style=\"margin-left:auto;color:#6b7280\">\r\n      Symbol: <span id=\"tr_symbol\">\u2014<\/span> |\r\n      Price: <span id=\"tr_price\">\u2014<\/span>\r\n    <\/span>\r\n  <\/div>\r\n\r\n  <div id=\"tr_status\" style=\"color:#6b7280;margin-bottom:10px;\"><\/div>\r\n  <div id=\"tr_chart\" style=\"height:440px;background:#0b1220;border-radius:10px;\"><\/div>\r\n\r\n  <div style=\"margin-top:10px;color:#6b7280;font-size:12px\">\r\n    Educational simulation only. No deposits or real trading.\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n(async () => {\r\n  const PROXY = \"\/wp-json\/tdp\/v1\";\r\n\r\n  const params = new URLSearchParams(location.search);\r\n  const asset = (params.get(\"asset\") || \"BTC\").toUpperCase();\r\n\r\n  \/\/ Mixed IDs (as agreed). Default USD -> fallback USDT -> fallback USDC for crypto.\r\n  const MAP = {\r\n    BTC: [\"BTC\/USD\",\"BTC\/USDT\",\"BTC\/USDC\"],\r\n    ETH: [\"ETH\/USD\",\"ETH\/USDT\",\"ETH\/USDC\"],\r\n    SOL: [\"SOL\/USD\",\"SOL\/USDT\",\"SOL\/USDC\"],\r\n    XRP: [\"XRP\/USD\",\"XRP\/USDT\",\"XRP\/USDC\"],\r\n    BNB: [\"BNB\/USD\",\"BNB\/USDT\",\"BNB\/USDC\"],\r\n    ADA: [\"ADA\/USD\",\"ADA\/USDT\",\"ADA\/USDC\"],\r\n    DOGE:[\"DOGE\/USD\",\"DOGE\/USDT\",\"DOGE\/USDC\"],\r\n    TRX: [\"TRX\/USD\",\"TRX\/USDT\",\"TRX\/USDC\"],\r\n    MATIC:[\"MATIC\/USD\",\"MATIC\/USDT\",\"MATIC\/USDC\"],\r\n    DOT: [\"DOT\/USD\",\"DOT\/USDT\",\"DOT\/USDC\"],\r\n    LTC: [\"LTC\/USD\",\"LTC\/USDT\",\"LTC\/USDC\"],\r\n    AVNT:[\"AVNT\/USD\",\"AVNT\/USDT\",\"AVNT\/USDC\"],\r\n\r\n    EURUSD:[\"EUR\/USD\"],\r\n    GBPUSD:[\"GBP\/USD\"],\r\n    USDJPY:[\"USD\/JPY\"],\r\n    USDCAD:[\"USD\/CAD\"],\r\n\r\n    XAUUSD:[\"XAU\/USD\"],\r\n    XAGUSD:[\"XAG\/USD\"]\r\n  };\r\n\r\n  const candidates = MAP[asset] || [\"BTC\/USD\",\"BTC\/USDT\",\"BTC\/USDC\"];\r\n\r\n  const title = document.getElementById(\"tr_title\");\r\n  const status = document.getElementById(\"tr_status\");\r\n  const elPrice = document.getElementById(\"tr_price\");\r\n  const elSymbol = document.getElementById(\"tr_symbol\");\r\n\r\n  title.textContent = `Trading \u2014 ${asset}`;\r\n\r\n  function setStatus(s){ status.textContent = s || \"\"; }\r\n\r\n  async function fetchJSON(url){\r\n    const r = await fetch(url, { credentials:\"same-origin\" });\r\n    const t = await r.text();\r\n    let j=null; try { j = t ? JSON.parse(t) : null; } catch(e) {}\r\n    if(!r.ok){\r\n      const msg = (j && (j.message || j.error)) ? (j.message || j.error) : (\"HTTP \" + r.status);\r\n      throw new Error(msg);\r\n    }\r\n    return j;\r\n  }\r\n\r\n  \/\/ Load chart lib (pinned version). If your server blocks CDN, tell me and I'll give local alternative.\r\n  function loadScript(src){\r\n    return new Promise((resolve,reject)=>{\r\n      const s=document.createElement(\"script\");\r\n      s.src=src; s.onload=resolve; s.onerror=reject;\r\n      document.head.appendChild(s);\r\n    });\r\n  }\r\n\r\n  await loadScript(\"https:\/\/unpkg.com\/lightweight-charts@4.2.0\/dist\/lightweight-charts.standalone.production.js\");\r\n\r\n  const chartEl = document.getElementById(\"tr_chart\");\r\n  const chart = LightweightCharts.createChart(chartEl, {\r\n    autoSize: true,\r\n    layout: { background: { type: \"solid\", color: \"#0b1220\" }, textColor: \"#e5e7eb\" },\r\n    rightPriceScale: { visible: true },\r\n    timeScale: { timeVisible: true, secondsVisible: false },\r\n    grid: { vertLines: { visible: false }, horzLines: { visible: false } },\r\n    crosshair: { mode: 1 }\r\n  });\r\n\r\n  const series = (typeof chart.addCandlestickSeries === \"function\")\r\n    ? chart.addCandlestickSeries()\r\n    : chart.addSeries(LightweightCharts.CandlestickSeries, {});\r\n\r\n  async function proxyPrice(symbol){\r\n    return await fetchJSON(`${PROXY}\/price?symbol=${encodeURIComponent(symbol)}`);\r\n  }\r\n\r\n  async function proxyCandles(symbol, tf){\r\n    return await fetchJSON(`${PROXY}\/candles?symbol=${encodeURIComponent(symbol)}&tf=${encodeURIComponent(tf)}&limit=120`);\r\n  }\r\n\r\n  async function resolveSymbol(){\r\n    for (const sym of candidates){\r\n      try {\r\n        const r = await proxyPrice(sym);\r\n        if (r && typeof r.price === \"number\") return sym;\r\n      } catch(e) {}\r\n    }\r\n    return null;\r\n  }\r\n\r\n  function fmt(n){\r\n    if (typeof n !== \"number\" || !isFinite(n)) return \"\u2014\";\r\n    return (Math.abs(n) >= 1000) ? n.toFixed(2) : n.toFixed(4);\r\n  }\r\n\r\n  let tf = \"M1\";\r\n  let activeSymbol = null;\r\n  let pollTimer = null;\r\n\r\n  async function refreshAll(){\r\n    setStatus(\"Loading market...\");\r\n    activeSymbol = await resolveSymbol();\r\n\r\n    if (!activeSymbol){\r\n      setStatus(\"Data unavailable for this asset right now.\");\r\n      elPrice.textContent = \"N\/A\";\r\n      elSymbol.textContent = \"\u2014\";\r\n      series.setData([]);\r\n      return;\r\n    }\r\n\r\n    elSymbol.textContent = activeSymbol;\r\n    setStatus(`Using: ${activeSymbol}`);\r\n\r\n    const c = await proxyCandles(activeSymbol, tf);\r\n    const candles = (c && c.candles) ? c.candles : [];\r\n    series.setData(candles);\r\n    chart.timeScale().fitContent();\r\n\r\n    const p = await proxyPrice(activeSymbol);\r\n    elPrice.textContent = fmt(p.price);\r\n    setStatus(`Using: ${activeSymbol}`);\r\n  }\r\n\r\n  async function pollPrice(){\r\n    if (!activeSymbol) return;\r\n    try {\r\n      const p = await proxyPrice(activeSymbol);\r\n      elPrice.textContent = fmt(p.price);\r\n    } catch(e) {}\r\n  }\r\n\r\n  function startPolling(){\r\n    if (pollTimer) clearInterval(pollTimer);\r\n    pollTimer = setInterval(pollPrice, 3000);\r\n  }\r\n\r\n  document.getElementById(\"tr_m1\").addEventListener(\"click\", async () => {\r\n    tf=\"M1\";\r\n    await refreshAll();\r\n  });\r\n  document.getElementById(\"tr_m5\").addEventListener(\"click\", async () => {\r\n    tf=\"M5\";\r\n    await refreshAll();\r\n  });\r\n\r\n  await refreshAll();\r\n  startPolling();\r\n\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Trading M1 M5 Symbol: \u2014 | Price: \u2014 Educational simulation only. No deposits or real trading.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","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":"disabled","footer-sml-layout":"","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":"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":"","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-4)","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-4)","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-4)","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":""},"class_list":["post-24","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/qabastore.net\/index.php\/wp-json\/wp\/v2\/pages\/24","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/qabastore.net\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/qabastore.net\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/qabastore.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qabastore.net\/index.php\/wp-json\/wp\/v2\/comments?post=24"}],"version-history":[{"count":19,"href":"https:\/\/qabastore.net\/index.php\/wp-json\/wp\/v2\/pages\/24\/revisions"}],"predecessor-version":[{"id":468,"href":"https:\/\/qabastore.net\/index.php\/wp-json\/wp\/v2\/pages\/24\/revisions\/468"}],"wp:attachment":[{"href":"https:\/\/qabastore.net\/index.php\/wp-json\/wp\/v2\/media?parent=24"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}