Who We Are
EMKAP may be synonymous with a pursuit for the highest standards in the field of investment, safekeeping, and securities brokerage. With a deep-rooted understanding of both high-yield and emerging market bonds, our network spans wide across global counterparties—from established western institutions to emerging market innovators. Our commitment to a transparent, client-focused approach ensures that your investment strategy is not only secure but also positioned for growth in a dynamic global marketplace.
Download the app
Stay connected with your investments anytime, anywhere. Our mobile app provides real-time market updates, secure trading, and portfolio management at your fingertips.
Open an Account
Streamlined Onboarding A setup with EMKAP is simple. Our step-by-step process ensures you are ready to invest with confidence.
2
4
1
2
3
4
5
Frequently Asked Questions
Have Questions? We’re Here to Help
How do I open an account?
Our KYC process is designed to be straightforward. Please follow the guided steps on our “Open an Account” page.
How do I transfer funds?
Funds may be transferred via bank wire or securities delivery; please note that cash deposits are not accepted.
Where can I see my investments?
Clients have access to a secure, user-friendly client portal and trading application, with detailed trade and holdings confirmations provided regularly and available upon request.
How do I submit instructions?
Trade or Settlement instructions can be submitted via our client portal or trading application, as well as via various authorised communication mediums.
Careers
Markets Today
<div class="finlogix-lazy-container" id="finlogix-lazy-widget"> <div class="finlogix-placeholder" id="finlogix-placeholder"> <div class="loading-spinner" id="loading-spinner" style="display: none;"></div> <p id="placeholder-text">📊 Financial data widget will load when visible</p> </div> <div class="finlogix-container" id="finlogix-container"></div> </div>
.finlogix-lazy-container { min-height: 400px; position: relative; border: 1px solid #e0e0e0; border-radius: 8px; background-color: #f9f9f9; } .finlogix-placeholder { display: flex; align-items: center; justify-content: center; height: 100%; min-height: 400px; flex-direction: column; color: #666; font-family: Arial, sans-serif; } .loading-spinner { width: 40px; height: 40px; border: 4px solid #f3f3f3; border-top: 4px solid #3498db; border-radius: 50%; animation: spin 1s linear infinite; margin-bottom: 15px; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .finlogix-container { opacity: 0; transition: opacity 0.3s ease-in-out; } .finlogix-container.loaded { opacity: 1; } .symbolListWidgetBox { border:none !important; }
// Debug version of Finlogix Lazy Loader class FinlogixLazyLoader { constructor() { this.widgetLoaded = false; this.observer = null; console.log('FinlogixLazyLoader: Constructor called'); this.init(); } init() { console.log('FinlogixLazyLoader: Initializing...'); // Check if IntersectionObserver is supported if (!window.IntersectionObserver) { console.error('IntersectionObserver not supported, loading widget immediately'); this.loadWidget(); return; } // Create intersection observer this.observer = new IntersectionObserver((entries) => { console.log('FinlogixLazyLoader: Observer triggered', entries); entries.forEach(entry => { console.log('Entry isIntersecting:', entry.isIntersecting, 'widgetLoaded:', this.widgetLoaded); if (entry.isIntersecting && !this.widgetLoaded) { console.log('FinlogixLazyLoader: Element is visible, loading widget...'); this.loadWidget(); } }); }, { rootMargin: '100px', threshold: 0.1 }); // Find the widget container const widgetContainer = document.getElementById('finlogix-lazy-widget'); if (widgetContainer) { console.log('FinlogixLazyLoader: Found widget container, starting observation'); this.observer.observe(widgetContainer); } else { console.error('FinlogixLazyLoader: Widget container not found! Make sure element with ID "finlogix-lazy-widget" exists'); // Try to find alternative containers const alternatives = document.querySelectorAll('.finlogix-lazy-container'); if (alternatives.length > 0) { console.log('Found alternative container, using first one'); alternatives[0].id = 'finlogix-lazy-widget'; this.observer.observe(alternatives[0]); } } } loadWidget() { if (this.widgetLoaded) { console.log('FinlogixLazyLoader: Widget already loaded, skipping'); return; } console.log('FinlogixLazyLoader: Starting widget load process'); this.widgetLoaded = true; // Show loading spinner this.showLoading(); // Load the Finlogix widget script this.loadFinlogixScript() .then(() => { console.log('FinlogixLazyLoader: Script loaded successfully'); // Small delay to ensure script is fully ready setTimeout(() => { this.initializeWidget(); }, 500); }) .catch(error => { console.error('FinlogixLazyLoader: Failed to load script:', error); this.showError(); }); // Stop observing once loading starts if (this.observer) { const container = document.getElementById('finlogix-lazy-widget'); if (container) { this.observer.unobserve(container); } } } loadFinlogixScript() { return new Promise((resolve, reject) => { console.log('FinlogixLazyLoader: Checking if Widget script already exists'); // Check if script is already loaded if (window.Widget && typeof window.Widget.init === 'function') { console.log('FinlogixLazyLoader: Widget script already loaded'); resolve(); return; } // Check if script tag already exists const existingScript = document.querySelector('script[src*="widget.finlogix.com"]'); if (existingScript) { console.log('FinlogixLazyLoader: Script tag exists, waiting for load'); existingScript.onload = resolve; existingScript.onerror = reject; return; } console.log('FinlogixLazyLoader: Creating new script tag'); const script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'https://widget.finlogix.com/Widget.js'; script.onload = () => { console.log('FinlogixLazyLoader: Script loaded from CDN'); resolve(); }; script.onerror = (error) => { console.error('FinlogixLazyLoader: Script failed to load:', error); reject(error); }; document.head.appendChild(script); }); } initializeWidget() { console.log('FinlogixLazyLoader: Initializing widget...'); try { // Double check that Widget is available if (!window.Widget || typeof window.Widget.init !== 'function') { throw new Error('Widget object not available'); } console.log('FinlogixLazyLoader: Widget object found, calling init'); // Initialize the Finlogix widget Widget.init({ widgetId: "1bc69679-f7c8-4221-bbae-57ff94c17f29", type: "SymbolList", language: "en", showBrand: true, isShowTradeButton: true, isShowBeneathLink: true, isShowDataFromACYInfo: true, showColumns: [ "SYMBOL", "BID", "ASK", "SPREAD", "CHANGE", "CHANGE %", "OPEN", "LOW", "HIGH", "PREVIOUS" ], categoryList: [ { type: "Forex", symbols: [ { symbolId: "5", symbolName: "AUD/USD" }, { symbolId: "19", symbolName: "EUR/USD" }, { symbolId: "25", symbolName: "GBP/USD" }, { symbolId: "29", symbolName: "NZD/USD" }, { symbolId: "31", symbolName: "USD/CAD" }, { symbolId: "32", symbolName: "USD/CHF" }, { symbolId: "33", symbolName: "USD/CNH" }, { symbolId: "34", symbolName: "USD/HKD" }, { symbolId: "36", symbolName: "USD/JPY" }, { symbolId: "37", symbolName: "USD/MXN" } ] }, { type: "Commodities", symbols: [ { symbolId: "44", symbolName: "XAU/USD" }, { symbolId: "43", symbolName: "XAG/USD" }, { symbolId: "113", symbolName: "COPPER" }, { symbolId: "45", symbolName: "WTI" }, { symbolId: "70", symbolName: "BRENT" }, { symbolId: "117", symbolName: "GAS" }, { symbolId: "116", symbolName: "NICKEL" }, { symbolId: "118", symbolName: "ALUMINIUM" }, { symbolId: "114", symbolName: "LEAD" }, { symbolId: "115", symbolName: "ZINC" } ] }, { type: "Cryptocurrency", symbols: [ { symbolId: "66", symbolName: "BTC/USD" }, { symbolId: "67", symbolName: "ETH/USD" }, { symbolId: "69", symbolName: "XRP/USD" }, { symbolId: "121", symbolName: "DOT/USD" }, { symbolId: "68", symbolName: "LTC/USD" }, { symbolId: "120", symbolName: "XLM/USD" }, { symbolId: "122", symbolName: "EOS/USD" }, { symbolId: "65", symbolName: "BCH/USD" }, { symbolId: "119", symbolName: "LNK/USD" } ] }, { type: "Indices", symbols: [ { symbolId: "50", symbolName: "NAS100" }, { symbolId: "51", symbolName: "DJ30" }, { symbolId: "52", symbolName: "SP500" }, { symbolId: "71", symbolName: "AUS200" }, { symbolId: "77", symbolName: "CHINA50" }, { symbolId: "79", symbolName: "CHINAH" }, { symbolId: "73", symbolName: "FR40" }, { symbolId: "53", symbolName: "GER30" }, { symbolId: "74", symbolName: "HK50" }, { symbolId: "83", symbolName: "INDIA50" } ] }, { type: "Stocks", symbols: [ { symbolId: "10007", symbolName: "Apple" }, { symbolId: "10029", symbolName: "Microsoft" }, { symbolId: "10004", symbolName: "Alphabet" }, { symbolId: "10006", symbolName: "Amazon" }, { symbolId: "10014", symbolName: "Tesla" }, { symbolId: "20010", symbolName: "UnitedHealth" }, { symbolId: "20090", symbolName: "Johnson&Johnson" }, { symbolId: "20043", symbolName: "Visa" }, { symbolId: "10028", symbolName: "MetaPlatformsInc" }, { symbolId: "20045", symbolName: "ExxonMobil" } ] }, { type: "ETFs", symbols: [ { symbolId: "50008", symbolName: "AAA" }, { symbolId: "50002", symbolName: "ACDC" }, { symbolId: "40001", symbolName: "ACWI" }, { symbolId: "60103", symbolName: "ACWV" }, { symbolId: "40015", symbolName: "ACWX" }, { symbolId: "60104", symbolName: "AFK" }, { symbolId: "60105", symbolName: "AGG" }, { symbolId: "60008", symbolName: "AMLP" }, { symbolId: "60028", symbolName: "ARKF" }, { symbolId: "60035", symbolName: "ARKG" } ] }, { type: "Futures", symbols: [] } ], isAdaptive: true }); console.log('FinlogixLazyLoader: Widget.init() called successfully'); // Wait for widget to render, then show it setTimeout(() => { console.log('FinlogixLazyLoader: Showing widget after delay'); this.showWidget(); }, 2000); // Increased delay to 2 seconds } catch (error) { console.error('FinlogixLazyLoader: Failed to initialize widget:', error); this.showError(); } } showLoading() { console.log('FinlogixLazyLoader: Showing loading state'); const placeholder = document.getElementById('finlogix-placeholder'); const spinner = document.getElementById('loading-spinner'); const text = document.getElementById('placeholder-text'); if (spinner) { spinner.style.display = 'block'; console.log('FinlogixLazyLoader: Loading spinner shown'); } else { console.warn('FinlogixLazyLoader: Loading spinner element not found'); } if (text) { text.textContent = 'Loading financial data...'; console.log('FinlogixLazyLoader: Loading text updated'); } else { console.warn('FinlogixLazyLoader: Placeholder text element not found'); } } showWidget() { console.log('FinlogixLazyLoader: Attempting to show widget'); const placeholder = document.getElementById('finlogix-placeholder'); const container = document.getElementById('finlogix-container'); if (placeholder) { placeholder.style.display = 'none'; console.log('FinlogixLazyLoader: Placeholder hidden'); } else { console.warn('FinlogixLazyLoader: Placeholder element not found'); } if (container) { container.classList.add('loaded'); console.log('FinlogixLazyLoader: Container marked as loaded'); } else { console.warn('FinlogixLazyLoader: Container element not found'); } // Check if widget actually rendered setTimeout(() => { const widgetContent = container ? container.innerHTML : ''; if (widgetContent.trim() === '') { console.warn('FinlogixLazyLoader: Widget container appears empty after loading'); this.showError(); } else { console.log('FinlogixLazyLoader: Widget appears to have loaded successfully'); } }, 1000); } showError() { console.log('FinlogixLazyLoader: Showing error state'); const text = document.getElementById('placeholder-text'); const spinner = document.getElementById('loading-spinner'); if (spinner) spinner.style.display = 'none'; if (text) text.textContent = '❌ Failed to load widget. Please refresh the page.'; } } // Multiple initialization methods to ensure it runs console.log('Script loaded, preparing to initialize FinlogixLazyLoader'); function initializeLazyLoader() { console.log('Initializing FinlogixLazyLoader...'); window.finlogixLoader = new FinlogixLazyLoader(); } // Method 1: DOM ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initializeLazyLoader); } else if (document.readyState === 'interactive' || document.readyState === 'complete') { // DOM is already ready initializeLazyLoader(); } // Method 2: Window load (backup) window.addEventListener('load', () => { if (!window.finlogixLoader) { console.log('Backup initialization on window load'); initializeLazyLoader(); } }); // Method 3: Immediate execution after delay (last resort) setTimeout(() => { if (!window.finlogixLoader) { console.log('Emergency initialization after timeout'); initializeLazyLoader(); } }, 1000);