Spaces:
Running
Running
Ejecuta la implementaci贸n de la siguiente aplicaci贸n tanto de escritorio, como app m贸vil hiper responsive, que ambas aplicaciones se integren de manera nativa en una sola aplicaci贸n, que se adapta perfectamente seg煤n el tipo de dispositivo en el que la usa el usuario, quiero que implementes las funciones descritas a continuaci贸n implementando una pagina distinta para cada funci贸n concreta de la aplicaci贸n descrita a continuaci贸n, a帽ade el m谩ximo de funcionalidad real en cada herramienta y cada elemento de la aplicaci贸n, a帽ade el m谩ximo realismo posible para que se parezca el m谩ximo posible a como se deber铆a ver la aplicaci贸n final para cumplir con todos los requisitos de desarrollo detallados a continuaci贸n:
0406816
verified
| <html lang="en" class="dark"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Quantum Analytics - TradeFlow Pro Infinity</title> | |
| <link rel="icon" type="image/x-icon" href="/static/favicon.ico"> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script> | |
| <script src="https://cdn.jsdelivr.net/npm/animejs/lib/anime.iife.min.js"></script> | |
| <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> | |
| <script src="https://unpkg.com/feather-icons"></script> | |
| <script> | |
| tailwind.config = { | |
| darkMode: 'class', | |
| theme: { | |
| extend: { | |
| colors: { | |
| 'quantum': { | |
| 50: '#f0f9ff', | |
| 100: '#e0f2fe', | |
| 200: '#bae6fd', | |
| 300: '#7dd3fc', | |
| 400: '#38bdf8', | |
| 500: '#0ea5e9', | |
| 600: '#0284c7', | |
| 700: '#0369a1', | |
| 800: '#075985', | |
| 900: '#0c4a6e', | |
| 950: '#082f49' | |
| }, | |
| 'neon': { | |
| 50: '#f0fdf4', | |
| 100: '#dcfce7', | |
| 200: '#bbf7d0', | |
| 300: '#86efac', | |
| 400: '#4ade80', | |
| 500: '#22c55e', | |
| 600: '#16a34a', | |
| 700: '#15803d', | |
| 800: '#166534', | |
| 900: '#14532d', | |
| 950: '#052e16' | |
| } | |
| }, | |
| animation: { | |
| 'pulse-slow': 'pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite', | |
| 'float': 'float 6s ease-in-out infinite', | |
| 'glow': 'glow 2s ease-in-out infinite alternate', | |
| }, | |
| keyframes: { | |
| float: { | |
| '0%, 100%': { transform: 'translateY(0px)' }, | |
| '50%': { transform: 'translateY(-20px)' }, | |
| }, | |
| glow: { | |
| 'from': { boxShadow: '0 0 10px #0ea5e9, 0 0 20px #0ea5e9, 0 0 30px #0ea5e9' }, | |
| 'to': { boxShadow: '0 0 20px #0ea5e9, 0 0 30px #0ea5e9, 0 0 40px #0ea5e9' }, | |
| } | |
| } | |
| } | |
| } | |
| } | |
| </script> | |
| <style> | |
| .quantum-gradient { | |
| background: linear-gradient(135deg, #0c4a6e 0%, #0369a1 50%, #0ea5e9 100%); | |
| } | |
| .glass-effect { | |
| backdrop-filter: blur(10px); | |
| background: rgba(8, 47, 73, 0.3); | |
| border: 1px solid rgba(14, 165, 233, 0.2); | |
| } | |
| .quantum-card { | |
| background: linear-gradient(145deg, rgba(8, 47, 73, 0.6), rgba(14, 165, 233, 0.1)); | |
| border: 1px solid rgba(14, 165, 233, 0.3); | |
| box-shadow: 0 8px 32px rgba(14, 165, 233, 0.1); | |
| } | |
| .neon-glow { | |
| box-shadow: 0 0 5px #22c55e, 0 0 10px #22c55e, 0 0 15px #22c55e; | |
| } | |
| .holographic-text { | |
| background: linear-gradient(45deg, #0ea5e9, #22c55e, #0ea5e9); | |
| background-size: 200% 200%; | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| animation: shimmer 3s ease-in-out infinite; | |
| } | |
| @keyframes shimmer { | |
| 0%, 100% { background-position: 0% 50%; } | |
| 50% { background-position: 100% 50%; } | |
| } | |
| .metric-card { | |
| transition: all 0.3s ease; | |
| } | |
| .metric-card:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 10px 25px rgba(14, 165, 233, 0.2); | |
| } | |
| </style> | |
| </head> | |
| <body class="dark bg-gray-950 text-white min-h-screen overflow-x-hidden"> | |
| <!-- Navigation --> | |
| <nav class="fixed top-0 left-0 right-0 z-50 glass-effect border-b border-quantum-700/30"> | |
| <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <div class="flex items-center justify-between h-16"> | |
| <div class="flex items-center space-x-4"> | |
| <a href="index.html" class="text-gray-300 hover:text-white transition-colors"> | |
| <i data-feather="arrow-left" class="w-5 h-5"></i> | |
| </a> | |
| <h1 class="text-xl font-bold holographic-text">Quantum Analytics</h1> | |
| </div> | |
| <div class="flex items-center space-x-4"> | |
| <select class="glass-effect rounded-lg px-3 py-1 text-sm bg-transparent"> | |
| <option>Last 7 Days</option> | |
| <option>Last 30 Days</option> | |
| <option>Last 90 Days</option> | |
| <option>Custom Range</option> | |
| </select> | |
| <button class="quantum-gradient px-4 py-2 rounded-lg text-sm hover:opacity-80 transition-opacity"> | |
| Export Report | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| </nav> | |
| <!-- Main Content --> | |
| <main class="pt-16 pb-20 md:pb-8"> | |
| <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6"> | |
| <!-- Key Metrics --> | |
| <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4 mb-6"> | |
| <div class="metric-card quantum-card rounded-xl p-6"> | |
| <div class="flex items-center justify-between mb-2"> | |
| <p class="text-sm text-gray-400">Total Return</p> | |
| <i data-feather="trending-up" class="w-5 h-5 text-neon-500"></i> | |
| </div> | |
| <p class="text-3xl font-bold text-neon-500">+24.7%</p> | |
| <p class="text-xs text-gray-400 mt-1">+$123,450</p> | |
| </div> | |
| <div class="metric-card quantum-card rounded-xl p-6"> | |
| <div class="flex items-center justify-between mb-2"> | |
| <p class="text-sm text-gray-400">Sharpe Ratio</p> | |
| <i data-feather="activity" class="w-5 h-5 text-quantum-400"></i> | |
| </div> | |
| <p class="text-3xl font-bold text-quantum-400">1.84</p> | |
| <p class="text-xs text-gray-400 mt-1">Risk-adjusted return</p> | |
| </div> | |
| <div class="metric-card quantum-card rounded-xl p-6"> | |
| <div class="flex items-center justify-between mb-2"> | |
| <p class="text-sm text-gray-400">Max Drawdown</p> | |
| <i data-feather="arrow-down" class="w-5 h-5 text-red-500"></i> | |
| </div> | |
| <p class="text-3xl font-bold text-red-500">-8.2%</p> | |
| <p class="text-xs text-gray-400 mt-1">Peak to trough</p> | |
| </div> | |
| <div class="metric-card quantum-card rounded-xl p-6"> | |
| <div class="flex items-center justify-between mb-2"> | |
| <p class="text-sm text-gray-400">Win Rate</p> | |
| <i data-feather="target" class="w-5 h-5 text-yellow-500"></i> | |
| </div> | |
| <p class="text-3xl font-bold text-yellow-500">68.4%</p> | |
| <p class="text-xs text-gray-400 mt-1">342 wins / 158 losses</p> | |
| </div> | |
| </div> | |
| <!-- Charts Grid --> | |
| <div class="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6"> | |
| <!-- Equity Curve --> | |
| <div class="quantum-card rounded-xl p-6"> | |
| <div class="flex items-center justify-between mb-4"> | |
| <h3 class="text-lg font-semibold">Equity Curve</h3> | |
| <div class="flex space-x-2"> | |
| <button class="px-3 py-1 bg-quantum-600/30 rounded text-sm hover:bg-quantum-600/50 transition-colors">Balance</button> | |
| <button class="px-3 py-1 bg-gray-800 rounded text-sm hover:bg-gray-700 transition-colors">Equity</button> | |
| </div> | |
| </div> | |
| <div class="h-64"> | |
| <canvas id="equityChart"></canvas> | |
| </div> | |
| </div> | |
| <!-- Monthly Returns --> | |
| <div class="quantum-card rounded-xl p-6"> | |
| <div class="flex items-center justify-between mb-4"> | |
| <h3 class="text-lg font-semibold">Monthly Returns</h3> | |
| <select class="glass-effect rounded px-3 py-1 text-sm bg-transparent"> | |
| <option>2024</option> | |
| <option>2023</option> | |
| </select> | |
| </div> | |
| <div class="h-64"> | |
| <canvas id="returnsChart"></canvas> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Performance Analysis --> | |
| <div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-6"> | |
| <!-- Asset Performance --> | |
| <div class="quantum-card rounded-xl p-6"> | |
| <h3 class="text-lg font-semibold mb-4">Asset Performance</h3> | |
| <div class="space-y-3"> | |
| <div class="flex items-center justify-between"> | |
| <div class="flex items-center space-x-2"> | |
| <div class="w-3 h-3 bg-neon-500 rounded-full"></div> | |
| <span class="text-sm">EUR/USD</span> | |
| </div> | |
| <span class="text-sm text-neon-500">+12.4%</span> | |
| </div> | |
| <div class="flex items-center justify-between"> | |
| <div class="flex items-center space-x-2"> | |
| <div class="w-3 h-3 bg-quantum-500 rounded-full"></div> | |
| <span class="text-sm">GBP/JPY</span> | |
| </div> | |
| <span class="text-sm text-neon-500">+8.7%</span> | |
| </div> | |
| <div class="flex items-center justify-between"> | |
| <div class="flex items-center space-x-2"> | |
| <div class="w-3 h-3 bg-yellow-500 rounded-full"></div> | |
| <span class="text-sm">GOLD</span> | |
| </div> | |
| <span class="text-sm text-neon-500">+5.2%</span> | |
| </div> | |
| <div class="flex items-center justify-between"> | |
| <div class="flex items-center space-x-2"> | |
| <div class="w-3 h-3 bg-purple-500 rounded-full"></div> | |
| <span class="text-sm">BTC/USD</span> | |
| </div> | |
| <span class="text-sm text-red-500">-2.1%</span> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Trading Hours --> | |
| <div class="quantum-card rounded-xl p-6"> | |
| <h3 class="text-lg font-semibold mb-4">Best Trading Hours</h3> | |
| <div class="h-48"> | |
| <canvas id="hoursChart"></canvas> | |
| </div> | |
| </div> | |
| <!-- Risk Metrics --> | |
| <div class="quantum-card rounded-xl p-6"> | |
| <h3 class="text-lg font-semibold mb-4">Risk Metrics</h3> | |
| <div class="space-y-4"> | |
| <div> | |
| <div class="flex justify-between text-sm mb-1"> | |
| <span class="text-gray-400">Value at Risk (95%)</span> | |
| <span class="text-white">-$5,240</span> | |
| </div> | |
| <div class="w-full bg-gray-700 rounded-full h-2"> | |
| <div class="bg-gradient-to-r from-green-500 to-yellow-500 h-2 rounded-full" style="width: 35%"></div> | |
| </div> | |
| </div> | |
| <div> | |
| <div class="flex justify-between text-sm mb-1"> | |
| <span class="text-gray-400">Expected Shortfall</span> | |
| <span class="text-white">-$8,910</span> | |
| </div> | |
| <div class="w-full bg-gray-700 rounded-full h-2"> | |
| <div class="bg-gradient-to-r from-yellow-500 to-red-500 h-2 rounded-full" style="width: 60%"></div> | |
| </div> | |
| </div> | |
| <div> | |
| <div class="flex justify-between text-sm mb-1"> | |
| <span class="text-gray-400">Beta (vs Market)</span> | |
| <span class="text-white">0.84</span> | |
| </div> | |
| <div class="w-full bg-gray-700 rounded-full h-2"> | |
| <div class="bg-quantum-500 h-2 rounded-full" style="width: 84%"></div> | |
| </div> | |
| </div> | |
| <div> | |
| <div class="flex justify-between text-sm mb-1"> | |
| <span class="text-gray-400">Correlation</span> | |
| <span class="text-white">0.72</span> | |
| </div> | |
| <div class="w-full bg-gray-700 rounded-full h-2"> | |
| <div class="bg-purple-500 h-2 rounded-full" style="width: 72%"></div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Detailed Statistics --> | |
| <div class="quantum-card rounded-xl p-6"> | |
| <h3 class="text-lg font-semibold mb-4">Detailed Statistics</h3> | |
| <div class="overflow-x-auto"> | |
| <table class="w-full text-sm"> | |
| <thead> | |
| <tr class="text-left text-gray-400 border-b border-gray-800"> | |
| <th class="pb-3">Metric</th> | |
| <th class="pb-3">Value</th> | |
| <th class="pb-3">Benchmark</th> | |
| <th class="pb-3">Rating</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr class="border-b border-gray-800"> | |
| <td class="py-3">Profit Factor</td> | |
| <td class="py-3 text-neon-500">1.84</td> | |
| <td class="py-3 text-gray-400">> 1.5</td> | |
| <td class="py-3"><span class="px-2 py-1 bg-neon-500/20 text-neon-500 rounded text-xs">Excellent</span></td> | |
| </tr> | |
| <tr class="border-b border-gray-800"> | |
| <td class="py-3">Recovery Factor</td> | |
| <td class="py-3 text-neon-500">3.2</td> | |
| <td class="py-3 text-gray-400">> 2.0</td> | |
| <td class="py-3"><span class="px-2 py-1 bg-neon-500/20 text-neon-500 rounded text-xs">Good</span></td> | |
| </tr> | |
| <tr class="border-b border-gray-800"> | |
| <td class="py-3">Expected Value</td> | |
| <td class="py-3 text-neon-500">$247</td> | |
| <td class="py-3 text-gray-400">> $100</td> | |
| <td class="py-3"><span class="px-2 py-1 bg-neon-500/20 text-neon-500 rounded text-xs">Excellent</span></td> | |
| </tr> | |
| <tr class="border-b border-gray-800"> | |
| <td class="py-3">Ulcer Index</td> | |
| <td class="py-3 text-quantum-400">4.2</td> | |
| <td class="py-3 text-gray-400">< 5.0</td> | |
| <td class="py-3"><span class="px-2 py-1 bg-quantum-500/20 text-quantum-400 rounded text-xs">Good</span></td> | |
| </tr> | |
| <tr class="border-b border-gray-800"> | |
| <td class="py-3">Calmar Ratio</td> | |
| <td class="py-3 text-yellow-500">0.68</td> | |
| <td class="py-3 text-gray-400">> 0.5</td> | |
| <td class="py-3"><span class="px-2 py-1 bg-yellow-500/20 text-yellow-500 rounded text-xs">Average</span></td> | |
| </tr> | |
| <tr> | |
| <td class="py-3">K-Ratio</td> | |
| <td class="py-3 text-quantum-400">1.24</td> | |
| <td class="py-3 text-gray-400">> 1.0</td> | |
| <td class="py-3"><span class="px-2 py-1 bg-quantum-500/20 text-quantum-400 rounded text-xs">Good</span></td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| </div> | |
| </div> | |
| </div> | |
| </main> | |
| <!-- Bottom Navigation for Mobile --> | |
| <nav class="fixed bottom-0 left-0 right-0 z-50 glass-effect border-t border-quantum-700/30 md:hidden"> | |
| <div class="grid grid-cols-5 py-2"> | |
| <button class="flex flex-col items-center justify-center space-y-1 text-gray-400"> | |
| <i data-feather="home" class="w-5 h-5"></i> | |
| <span class="text-xs">Home</span> | |
| </button> | |
| <button class="flex flex-col items-center justify-center space-y-1 text-gray-400"> | |
| <i data-feather="bar-chart-2" class="w-5 h-5"></i> | |
| <span class="text-xs">Trade</span> | |
| </button> | |
| <button class="flex flex-col items-center justify-center space-y-1 text-quantum-400"> | |
| <i data-feather="activity" class="w-5 h-5"></i> | |
| <span class="text-xs">Analytics</span> | |
| </button> | |
| <button class="flex flex-col items-center justify-center space-y-1 text-gray-400"> | |
| <i data-feather="pie-chart" class="w-5 h-5"></i> | |
| <span class="text-xs">Portfolio</span> | |
| </button> | |
| <button class="flex flex-col items-center justify-center space-y-1 text-gray-400"> | |
| <i data-feather="cpu" class="w-5 h-5"></i> | |
| <span class="text-xs">AI</span> | |
| </button> | |
| </div> | |
| </nav> | |
| <script> | |
| // Initialize Feather Icons | |
| feather.replace(); | |
| // Equity Curve Chart | |
| const equityCtx = document.getElementById('equityChart').getContext('2d'); | |
| const equityGradient = equityCtx.createLinearGradient(0, 0, 0, 300); | |
| equityGradient.addColorStop(0, 'rgba(34, 197, 94, 0.3)'); | |
| equityGradient.addColorStop(1, 'rgba(34, 197, 94, 0)'); | |
| new Chart(equityCtx, { | |
| type: 'line', | |
| data: { | |
| labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct'], | |
| datasets: [{ | |
| label: 'Equity', | |
| data: [50000, 52000, 48500, 53800, 56200, 54800, 58900, 61200, 59400, 62350], | |
| borderColor: '#22c55e', | |
| backgroundColor: equityGradient, | |
| borderWidth: 3, | |
| fill: true, | |
| tension: 0.4, | |
| pointRadius: 0, | |
| pointHoverRadius: 6 | |
| }, { | |
| label: 'Balance', | |
| data: [50000, 51500, 49200, 52800, 55100, 53900, 57400, 59800, 58300, 61250], | |
| borderColor: '#0ea5e9', | |
| borderWidth: 2, | |
| fill: false, | |
| tension: 0.4, | |
| pointRadius: 0, | |
| pointHoverRadius: 6, | |
| borderDash: [5, 5] | |
| }] | |
| }, | |
| options: { | |
| responsive: true, | |
| maintainAspectRatio: false, | |
| plugins: { | |
| legend: { | |
| display: false | |
| }, | |
| tooltip: { | |
| backgroundColor: 'rgba(8, 47, 73, 0.9)', | |
| titleColor: '#fff', | |
| bodyColor: '#fff', | |
| borderColor: '#0ea5e9', | |
| borderWidth: 1, | |
| cornerRadius: 8 | |
| } | |
| }, | |
| scales: { | |
| x: { | |
| grid: { color: 'rgba(255, 255, 255, 0.1)', drawBorder: false }, | |
| ticks: { color: '#9ca3af' } | |
| }, | |
| y: { | |
| grid: { color: 'rgba(255, 255, 255, 0.1)', drawBorder: false }, | |
| ticks: { | |
| color: '#9ca3af', | |
| callback: function(value) { | |
| return '$' + (value / 1000).toFixed(0) + 'k'; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| // Monthly Returns Chart | |
| const returnsCtx = document.getElementById('returnsChart').getContext('2d'); | |
| new Chart(returnsCtx, { | |
| type: 'bar', | |
| data: { | |
| labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct'], | |
| datasets: [{ | |
| label: 'Monthly Return %', | |
| data: [3.0, -6.7, 10.9, 4.5, -2.5, 7.5, 3.9, -2.9, 4.8], | |
| backgroundColor: [ | |
| '#22c55e', '#ef4444', '#22c55e', '#22c55e', '#ef4444', | |
| '#22c55e', '#22c55e', '#ef4444', '#22c55e' | |
| ], | |
| borderWidth: 0 | |
| }] | |
| }, | |
| options: { | |
| responsive: true, | |
| maintainAspectRatio: false, | |
| plugins: { | |
| legend: { display: false }, | |
| tooltip: { | |
| backgroundColor: 'rgba(8, 47, 73, 0.9)', | |
| titleColor: '#fff', | |
| bodyColor: '#fff', | |
| borderColor: '#0ea5e9', | |
| borderWidth: 1, | |
| cornerRadius: 8, | |
| callbacks: { | |
| label: function(context) { | |
| return context.parsed.y + '%'; | |
| } | |
| } | |
| } | |
| }, | |
| scales: { | |
| x: { | |
| grid: { display: false }, | |
| ticks: { color: '#9ca3af' } | |
| }, | |
| y: { | |
| grid: { color: 'rgba(255, 255, 255, 0.1)', drawBorder: false }, | |
| ticks: { | |
| color: '#9ca3af', | |
| callback: function(value) { | |
| return value + '%'; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| // Trading Hours Chart | |
| const hoursCtx = document.getElementById('hoursChart').getContext('2d'); | |
| const hoursGradient = hoursCtx.createLinearGradient(0, 0, 0, 200); | |
| hoursGradient.addColorStop(0, 'rgba(14, 165, 233, 0.6)'); | |
| hoursGradient.addColorStop(1, 'rgba(14, 165, 233, 0.1)'); | |
| new Chart(hoursCtx, { | |
| type: 'radar', | |
| data: { | |
| labels: ['Tokyo', 'London', 'New York', 'Sydney', 'Frankfurt', 'Hong Kong'], | |
| datasets: [{ | |
| label: 'Win Rate %', | |
| data: [65, 78, 82, 58, 71, 63], | |
| backgroundColor: hoursGradient, | |
| borderColor: '#0ea5e9', | |
| borderWidth: 2, | |
| pointBackgroundColor: '#0ea5e9', | |
| pointBorderColor: '#fff', | |
| pointHoverBackgroundColor: '#fff', | |
| pointHoverBorderColor: '#0ea5e9' | |
| }] | |
| }, | |
| options: { | |
| responsive: true, | |
| maintainAspectRatio: false, | |
| plugins: { | |
| legend: { display: false }, | |
| tooltip: { | |
| backgroundColor: 'rgba(8, 47, 73, 0.9)', | |
| titleColor: '#fff', | |
| bodyColor: '#fff', | |
| borderColor: '#0ea5e9', | |
| borderWidth: 1, | |
| cornerRadius: 8 | |
| } | |
| }, | |
| scales: { | |
| r: { | |
| grid: { color: 'rgba(255, 255, 255, 0.1)' }, | |
| pointLabels: { color: '#9ca3af' }, | |
| ticks: { | |
| color: '#9ca3af', | |
| backdropColor: 'transparent' | |
| }, | |
| angleLines: { color: 'rgba(255, 255, 255, 0.1)' } | |
| } | |
| } | |
| } | |
| }); | |
| // Animate elements | |
| anime({ | |
| targets: '.metric-card', | |
| translateY: [30, 0], | |
| opacity: [0, 1], | |
| delay: anime.stagger(100), | |
| duration: 800, | |
| easing: 'easeOutQuad' | |
| }); | |
| </script> | |
| </body> | |
| </html> | |