# -*- coding: utf-8 -*- import streamlit as st import pandas as pd import numpy as np import datetime import matplotlib.pyplot as plt from supertrader.config import PROJECT_ID, PHASE1_PROGRESS, PHASE1_DEADLINE, FEATURES from supertrader.modules.technical import sma_signal st.set_page_config(page_title="ابر انسان معامله‌گر — Ali_5_17", layout="wide") st.title("🚀 ابر انسان معامله‌گر — اتاق فرمان") st.caption(f"Project ID: {PROJECT_ID}") # پیشرفت فاز ۱ st.subheader("📊 وضعیت فاز ۱") progress_val = PHASE1_PROGRESS st.progress(progress_val / 100.0, text=f"پیشرفت فاز ۱: {progress_val}%") # شمارش معکوس تا پایان فاز ۱ deadline = datetime.date.fromisoformat(PHASE1_DEADLINE) days_left = (deadline - datetime.date.today()).days st.write(f"⏳ روزهای باقی‌مانده تا پایان فاز ۱: **{max(days_left,0)}** روز") st.divider() # داده نمونه و سیگنال SMA st.subheader("📈 سیگنال نمونه (SMA Cross)") np.random.seed(42) n = 200 price = 100 + np.cumsum(np.random.randn(n)) # داده ساختگی df = pd.DataFrame({"close": price}) sig = sma_signal(df, 10, 20) fig, ax = plt.subplots() ax.plot(sig.index, sig['close']) ax.plot(sig.index, sig['sma_fast']) ax.plot(sig.index, sig['sma_slow']) ax.set_title("نمونه سیگنال SMA روی دادهٔ ساختگی") st.pyplot(fig) last_sig = sig['signal'].iloc[-1] sig_text = "خرید" if last_sig == 1 else ("فروش" if last_sig == -1 else "خنثی") st.info(f"آخرین سیگنال نمونه: **{sig_text}** (فقط دمو)") st.divider() # بارگذاری و نمایش گزارش‌ها st.subheader("🗂️ گزارش‌ها") uploaded = st.file_uploader("فایل گزارش (TXT یا PDF) را بارگذاری کن", type=["txt","pdf"]) if uploaded is not None: st.success("گزارش بارگذاری شد ✅") if uploaded.type == "text/plain": content = uploaded.read().decode("utf-8", errors="ignore") st.text_area("متن گزارش", content, height=200) else: st.write("فایل PDF بارگذاری شد. (نمایش پیش‌نمایش در نسخه‌های بعدی)") st.caption("نسخهٔ اولیه — آمادهٔ اتصال به حساب دمو در فاز ۲")