Alibarzegar commited on
Commit
f0a90ee
·
verified ·
1 Parent(s): a47b16b

Upload 3 files

Browse files
Files changed (3) hide show
  1. README.md +29 -0
  2. app.py +60 -0
  3. requirements.txt +4 -0
README.md ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ابر انسان معامله‌گر — Ali_5_17
2
+
3
+ این نسخه‌ی اولیه‌ی سایت (Streamlit) به‌عنوان «اتاق فرمان» پروژه است.
4
+
5
+ ## امکانات الان
6
+ - داشبورد ساده با نمایش Project ID و درصد پیشرفت
7
+ - بارگذاری/نمایش گزارش‌ها (TXT/PDF)
8
+ - تولید سیگنال نمونه با میانگین متحرک روی داده‌ی نمونه
9
+ - نوار وضعیت و تایمر شمارش معکوس فاز ۱
10
+
11
+ ## چطور رایگان دیپلوی کنیم (Streamlit Cloud)
12
+ 1. یک اکانت رایگان بساز: https://streamlit.io/cloud
13
+ 2. این پوشه را به یک ریپازیتوری جدید روی GitHub آپلود کن (از موبایل هم می‌شود).
14
+ 3. در Streamlit Cloud یک اپ جدید بساز و ریپازیتوری را انتخاب کن.
15
+ 4. فایل اصلی را `app.py` بگذار. بقیه کارها خودکار است.
16
+
17
+ ### HuggingFace Spaces (اختیاری)
18
+ 1. اکانت رایگان در https://huggingface.co
19
+ 2. یک Space از نوع **Streamlit** بساز.
20
+ 3. کل پوشه را آپلود کن. تمام.
21
+
22
+ ## تنظیمات
23
+ - Project ID: `Ali_5_17` در `supertrader/config.py` ثبت شده.
24
+ - برای اتصال دمو در آینده، کلیدهای دمو را در همین فایل (یا به‌صورت Secret در پلتفرم) اضافه می‌کنیم.
25
+
26
+ ## نیازمندی‌ها
27
+ ```
28
+ pip install -r requirements.txt
29
+ ```
app.py ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+ import streamlit as st
3
+ import pandas as pd
4
+ import numpy as np
5
+ import datetime
6
+ import matplotlib.pyplot as plt
7
+
8
+ from supertrader.config import PROJECT_ID, PHASE1_PROGRESS, PHASE1_DEADLINE, FEATURES
9
+ from supertrader.modules.technical import sma_signal
10
+
11
+ st.set_page_config(page_title="ابر انسان معامله‌گر — Ali_5_17", layout="wide")
12
+
13
+ st.title("🚀 ابر انسان معامله‌گر — اتاق فرمان")
14
+ st.caption(f"Project ID: {PROJECT_ID}")
15
+
16
+ # پیشرفت فاز ۱
17
+ st.subheader("📊 وضعیت فاز ۱")
18
+ progress_val = PHASE1_PROGRESS
19
+ st.progress(progress_val / 100.0, text=f"پیشرفت فاز ۱: {progress_val}%")
20
+
21
+ # شمارش معکوس تا پایان فاز ۱
22
+ deadline = datetime.date.fromisoformat(PHASE1_DEADLINE)
23
+ days_left = (deadline - datetime.date.today()).days
24
+ st.write(f"⏳ روزهای باقی‌مانده تا پایان فاز ۱: **{max(days_left,0)}** روز")
25
+
26
+ st.divider()
27
+
28
+ # داده نمونه و سیگنال SMA
29
+ st.subheader("📈 سیگنال نمونه (SMA Cross)")
30
+ np.random.seed(42)
31
+ n = 200
32
+ price = 100 + np.cumsum(np.random.randn(n)) # داده ساختگی
33
+ df = pd.DataFrame({"close": price})
34
+ sig = sma_signal(df, 10, 20)
35
+
36
+ fig, ax = plt.subplots()
37
+ ax.plot(sig.index, sig['close'])
38
+ ax.plot(sig.index, sig['sma_fast'])
39
+ ax.plot(sig.index, sig['sma_slow'])
40
+ ax.set_title("نمونه سیگنال SMA روی دادهٔ ساختگی")
41
+ st.pyplot(fig)
42
+
43
+ last_sig = sig['signal'].iloc[-1]
44
+ sig_text = "خرید" if last_sig == 1 else ("فروش" if last_sig == -1 else "خنثی")
45
+ st.info(f"آخرین سیگنال نمونه: **{sig_text}** (فقط دمو)")
46
+
47
+ st.divider()
48
+
49
+ # بارگذاری و نمایش گزارش‌ها
50
+ st.subheader("🗂️ گزارش‌ها")
51
+ uploaded = st.file_uploader("فایل گزارش (TXT یا PDF) را بارگذاری کن", type=["txt","pdf"])
52
+ if uploaded is not None:
53
+ st.success("گزارش بارگذاری شد ✅")
54
+ if uploaded.type == "text/plain":
55
+ content = uploaded.read().decode("utf-8", errors="ignore")
56
+ st.text_area("متن گزارش", content, height=200)
57
+ else:
58
+ st.write("فایل PDF بارگذاری شد. (نمایش پیش‌نمایش در نسخه‌های بعدی)")
59
+
60
+ st.caption("نسخهٔ اولیه — آمادهٔ اتصال به حساب دمو در فاز ۲")
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ streamlit
2
+ pandas
3
+ numpy
4
+ matplotlib