kidum-ai.com

import React, { useState, useEffect } from 'react'; import { TrendingUp, TrendingDown, DollarSign, Activity, Trophy, Zap } from 'lucide-react'; const AITradingArena = () => { const [traders, setTraders] = useState([ { id: 1, name: 'Claude Sonnet', model: 'Claude', balance: 10000, initialBalance: 10000, trades: 0, winRate: 0, lastTrade: null, reasoning: '', status: 'waiting', color: 'from-purple-500 to-pink-500' }, { id: 2, name: 'GPT-4', model: 'ChatGPT', balance: 10000, initialBalance: 10000, trades: 0, winRate: 0, lastTrade: null, reasoning: '', status: 'waiting', color: 'from-green-500 to-emerald-500' }, { id: 3, name: 'Gemini Pro', model: 'Gemini', balance: 10000, initialBalance: 10000, trades: 0, winRate: 0, lastTrade: null, reasoning: '', status: 'waiting', color: 'from-blue-500 to-cyan-500' } ]); const [marketData, setMarketData] = useState({ btc: 67420, eth: 3245, sol: 178 }); const [isTrading, setIsTrading] = useState(false); const [currentTrader, setCurrentTrader] = useState(null); const [logs, setLogs] = useState([]); const [nextTradeIn, setNextTradeIn] = useState(86400); // 24 שעות בשניות // סימולציה של שינויי שוק useEffect(() => { const marketInterval = setInterval(() => { setMarketData(prev => ({ btc: prev.btc * (1 + (Math.random() - 0.5) * 0.02), eth: prev.eth * (1 + (Math.random() - 0.5) * 0.025), sol: prev.sol * (1 + (Math.random() - 0.5) * 0.03) })); }, 3000); return () => clearInterval(marketInterval); }, []); // טיימר למסחר הבא useEffect(() => { const timer = setInterval(() => { setNextTradeIn(prev => { if (prev <= 1) { if (!isTrading) { startTradingRound(); } return 86400; } return prev - 1; }); }, 1000); return () => clearInterval(timer); }, [isTrading]); const formatTime = (seconds) => { const hours = Math.floor(seconds / 3600); const minutes = Math.floor((seconds % 3600) / 60); const secs = seconds % 60; return `${hours}h ${minutes}m ${secs}s`; }; const getAIDecision = async (trader, market) => { // סימולציה של החלטת AI const coins = ['BTC', 'ETH', 'SOL']; const actions = ['BUY', 'SELL', 'HOLD']; const coin = coins[Math.floor(Math.random() * coins.length)]; const action = actions[Math.floor(Math.random() * actions.length)]; const amount = Math.floor(Math.random() * 2000) + 500; const reasonings = { Claude: `ניתחתי את מגמות השוק ב-24 השעות האחרונות. ${coin} מראה פטרן חיובי עם תמיכה חזקה. אני ממליץ ${action === 'BUY' ? 'לקנות' : action === 'SELL' ? 'למכור' : 'להמתין'}.`, ChatGPT: `בהתבסס על אינדיקטורים טכניים, ${coin} ${action === 'BUY' ? 'נמצא במחיר נמוך יחסית' : action === 'SELL' ? 'הגיע לרמת התנגדות' : 'מראה אינדיפרנטיות'}. החלטה: ${action}.`, Gemini: `אלגוריתם הניתוח שלי מזהה ${action === 'BUY' ? 'הזדמנות קנייה' : action === 'SELL' ? 'סיכון גבוה' : 'שוק צדדי'} ב-${coin}. רמת ביטחון: ${Math.floor(Math.random() * 30) + 70}%.` }; return { coin, action, amount: action === 'HOLD' ? 0 : amount, reasoning: reasonings[trader.model], price: market[coin.toLowerCase()] }; }; const executeTrade = (trader, decision) => { let newBalance = trader.balance; let profit = 0; if (decision.action === 'BUY') { // סימולציה של רווח/הפסד const outcome = Math.random(); if (outcome > 0.45) { // 55% סיכוי להצלחה profit = decision.amount * (Math.random() * 0.15 + 0.05); newBalance += profit; } else { profit = -decision.amount * (Math.random() * 0.1); newBalance += profit; } } else if (decision.action === 'SELL') { const outcome = Math.random(); if (outcome > 0.4) { profit = decision.amount * (Math.random() * 0.12 + 0.03); newBalance += profit; } else { profit = -decision.amount * (Math.random() * 0.08); newBalance += profit; } } return { newBalance, profit }; }; const startTradingRound = async () => { setIsTrading(true); const newLogs = []; for (let i = 0; i < traders.length; i++) { const trader = traders[i]; setCurrentTrader(trader.id); // עדכון סטטוס לאנליזה setTraders(prev => prev.map(t => t.id === trader.id ? { ...t, status: 'analyzing' } : t )); await new Promise(resolve => setTimeout(resolve, 2000)); // קבלת החלטה מה-AI const decision = await getAIDecision(trader, marketData); setTraders(prev => prev.map(t => t.id === trader.id ? { ...t, reasoning: decision.reasoning, status: 'trading' } : t )); await new Promise(resolve => setTimeout(resolve, 1500)); // ביצוע המסחר const result = executeTrade(trader, decision); const newTrader = { ...trader, balance: result.newBalance, trades: trader.trades + 1, winRate: result.profit > 0 ? ((trader.winRate * trader.trades + 100) / (trader.trades + 1)) : ((trader.winRate * trader.trades) / (trader.trades + 1)), lastTrade: { coin: decision.coin, action: decision.action, amount: decision.amount, profit: result.profit, timestamp: new Date().toISOString() }, status: 'completed' }; setTraders(prev => prev.map(t => t.id === trader.id ? newTrader : t )); // הוספה ללוג newLogs.push({ trader: trader.name, action: `${decision.action} ${decision.amount > 0 ? `$${decision.amount.toFixed(0)}` : ''} ${decision.coin}`, profit: result.profit, timestamp: new Date().toLocaleTimeString('he-IL') }); await new Promise(resolve => setTimeout(resolve, 1000)); } setLogs(prev => [...newLogs, ...prev].slice(0, 20)); setCurrentTrader(null); setIsTrading(false); // איפוס סטטוס setTimeout(() => { setTraders(prev => prev.map(t => ({ ...t, status: 'waiting' }))); }, 2000); }; const calculateProfitPercent = (trader) => { return ((trader.balance - trader.initialBalance) / trader.initialBalance * 100).toFixed(2); }; const sortedTraders = [...traders].sort((a, b) => b.balance - a.balance); return (
{/* Header */}

AI Trading Arena

3 מודלי AI מתחרים במסחר קריפטו יומי

{/* Market Data */}
Bitcoin
${marketData.btc.toFixed(2)}
Ethereum
${marketData.eth.toFixed(2)}
Solana
${marketData.sol.toFixed(2)}
{/* Next Trade Timer */}
המסחר הבא בעוד:
{formatTime(nextTradeIn)}
{/* Leaderboard */}
{sortedTraders.map((trader, index) => (
{index === 0 && (
)}
{index + 1}

{trader.name}

{trader.trades} עסקאות
{/* Status Badge */}
{trader.status === 'analyzing' && (
מנתח שוק...
)} {trader.status === 'trading' && (
מבצע מסחר...
)} {trader.status === 'completed' && (
✓ הושלם
)} {trader.status === 'waiting' && (
ממתין...
)}
יתרה: ${trader.balance.toFixed(2)}
רווח/הפסד: = 0 ? 'text-green-400' : 'text-red-400' }`}> {parseFloat(calculateProfitPercent(trader)) >= 0 ? : } {calculateProfitPercent(trader)}%
אחוז הצלחה: {trader.winRate.toFixed(1)}%
{trader.reasoning && (
חשיבת AI:
{trader.reasoning}
)} {trader.lastTrade && (
מסחר אחרון:
{trader.lastTrade.action} {trader.lastTrade.coin} = 0 ? 'text-green-400' : 'text-red-400'}> {trader.lastTrade.profit >= 0 ? '+' : ''}${trader.lastTrade.profit.toFixed(2)}
)}
))}
{/* Trading Log */}

לוג מסחר בזמן אמת

{logs.length === 0 ? (
אין מסחרים עדיין. לחץ על "התחל מסחר עכשיו" כדי להתחיל
) : ( logs.map((log, index) => (
{log.timestamp} {log.trader} {log.action}
= 0 ? 'text-green-400' : 'text-red-400'}`}> {log.profit >= 0 ? '+' : ''}${log.profit.toFixed(2)}
)) )}
); }; export default AITradingArena;
Scroll to Top

חבל שאתה עוזב ..