Spaces:
Configuration error
Configuration error
| # -*- 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("نسخهٔ اولیه — آمادهٔ اتصال به حساب دمو در فاز ۲") | |