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
"""
# استخراج البيانات وتحويلها إلى 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 بنجاح!")
ليست هناك تعليقات:
إرسال تعليق