It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: http://gutangelegt.com

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.    <meta charset="UTF-8">
  5.    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.    <title>Gutangelegt - Professional Trading Platform</title>
  7.    <link rel="canonical" href="https://gutangelegt.com/" />
  8.    <link rel="preconnect" href="https://fonts.googleapis.com">
  9.    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  10.    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
  11.    <link rel="stylesheet" href="assets/styles.css">
  12. </head>
  13. <body>
  14.    <!-- Header -->
  15.    <header class="header">
  16.        <div class="container">
  17.            <div class="header-content">
  18.                <div class="logo">
  19.                    <i class="fas fa-chart-line"></i>
  20.                    <div class="logo-text">
  21.                        <h1>Gutangelegt</h1>
  22.                        <span>Professional Trading Solutions</span>
  23.                    </div>
  24.                </div>
  25.                
  26.                <nav class="nav">
  27.                    <a href="https://gutangelegt.com/dashboard" class="nav-link active">
  28.                        <i class="fas fa-tachometer-alt"></i>
  29.                        Dashboard
  30.                    </a>
  31.                    <a href="https://gutangelegt.com/markets" class="nav-link">
  32.                        <i class="fas fa-globe"></i>
  33.                        Markets
  34.                    </a>
  35.                    <a href="https://gutangelegt.com/portfolio" class="nav-link">
  36.                        <i class="fas fa-briefcase"></i>
  37.                        Portfolio
  38.                    </a>
  39.                    <a href="https://gutangelegt.com/analytics" class="nav-link">
  40.                        <i class="fas fa-chart-bar"></i>
  41.                        Analytics
  42.                    </a>
  43.                </nav>
  44.  
  45.                <div class="header-actions">
  46.                    <div class="market-status">
  47.                        <span class="status-dot active"></span>
  48.                        <span>Markets Open</span>
  49.                    </div>
  50.                    <button class="btn-notification">
  51.                        <i class="fas fa-bell"></i>
  52.                        <span class="notification-badge">3</span>
  53.                    </button>
  54.                    <div class="user-profile">
  55.                        <img src="https://i.postimg.cc/cLJ6xgxg/trader.jpg" alt="User" class="avatar">
  56.                        <span>John Doe</span>
  57.                        <i class="fas fa-chevron-down"></i>
  58.                    </div>
  59.                </div>
  60.            </div>
  61.        </div>
  62.    </header>
  63.  
  64.    <!-- Main Content -->
  65.    <main class="main">
  66.        <div class="container">
  67.            <!-- Market Overview Section -->
  68.            <section class="market-overview">
  69.                <div class="section-header">
  70.                    <h2>Market Overview</h2>
  71.                    <div class="market-filters">
  72.                      <a href="https://gutangelegt.com/allmarkets" class="filter-btn active">All Markets</a>
  73.                      <a href="https://gutangelegt.com/forex" class="filter-btn">Forex</a>
  74.                      <a href="https://gutangelegt.com/stocks" class="filter-btn">Stocks</a>
  75.                      <a href="https://gutangelegt.com/crypto" class="filter-btn">Crypto</a>
  76.                      <a href="https://gutangelegt.com/commodities" class="filter-btn">Commodities</a>
  77.                      </div>
  78.                </div>
  79.  
  80.                <div class="market-grid">
  81.                    <!-- Market Card 1 -->
  82.                    <div class="market-card">
  83.                        <div class="market-header">
  84.                            <div class="market-info">
  85.                                <h3>EUR/USD</h3>
  86.                                <span class="market-name">Euro / US Dollar</span>
  87.                            </div>
  88.                            <div class="market-change positive">
  89.                                <i class="fas fa-arrow-up"></i>
  90.                                <span>+0.45%</span>
  91.                            </div>
  92.                        </div>
  93.                        <div class="market-price">
  94.                            <span class="current-price">1.0876</span>
  95.                            <span class="price-change">+0.0049</span>
  96.                        </div>
  97.                        <div class="market-chart">
  98.                            <div class="mini-chart positive"></div>
  99.                        </div>
  100.                        <div class="market-actions">
  101.                            <button class="btn-trade btn-buy">Buy</button>
  102.                            <button class="btn-trade btn-sell">Sell</button>
  103.                        </div>
  104.                    </div>
  105.  
  106.                    <!-- Market Card 2 -->
  107.                    <div class="market-card">
  108.                        <div class="market-header">
  109.                            <div class="market-info">
  110.                                <h3>GBP/USD</h3>
  111.                                <span class="market-name">British Pound / US Dollar</span>
  112.                            </div>
  113.                            <div class="market-change negative">
  114.                                <i class="fas fa-arrow-down"></i>
  115.                                <span>-0.23%</span>
  116.                            </div>
  117.                        </div>
  118.                        <div class="market-price">
  119.                            <span class="current-price">1.2654</span>
  120.                            <span class="price-change">-0.0029</span>
  121.                        </div>
  122.                        <div class="market-chart">
  123.                            <div class="mini-chart negative"></div>
  124.                        </div>
  125.                        <div class="market-actions">
  126.                            <button class="btn-trade btn-buy">Buy</button>
  127.                            <button class="btn-trade btn-sell">Sell</button>
  128.                        </div>
  129.                    </div>
  130.  
  131.                    <!-- Market Card 3 -->
  132.                    <div class="market-card">
  133.                        <div class="market-header">
  134.                            <div class="market-info">
  135.                                <h3>BTC/USD</h3>
  136.                                <span class="market-name">Bitcoin / US Dollar</span>
  137.                            </div>
  138.                            <div class="market-change positive">
  139.                                <i class="fas fa-arrow-up"></i>
  140.                                <span>+2.15%</span>
  141.                            </div>
  142.                        </div>
  143.                        <div class="market-price">
  144.                            <span class="current-price">43,250</span>
  145.                            <span class="price-change">+910</span>
  146.                        </div>
  147.                        <div class="market-chart">
  148.                            <div class="mini-chart positive"></div>
  149.                        </div>
  150.                        <div class="market-actions">
  151.                            <button class="btn-trade btn-buy">Buy</button>
  152.                            <button class="btn-trade btn-sell">Sell</button>
  153.                        </div>
  154.                    </div>
  155.  
  156.                    <!-- Market Card 4 -->
  157.                    <div class="market-card">
  158.                        <div class="market-header">
  159.                            <div class="market-info">
  160.                                <h3>XAU/USD</h3>
  161.                                <span class="market-name">Gold / US Dollar</span>
  162.                            </div>
  163.                            <div class="market-change positive">
  164.                                <i class="fas fa-arrow-up"></i>
  165.                                <span>+0.78%</span>
  166.                            </div>
  167.                        </div>
  168.                        <div class="market-price">
  169.                            <span class="current-price">2,045.50</span>
  170.                            <span class="price-change">+15.80</span>
  171.                        </div>
  172.                        <div class="market-chart">
  173.                            <div class="mini-chart positive"></div>
  174.                        </div>
  175.                        <div class="market-actions">
  176.                            <button class="btn-trade btn-buy">Buy</button>
  177.                            <button class="btn-trade btn-sell">Sell</button>
  178.                        </div>
  179.                    </div>
  180.                </div>
  181.            </section>
  182.  
  183.            <!-- Trading Partners Section -->
  184.            <section class="trading-partners">
  185.                <div class="section-header">
  186.                    <h2>Premium Trading Partners</h2>
  187.                    <p>Choose from our carefully selected network of trusted brokers</p>
  188.                </div>
  189.  
  190.                <div class="partners-grid">
  191.                    <!-- Partner Card 1 -->
  192.                    <div class="partner-card">
  193.                        <div class="partner-logo">
  194.                            <img src="web.archive.org/web/20220630005333im_/https-0f047649d8888.jpg" alt="BanxBroker">
  195.                        </div>
  196.                        <div class="partner-content">
  197.                            <h3>BanxBroker</h3>
  198.                            <p>Worldwide stock trading with advanced tools and competitive spreads</p>
  199.                            <div class="partner-features">
  200.                                <span class="feature-tag">Low Spreads</span>
  201.                                <span class="feature-tag">24/7 Support</span>
  202.                                <span class="feature-tag">Advanced Charts</span>
  203.                            </div>
  204.                            <div class="partner-rating">
  205.                                <div class="stars">
  206.                                    <i class="fas fa-star"></i>
  207.                                    <i class="fas fa-star"></i>
  208.                                    <i class="fas fa-star"></i>
  209.                                    <i class="fas fa-star"></i>
  210.                                    <i class="fas fa-star"></i>
  211.                                </div>
  212.                                <span>4.8/5</span>
  213.                            </div>
  214.                            <a href="banxbroker.html" class="btn-partner">Learn More</a>
  215.                        </div>
  216.                    </div>
  217.  
  218.                    <!-- Partner Card 2 -->
  219.                    <div class="partner-card">
  220.                        <div class="partner-logo">
  221.                            <img src="web.archive.org/web/20220630005333im_/https-1ca9ed176b4c38.jpg" alt="BDSwiss">
  222.                        </div>
  223.                        <div class="partner-content">
  224.                            <h3>BDSwiss</h3>
  225.                            <p>Social trading platform with copy trading and crypto support</p>
  226.                            <div class="partner-features">
  227.                                <span class="feature-tag">Social Trading</span>
  228.                                <span class="feature-tag">Crypto CFDs</span>
  229.                                <span class="feature-tag">Copy Tradingc</span>
  230.                            </div>
  231.                            <div class="partner-rating">
  232.                                <div class="stars">
  233.                                    <i class="fas fa-star"></i>
  234.                                    <i class="fas fa-star"></i>
  235.                                    <i class="fas fa-star"></i>
  236.                                    <i class="fas fa-star"></i>
  237.                                    <i class="far fa-star"></i>
  238.                                </div>
  239.                                <span>4.6/5</span>
  240.                            </div>
  241.                            <a href="bdswiss.html" class="btn-partner">Learn More</a>
  242.                        </div>
  243.                    </div>
  244.  
  245.                    <!-- Partner Card 3 -->
  246.                    <div class="partner-card">
  247.                        <div class="partner-logo">
  248.                            <img src="web.archive.org/web/20220630005333im_/https-981876e8685dc8.jpg" alt="FXFlat">
  249.                        </div>
  250.                        <div class="partner-content">
  251.                            <h3>FXFlat</h3>
  252.                            <p>Professional trading platform with comprehensive market access</p>
  253.                            <div class="partner-features">
  254.                                <span class="feature-tag">Professional Tools</span>
  255.                                <span class="feature-tag">Multi-Platform</span>
  256.                                <span class="feature-tag">Research</span>
  257.                            </div>
  258.                            <div class="partner-rating">
  259.                                <div class="stars">
  260.                                    <i class="fas fa-star"></i>
  261.                                    <i class="fas fa-star"></i>
  262.                                    <i class="fas fa-star"></i>
  263.                                    <i class="fas fa-star"></i>
  264.                                    <i class="fas fa-star"></i>
  265.                                </div>
  266.                                <span>4.7/5</span>
  267.                            </div>
  268.                            <a href="fxflat.html" class="btn-partner">Learn More</a>
  269.                        </div>
  270.                    </div>
  271.  
  272.                    <!-- Partner Card 4 -->
  273.                    <div class="partner-card">
  274.                        <div class="partner-logo">
  275.                            <img src="web.archive.org/web/20220630005333im_/https.jpg" alt="eToro">
  276.                        </div>
  277.                        <div class="partner-content">
  278.                            <h3>eToro</h3>
  279.                            <p>Leading social trading network for stocks, crypto, and ETFs</p>
  280.                            <div class="partner-features">
  281.                                <span class="feature-tag">Social Network</span>
  282.                                <span class="feature-tag">Stocks & ETFs</span>
  283.                                <span class="feature-tag">Crypto</span>
  284.                            </div>
  285.                            <div class="partner-rating">
  286.                                <div class="stars">
  287.                                    <i class="fas fa-star"></i>
  288.                                    <i class="fas fa-star"></i>
  289.                                    <i class="fas fa-star"></i>
  290.                                    <i class="fas fa-star"></i>
  291.                                    <i class="fas fa-star"></i>
  292.                                </div>
  293.                                <span>4.9/5</span>
  294.                            </div>
  295.                            <a href="etoro.html" class="btn-partner">Learn More</a>
  296.                        </div>
  297.                    </div>
  298.                </div>
  299.            </section>
  300.  
  301.            <!-- Quick Stats Section -->
  302.            <section class="quick-stats">
  303.                <div class="stats-grid">
  304.                    <div class="stat-card">
  305.                        <div class="stat-icon">
  306.                            <i class="fas fa-chart-line"></i>
  307.                        </div>
  308.                        <div class="stat-content">
  309.                            <h3>Total Volume</h3>
  310.                            <p class="stat-value">$2.4B</p>
  311.                            <span class="stat-change positive">+12.5%</span>
  312.                        </div>
  313.                    </div>
  314.  
  315.                    <div class="stat-card">
  316.                        <div class="stat-icon">
  317.                            <i class="fas fa-users"></i>
  318.                        </div>
  319.                        <div class="stat-content">
  320.                            <h3>Active Traders</h3>
  321.                            <p class="stat-value">45,230</p>
  322.                            <span class="stat-change positive">+8.2%</span>
  323.                        </div>
  324.                    </div>
  325.  
  326.                    <div class="stat-card">
  327.                        <div class="stat-icon">
  328.                            <i class="fas fa-globe"></i>
  329.                        </div>
  330.                        <div class="stat-content">
  331.                            <h3>Markets Available</h3>
  332.                            <p class="stat-value">150+</p>
  333.                            <span class="stat-change positive">+5 new</span>
  334.                        </div>
  335.                    </div>
  336.  
  337.                    <div class="stat-card">
  338.                        <div class="stat-icon">
  339.                            <i class="fas fa-shield-alt"></i>
  340.                        </div>
  341.                        <div class="stat-content">
  342.                            <h3>Success Rate</h3>
  343.                            <p class="stat-value">94.2%</p>
  344.                            <span class="stat-change positive">+2.1%</span>
  345.                        </div>
  346.                    </div>
  347.                </div>
  348.            </section>
  349.        </div>
  350.    </main>
  351.  
  352.    <!-- Footer -->
  353.    <footer class="footer">
  354.        <div class="container">
  355.            <div class="footer-content">
  356.                <div class="footer-section">
  357.                    <div class="footer-logo">
  358.                        <i class="fas fa-chart-line"></i>
  359.                        <span>Gutangelegt</span>
  360.                    </div>
  361.                    <p>Professional trading solutions for modern investors. Access global markets with confidence.</p>
  362.                    <div class="social-links">
  363.                        <a href="#"><i class="fab fa-twitter"></i></a>
  364.                        <a href="#"><i class="fab fa-linkedin"></i></a>
  365.                        <a href="#"><i class="fab fa-facebook"></i></a>
  366.                        <a href="#"><i class="fab fa-instagram"></i></a>
  367.                    </div>
  368.                </div>
  369.  
  370.                <div class="footer-section">
  371.                    <h4>Platform</h4>
  372.                    <ul>
  373.                        <li><a href="https://gutangelegt.com/Dashboard">Dashboard</a></li>
  374.                        <li><a href="https://gutangelegt.com/Markets">Markets</a></li>
  375.                        <li><a href="https://gutangelegt.com/Portfolio">Portfolio</a></li>
  376.                        <li><a href="https://gutangelegt.com/Analytics">Analytics</a></li>
  377.                    </ul>
  378.                </div>
  379.  
  380.                <div class="footer-section">
  381.                    <h4>Support</h4>
  382.                    <ul>
  383.                        <li><a href="#">Help Center</a></li>
  384.                        <li><a href="#">Contact Us</a></li>
  385.                        <li><a href="#">Live Chat</a></li>
  386.                        <li><a href="#">FAQ</a></li>
  387.                    </ul>
  388.                </div>
  389.  
  390.                <div class="footer-section">
  391.                    <h4>Legal</h4>
  392.                    <ul>
  393.                        <li><a href="#Terms">Terms of Service</a></li>
  394.                        <li><a href="#Privacy">Privacy Policy</a></li>
  395.                        <li><a href="#Risk">Risk Disclosure</a></li>
  396.                        <li><a href="#Regulatory/">Regulatory Info</a></li>
  397.                    </ul>
  398.                </div>
  399.            </div>
  400.  
  401.            <div class="footer-bottom">
  402.                <p>&copy; 2025 Gutangelegt. All rights reserved. Professional trading platform.</p>
  403.            </div>
  404.        </div>
  405.    </footer>
  406.  
  407.    <script>
  408.        // Market data simulation with realistic price movements
  409.        class MarketSimulator {
  410.            constructor() {
  411.                this.markets = {
  412.                    'EUR/USD': {
  413.                        basePrice: 1.0876,
  414.                        currentPrice: 1.0876,
  415.                        volatility: 0.0002,
  416.                        trend: 0.0001,
  417.                        lastUpdate: Date.now()
  418.                    },
  419.                    'GBP/USD': {
  420.                        basePrice: 1.2654,
  421.                        currentPrice: 1.2654,
  422.                        volatility: 0.0003,
  423.                        trend: -0.0001,
  424.                        lastUpdate: Date.now()
  425.                    },
  426.                    'BTC/USD': {
  427.                        basePrice: 43250,
  428.                        currentPrice: 43250,
  429.                        volatility: 150,
  430.                        trend: 50,
  431.                        lastUpdate: Date.now()
  432.                    },
  433.                    'XAU/USD': {
  434.                        basePrice: 2045.50,
  435.                        currentPrice: 2045.50,
  436.                        volatility: 2.5,
  437.                        trend: 1.2,
  438.                        lastUpdate: Date.now()
  439.                    }
  440.                };
  441.                
  442.                this.priceHistory = {};
  443.                this.updateInterval = null;
  444.                this.isRunning = false;
  445.                
  446.                // Initialize price history for each market
  447.                Object.keys(this.markets).forEach(market => {
  448.                    this.priceHistory[market] = [];
  449.                    for (let i = 0; i < 20; i++) {
  450.                        this.priceHistory[market].push(this.markets[market].basePrice);
  451.                    }
  452.                });
  453.            }
  454.  
  455.            // Generate realistic price movement using Brownian motion
  456.            generatePriceMovement(market) {
  457.                const data = this.markets[market];
  458.                const timeDiff = (Date.now() - data.lastUpdate) / 1000; // seconds
  459.                
  460.                // Random walk with trend
  461.                const randomFactor = (Math.random() - 0.5) * 2;
  462.                const trendFactor = data.trend * timeDiff;
  463.                const volatilityFactor = data.volatility * Math.sqrt(timeDiff) * randomFactor;
  464.                
  465.                // Calculate new price
  466.                const priceChange = trendFactor + volatilityFactor;
  467.                const newPrice = data.currentPrice + priceChange;
  468.                
  469.                // Ensure price doesn't go negative or too extreme
  470.                const minPrice = data.basePrice * 0.8;
  471.                const maxPrice = data.basePrice * 1.2;
  472.                const clampedPrice = Math.max(minPrice, Math.min(maxPrice, newPrice));
  473.                
  474.                return clampedPrice;
  475.            }
  476.  
  477.            // Update market data
  478.            updateMarket(market) {
  479.                const data = this.markets[market];
  480.                const newPrice = this.generatePriceMovement(market);
  481.                const oldPrice = data.currentPrice;
  482.                
  483.                // Update current price
  484.                data.currentPrice = newPrice;
  485.                data.lastUpdate = Date.now();
  486.                
  487.                // Calculate price change and percentage
  488.                const priceChange = newPrice - oldPrice;
  489.                const priceChangePercent = (priceChange / oldPrice) * 100;
  490.                
  491.                // Update price history
  492.                this.priceHistory[market].push(newPrice);
  493.                if (this.priceHistory[market].length > 20) {
  494.                    this.priceHistory[market].shift();
  495.                }
  496.                
  497.                // Occasionally change trend direction
  498.                if (Math.random() < 0.1) {
  499.                    data.trend = (Math.random() - 0.5) * data.volatility * 0.5;
  500.                }
  501.                
  502.                return {
  503.                    price: newPrice,
  504.                    change: priceChange,
  505.                    changePercent: priceChangePercent,
  506.                    isPositive: priceChange >= 0
  507.                };
  508.            }
  509.  
  510.            // Format price based on market type
  511.            formatPrice(market, price) {
  512.                if (market === 'BTC/USD') {
  513.                    return price.toLocaleString('en-US', {
  514.                        minimumFractionDigits: 0,
  515.                        maximumFractionDigits: 0
  516.                    });
  517.                } else if (market === 'XAU/USD') {
  518.                    return price.toLocaleString('en-US', {
  519.                        minimumFractionDigits: 2,
  520.                        maximumFractionDigits: 2
  521.                    });
  522.                } else {
  523.                    return price.toLocaleString('en-US', {
  524.                        minimumFractionDigits: 4,
  525.                        maximumFractionDigits: 4
  526.                    });
  527.                }
  528.            }
  529.  
  530.            // Format price change
  531.            formatPriceChange(market, change) {
  532.                if (market === 'BTC/USD') {
  533.                    return change >= 0 ? `+${change.toFixed(0)}` : change.toFixed(0);
  534.                } else if (market === 'XAU/USD') {
  535.                    return change >= 0 ? `+${change.toFixed(2)}` : change.toFixed(2);
  536.                } else {
  537.                    return change >= 0 ? `+${change.toFixed(4)}` : change.toFixed(4);
  538.                }
  539.            }
  540.  
  541.            // Start live updates
  542.            start() {
  543.                if (this.isRunning) return;
  544.                
  545.                this.isRunning = true;
  546.                this.updateInterval = setInterval(() => {
  547.                    Object.keys(this.markets).forEach(market => {
  548.                        const update = this.updateMarket(market);
  549.                        this.updateUI(market, update);
  550.                    });
  551.                }, 2000); // Update every 2 seconds
  552.            }
  553.  
  554.            // Stop live updates
  555.            stop() {
  556.                if (this.updateInterval) {
  557.                    clearInterval(this.updateInterval);
  558.                    this.updateInterval = null;
  559.                }
  560.                this.isRunning = false;
  561.            }
  562.  
  563.            // Update UI elements
  564.            updateUI(market, update) {
  565.                const marketCard = document.querySelector(`[data-market="${market}"]`);
  566.                if (!marketCard) return;
  567.  
  568.                // Update price
  569.                const priceElement = marketCard.querySelector('.current-price');
  570.                if (priceElement) {
  571.                    priceElement.textContent = this.formatPrice(market, update.price);
  572.                    
  573.                    // Add flash effect
  574.                    priceElement.style.transition = 'none';
  575.                    priceElement.style.color = update.isPositive ? '#10b981' : '#ef4444';
  576.                    setTimeout(() => {
  577.                        priceElement.style.transition = 'color 0.5s ease';
  578.                        priceElement.style.color = 'var(--text-primary)';
  579.                    }, 100);
  580.                }
  581.  
  582.                // Update price change
  583.                const changeElement = marketCard.querySelector('.price-change');
  584.                if (changeElement) {
  585.                    changeElement.textContent = this.formatPriceChange(market, update.change);
  586.                    changeElement.style.color = update.isPositive ? '#10b981' : '#ef4444';
  587.                }
  588.  
  589.                // Update percentage change
  590.                const percentElement = marketCard.querySelector('.market-change span');
  591.                if (percentElement) {
  592.                    const sign = update.isPositive ? '+' : '';
  593.                    percentElement.textContent = `${sign}${update.changePercent.toFixed(2)}%`;
  594.                }
  595.  
  596.                // Update change indicator
  597.                const changeIndicator = marketCard.querySelector('.market-change');
  598.                if (changeIndicator) {
  599.                    changeIndicator.className = `market-change ${update.isPositive ? 'positive' : 'negative'}`;
  600.                    
  601.                    const icon = changeIndicator.querySelector('i');
  602.                    if (icon) {
  603.                        icon.className = update.isPositive ? 'fas fa-arrow-up' : 'fas fa-arrow-down';
  604.                    }
  605.                }
  606.  
  607.                // Update mini chart
  608.                this.updateMiniChart(marketCard, market, update.isPositive);
  609.            }
  610.  
  611.            // Update mini chart visualization
  612.            updateMiniChart(marketCard, market, isPositive) {
  613.                const chartElement = marketCard.querySelector('.mini-chart');
  614.                if (!chartElement) return;
  615.  
  616.                const prices = this.priceHistory[market];
  617.                const canvas = document.createElement('canvas');
  618.                canvas.width = 200;
  619.                canvas.height = 60;
  620.                canvas.style.width = '100%';
  621.                canvas.style.height = '100%';
  622.                canvas.style.borderRadius = 'var(--radius-sm)';
  623.  
  624.                const ctx = canvas.getContext('2d');
  625.                ctx.clearRect(0, 0, canvas.width, canvas.height);
  626.  
  627.                // Draw chart line
  628.                ctx.strokeStyle = isPositive ? '#10b981' : '#ef4444';
  629.                ctx.lineWidth = 2;
  630.                ctx.beginPath();
  631.  
  632.                const minPrice = Math.min(...prices);
  633.                const maxPrice = Math.max(...prices);
  634.                const priceRange = maxPrice - minPrice || 1;
  635.  
  636.                prices.forEach((price, index) => {
  637.                    const x = (index / (prices.length - 1)) * canvas.width;
  638.                    const y = canvas.height - ((price - minPrice) / priceRange) * canvas.height;
  639.                    
  640.                    if (index === 0) {
  641.                        ctx.moveTo(x, y);
  642.                    } else {
  643.                        ctx.lineTo(x, y);
  644.                    }
  645.                });
  646.  
  647.                ctx.stroke();
  648.  
  649.                // Add gradient fill
  650.                const gradient = ctx.createLinearGradient(0, 0, 0, canvas.height);
  651.                gradient.addColorStop(0, isPositive ? 'rgba(16, 185, 129, 0.2)' : 'rgba(239, 68, 68, 0.2)');
  652.                gradient.addColorStop(1, isPositive ? 'rgba(16, 185, 129, 0)' : 'rgba(239, 68, 68, 0)');
  653.  
  654.                ctx.fillStyle = gradient;
  655.                ctx.lineTo(canvas.width, canvas.height);
  656.                ctx.lineTo(0, canvas.height);
  657.                ctx.fill();
  658.  
  659.                // Replace existing chart
  660.                chartElement.innerHTML = '';
  661.                chartElement.appendChild(canvas);
  662.            }
  663.        }
  664.  
  665.        // Initialize market simulator
  666.        const marketSimulator = new MarketSimulator();
  667.  
  668.        // Simple interactive functionality
  669.        document.addEventListener('DOMContentLoaded', function() {
  670.            // Add data-market attributes to market cards
  671.            const marketCards = document.querySelectorAll('.market-card');
  672.            marketCards.forEach((card, index) => {
  673.                const markets = ['EUR/USD', 'GBP/USD', 'BTC/USD', 'XAU/USD'];
  674.                if (markets[index]) {
  675.                    card.setAttribute('data-market', markets[index]);
  676.                }
  677.            });
  678.  
  679.            // Navigation active state
  680.            const navLinks = document.querySelectorAll('.nav-link');
  681.            navLinks.forEach(link => {
  682.                link.addEventListener('click', function() {
  683.                    navLinks.forEach(l => l.classList.remove('active'));
  684.                    this.classList.add('active');
  685.                });
  686.            });
  687.  
  688.            // Market filter buttons
  689.            const filterBtns = document.querySelectorAll('.filter-btn');
  690.            filterBtns.forEach(btn => {
  691.                btn.addEventListener('click', function() {
  692.                    filterBtns.forEach(b => b.classList.remove('active'));
  693.                    this.classList.add('active');
  694.                });
  695.            });
  696.  
  697.            // Trade buttons
  698.            const tradeBtns = document.querySelectorAll('.btn-trade');
  699.            tradeBtns.forEach(btn => {
  700.                btn.addEventListener('click', function() {
  701.                    const action = this.classList.contains('btn-buy') ? 'Buy' : 'Sell';
  702.                    const market = this.closest('.market-card').getAttribute('data-market') || 'Unknown Market';
  703.                    alert(`${action} order for ${market} would be placed here.`);
  704.                });
  705.            });
  706.  
  707.            // Start market simulation
  708.            marketSimulator.start();
  709.  
  710.            // Add market status toggle
  711.            const marketStatus = document.querySelector('.market-status');
  712.            if (marketStatus) {
  713.                marketStatus.addEventListener('click', function() {
  714.                    const statusDot = this.querySelector('.status-dot');
  715.                    const statusText = this.querySelector('span:last-child');
  716.                    
  717.                    if (statusDot.classList.contains('active')) {
  718.                        statusDot.classList.remove('active');
  719.                        statusText.textContent = 'Markets Closed';
  720.                        marketSimulator.stop();
  721.                    } else {
  722.                        statusDot.classList.add('active');
  723.                        statusText.textContent = 'Markets Open';
  724.                        marketSimulator.start();
  725.                    }
  726.                });
  727.            }
  728.  
  729.            // Add notification functionality
  730.            const notificationBtn = document.querySelector('.btn-notification');
  731.            if (notificationBtn) {
  732.                notificationBtn.addEventListener('click', function() {
  733.                    const badge = this.querySelector('.notification-badge');
  734.                    if (badge) {
  735.                        badge.style.display = 'none';
  736.                    }
  737.                    alert('Notifications: No new alerts at this time.');
  738.                });
  739.            }
  740.  
  741.            // Add user profile dropdown
  742.            const userProfile = document.querySelector('.user-profile');
  743.            if (userProfile) {
  744.                userProfile.addEventListener('click', function() {
  745.                    alert('User Profile: John Doe\nAccount Type: Premium\nBalance: $25,430.50');
  746.                });
  747.            }
  748.        });
  749.  
  750.        // Add some market news simulation
  751.        setInterval(() => {
  752.            const newsItems = [
  753.                'EUR gains strength against USD on positive economic data',
  754.                'Bitcoin reaches new weekly high as institutional adoption grows',
  755.                'Gold prices stabilize amid geopolitical tensions',
  756.                'GBP shows volatility ahead of central bank meeting'
  757.            ];
  758.            
  759.            const randomNews = newsItems[Math.floor(Math.random() * newsItems.length)];
  760.            console.log(`Market Update: ${randomNews}`);
  761.        }, 15000); // Every 15 seconds
  762.    </script>
  763. </body>
  764. </html>
  765.  
  766.  
  767.  
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda