คำอธิบาย
<!DOCTYPE html> <html lang="ar" dir="rtl"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>وكيل الذكاء الاصطناعي للتداول</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Arial', sans-serif; background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%); color: white; min-height: 100vh; padding: 20px; } .container { max-width: 1200px; margin: 0 auto; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border-radius: 20px; padding: 30px; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3); } .header { text-align: center; margin-bottom: 30px; border-bottom: 2px solid rgba(255, 255, 255, 0.2); padding-bottom: 20px; } .header h1 { font-size: 2.5em; margin-bottom: 10px; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); } .status-bar { display: flex; justify-content: space-around; margin-bottom: 30px; flex-wrap: wrap; } .status-item { background: rgba(255, 255, 255, 0.15); padding: 15px; border-radius: 10px; min-width: 150px; text-align: center; margin: 5px; border: 1px solid rgba(255, 255, 255, 0.2); } .status-item h3 { margin-bottom: 5px; font-size: 0.9em; opacity: 0.8; } .status-value { font-size: 1.2em; font-weight: bold; } .controls { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; margin-bottom: 30px; } .control-panel { background: rgba(255, 255, 255, 0.1); padding: 20px; border-radius: 15px; border: 1px solid rgba(255, 255, 255, 0.2); } .control-panel h3 { margin-bottom: 15px; color: #FFD700; font-size: 1.1em; } .form-group { margin-bottom: 15px; } .form-group label { display: block; margin-bottom: 5px; font-size: 0.9em; opacity: 0.9; } .form-group input, .form-group select { width: 100%; padding: 10px; border: none; border-radius: 8px; background: rgba(255, 255, 255, 0.15); color: white; font-size: 0.9em; } .form-group input::placeholder { color: rgba(255, 255, 255, 0.7); } .btn { padding: 12px 25px; border: none; border-radius: 8px; cursor: pointer; font-size: 1em; font-weight: bold; transition: all 0.3s ease; margin: 5px; } .btn-primary { background: linear-gradient(45deg, #00c853, #00e676); color: white; } .btn-danger { background: linear-gradient(45deg, #f44336, #ff5722); color: white; } .btn-warning { background: linear-gradient(45deg, #ff9800, #ffc107); color: white; } .btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); } .trading-log { background: rgba(0, 0, 0, 0.3); border-radius: 15px; padding: 20px; margin-top: 20px; max-height: 300px; overflow-y: auto; border: 1px solid rgba(255, 255, 255, 0.2); } .log-entry { padding: 10px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); margin-bottom: 10px; border-radius: 8px; } .log-entry.success { background: rgba(76, 175, 80, 0.2); border-left: 4px solid #4CAF50; } .log-entry.error { background: rgba(244, 67, 54, 0.2); border-left: 4px solid #f44336; } .log-entry.info { background: rgba(33, 150, 243, 0.2); border-left: 4px solid #2196F3; } .chart-container { background: rgba(255, 255, 255, 0.1); border-radius: 15px; padding: 20px; margin-top: 20px; text-align: center; border: 1px solid rgba(255, 255, 255, 0.2); } .indicator { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-left: 5px; } .indicator.active { background: #4CAF50; animation: pulse 2s infinite; } .indicator.inactive { background: #f44336; } @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.2); } 100% { transform: scale(1); } } .progress-bar { width: 100%; height: 8px; background: rgba(255, 255, 255, 0.2); border-radius: 4px; overflow: hidden; margin-top: 10px; } .progress-fill { height: 100%; background: linear-gradient(90deg, #00c853, #00e676); width: 0%; transition: width 0.3s ease; } @media (max-width: 768px) { .controls { grid-template-columns: 1fr; } .status-bar { flex-direction: column; align-items: center; } .container { padding: 20px; } } </style> </head> <body> <div class="container"> <div class="header"> <h1>🤖 ตัวแทนปัญญาประดิษฐ์สำหรับการซื้อขาย</h1> <p>ระบบซื้อขายอัตโนมัติขั้นสูงสำหรับฟอเร็กซ์</p> </div> <div class="status-bar"> <div class="status-item"> <h3>สถานะระบบ</h3> <div class="status-value"> <span id="system-status">หยุดทำงาน</span> <span class="indicator inactive" id="system-indicator"></span> </div> </div> <div class="status-item"> <h3>กำไร/ขาดทุน</h3> <div class="status-value" id="pnl">$0.00</div> </div> <div class="status-item"> <h3>จำนวนการซื้อขาย</h3> <div class="status-value" id="trades-count">0</div> </div> <div class="status-item"> <h3>อัตราความสำเร็จ</h3> <div class="status-value" id="success-rate">0%</div> </div> </div> <div class="controls"> <div class="control-panel"> <h3>⚙️ การตั้งค่าการซื้อขาย</h3> <div class="form-group"> <label>คู่สกุลเงิน</label> <select id="currency-pair"> <option value="EURUSD">EUR/USD</option> <option value="GBPUSD">GBP/USD</option> <option value="USDJPY">USD/JPY</option> <option value="USDCHF">USD/CHF</option> <option value="AUDUSD">AUD/USD</option> </select> </div> <div class="form-group"> <label>ขนาดล็อต (Lot)</label> <input type="number" id="lot-size" value="0.01" min="0.01" max="10" step="0.01"> </div> <div class="form-group"> <label>กลยุทธ์การซื้อขาย</label> <select id="strategy"> <option value="scalping">สกัลป์ปิ้ง</option> <option value="swing">การซื้อขายแบบสวิง</option> <option value="trend">ติดตามแนวโน้ม</option> <option value="reversal">การกลับตัว</option> </select> </div> </div> <div class="control-panel"> <h3>🛡️ การจัดการความเสี่ยง</h3> <div class="form-group"> <label>หยุดขาดทุน (จุด)</label> <input type="number" id="stop-loss" value="20" min="5" max="500"> </div> <div class="form-group"> <label>ทำกำไร (จุด)</label> <input type="number" id="take-profit" value="30" min="10" max="1000"> </div> <div class="form-group"> <label>ความเสี่ยงสูงสุด (%)</label> <input type="number" id="max-risk" value="2" min="0.5" max="10" step="0.1"> </div> </div> <div class="control-panel"> <h3>📊 ตัวชี้วัดทางเทคนิค</h3> <div class="form-group"> <label> <input type="checkbox" id="use-ma" checked> ใช้ค่าเฉลี่ยเคลื่อนที่ </label> </div> <div class="form-group"> <label> <input type="checkbox" id="use-rsi" checked> ใช้ RSI </label> </div> <div class="form-group"> <label> <input type="checkbox" id="use-macd"> ใช้ MACD </label> </div> <div class="form-group"> <label> <input type="checkbox" id="use-bollinger"> ใช้ Bollinger Bands </label> </div> </div> </div> <div style="text-align: center; margin: 20px 0;"> <button class="btn btn-primary" onclick="startTrading()">🚀 เริ่มการซื้อขาย</button> <button class="btn btn-danger" onclick="stopTrading()">⏹️ หยุดการซื้อขาย</button> <button class="btn btn-warning" onclick="pauseTrading()">⏸️ หยุดชั่วคราว</button> <button class="btn btn-warning" onclick="resetSystem()">🔄 รีเซ็ต</button> </div> <div class="chart-container"> <h3>📈 การติดตามประสิทธิภาพ</h3> <p>วิเคราะห์ประสิทธิภาพแบบเรียลไทม์</p> <div class="progress-bar"> <div class="progress-fill" id="performance-progress"></div> </div> <p style="margin-top: 10px; font-size: 0.9em; opacity: 0.8;"> อัปเดตล่าสุด: <span id="last-update">--</span> </p> </div> <div class="trading-log"> <h3>📋 บันทึกการซื้อขาย</h3> <div id="log-container"> <div class="log-entry info"> <strong>ข้อมูล:</strong> ระบบพร้อมสำหรับการซื้อขาย กรุณากด "เริ่มการซื้อขาย" เพื่อเริ่มต้น. </div> </div> </div> </div> <script> // ตัวแปรระบบ let isTrading = false; let isPaused = false; let tradingInterval; let totalTrades = 0; let successfulTrades = 0; let currentPnL = 0; let marketData = {}; // อัปเดตสถานะ function updateSystemStatus(status, isActive) { const statusEl = document.getElementById('system-status'); const indicatorEl = document.getElementById('system-indicator'); statusEl.textContent = status; indicatorEl.className = `indicator ${isActive ? 'active' : 'inactive'}`; } // อัปเดตสถิติ function updateStats() { document.getElementById('trades-count').textContent = totalTrades; document.getElementById('success-rate').textContent = totalTrades > 0 ? Math.round((successfulTrades / totalTrades) * 100) + '%' : '0%'; document.getElementById('pnl').textContent = (currentPnL >= 0 ? '+' : '') + '$' + currentPnL.toFixed(2); document.getElementById('pnl').style.color = currentPnL >= 0 ? '#4CAF50' : '#f44336'; } // เพิ่มบันทึก function addLogEntry(message, type = 'info') { const logContainer = document.getElementById('log-container'); const entry = document.createElement('div'); entry.className = `log-entry ${type}`; const timestamp = new Date().toLocaleTimeString('ar-SA'); entry.innerHTML = `<strong>${timestamp}:</strong> ${message}`; logContainer.insertBefore(entry, logContainer.firstChild); // เก็บบันทึกล่าสุด 50 รายการเท่านั้น if (logContainer.children.length > 50) { logContainer.removeChild(logContainer.lastChild); } } // จำลองข้อมูลตลาด function generateMarketData() { const pairs = ['EURUSD', 'GBPUSD', 'USDJPY', 'USDCHF', 'AUDUSD']; pairs.forEach(pair => { marketData[pair] = { price: Math.random() * 2 + 1, change: (Math.random() - 0.5) * 0.01, volume: Math.floor(Math.random() * 1000000), rsi: Math.floor(Math.random() * 100), ma: Math.random() * 2 + 1 }; }); } // วิเคราะห์สัญญาณ function analyzeSignals() { const pair = document.getElementById('currency-pair').value; const strategy = document.getElementById('strategy').value; const useMA = document.getElementById('use-ma').checked; const useRSI = document.getElementById('use-rsi').checked; const data = marketData[pair]; if (!data) return null; let signal = null; let confidence = 0; // วิเคราะห์ RSI if (useRSI) { if (data.rsi < 30) { signal = 'BUY'; confidence += 0.3; } else if (data.rsi > 70) { signal = 'SELL'; confidence += 0.3; } } // วิเคราะห์ค่าเฉลี่ยเคลื่อนที่ if (useMA) { if (data.price > data.ma) { if (signal === 'BUY' || signal === null) { signal = 'BUY'; confidence += 0.3; } } else { if (signal === 'SELL' || signal === null) { signal = 'SELL'; confidence += 0.3; } } } // วิเคราะห์กลยุทธ์ if (strategy === 'scalping') { confidence += 0.2; } else if (strategy === 'trend') { confidence += 0.4; } return { signal, confidence }; } // ดำเนินการซื้อขาย function executeTrade(signal, confidence) { if (confidence < 0.6) return; // ขีดจำกัดความเชื่อมั่นขั้นต่ำ const pair = document.getElementById('currency-pair').value; const lotSize = document.getElementById('lot-size').value; const stopLoss = document.getElementById('stop-loss').value; const takeProfit = document.getElementById('take-profit').value; totalTrades++; // จำลองผลลัพธ์การซื้อขาย const success = Math.random() < confidence; const pnl = success ? (parseFloat(takeProfit) * parseFloat(lotSize) * 10) : (-parseFloat(stopLoss) * parseFloat(lotSize) * 10); currentPnL += pnl; if (success) { successfulTrades++; addLogEntry(`การซื้อขายสำเร็จ: ${signal} ${pair} - กำไร: +$${pnl.toFixed(2)}`, 'success'); } else { addLogEntry(`การซื้อขายล้มเหลว: ${signal} ${pair} - ขาดทุน: -$${Math.abs(pnl).toFixed(2)}`, 'error'); } updateStats(); } // วนลูปการซื้อขายหลัก function tradingLoop() { if (!isTrading || isPaused) return; generateMarketData(); const analysis = analyzeSignals(); if (analysis && analysis.signal) { addLogEntry(`สัญญาณถูกตรวจพบ: ${analysis.signal} - ความเชื่อมั่น: ${(analysis.confidence * 100).toFixed(1)}%`, 'info'); executeTrade(analysis.signal, analysis.confidence); } // อัปเดตแถบความคืบหน้า const progress = document.getElementById('performance-progress'); progress.style.width = Math.min((successfulTrades / Math.max(totalTrades, 1)) * 100, 100) + '%'; // อัปเดตเวลาล่าสุด document.getElementById('last-update').textContent = new Date().toLocaleTimeString('ar-SA'); } // เริ่มการซื้อขาย function startTrading() { if (isTrading) return; isTrading = true; isPaused = false; updateSystemStatus('กำลังทำงาน', true); addLogEntry('เริ่มการซื้อขายอัตโนมัติ', 'success'); tradingInterval = setInterval(tradingLoop, 3000); // ทุก 3 วินาที } // หยุดการซื้อขาย function stopTrading() { if (!isTrading) return; isTrading = false; isPaused = false; updateSystemStatus('หยุดทำงาน', false); addLogEntry('หยุดการซื้อขาย', 'error'); clearInterval(tradingInterval); } // หยุดชั่วคราว function pauseTrading() { if (!isTrading) return; isPaused = !isPaused; updateSystemStatus(isPaused ? 'หยุดชั่วคราว' : 'กำลังทำงาน', !isPaused); addLogEntry(isPaused ? 'หยุดการซื้อขายชั่วคราว' : 'เริ่มการซื้อขายใหม่', 'info'); } // รีเซ็ตระบบ function resetSystem() { stopTrading(); totalTrades = 0; successfulTrades = 0; currentPnL = 0; updateStats(); const logContainer = document.getElementById('log-container'); logContainer.innerHTML = ` <div class="log-entry info"> <strong>ข้อมูล:</strong> ระบบถูกรีเซ็ตแล้ว พร้อมสำหรับการซื้อขายใหม่. </div> `; document.getElementById('performance-progress').style.width = '0%'; document.getElementById('last-update').textContent = '--'; } // เริ่มต้นระบบ document.addEventListener('DOMContentLoaded', function() { generateMarketData(); updateStats(); addLogEntry('โหลดระบบสำเร็จ', 'success'); }); </script> </body> </html>
สรุป
The system integrates technical indicators like Moving Average (MA), Relative Strength Index (RSI), MACD, and Bollinger Bands to analyze market signals and generate trade decisions. It evaluates signal confidence before executing trades, simulating outcomes based on configured parameters. Real-time performance monitoring includes profit/loss tracking, trade count, and success rate, with a detailed trading log for transparency.
Control features allow starting, stopping, pausing, and resetting the trading process. The interface provides a status overview and performance progress visualization, supporting informed management of automated trading activities.
