الأحد، 9 فبراير 2025

١٢

import yfinance as yf import pandas as pd import numpy as np # قائمة الأسهم المطلوبة symbols = ['NVDA', 'GOOG', 'AMD', 'LULU', 'AMZN', 'INTC', 'QCOM', 'TSLA', 'MSFT', 'AAPL', 'WMT', 'FDX', 'CRWD', 'MCD', 'BA', 'CVS'] # وظيفة لجلب وتحليل البيانات def get_stock_signals(): data = [] for symbol in symbols: df = yf.download(symbol, period='1mo', interval='1h') # تحميل بيانات آخر شهر بمعدل ساعة if df.empty: continue df['EMA_21_Close'] = df['Close'].ewm(span=21, adjust=False).mean() df['EMA_21_EMA'] = df['EMA_21_Close'].ewm(span=21, adjust=False).mean() # التحقق من التقاطع df['Signal'] = np.where((df['EMA_21_Close'].shift(1) < df['EMA_21_EMA'].shift(1)) & (df['EMA_21_Close'] > df['EMA_21_EMA']), 'BUY', '') last_signal = df['Signal'].iloc[-1] if last_signal == 'BUY': data.append({'Symbol': symbol, 'Signal': last_signal}) return data # إنشاء ملف HTML html_template = """ فرص التداول - EMA 21

فرص التداول - EMA 21

{rows}
السهم الإشارة
""" # استخراج البيانات وتحويلها إلى HTML data = get_stock_signals() rows = "".join(f"{stock['Symbol']}{stock['Signal']}" for stock in data) html_output = html_template.format(rows=rows) # حفظ الملف with open("ema_21_signals.html", "w", encoding="utf-8") as file: file.write(html_output) print("تم إنشاء ملف HTML بنجاح!")

ليست هناك تعليقات:

إرسال تعليق