{"id":30,"date":"2026-02-18T23:54:22","date_gmt":"2026-02-18T20:54:22","guid":{"rendered":"https:\/\/piyasaozet.com\/?page_id=30"},"modified":"2026-02-18T23:54:22","modified_gmt":"2026-02-18T20:54:22","slug":"canli-veri-2","status":"publish","type":"page","link":"https:\/\/piyasaozet.com\/","title":{"rendered":"-Canl\u0131 Veri-"},"content":{"rendered":"   \n    <style>\n        :root {\n            --bg-dark: #0b0e11;\n            --card-bg: #161b22;\n            --text-main: #e6edf3;\n            --accent-blue: #2962ff;\n            --border: rgba(255, 255, 255, 0.1);\n            --danger: #f85149;\n            --success: #2eb67d;\n        }\n        body, #page, .site-content { background-color: var(--bg-dark) !important; color: var(--text-main); }\n        .dashboard-container { background: var(--bg-dark); padding: 20px; font-family: 'Inter', sans-serif; min-height: 100vh; max-width: 1440px; margin: 0 auto; }\n        .main-layout { display: grid; grid-template-columns: 2.2fr 1.2fr; gap: 20px; margin-bottom: 20px; }\n        @media (max-width: 1024px) { .main-layout { grid-template-columns: 1fr; } }\n        .chart-box { height: 600px; background: var(--card-bg); border-radius: 12px; border: 1px solid var(--border); overflow: hidden; }\n        .calc-box { background: var(--card-bg); border-radius: 12px; border: 1px solid var(--border); padding: 20px; }\n        .calc-row {\n            display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 10px;\n            margin-bottom: 12px; align-items: center; border-bottom: 1px solid rgba(255,255,255,0.05); padding-bottom: 8px;\n        }\n        .calc-row label { font-size: 0.8rem; color: #8b949e; font-weight: bold; }\n        .calc-row input {\n            background: #0d1117; border: 1px solid #30363d; border-radius: 6px;\n            padding: 8px 10px; color: white; outline: none; font-size: 0.9rem; width: 100%;\n        }\n        .calc-row input:focus { border-color: var(--accent-blue); }\n        .result-card {\n            background: linear-gradient(135deg, #1e222d 0%, #0d1117 100%);\n            border: 2px solid var(--accent-blue); border-radius: 12px; padding: 15px; text-align: center; margin-top: 15px;\n        }\n        .result-val { font-size: 2rem; font-weight: 800; color: white; }\n        .tool-card { background: var(--card-bg); border-radius: 12px; border: 1px solid var(--border); padding: 25px; margin-top: 10px; }\n        .alarm-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; margin-bottom: 20px; }\n        .btn-action { background: var(--accent-blue); color: white; border: none; padding: 12px; border-radius: 8px; font-weight: bold; cursor: pointer; transition: 0.2s; }\n        .alarm-table { width: 100%; border-collapse: collapse; margin-top: 15px; }\n        .alarm-table th { text-align: left; padding: 12px; color: #8b949e; border-bottom: 1px solid var(--border); font-size: 0.85rem; }\n        .alarm-table td { padding: 12px; border-bottom: 1px solid rgba(255,255,255,0.05); font-size: 0.9rem; }\n        .btn-delete { color: var(--danger); background: none; border: 1px solid var(--danger); padding: 4px 8px; border-radius: 4px; cursor: pointer; }\n    <\/style>\n\n    <div class=\"dashboard-container\">\n        <div style=\"margin-bottom: 15px;\">\n            <script type=\"text\/javascript\" src=\"https:\/\/s3.tradingview.com\/external-embedding\/embed-widget-ticker-tape.js\" async>\n            { \"symbols\": [\n                {\"proName\": \"FX_IDC:XAUTRYG\", \"title\": \"Gram Alt\u0131n\"},\n                {\"proName\": \"FX_IDC:XAGTRYG\", \"title\": \"Gram G\u00fcm\u00fc\u015f\"},\n                {\"proName\": \"FX:USDTRY\", \"title\": \"Dolar\/TL\"},\n                {\"proName\": \"BINANCE:BTCUSDT\", \"title\": \"Bitcoin\"},\n                {\"proName\": \"BINANCE:ETHUSDT\", \"title\": \"Ethereum\"}\n            ], \"colorTheme\": \"dark\", \"isTransparent\": true, \"displayMode\": \"adaptive\", \"locale\": \"tr\" }\n            <\/script>\n        <\/div>\n\n        <div class=\"main-layout\">\n            <div class=\"chart-box\">\n                <script type=\"text\/javascript\" src=\"https:\/\/s3.tradingview.com\/external-embedding\/embed-widget-symbol-overview.js\" async>\n                { \"symbols\": [\n                    [\"Gram Alt\u0131n\",\"FX_IDC:XAUTRYG|1D\"], [\"Gram G\u00fcm\u00fc\u015f\",\"FX_IDC:XAGTRYG|1D\"],\n                    [\"Bitcoin\",\"BINANCE:BTCUSDT|1D\"], [\"Dolar\/TL\",\"FX:USDTRY|1D\"],\n                    [\"Euro\/Dolar\",\"FX:EURUSD|1D\"], [\"Ons G\u00fcm\u00fc\u015f\",\"OANDA:XAGUSD|1D\"]\n                ],\n                  \"chartOnly\": false, \"width\": \"100%\", \"height\": \"100%\", \"locale\": \"tr\", \"colorTheme\": \"dark\", \"isTransparent\": true, \"autosize\": true, \"chartType\": \"area\" }\n                <\/script>\n            <\/div>\n\n            <div class=\"calc-box\">\n                <h3 style=\"margin-top:0;\">\ud83d\udcbc Net Portf\u00f6y\u00fcm<\/h3>\n                <div class=\"calc-row\" style=\"border:none; padding:0;\"><label>Varl\u0131k<\/label><label>Miktar<\/label><label>Birim Fiyat (\u20ba)<\/label><\/div>\n                <div class=\"calc-row\"><span>G. Alt\u0131n<\/span><input type=\"number\" step=\"0.01\" id=\"q_1\" oninput=\"v21Calc()\"><input type=\"number\" step=\"0.01\" id=\"p_1\" oninput=\"v21Calc()\"><\/div>\n                <div class=\"calc-row\"><span>G. G\u00fcm\u00fc\u015f<\/span><input type=\"number\" step=\"0.01\" id=\"q_2\" oninput=\"v21Calc()\"><input type=\"number\" step=\"0.01\" id=\"p_2\" oninput=\"v21Calc()\"><\/div>\n                <div class=\"calc-row\"><span>Dolar ($)<\/span><input type=\"number\" step=\"0.0001\" id=\"q_3\" oninput=\"v21Calc()\"><input type=\"number\" step=\"0.0001\" id=\"p_3\" oninput=\"v21Calc()\"><\/div>\n                <div class=\"calc-row\"><span>Bitcoin<\/span><input type=\"number\" step=\"0.0001\" id=\"q_4\" oninput=\"v21Calc()\"><input type=\"number\" step=\"0.01\" id=\"p_4\" oninput=\"v21Calc()\"><\/div>\n                <div class=\"calc-row\"><span>Ethereum<\/span><input type=\"number\" step=\"0.0001\" id=\"q_5\" oninput=\"v21Calc()\"><input type=\"number\" step=\"0.01\" id=\"p_5\" oninput=\"v21Calc()\"><\/div>\n                <div class=\"result-card\">\n                    <div style=\"font-size: 0.8rem; color: #58a6ff;\">TOPLAM VARLIK<\/div>\n                    <div id=\"v21_total\" class=\"result-val\">0,00 \u20ba<\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"tool-card\">\n            <h3 style=\"margin-top:0;\">\ud83d\udd14 Ki\u015fiye \u00d6zel Fiyat Alarm\u0131 Kur<\/h3>\n            <div class=\"alarm-grid\">\n                <div style=\"display:flex; flex-direction:column; gap:5px;\">\n                    <label style=\"font-size:0.8rem; color:#8b949e;\">Varl\u0131k<\/label>\n                    <select id=\"al_asset\" style=\"padding:12px; background:#0d1117; border:1px solid #30363d; color:white; border-radius:8px;\">\n                        <option value=\"Alt\u0131n\">Gram Alt\u0131n<\/option>\n                        <option value=\"G\u00fcm\u00fc\u015f\">Gram G\u00fcm\u00fc\u015f<\/option>\n                        <option value=\"Bitcoin\">Bitcoin<\/option>\n                        <option value=\"Dolar\">Dolar\/TL<\/option>\n                    <\/select>\n                <\/div>\n                <div style=\"display:flex; flex-direction:column; gap:5px;\">\n                    <label style=\"font-size:0.8rem; color:#8b949e;\">Hedef Fiyat (\u20ba)<\/label>\n                    <input type=\"number\" step=\"0.01\" id=\"al_price\" placeholder=\"\u00d6rn: 7100\" style=\"padding:12px; background:#0d1117; border:1px solid #30363d; color:white; border-radius:8px;\">\n                <\/div>\n                <div style=\"display:flex; flex-direction:column; gap:5px;\">\n                    <label style=\"font-size:0.8rem; color:#8b949e;\">E-posta<\/label>\n                    <input type=\"email\" id=\"al_mail\" placeholder=\"mail@adresiniz.com\" style=\"padding:12px; background:#0d1117; border:1px solid #30363d; color:white; border-radius:8px;\">\n                <\/div>\n                <div style=\"display:flex; align-items:flex-end;\">\n                    <button class=\"btn-action\" id=\"btnSave\" onclick=\"saveV21()\" style=\"width:100%;\">Alarm\u0131 Aktif Et<\/button>\n                <\/div>\n            <\/div>\n            <table class=\"alarm-table\">\n                <thead><tr><th>Varl\u0131k<\/th><th>Hedef Fiyat<\/th><th>E-posta<\/th><th>\u0130\u015flem<\/th><\/tr><\/thead>\n                <tbody id=\"v21_log\"><\/tbody>\n            <\/table>\n        <\/div>\n    <\/div>\n\n    <script>\n    function v21Calc() {\n        let total = 0;\n        for(let i=1; i<=5; i++) {\n            const q = parseFloat(document.getElementById('q_'+i).value) || 0;\n            const p = parseFloat(document.getElementById('p_'+i).value) || 0;\n            total += (q * p);\n        }\n        document.getElementById('v21_total').innerText = new Intl.NumberFormat('tr-TR', { style: 'currency', currency: 'TRY' }).format(total);\n       \n        const data = {};\n        for(let i=1; i<=5; i++) {\n            data['q'+i] = document.getElementById('q_'+i).value;\n            data['p'+i] = document.getElementById('p_'+i).value;\n        }\n        localStorage.setItem('v21_calc', JSON.stringify(data));\n    }\n\n    async function updateLivePrices() {\n        try {\n            const cgRes = await fetch('https:\/\/api.coingecko.com\/api\/v3\/simple\/price?ids=bitcoin,ethereum,gram-gold,gram-silver&vs_currencies=try');\n            const cgData = await cgRes.json();\n            document.getElementById('p_1').value = cgData['gram-gold']?.try?.toFixed(2) || '';\n            document.getElementById('p_2').value = cgData['gram-silver']?.try?.toFixed(2) || '';\n            document.getElementById('p_4').value = cgData.bitcoin?.try?.toFixed(2) || '';\n            document.getElementById('p_5').value = cgData.ethereum?.try?.toFixed(2) || '';\n\n            const tcmbRes = await fetch('https:\/\/www.tcmb.gov.tr\/kurlar\/today.xml');\n            const tcmbText = await tcmbRes.text();\n            const parser = new DOMParser();\n            const xml = parser.parseFromString(tcmbText, \"text\/xml\");\n            const usdNode = xml.querySelector('Currency[CurrencyCode=\"USD\"] ForexSelling');\n            if (usdNode) {\n                const usdRate = parseFloat(usdNode.textContent);\n                document.getElementById('p_3').value = usdRate.toFixed(4);\n            }\n            v21Calc();\n        } catch (e) {\n            console.warn(\"Canl\u0131 fiyat al\u0131namad\u0131:\", e);\n        }\n    }\n\n    function loadV21() {\n        const saved = JSON.parse(localStorage.getItem('v21_calc'));\n        if (saved) {\n            for (let i = 1; i <= 5; i++) {\n                document.getElementById('q_' + i).value = saved['q' + i] || '';\n                document.getElementById('p_' + i).value = saved['p' + i] || '';\n            }\n            v21Calc();\n        }\n        updateLivePrices();\n\n        const alarms = JSON.parse(localStorage.getItem('v21_alarms') || '[]');\n        let html = '';\n        if (alarms.length > 0) {\n            alarms.forEach((item, index) => {\n                html += `<tr>\n                    <td><strong>${item.a}<\/strong><\/td>\n                    <td>${parseFloat(item.p).toLocaleString('tr-TR')} \u20ba<\/td>\n                    <td>${item.m}<\/td>\n                    <td><button class=\"btn-delete\" onclick=\"deleteV21(${index})\">Sil<\/button><\/td>\n                <\/tr>`;\n            });\n        } else {\n            html = '<tr><td colspan=\"4\" style=\"text-align:center;\">Hen\u00fcz alarm kurulmad\u0131 (sadece bu taray\u0131c\u0131da g\u00f6r\u00fcn\u00fcr).<\/td><\/tr>';\n        }\n        document.getElementById('v21_log').innerHTML = html;\n    }\n\n    function saveV21() {\n        const asset = document.getElementById('al_asset').value;\n        const price = parseFloat(document.getElementById('al_price').value);\n        const mail = document.getElementById('al_mail').value.trim();\n        if (!asset || isNaN(price) || price <= 0 || !mail) {\n            return alert(\"T\u00fcm alanlar\u0131 doldurun!\");\n        }\n\n        let alarms = JSON.parse(localStorage.getItem('v21_alarms') || '[]');\n        alarms.push({ a: asset, p: price, m: mail, t: Date.now() });\n        localStorage.setItem('v21_alarms', JSON.stringify(alarms));\n\n        document.getElementById('btnSave').innerText = \"Alarm\u0131 Aktif Et\";\n        document.getElementById('al_price').value = '';\n        document.getElementById('al_mail').value = '';\n        loadV21();\n        alert('Alarm kuruldu! Sadece bu taray\u0131c\u0131da g\u00f6r\u00fcnecek.');\n    }\n\n    function deleteV21(index) {\n        let alarms = JSON.parse(localStorage.getItem('v21_alarms') || '[]');\n        alarms.splice(index, 1);\n        localStorage.setItem('v21_alarms', JSON.stringify(alarms));\n        loadV21();\n    }\n\n    async function checkAlarmsAndNotify() {\n        const alarms = JSON.parse(localStorage.getItem('v21_alarms') || '[]');\n        if (alarms.length === 0) return;\n\n        try {\n            const cgRes = await fetch('https:\/\/api.coingecko.com\/api\/v3\/simple\/price?ids=bitcoin,ethereum,gram-gold,gram-silver&vs_currencies=try');\n            const cgData = await cgRes.json();\n\n            const tcmbRes = await fetch('https:\/\/www.tcmb.gov.tr\/kurlar\/today.xml');\n            const tcmbText = await tcmbRes.text();\n            const parser = new DOMParser();\n            const xml = parser.parseFromString(tcmbText, \"text\/xml\");\n            const usdNode = xml.querySelector('Currency[CurrencyCode=\"USD\"] ForexSelling');\n            const dolar = usdNode ? parseFloat(usdNode.textContent) : 0;\n\n            const prices = {\n                Alt\u0131n: cgData['gram-gold']?.try || 0,\n                G\u00fcm\u00fc\u015f: cgData['gram-silver']?.try || 0,\n                Bitcoin: cgData.bitcoin?.try || 0,\n                Dolar: dolar\n            };\n\n            alarms.forEach((alarm, i) => {\n                const current = prices[alarm.a] || 0;\n                if (current >= alarm.p && current > 0) {\n                    jQuery.post('https:\/\/piyasaozet.com\/wp-admin\/admin-ajax.php', {\n                        action: 'send_v21_alarm_mail',\n                        info: alarm,\n                        current: current\n                    }, function(res) {\n                        if (res.success) {\n                            alarms.splice(i, 1);\n                            localStorage.setItem('v21_alarms', JSON.stringify(alarms));\n                            loadV21();\n                            alert(`Alarm tetiklendi: ${alarm.a} - ${current} \u20ba`);\n                        }\n                    });\n                }\n            });\n        } catch (e) {\n            console.warn('Alarm kontrol hatas\u0131:', e);\n        }\n    }\n\n    window.onload = function() {\n        loadV21();\n        setInterval(updateLivePrices, 60000);\n        setInterval(checkAlarmsAndNotify, 300000);\n        checkAlarmsAndNotify();\n    };\n    <\/script>\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","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":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","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-30","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/piyasaozet.com\/index.php?rest_route=\/wp\/v2\/pages\/30","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/piyasaozet.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/piyasaozet.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/piyasaozet.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/piyasaozet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=30"}],"version-history":[{"count":1,"href":"https:\/\/piyasaozet.com\/index.php?rest_route=\/wp\/v2\/pages\/30\/revisions"}],"predecessor-version":[{"id":31,"href":"https:\/\/piyasaozet.com\/index.php?rest_route=\/wp\/v2\/pages\/30\/revisions\/31"}],"wp:attachment":[{"href":"https:\/\/piyasaozet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=30"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}