{"id":14091,"date":"2025-04-04T07:37:01","date_gmt":"2025-04-04T07:37:01","guid":{"rendered":"https:\/\/finpros.com\/forex\/"},"modified":"2025-05-30T13:33:42","modified_gmt":"2025-05-30T13:33:42","slug":"forex","status":"publish","type":"page","link":"https:\/\/finpros.com\/id\/forex\/","title":{"rendered":"Forex"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"14091\" class=\"elementor elementor-14091 elementor-3910\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-514f29bf e-con-full calculator-sub-banner e-flex e-con e-parent\" data-id=\"514f29bf\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-30eed3a2 e-con-full e-flex e-con e-child\" data-id=\"30eed3a2\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6a6ca28b elementor-widget elementor-widget-heading\" data-id=\"6a6ca28b\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Forex<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-57a15859 elementor-widget elementor-widget-heading\" data-id=\"57a15859\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Dapatkan akses ke pasar mata uang global dengan eksekusi cepat dan spread yang adil<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-34317d48 e-con-full e-flex e-con e-child\" data-id=\"34317d48\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-2683f422 e-flex e-con-boxed e-con e-child\" data-id=\"2683f422\" 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-70596323 elementor-align-left calc-banner-link bread-links elementor-widget elementor-widget-breadcrumbs\" data-id=\"70596323\" data-element_type=\"widget\" data-widget_type=\"breadcrumbs.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p id=\"breadcrumbs\"><span><span><a href=\"https:\/\/finpros.com\/\">Beranda<\/a><\/span><\/span><\/p>\t\t\t\t<\/div>\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\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-82cac15 e-flex e-con-boxed e-con e-parent\" data-id=\"82cac15\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-4cfa9f9 e-con-full e-flex e-con e-child\" data-id=\"4cfa9f9\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-035247e elementor-widget elementor-widget-heading\" data-id=\"035247e\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Tentang <span>Perdagangan Forex<\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ba5d5b3 elementor-widget elementor-widget-text-editor\" data-id=\"ba5d5b3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Forex, atau valuta asing, adalah pasar keuangan terbesar di dunia. Menurut Bank for International Settlements (BIS), volume perdagangan global harian mencapai $7,51 triliun pada April 2022-dan masih terus berkembang. <br><br>Pasangan mata uang biasanya diklasifikasikan sebagai mayor, minor, atau eksotis.<br><br>Pasangan mayor terdiri dari mata uang yang paling banyak diperdagangkan secara global, selalu menyertakan USD-seperti EUR\/USD, GBP\/USD, atau USD\/JPY. Pasangan minor menampilkan mata uang utama yang dipasangkan tanpa USD-seperti EUR\/GBP, GBP\/JPY, atau AUD\/CAD. <br><br>Pasangan eksotis menggabungkan mata uang utama dengan mata uang dari pasar yang sedang berkembang atau kurang diperdagangkan-seperti USD\/TRY, USD\/MXN, atau EUR\/HUF.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-71694de elementor-align-left elementor-widget__width-auto btn-arrow-rotate elementor-widget elementor-widget-button\" data-id=\"71694de\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/my.finpros.com\/register\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-arrow-right\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Mulai Trading Hari Ini<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-368c841 e-con-full e-flex e-con e-child\" data-id=\"368c841\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c9c4a38 elementor-widget elementor-widget-image\" data-id=\"c9c4a38\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"525\" height=\"362\" src=\"https:\/\/finpros.com\/wp-content\/uploads\/2025\/05\/Rectangle-1.png\" class=\"attachment-large size-large wp-image-10112\" alt=\"\" srcset=\"https:\/\/finpros.com\/wp-content\/uploads\/2025\/05\/Rectangle-1.png 571w, https:\/\/finpros.com\/wp-content\/uploads\/2025\/05\/Rectangle-1-300x207.png 300w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-651f743 e-con-full e-flex e-con e-parent\" data-id=\"651f743\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0dbe799 elementor-widget elementor-widget-heading\" data-id=\"0dbe799\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Perdagangan Forex<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1b89ca2 elementor-widget elementor-widget-text-editor\" data-id=\"1b89ca2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Daftar <b>Harga <\/b>Teratas di Pasar<\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3366d57 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3366d57\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b9a34a2\" data-id=\"b9a34a2\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8e30713 new-table-cs elementor-widget elementor-widget-shortcode\" data-id=\"8e30713\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n<!-- Chart Library -->\n<script src=\"https:\/\/unpkg.com\/lightweight-charts@3.8.0\/dist\/lightweight-charts.standalone.production.js\"><\/script>\n\n<!-- Custom CSS for full-width tabs -->\n<style type=\"text\/css\">\n    \/* Make tabs cover full length *\/\n    .mt5-data-viewer-container .category-tabs {\n        display: flex;\n        width: 100%;\n        margin-bottom: 15px;\n        border-bottom: 1px solid #ddd;\n    }\n    \n    .mt5-data-viewer-container .category-tab {\n        flex: 1;\n        text-align: center;\n        padding: 10px 5px;\n        background-color: #f8f8f8;\n        border: 1px solid #ddd;\n        border-bottom: none;\n        cursor: pointer;\n        margin: 0 2px;\n        border-radius: 5px 5px 0 0;\n        font-weight: normal;\n        transition: all 0.3s ease;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    \/* Category Icon Styles *\/\n    .mt5-data-viewer-container .category-icon {\n        width: 20px;\n        height: 20px;\n        margin-right: 7px;\n        display: inline-block;\n        background-size: contain;\n        background-position: center;\n        background-repeat: no-repeat;\n        vertical-align: middle;\n        filter: brightness(0); \/* Make icons take their color from parent *\/\n    }\n    \n    .mt5-data-viewer-container .icon-popular {\n        background-image: url('https:\/\/finpros.com\/wp-content\/plugins\/mt5-data-viewer\/assets\/icons\/popular.svg');\n    }\n    \n    .mt5-data-viewer-container .icon-forex {\n        background-image: url('https:\/\/finpros.com\/wp-content\/plugins\/mt5-data-viewer\/assets\/icons\/forex.svg');\n    }\n    \n    .mt5-data-viewer-container .icon-metals {\n        background-image: url('https:\/\/finpros.com\/wp-content\/plugins\/mt5-data-viewer\/assets\/icons\/metals.svg');\n    }\n    \n    .mt5-data-viewer-container .icon-energy {\n        background-image: url('https:\/\/finpros.com\/wp-content\/plugins\/mt5-data-viewer\/assets\/icons\/energy.svg');\n    }\n    \n    .mt5-data-viewer-container .icon-indices {\n        background-image: url('https:\/\/finpros.com\/wp-content\/plugins\/mt5-data-viewer\/assets\/icons\/indices.svg');\n    }\n    \n    .mt5-data-viewer-container .icon-crypto {\n        background-image: url('https:\/\/finpros.com\/wp-content\/plugins\/mt5-data-viewer\/assets\/icons\/crypto.svg');\n    }\n    \n    .mt5-data-viewer-container .icon-stocks {\n        background-image: url('https:\/\/finpros.com\/wp-content\/plugins\/mt5-data-viewer\/assets\/icons\/stocks.svg');\n    }\n    \n    \/* Tab States *\/\n    .mt5-data-viewer-container .category-tab {\n        color: #555;\n    }\n    \n    .mt5-data-viewer-container .category-tab:hover {\n        color: #333;\n        background-color: #f0f0f0;\n    }\n    \n    .mt5-data-viewer-container .category-tab.active {\n        color: #0073aa;\n        background-color: #ffffff;\n        border-bottom: 2px solid #0073aa;\n        font-weight: bold;\n    }\n    \n    .mt5-data-viewer-container .category-tab:hover .category-icon {\n        filter: brightness(0); \/* Black for hover *\/\n    }\n    \n    .mt5-data-viewer-container .category-tab.active .category-icon {\n        filter: brightness(0) invert(48%) sepia(85%) saturate(2245%) hue-rotate(175deg) brightness(90%) contrast(101%); \/* Blue color for active *\/\n    }\n    \n    \/* Make timeframe tabs cover full length *\/\n    .mt5-data-viewer-container .timeframe-selector {\n        display: flex;\n        width: 100%;\n        margin: 10px 0;\n    }\n    \n    .mt5-data-viewer-container .timeframe-btn {\n        flex: 1;\n        text-align: center;\n        padding: 6px 3px;\n        background-color: #f8f8f8;\n        border: 1px solid #ddd;\n        cursor: pointer;\n        margin: 0 2px;\n        border-radius: 3px;\n        font-size: 13px;\n        transition: all 0.3s ease;\n    }\n    \n    .mt5-data-viewer-container .timeframe-btn:hover {\n        background-color: #f0f0f0;\n    }\n    \n    .mt5-data-viewer-container .timeframe-btn.active {\n        background-color: #0073aa;\n        color: white;\n        border-color: #0073aa;\n    }\n    \n    \/* Improve table styling *\/\n    .mt5-data-viewer-container .mt5-market-table {\n        width: 100%;\n        border-collapse: collapse;\n    }\n    \n    .mt5-data-viewer-container .mt5-market-table th {\n        background-color: #f2f2f2;\n        padding: 10px;\n        text-align: left;\n        border-bottom: 2px solid #ddd;\n    }\n    \n    .mt5-data-viewer-container .mt5-market-table td {\n        padding: 8px 10px;\n        border-bottom: 1px solid #eee;\n    }\n    \n    .mt5-data-viewer-container .mt5-market-table tr:hover {\n        background-color: #f9f9f9;\n    }\n    \n    \/* Style for graph buttons *\/\n    .mt5-data-viewer-container .view-chart-btn,\n    .mt5-data-viewer-container .trade-btn {\n        display: inline-block;\n        background-color: #0073aa;\n        color: white;\n        border: none;\n        padding: 6px 12px;\n        border-radius: 4px;\n        cursor: pointer;\n        width: 100%;\n        box-sizing: border-box;\n        text-align: center;\n    }\n    \n    .mt5-data-viewer-container .view-chart-btn:hover,\n    .mt5-data-viewer-container .trade-btn:hover {\n        background-color: #005177;\n    }\n    \n    \/* Loading overlay for market data *\/\n    .mt5-data-viewer-container .loading-overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        background-color: rgba(255, 255, 255, 0.9);\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n        align-items: center;\n        z-index: 10;\n        min-height: 200px;\n    }\n    \n    .mt5-data-viewer-container .market-data-container {\n        position: relative;\n        min-height: 200px;\n    }\n    \n    .mt5-data-viewer-container .loading-overlay .spinner {\n        width: 40px;\n        height: 40px;\n        border: 3px solid rgba(0, 115, 170, 0.3);\n        border-radius: 50%;\n        border-top-color: #0073aa;\n        animation: spin 1s ease-in-out infinite;\n        margin-bottom: 15px;\n    }\n    \n    .mt5-data-viewer-container .loading-overlay p {\n        margin: 0;\n        color: #555;\n        font-size: 14px;\n    }\n    \n    @keyframes spin {\n        to { transform: rotate(360deg); }\n    }\n\n    \/* Loading spinner for chart *\/\n    .mt5-data-viewer-container .chart-spinner {\n        display: inline-block;\n        width: 40px;\n        height: 40px;\n        margin: 40px auto;\n        border: 3px solid rgba(0, 115, 170, 0.3);\n        border-radius: 50%;\n        border-top-color: #0073aa;\n        animation: chart-spin 1s ease-in-out infinite;\n    }\n    \n    @keyframes chart-spin {\n        to { transform: rotate(360deg); }\n    }\n    \n    .mt5-data-viewer-container .chart-loading-container {\n        width: 100%;\n        height: 200px;\n        display: flex;\n        justify-content: center;\n        align-items: center;\n        background-color: rgba(255, 255, 255, 0.8);\n    }\n    \n    \/* Responsive styles for smaller screens *\/\n    @media (max-width: 768px) {\n        .mt5-data-viewer-container .category-tab {\n            padding: 8px 5px;\n            font-size: 14px;\n        }\n        \n        .mt5-data-viewer-container .category-icon {\n            width: 16px;\n            height: 16px;\n            margin-right: 5px;\n        }\n    }\n    \n    @media (max-width: 480px) {\n        .mt5-data-viewer-container .category-tab {\n            padding: 8px 3px;\n            font-size: 12px;\n        }\n        \n        .mt5-data-viewer-container .category-icon {\n            width: 14px;\n            height: 14px;\n            margin-right: 3px;\n        }\n    }\n<\/style>\n\n<div id=\"mt5-data-viewer-69e01fe53316a\" class=\"mt5-data-viewer-container\">\n    \n    <!-- Category Tabs -->\n    <div class=\"category-tabs\"><button class=\"category-tab active\" data-category=\"forex\"><span class=\"category-icon icon-forex\"><\/span>Valas<\/button><\/div>    \n    <!-- Market Data Table -->\n    <div class=\"market-data-container\">\n        <div class=\"loading-overlay\">\n            <div class=\"spinner\"><\/div>\n            <p>Memuat data pasar...<\/p>\n        <\/div>\n        <div class=\"market-data-content\"><\/div>\n    <\/div>\n    \n        <!-- Chart Container -->\n    <div class=\"chart-container\" style=\"display: none;\">\n        <div class=\"chart-header\">\n            <h3 class=\"chart-symbol-name\"><\/h3>\n            <button class=\"close-chart-btn\">&times;<\/button>\n        <\/div>\n        \n        <!-- Timeframe Selector -->\n        <div class=\"timeframe-selector\"><button class=\"timeframe-btn\" data-timeframe=\"M1\">M1<\/button><button class=\"timeframe-btn\" data-timeframe=\"M5\">M5<\/button><button class=\"timeframe-btn\" data-timeframe=\"M15\">M15<\/button><button class=\"timeframe-btn\" data-timeframe=\"M30\">M30<\/button><button class=\"timeframe-btn\" data-timeframe=\"H1\">H1<\/button><button class=\"timeframe-btn\" data-timeframe=\"H4\">H4<\/button><button class=\"timeframe-btn active\" data-timeframe=\"D1\">D1<\/button><button class=\"timeframe-btn\" data-timeframe=\"W1\">W1<\/button><button class=\"timeframe-btn\" data-timeframe=\"MN\">MN<\/button><\/div>        \n        <!-- Chart Element -->\n        <div class=\"chart-element\"><\/div>\n        \n        <!-- Update Status -->\n        <div class=\"chart-update-status\" style=\"text-align: right; font-size: 12px; color: #888; padding: 5px;\"><\/div>\n    <\/div>\n        \n    <!-- Error Message Container -->\n    <div class=\"error-message\" style=\"display: none;\"><\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\n\/* <![CDATA[ *\/\njQuery(document).ready(function($) {\n    \/\/ Configuration variables from PHP - directly included without escaping\n    var containerId = 'mt5-data-viewer-69e01fe53316a';\n    var container = $('#' + containerId);\n    var defaultCategory = 'forex';\n    var ajaxUrl = 'https:\/\/finpros.com\/wp-admin\/admin-ajax.php';\n    var nonce = 'fb112200ae';\n    var refreshRate = 3000;\n    var defaultTimeframe = 'D1';\n    \n    \/\/ Chart-related variables\n    var activeSymbol = null;\n    var activeTimeframe = null;\n    var chartObj = null;\n    var candleSeriesObj = null;\n    var updaterTimer = null;\n    var lastUpdateTime = 0;\n    \n    \/\/ Initialize market data\n    loadMarketData(defaultCategory);\n    \n    \/\/ === EVENT HANDLERS ===\n    \n    \/\/ Category tabs\n    container.find('.category-tab').on('click', function() {\n        var category = $(this).data('category');\n        container.find('.category-tab').removeClass('active');\n        $(this).addClass('active');\n        loadMarketData(category);\n    });\n    \n    \/\/ View chart button\n    container.on('click', '.view-chart-btn', function() {\n        var symbol = $(this).data('symbol');\n        displayChart(symbol);\n    });\n    \n    \/\/ Close chart button\n    container.find('.close-chart-btn').on('click', function() {\n        closeChart();\n    });\n    \n    \/\/ Timeframe selector\n    container.find('.timeframe-btn').on('click', function() {\n        var timeframe = $(this).data('timeframe');\n        container.find('.timeframe-btn').removeClass('active');\n        $(this).addClass('active');\n        \n        if (activeSymbol) {\n            activeTimeframe = timeframe;\n            \/\/ Use the stored digit count from window.currentSymbolDigits\n            var digits = window.currentSymbolDigits || 5;\n            loadChartData(activeSymbol, timeframe, digits);\n            updateChartStatus(window.MT5DataViewer_getString('timeframeChanged') + ' ' + timeframe);\n        }\n    });\n    \n    \/\/ === MARKET DATA FUNCTIONS ===\n    \n    \/\/ Load market data for category\n    function loadMarketData(category) {\n        container.find('.loading-overlay').show();\n        \n        $.ajax({\n            url: ajaxUrl,\n            type: 'GET',\n            data: {\n                action: 'get_mt5_data',\n                nonce: nonce,\n                category: category\n            },\n            success: function(response) {\n                container.find('.loading-overlay').hide();\n                \n                if (response.success) {\n                    if (response.data) {\n                        var tableHtml = generateMarketTable(response.data);\n                        container.find('.market-data-content').html(tableHtml);\n                        startPriceUpdates();\n                    } else {\n                        showError(window.MT5DataViewer_getString('errorLoadingData') + ': ' + window.MT5DataViewer_getString('noDataAvailable'));\n                    }\n                } else {\n                    showError(window.MT5DataViewer_getString('errorLoadingData') + ': ' + (response.message || window.MT5DataViewer_getString('noDataAvailable')));\n                }\n            },\n            error: function(xhr, status, error) {\n                container.find('.loading-overlay').hide();\n                showError(window.MT5DataViewer_getString('ajaxError') + ': ' + error);\n            }\n        });\n    }\n    \n    \/\/ Generate market table HTML\n    function generateMarketTable(data) {\n        var tableHtml = '<table class=\"mt5-market-table\"><thead><tr><th>Symbol<\/th><th>Bid<\/th><th>Ask<\/th><th>Change<\/th><th>Graph<\/th><th>Action<\/th><\/tr><\/thead><tbody>';\n        \n        for (var symbol in data) {\n            \n            var symbolData = data[symbol];\n            var digits = symbolData.digit || 5;\n            \n            \/\/ Remove . suffix from display name\n            var displaySymbol = symbol.replace(\/\\.$\/, '');\n            \n            tableHtml += '<tr data-symbol=\"' + symbol + '\" data-digit=\"' + digits + '\">';\n            tableHtml += '<td class=\"symbol-name\">' + displaySymbol + '<\/td>';\n            tableHtml += '<td class=\"bid-price\">' + formatPrice(symbolData.bid, digits) + '<\/td>';\n            tableHtml += '<td class=\"ask-price\">' + formatPrice(symbolData.ask, digits) + '<\/td>';\n            tableHtml += '<td class=\"price-change-cell\">' + formatPriceChange(symbolData.bid, symbolData.previous_close) + '<\/td>';\n            tableHtml += '<td class=\"chart-action\"><button class=\"view-chart-btn\" data-symbol=\"' + symbol + '\">Chart<\/button><\/td>';\n            tableHtml += '<td class=\"trade-action\"><button class=\"trade-btn\" data-symbol=\"' + symbol + '\" onclick=\"window.open(\\'https:\/\/my.finpros.com\/login\\', \\'_blank\\')\">Trade<\/button><\/td>';\n            tableHtml += '<\/tr>';\n        }\n        \n        tableHtml += '<\/tbody><\/table>';\n        return tableHtml;\n    }\n    \n    \/\/ Format price with decimals\n    function formatPrice(price, decimals) {\n        return parseFloat(price).toFixed(decimals);\n    }\n    \n    \/\/ Format price change\n    function formatPriceChange(price, previousPrice) {\n        var change = price - previousPrice;\n        var changePercent = previousPrice > 0 ? (change \/ previousPrice) * 100 : 0;\n        \n        var className = change >= 0 ? 'positive' : 'negative';\n        var arrow = change >= 0 ? '\u25b2' : '\u25bc';\n        \n        return '<span class=\"price-change ' + className + '\">' + arrow + ' ' + \n               Math.abs(changePercent).toFixed(2) + '%<\/span>';\n    }\n    \n    \/\/ Start price updates\n    function startPriceUpdates() {\n        if (window.priceUpdateTimer) {\n            clearInterval(window.priceUpdateTimer);\n        }\n        \n        window.priceUpdateTimer = setInterval(function() {\n            updateMarketPrices();\n        }, refreshRate);\n    }\n    \n    \/\/ Update market prices\n    function updateMarketPrices() {\n        var category = container.find('.category-tab.active').data('category');\n        \n        $.ajax({\n            url: ajaxUrl,\n            type: 'GET',\n            data: {\n                action: 'get_mt5_data',\n                nonce: nonce,\n                category: category\n            },\n            success: function(response) {\n                if (response.success) {\n                    if (response.data) {\n                        for (var symbol in response.data) {\n                            var row = container.find('tr[data-symbol=\"' + symbol + '\"]');\n                            var symbolData = response.data[symbol];\n                            \n                            if (row.length) {\n                                if (symbolData) {\n                                    var currentBid = parseFloat(row.find('.bid-price').text()) || 0;\n                                    var currentAsk = parseFloat(row.find('.ask-price').text()) || 0;\n                                    var newBid = formatPrice(symbolData.bid, symbolData.digit || 5);\n                                    var newAsk = formatPrice(symbolData.ask, symbolData.digit || 5);\n                                    \n                                    var bidCell = row.find('.bid-price');\n                                    bidCell.removeClass('price-up price-down');\n                                    if (symbolData.bid > currentBid) {\n                                        bidCell.addClass('price-up');\n                                    } else if (symbolData.bid < currentBid) {\n                                        bidCell.addClass('price-down');\n                                    }\n                                    bidCell.text(newBid);\n                                    \n                                    var askCell = row.find('.ask-price');\n                                    askCell.removeClass('price-up price-down');\n                                    if (symbolData.ask > currentAsk) {\n                                        askCell.addClass('price-up');\n                                    } else if (symbolData.ask < currentAsk) {\n                                        askCell.addClass('price-down');\n                                    }\n                                    askCell.text(newAsk);\n                                    \n                                    row.find('.price-change-cell').html(formatPriceChange(symbolData.bid, symbolData.previous_close));\n                                    \n                                    setTimeout(function(b, a) {\n                                        return function() {\n                                            b.removeClass('price-up price-down');\n                                            a.removeClass('price-up price-down');\n                                        };\n                                    }(bidCell, askCell), 1000);\n                                }\n                            }\n                        }\n                    }\n                }\n            }\n        });\n    }\n    \n    \/\/ === CHART FUNCTIONS ===\n    \n    \/\/ Display chart for symbol\n    function displayChart(symbol) {\n        \/\/ Set active symbol and timeframe\n        activeSymbol = symbol;\n        activeTimeframe = container.find('.timeframe-btn.active').data('timeframe') || defaultTimeframe;\n        \n        \/\/ Determine decimal places from the bid price\n        var digits = 5; \/\/ Default\n        try {\n            var row = container.find('tr[data-symbol=\"' + symbol + '\"]');\n            if (row.length) {\n                var bidPriceCell = row.find('.bid-price');\n                if (bidPriceCell.length) {\n                    var priceText = bidPriceCell.text();\n                    \n                    \/\/ Get digit count from the symbol data if available\n                    var symbolData = row.data('digit');\n                    if (symbolData) {\n                        digits = parseInt(symbolData);\n                    } else {\n                        \/\/ Fallback to counting digits from the price\n                        var dotIndex = priceText.indexOf('.');\n                        if (dotIndex >= 0) {\n                            digits = priceText.length - dotIndex - 1;\n                        }\n                    }\n                }\n            }\n        } catch (error) {\n            console.error(\"Error detecting decimal places:\", error);\n        }\n        \n        \/\/ Ensure digits is a reasonable value between 1 and 10\n        digits = Math.max(1, Math.min(10, digits));\n        \n        \/\/ Store for later use\n        window.currentSymbolDigits = digits;\n        \n        \/\/ Show chart\n        container.find('.chart-container').show();\n        \n        \/\/ Remove . suffix from display name\n        var displaySymbol = symbol.replace('.', '');\n        container.find('.chart-symbol-name').text(displaySymbol);\n        \n        \/\/ Clear chart area\n        container.find('.chart-element').empty();\n        \n        \/\/ Load data\n        loadChartData(symbol, activeTimeframe, digits);\n        \n        \/\/ Start updates\n        startChartUpdater();\n    }\n    \n    \/\/ Close the chart\n    function closeChart() {\n        container.find('.chart-container').hide();\n        \n        \/\/ Clear update timer\n        if (updaterTimer) {\n            clearInterval(updaterTimer);\n            updaterTimer = null;\n        }\n        \n        \/\/ Clear chart\n        if (chartObj) {\n            chartObj.remove();\n            chartObj = null;\n            candleSeriesObj = null;\n        }\n        \n        activeSymbol = null;\n        activeTimeframe = null;\n    }\n    \n    \/\/ Load chart data\n    function loadChartData(symbol, timeframe, digits) {\n        $.ajax({\n            url: ajaxUrl,\n            type: 'GET',\n            data: {\n                action: 'get_mt5_chart_data',\n                nonce: nonce,\n                symbol: symbol,\n                timeframe: timeframe,\n                count: 300\n            },\n            success: function(response) {\n                if (response.success) {\n                    if (response.data) {\n                        if (Array.isArray(response.data)) {\n                            renderChart(response.data, digits);\n                            lastUpdateTime = new Date().getTime();\n                            updateChartStatus(window.MT5DataViewer_getString('chartLoaded'));\n                        } else {\n                            container.find('.chart-element').html('<div style=\"text-align:center;padding:20px;\">' + window.MT5DataViewer_getString('noDataAvailable') + '<\/div>');\n                            updateChartStatus(window.MT5DataViewer_getString('invalidChartData'));\n                        }\n                    } else {\n                        container.find('.chart-element').html('<div style=\"text-align:center;padding:20px;\">' + window.MT5DataViewer_getString('noDataAvailable') + '<\/div>');\n                        updateChartStatus(window.MT5DataViewer_getString('noChartData'));\n                    }\n                } else {\n                    container.find('.chart-element').html('<div style=\"text-align:center;padding:20px;\">' + window.MT5DataViewer_getString('noDataAvailable') + '<\/div>');\n                    updateChartStatus(window.MT5DataViewer_getString('failedToLoadChart'));\n                }\n            },\n            error: function(xhr, status, error) {\n                showError(window.MT5DataViewer_getString('errorLoadingChart') + ': ' + error);\n                updateChartStatus(window.MT5DataViewer_getString('errorLoadingChart'));\n            }\n        });\n    }\n    \n    \/\/ Render chart with data\n    function renderChart(chartData, digits) {\n        var chartElement = container.find('.chart-element')[0];\n        \n        \/\/ Check if library is loaded\n        if (typeof LightweightCharts === 'undefined') {\n            container.find('.chart-element').html('<div style=\"text-align:center;padding:20px;\">' + window.MT5DataViewer_getString('chartLibraryNotLoaded') + '<\/div>');\n            return;\n        }\n        \n        \/\/ Clear previous chart if exists\n        if (chartObj) {\n            chartObj.remove();\n            chartObj = null;\n            candleSeriesObj = null;\n        }\n        \n        \/\/ Determine minMove based on digits (e.g., 0.00001 for 5 digits)\n        var minMove = Math.pow(10, -digits);\n        \n        try {\n            \/\/ Create new chart\n            chartObj = LightweightCharts.createChart(chartElement, {\n                width: chartElement.clientWidth,\n                height: 400,\n                timeScale: {\n                    timeVisible: true,\n                    borderColor: '#D1D4DC',\n                    secondsVisible: false\n                },\n                rightPriceScale: {\n                    borderColor: '#D1D4DC',\n                    entireTextOnly: false,\n                    autoScale: true,\n                    mode: LightweightCharts.PriceScaleMode.Normal,\n                    ticksVisible: true,\n                    minMove: minMove\n                },\n                layout: {\n                    backgroundColor: '#ffffff',\n                    textColor: '#191919',\n                    fontSize: 12\n                },\n                grid: {\n                    horzLines: {\n                        color: '#F0F3FA',\n                    },\n                    vertLines: {\n                        color: '#F0F3FA',\n                    },\n                },\n                crosshair: {\n                    mode: LightweightCharts.CrosshairMode.Normal\n                }\n            });\n            \n            \/\/ Add candlestick series\n            candleSeriesObj = chartObj.addCandlestickSeries({\n                upColor: '#26a69a',\n                downColor: '#ef5350',\n                borderVisible: false,\n                wickUpColor: '#26a69a',\n                wickDownColor: '#ef5350',\n                priceScaleId: 'right',\n                priceFormat: {\n                    type: 'custom',\n                    minMove: minMove,\n                    formatter: function(price) {\n                        \/\/ Format to fixed number of decimal places to maintain trailing zeros\n                        var result = price.toFixed(digits);\n                        return result;\n                    }\n                }\n            });\n            \n            \/\/ Format data\n            var formattedData = formatChartData(chartData);\n            \n            \/\/ Set data\n            candleSeriesObj.setData(formattedData);\n            \n            \/\/ Make responsive\n            window.addEventListener('resize', function() {\n                if (chartObj) {\n                    chartObj.resize(chartElement.clientWidth, 400);\n                }\n            });\n        } catch (err) {\n            showError(window.MT5DataViewer_getString('errorCreatingChart') + ': ' + err.message);\n        }\n    }\n    \n    \/\/ Format chart data\n    function formatChartData(data) {\n        var formattedData = [];\n        \n        for (var i = 0; i < data.length; i++) {\n            var item = data[i];\n            formattedData.push({\n                time: parseInt(item.time, 10),\n                open: parseFloat(item.open),\n                high: parseFloat(item.high),\n                low: parseFloat(item.low),\n                close: parseFloat(item.close)\n            });\n        }\n        \n        return formattedData;\n    }\n    \n    \/\/ Start chart updater\n    function startChartUpdater() {\n        \/\/ Clear previous timer if exists\n        if (updaterTimer) {\n            clearInterval(updaterTimer);\n        }\n        \n        \/\/ Set a new timer\n        updaterTimer = setInterval(function() {\n            if (activeSymbol) {\n                if (activeTimeframe) {\n                    if (chartObj) {\n                        if (candleSeriesObj) {\n                            refreshChartData();\n                        }\n                    }\n                }\n            }\n        }, 3000); \/\/ 3 seconds\n    }\n    \n    \/\/ Refresh chart data\n    function refreshChartData() {\n        \/\/ Get current digits from stored value\n        var digits = window.currentSymbolDigits || 5;\n        \n        $.ajax({\n            url: ajaxUrl,\n            type: 'GET',\n            data: {\n                action: 'get_mt5_chart_data',\n                nonce: nonce,\n                symbol: activeSymbol,\n                timeframe: activeTimeframe,\n                count: 20 \/\/ Just get the most recent candles\n            },\n            success: function(response) {\n                if (response.success) {\n                    if (response.data) {\n                        if (Array.isArray(response.data)) {\n                            if (response.data.length > 0) {\n                                try {\n                                    \/\/ Sort data by time (newest first)\n                                    var sortedData = response.data.sort(function(a, b) {\n                                        return parseInt(b.time, 10) - parseInt(a.time, 10);\n                                    });\n                                    \n                                    \/\/ Only get the newest candle\n                                    var newestCandle = sortedData[0];\n                                    \n                                    if (newestCandle) {\n                                        \/\/ Format the newest candle\n                                        var formattedCandle = {\n                                            time: parseInt(newestCandle.time, 10),\n                                            open: parseFloat(newestCandle.open),\n                                            high: parseFloat(newestCandle.high),\n                                            low: parseFloat(newestCandle.low),\n                                            close: parseFloat(newestCandle.close)\n                                        };\n                                        \n                                        \/\/ Update only the newest candle\n                                        candleSeriesObj.update(formattedCandle);\n                                        \n                                        \/\/ Update status\n                                        lastUpdateTime = new Date().getTime();\n                                        updateChartStatus('Updated ' + timeAgo(lastUpdateTime));\n                                    }\n                                } catch (err) {\n                                    \/\/ Keep this console.error for troubleshooting chart issues\n                                    console.error('Chart update error:', err);\n                                    \n                                    \/\/ If update fails, try to reload the entire chart\n                                    if (err.message && err.message.includes('Cannot update oldest data')) {\n                                        loadChartData(activeSymbol, activeTimeframe, digits);\n                                    }\n                                }\n                            }\n                        }\n                    }\n                }\n            }\n        });\n    }\n    \n    \/\/ Update chart status text\n    function updateChartStatus(message) {\n        var statusEl = container.find('.chart-update-status');\n        statusEl.text(message);\n    }\n    \n    \/\/ Time ago formatter for status updates\n    function timeAgo(timestamp) {\n        var now = new Date().getTime();\n        var diff = Math.floor((now - timestamp) \/ 1000);\n        \n        if (diff < 5) return 'just now';\n        if (diff < 60) return diff + ' seconds ago';\n        \n        return 'recently';\n    }\n    \n    \/\/ Show error message\n    function showError(message) {\n        var errorElement = container.find('.error-message');\n        errorElement.text(message).show();\n        setTimeout(function() {\n            errorElement.hide();\n        }, 5000);\n    }\n});\n\/* ]]> *\/\n<\/script>\n\n <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-cd6b5fc e-flex e-con-boxed e-con e-parent\" data-id=\"cd6b5fc\" 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-dc6e252 elementor-widget elementor-widget-heading\" data-id=\"dc6e252\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Temukan <span>Jawaban<\/span> untuk Pertanyaan Umum <br><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bf287f5 elementor-widget__width-initial elementor-widget elementor-widget-shortcode\" data-id=\"bf287f5\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">            <div class=\"qae-faqs-container qae-faqs-toggle-container\">\n\t\t\t\t\t\t<div id=\"qaef-14342\" class=\"qe-faq-toggle perdagangan\">\n\t\t\t<div class=\"qe-toggle-title\">\n\t\t\t\t<h4>\n\t\t\t\t\t<i class=\"fa fa-minus-circle\"><\/i> Bagaimana cara mengubah kata sandi saya?\t\t\t\t<\/h4>\n\t\t\t<\/div>\n\t\t\t<div class=\"qe-toggle-content\">\n\t\t\t\t<ul>\n<li>Ketuk tombol \u201cMasuk\u201d lalu \u201cLupa kata sandi\u201d<\/li>\n<li>Masukkan email yang Anda daftarkan pada kolom yang tersedia dan tekan tombol \u201cKirim\u201d.<\/li>\n<li>Kami akan mengirimkan tautan melalui email untuk mengubah kata sandi Anda.<\/li>\n<\/ul>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div id=\"qaef-14345\" class=\"qe-faq-toggle perdagangan\">\n\t\t\t<div class=\"qe-toggle-title\">\n\t\t\t\t<h4>\n\t\t\t\t\t<i class=\"fa fa-minus-circle\"><\/i> Bagaimana cara mengubah detail akun saya?\t\t\t\t<\/h4>\n\t\t\t<\/div>\n\t\t\t<div class=\"qe-toggle-content\">\n\t\t\t\t<ul style=\"margin-left: -15px\">\n<li>Ketuk tab \u201cAkun\u201d di kanan bawah, lalu \u201cEdit profil\u201d.<\/li>\n<li>Pada halaman ini Anda dapat mengedit \u201cPegangan pencarian\u201d, \u201cNama sinyal\u201d, dan \u201cPanduan ekuitas\u201d<\/li>\n<\/ul>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div id=\"qaef-14348\" class=\"qe-faq-toggle perdagangan\">\n\t\t\t<div class=\"qe-toggle-title\">\n\t\t\t\t<h4>\n\t\t\t\t\t<i class=\"fa fa-minus-circle\"><\/i> Bagaimana cara mengganti akun trading saya?\t\t\t\t<\/h4>\n\t\t\t<\/div>\n\t\t\t<div class=\"qe-toggle-content\">\n\t\t\t\t<ul style=\"margin-left: -15px\">\n<li>Ketuk tab \u201cAkun\u201d di bagian kanan bawah.<\/li>\n<li>Gulir ke bagian bawah dan ketuk tombol \u201cTautkan akun\u201d.<\/li>\n<li>Masukkan detail akun trading baru Anda.<\/li>\n<\/ul>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t            <\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-09ad42d elementor-align-center elementor-widget__width-auto read-more-link elementor-widget elementor-widget-button\" data-id=\"09ad42d\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/finpros.com\/id\/pertanyaan-umum\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-arrow-right\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Baca Lebih Lanjut<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\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>Dapatkan akses ke pasar mata uang global dengan eksekusi cepat dan spread yang adil Tentang Perdagangan Forex Forex, atau valuta asing, adalah pasar keuangan terbesar di dunia. Menurut Bank for International Settlements (BIS), volume perdagangan global harian mencapai $7,51 triliun pada April 2022-dan masih terus berkembang. Pasangan mata uang biasanya diklasifikasikan sebagai mayor, minor, atau [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"tpl-default-elementor.php","meta":{"footnotes":""},"class_list":["post-14091","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Forex - FinPros<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/finpros.com\/id\/forex\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Forex - FinPros\" \/>\n<meta property=\"og:description\" content=\"Dapatkan akses ke pasar mata uang global dengan eksekusi cepat dan spread yang adil Tentang Perdagangan Forex Forex, atau valuta asing, adalah pasar keuangan terbesar di dunia. Menurut Bank for International Settlements (BIS), volume perdagangan global harian mencapai $7,51 triliun pada April 2022-dan masih terus berkembang. Pasangan mata uang biasanya diklasifikasikan sebagai mayor, minor, atau [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/finpros.com\/id\/forex\/\" \/>\n<meta property=\"og:site_name\" content=\"FinPros\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-30T13:33:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/finpros.com\/wp-content\/uploads\/2025\/05\/Rectangle-1.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 menit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/finpros.com\/id\/forex\/\",\"url\":\"https:\/\/finpros.com\/id\/forex\/\",\"name\":\"Forex - FinPros\",\"isPartOf\":{\"@id\":\"https:\/\/finpros.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/finpros.com\/id\/forex\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/finpros.com\/id\/forex\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/finpros.com\/wp-content\/uploads\/2025\/05\/Rectangle-1.png\",\"datePublished\":\"2025-04-04T07:37:01+00:00\",\"dateModified\":\"2025-05-30T13:33:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/finpros.com\/id\/forex\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/finpros.com\/id\/forex\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/finpros.com\/id\/forex\/#primaryimage\",\"url\":\"https:\/\/finpros.com\/wp-content\/uploads\/2025\/05\/Rectangle-1.png\",\"contentUrl\":\"https:\/\/finpros.com\/wp-content\/uploads\/2025\/05\/Rectangle-1.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/finpros.com\/id\/forex\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Beranda\",\"item\":\"https:\/\/finpros.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Forex\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/finpros.com\/#website\",\"url\":\"https:\/\/finpros.com\/\",\"name\":\"FinPros\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/finpros.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/finpros.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"id\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/finpros.com\/#organization\",\"name\":\"FinPros\",\"url\":\"https:\/\/finpros.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/finpros.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/finpros.com\/wp-content\/uploads\/2025\/03\/FinPros-PNG-1.png\",\"contentUrl\":\"https:\/\/finpros.com\/wp-content\/uploads\/2025\/03\/FinPros-PNG-1.png\",\"width\":1050,\"height\":369,\"caption\":\"FinPros\"},\"image\":{\"@id\":\"https:\/\/finpros.com\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Forex - FinPros","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/finpros.com\/id\/forex\/","og_locale":"id_ID","og_type":"article","og_title":"Forex - FinPros","og_description":"Dapatkan akses ke pasar mata uang global dengan eksekusi cepat dan spread yang adil Tentang Perdagangan Forex Forex, atau valuta asing, adalah pasar keuangan terbesar di dunia. Menurut Bank for International Settlements (BIS), volume perdagangan global harian mencapai $7,51 triliun pada April 2022-dan masih terus berkembang. Pasangan mata uang biasanya diklasifikasikan sebagai mayor, minor, atau [&hellip;]","og_url":"https:\/\/finpros.com\/id\/forex\/","og_site_name":"FinPros","article_modified_time":"2025-05-30T13:33:42+00:00","og_image":[{"url":"https:\/\/finpros.com\/wp-content\/uploads\/2025\/05\/Rectangle-1.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Estimasi waktu membaca":"1 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/finpros.com\/id\/forex\/","url":"https:\/\/finpros.com\/id\/forex\/","name":"Forex - FinPros","isPartOf":{"@id":"https:\/\/finpros.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/finpros.com\/id\/forex\/#primaryimage"},"image":{"@id":"https:\/\/finpros.com\/id\/forex\/#primaryimage"},"thumbnailUrl":"https:\/\/finpros.com\/wp-content\/uploads\/2025\/05\/Rectangle-1.png","datePublished":"2025-04-04T07:37:01+00:00","dateModified":"2025-05-30T13:33:42+00:00","breadcrumb":{"@id":"https:\/\/finpros.com\/id\/forex\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/finpros.com\/id\/forex\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/finpros.com\/id\/forex\/#primaryimage","url":"https:\/\/finpros.com\/wp-content\/uploads\/2025\/05\/Rectangle-1.png","contentUrl":"https:\/\/finpros.com\/wp-content\/uploads\/2025\/05\/Rectangle-1.png"},{"@type":"BreadcrumbList","@id":"https:\/\/finpros.com\/id\/forex\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Beranda","item":"https:\/\/finpros.com\/"},{"@type":"ListItem","position":2,"name":"Forex"}]},{"@type":"WebSite","@id":"https:\/\/finpros.com\/#website","url":"https:\/\/finpros.com\/","name":"FinPros","description":"","publisher":{"@id":"https:\/\/finpros.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/finpros.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"id"},{"@type":"Organization","@id":"https:\/\/finpros.com\/#organization","name":"FinPros","url":"https:\/\/finpros.com\/","logo":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/finpros.com\/#\/schema\/logo\/image\/","url":"https:\/\/finpros.com\/wp-content\/uploads\/2025\/03\/FinPros-PNG-1.png","contentUrl":"https:\/\/finpros.com\/wp-content\/uploads\/2025\/03\/FinPros-PNG-1.png","width":1050,"height":369,"caption":"FinPros"},"image":{"@id":"https:\/\/finpros.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/finpros.com\/id\/wp-json\/wp\/v2\/pages\/14091","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/finpros.com\/id\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/finpros.com\/id\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/finpros.com\/id\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/finpros.com\/id\/wp-json\/wp\/v2\/comments?post=14091"}],"version-history":[{"count":0,"href":"https:\/\/finpros.com\/id\/wp-json\/wp\/v2\/pages\/14091\/revisions"}],"wp:attachment":[{"href":"https:\/\/finpros.com\/id\/wp-json\/wp\/v2\/media?parent=14091"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}