import os, time, requests, threading, io, sys from datetime import datetime, timedelta import pandas as pd import pandas_ta as ta import gradio as gr import mplfinance as mpf import urllib3 # تعطيل تحذيرات SSL القديمة لضمان استقرار السيرفر urllib3.disable_warnings() # --- إعدادات الوصول --- TOKEN = "8721841884:AAEf944fZYf7ESHnGIzFRchyD_VaduyjflY" CHAT_ID = "8238827370" SYMBOLS = { "EURUSD=X": "EUR/USD", "GBPUSD=X": "GBP/USD", "USDJPY=X": "USD/JPY", "USDCHF=X": "USD/CHF", "USDCAD=X": "USD/CAD", "AUDUSD=X": "AUD/USD", "NZDUSD=X": "NZD/USD", "EURGBP=X": "EUR/GBP", "EURJPY=X": "EUR/JPY", "GBPJPY=X": "GBP/JPY" } last_trade_time = datetime.now() - timedelta(minutes=10) # --- نظام الإرسال الفولاذي (تخطي أخطاء الـ SSL الظاهرة في الصور) --- def send_telegram_direct(message, image_data=None): def worker(): url = f"https://api.telegram.org/bot{TOKEN}/" payload = {'chat_id': CHAT_ID, 'parse_mode': 'Markdown'} try: if image_data: files = {'photo': ('chart.png', image_data.getvalue(), 'image/png')} requests.post(url + "sendPhoto", data={**payload, 'caption': message}, files=files, timeout=30, verify=False) else: requests.post(url + "sendMessage", data={**payload, 'text': message}, timeout=30, verify=False) except: pass threading.Thread(target=worker).start() def get_super_analysis(df): # 1. مدرسة الفيبوناتشي الذهبية high, low = df['high'].max(), df['low'].min() fib618 = high - (0.618 * (high - low)) fib50 = high - (0.50 * (high - low)) # 2. مدرسة السيولة (Bollinger Bands) bb = ta.bbands(df['close'], length=20, std=2) # 3. مدرسة الزخم (RSI + MACD + Stochastic) rsi = ta.rsi(df['close'], length=14).iloc[-1] stoch = ta.stoch(df['high'], df['low'], df['close']).iloc[-1] # 4. مدرسة العرض والطلب (أقوى مستويات) sup = df['low'].tail(30).min() res = df['high'].tail(30).max() return fib618, fib50, bb, rsi, stoch, sup, res def global_emperor_engine(): global last_trade_time print("🚀 DRAGON PULSE v27.0 - ULTIMATE ARSENAL START", flush=True) send_telegram_direct("🐲 **DragonPulse v27.0 [الإصدار المدمر]**\n✅ تم دمج 5 مدارس تحليلية\n⚡ نظام الربط الفولاذي مفعل لتخطي أخطاء SSL") while True: for sym_id, name in SYMBOLS.items(): try: r = requests.get(f"https://query1.finance.yahoo.com/v8/finance/chart/{sym_id}?interval=1m&range=1d", headers={'User-Agent': 'Mozilla/5.0'}, timeout=10).json() data = r['chart']['result'][0] df = pd.DataFrame(data['indicators']['quote'][0]) df.index = pd.to_datetime(data['timestamp'], unit='s') df = df.dropna() fib618, fib50, bb, rsi, stoch, sup, res = get_super_analysis(df) curr_p = df['close'].iloc[-1] # --- شروط دخول الترسانة (دقة 95% وسرعة قصوى) --- if (datetime.now() - last_trade_time).total_seconds() > 150: # صفقات كل 2.5 دقيقة signal = "" # شرط الشراء الخماسي (فيبو + سيولة + دعم + زخم + برايس أكشن) if (curr_p <= fib618 or curr_p <= bb['BBL_20_2.0'].iloc[-1] or curr_p <= sup) and rsi < 45: if stoch['STOCHk_14_3_3'] < 20 and df['close'].iloc[-1] > df['open'].iloc[-1]: signal = "CALL 🟢 [ULTIMATE]" # شرط البيع الخماسي elif (curr_p >= fib618 or curr_p >= bb['BBU_20_2.0'].iloc[-1] or curr_p >= res) and rsi > 55: if stoch['STOCHk_14_3_3'] > 80 and df['close'].iloc[-1] < df['open'].iloc[-1]: signal = "PUT 🔴 [ULTIMATE]" if signal: msg = (f"🚨 **DragonPulse v27.0**\n🌍 الزوج: {name}\n📊 الإشارة: {signal}\n🎯 السعر: {round(curr_p, 5)}\n⏳ مدة: 2 دقيقة") buf = io.BytesIO() mpf.plot(df.tail(30), type='candle', style='charles', savefig=buf) buf.seek(0) send_telegram_direct(msg, image_data=buf) last_trade_time = datetime.now() break except: continue time.sleep(0.5) threading.Thread(target=global_emperor_engine, daemon=True).start() with gr.Blocks() as demo: gr.Markdown("# 🐲 DragonPulse v27.0 - Ultimate Arsenal") demo.launch()