README / app.py
Alibarzegar's picture
Upload 3 files
f0a90ee verified
# -*- 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("نسخهٔ اولیه — آمادهٔ اتصال به حساب دمو در فاز ۲")