import React, { useState, useEffect } from 'react';
import { motion } from 'framer-motion';
// استيراد بيانات السهم
const stockData = [
{ date: '5/12/25', price: 4.14, open: 4.00, high: 4.14, low: 3.85, volume: 933.10 },
{ date: '5/11/25', price: 3.95, open: 4.10, high: 4.15, low: 3.91, volume: 2.18 },
{ date: '5/8/25', price: 4.10, open: 4.25, high: 4.28, low: 4.05, volume: 1.39 },
{ date: '5/7/25', price: 4.26, open: 4.30, high: 4.48, low: 4.19, volume: 1.97 },
];
// حساب مستويات الدعم والمقاومة
const calculateSupportResistance = (data) => {
const prices = data.map(item => item.price);
const highs = data.map(item => item.high);
const lows = data.map(item => item.low);
return {
support: Math.min(...lows),
resistance: Math.max(...highs),
lowestPrice: Math.min(...prices),
highestPrice: Math.max(...prices)
};
};
const StockAnalysisApp = () => {
const [showQuiz, setShowQuiz] = useState(false);
const [quizAnswers, setQuizAnswers] = useState(Array(10).fill(null));
const [quizScore, setQuizScore] = useState(null);
const [showVerseLight, setShowVerseLight] = useState(true);
const supportResistance = calculateSupportResistance(stockData);
const quizQuestions = [
{
question: "ما هو السعر الأعلى للسهم في الفترة؟",
options: [
supportResistance.highestPrice.toFixed(2),
(supportResistance.highestPrice - 0.2).toFixed(2),
(supportResistance.highestPrice + 0.2).toFixed(2)
],
correctAnswer: supportResistance.highestPrice.toFixed(2)
},
{
question: "ما هو مستوى الدعم الرئيسي للسهم؟",
options: [
supportResistance.support.toFixed(2),
(supportResistance.support + 0.1).toFixed(2),
(supportResistance.support - 0.1).toFixed(2)
],
correctAnswer: supportResistance.support.toFixed(2)
},
{
question: "ما هو مستوى المقاومة الرئيسي للسهم؟",
options: [
supportResistance.resistance.toFixed(2),
(supportResistance.resistance + 0.1).toFixed(2),
(supportResistance.resistance - 0.1).toFixed(2)
],
correctAnswer: supportResistance.resistance.toFixed(2)
},
{
question: "كم بلغ حجم التداول في آخر جلسة؟",
options: [
stockData[0].volume.toFixed(2),
(stockData[0].volume + 100).toFixed(2),
(stockData[0].volume - 100).toFixed(2)
],
correctAnswer: stockData[0].volume.toFixed(2)
},
{
question: "ما هو سعر افتتاح آخر جلسة؟",
options: [
stockData[0].open.toFixed(2),
(stockData[0].open + 0.1).toFixed(2),
(stockData[0].open - 0.1).toFixed(2)
],
correctAnswer: stockData[0].open.toFixed(2)
},
{
question: "ما هو السعر الأدنى في آخر جلسة؟",
options: [
stockData[0].low.toFixed(2),
(stockData[0].low + 0.1).toFixed(2),
(stockData[0].low - 0.1).toFixed(2)
],
correctAnswer: stockData[0].low.toFixed(2)
},
{
question: "كم يبلغ نطاق التداول في آخر جلسة؟",
options: [
(stockData[0].high - stockData[0].low).toFixed(2),
((stockData[0].high - stockData[0].low) + 0.1).toFixed(2),
((stockData[0].high - stockData[0].low) - 0.1).toFixed(2)
],
correctAnswer: (stockData[0].high - stockData[0].low).toFixed(2)
},
{
question: "كم يبلغ متوسط أسعار الإغلاق للفترة؟",
options: [
(stockData.reduce((sum, item) => sum + item.price, 0) / stockData.length).toFixed(2),
((stockData.reduce((sum, item) => sum + item.price, 0) / stockData.length) + 0.1).toFixed(2),
((stockData.reduce((sum, item) => sum + item.price, 0) / stockData.length) - 0.1).toFixed(2)
],
correctAnswer: (stockData.reduce((sum, item) => sum + item.price, 0) / stockData.length).toFixed(2)
},
{
question: "ما هو السعر الأخير للسهم؟",
options: [
stockData[0].price.toFixed(2),
(stockData[0].price + 0.1).toFixed(2),
(stockData[0].price - 0.1).toFixed(2)
],
correctAnswer: stockData[0].price.toFixed(2)
},
{
question: "كم يبلغ التصحيح السعري التلقائي؟",
options: [
((stockData[0].high - stockData[0].low) / stockData[0].price * 100).toFixed(2) + '%',
(((stockData[0].high - stockData[0].low) / stockData[0].price * 100) + 1).toFixed(2) + '%',
(((stockData[0].high - stockData[0].low) / stockData[0].price * 100) - 1).toFixed(2) + '%'
],
correctAnswer: ((stockData[0].high - stockData[0].low) / stockData[0].price * 100).toFixed(2) + '%'
}
];
const handleAnswerSelect = (questionIndex, selectedAnswer) => {
const newAnswers = [...quizAnswers];
newAnswers[questionIndex] = selectedAnswer;
setQuizAnswers(newAnswers);
};
const submitQuiz = () => {
const score = quizAnswers.reduce((total, answer, index) =>
answer === quizQuestions[index].correctAnswer ? total + 1 : total, 0);
setQuizScore(score);
};
return (
{showVerseLight && (
)}
);
};
export default StockAnalysisApp;
{!showQuiz ? (
) : (
))}
>
) : (
)}
)}
بَدِيعُ ٱلسَّمَٰوَٰتِ وَٱلۡأَرۡضِۖ
وَإِذَا قَضَىٰٓ أَمۡرٗا فَإِنَّمَا يَقُولُ لَهُۥ كُن فَيَكُونُ
اختبار تحليل السهم
{quizScore === null ? ( <> {quizQuestions.map((q, index) => ({q.question}
{q.options.map((option, optionIndex) => (
))}
النتيجة النهائية
{quizScore}/10
{quizScore === 10 && "إحسنت! نتيجة مثالية"} {quizScore >= 7 && quizScore < 10 && "ممتاز! أداء رائع"} {quizScore >= 5 && quizScore < 7 && "جيد! هناك مجال للتحسن"} {quizScore < 5 && "حاول مرة أخرى وراجع التحليل"}