# مرحله ۵ — کارت سیگنال استاندارد: خلاصه

## قالب جدید کارت سیگنال
هر فیلد حالا دقیقاً طبق ترتیب سند Design System (مرحله ۳) روی خط جدای خودشه (قبلاً Entry و SL کنار هم روی یه خط بودن که برای فارسی/عربی/عبری ریسک به‌هم‌ریختگی Bidi داشت):
```
🟢 خرید — طلا (XAU/USD)
ربات پرو | ⏱ ۱۵ دقیقه
━━━━━━━━━━━━━━━
💰 Entry: 2,015.40
🛑 حد ضرر: 2,010.20
💵 سرمایه: 1,000$   |   📦 حجم: 0.20
🟢 ریسک: 1.02% (≈10.2$)
━━━━━━━━━━━━━━━
🎯 تارگت‌ها:
   1️⃣ 2,020.60 (+10.4$) → Breakeven
   2️⃣ 2,024.80 (+18.9$) → تارگت ۱
   3️⃣ 2,030.60 (+30.6$) → هدف نهایی
░░░░░░░░░░ 0% تا تارگت ۱
━━━━━━━━━━━━━━━
📊 تحلیل: RSI + MACD
📌 منبع قیمت: Twelve Data
⏰ 1404-... (تهران)
```

## نوار پیشرفت متنی (چک‌لیست ردیف ۲ و ۳)
تابع جدید `buildProgressBar()` جهت‌مستقل کار می‌کنه (چه خرید چه فروش، فرمول بر پایه‌ی نسبت فاصله‌ست، نه علامت عدد) و توی ۳ نقطه استفاده می‌شه:
- **کارت اولیه‌ی سیگنال** — همیشه ۰٪ تا تارگت ۱ (چون لحظه‌ی صدور سیگنال، قیمت = Entry).
- **پیام رسیدن به تارگت ۱** — نوار تازه برای مرحله‌ی «تارگت ۱ → تارگت ۲».
- **پیام رسیدن به تارگت ۲** — نوار تازه برای مرحله‌ی «تارگت ۲ → تارگت ۳ نهایی».

هر ۳ حالتی که چک‌لیست خواسته بود (قبل از T1، بین T1 و T2، بعد از T2) پوشش داده شد.

## سطح ریسک گسسته (🟢/🟡/🔴)
تابع `riskLevelTag()`: تا ۱.۵٪ سبز، تا ۳٪ زرد، بالاتر قرمز — چون الگوریتم فعلی همیشه ریسک رو حدود ۱٪ هدف‌گذاری می‌کنه، اکثر سیگنال‌ها 🟢 خواهند بود؛ ولی وقتی گرد کردن حجم لات (به ۰.۰۱) ریسک واقعی رو بالاتر ببره، رنگ به‌درستی عوض می‌شه.

## خط هشدار زیر Win Rate/سود تقریبی
کارت انتخاب ربات (جایی که Win Rate/سود تقریبی/ریسک تقریبی رو نشون می‌ده) حالا زیرش خط «بر اساس عملکرد گذشته، بدون تضمین آینده» رو داره (هر ۲۱ زبون). صفحه‌ی ماشین‌حساب سود از قبل یه disclaimer کامل‌تر داشت، دست نخورد.

## دکمه‌ی «بستن معامله»
از قبل زیر هر کارت سیگنال بود (`KB::positionManage`) — نیازی به اضافه‌کردن نبود، فقط تایید شد که هست.

## فرمت عدد مالی
همه‌ی اعداد از قبل با `number_format` و ارقام لاتین نمایش داده می‌شدن — مطابق تصمیم مرحله ۳، بدون تغییر.

## وضعیت چک‌لیست
- [x] قالب جدید — هیچ فیلدی `null`/خالی نمایش داده نمی‌شه (همه‌ی مقادیر از قبل محاسبه‌شده وارد تابع می‌شن).
- [x] نوار پیشرفت برای هر ۳ حالت درست محاسبه می‌شه (فرمول تست شده روی کاغذ برای هر دو جهت).
- [x] برای فروش هم منطقی‌ست (فرمول با علامت فاصله کار می‌کنه، نه با فرض ثابت افزایشی بودن قیمت).
- [ ] **نمایش روی موبایل واقعی** — این رو نمی‌تونم خودم تست کنم، حتماً چک کنید خط‌ها نشکنن.
- [x] فرمت عدد مطابق مرحله ۳.

## معیار پایان مرحله — نیاز به تست شماست
«حداقل ۲۰ سیگنال واقعی/شبیه‌سازی‌شده با قالب جدید بدون خطای نمایشی» فقط روی ربات واقعی و در طول زمان (چون سیگنال‌ها به‌مرور صادر می‌شن) قابل انجامه. چند پیشنهاد برای تست سریع‌تر بدون صبر چند روزه:
- می‌تونید موقتاً یه اسکریپت تست جدا بنویسید که مستقیم `Bot::buildSignalMessage(...)` رو با چند مقدار فرضی (هم BUY هم SELL، چند نماد مختلف) صدا بزنه و خروجی رو توی خود تلگرام با `sendMessage` بفرستید — بگید اگه بخواید این اسکریپت تست رو هم براتون بسازم.

## فایل تحویلی
- `traderpro.php` — به‌روزرسانی‌شده.
