روش‌شناسی — چگونه نرخ برد، P&L و ROI را محاسبه می‌کنیم

هر عددی که کنار یک تریدر روی PNL Mama می‌بینید — در صفحه‌ی اصلی، در پروفایل تریدر، در صفحه‌ی بررسی سئو — با یک تابع واحد محاسبه می‌شود. اگر در صفحه‌ی اصلی یک تریدر ۵۲٪ نرخ برد داشته باشد، صفحه‌ی خودش و متاتگ‌هایی که گوگل ایندکس می‌کند هم با آن هم‌خوان‌اند. این صفحه فرمول را شرح می‌دهد.

چگونه هر سیگنال را راستی‌آزمایی می‌کنیم

  1. ثبت. هر پیامی که تریدر در کانال تلگرامی عمومی خود منتشر می‌کند — متن به‌علاوه‌ی هر اسکرین‌شات نمودار — همان‌گونه که هست با مهر زمانی دقیق انتشار ذخیره می‌شود. این مهر زمانی لنگرگاه همه‌ی مراحل بعدی است.
  2. خواندن. مدل استخراج ما ارز، جهت (لانگ/شورت)، ورود، حد سودها، حد ضرر و اهرم را بیرون می‌کشد. اگر عددی روی نمودار کشیده شده باشد، OCR آن را می‌خواند. قیمت‌های گمشده را از خود نمی‌سازیم؛ کمبودها به مرحله‌ی ۳ می‌روند.
  3. استانداردسازی. وقتی تریدر یک پلن ناقص منتشر می‌کند، همان مقادیر پیش‌فرض را به هر سیگنال اعمال می‌کنیم تا قابل مقایسه شوند: حد ضرر = ورود × (۱ − ۱/اهرم)، اهرم = ۱۰× اگر اعلام نشده باشد، ورود به قیمت بازار و سه حد سود مصنوعی روی ۳۳٪ / ۶۶٪ / ۱۰۰٪ فاصله‌ی ورود تا حد ضرر.
  4. گیت لغزش قیمت. اگر تا زمان انتشار پست، بازار بیش از ۷۰٪ مسیر ورود تا TP1 را پیموده باشد، هیچ دنبال‌کننده‌ی صادقی نمی‌توانست با آن قیمت وارد شود — سیگنال با MISSED علامت می‌خورد و از نرخ برد کنار گذاشته می‌شود.
  5. بک‌تست. سیگنال‌های باقی‌مانده روی کندل‌های واقعی دقیقه‌به‌دقیقه‌ی OHLC از صرافی بازپخش می‌شوند. قیمت ورود، باز شدن کندل دقیقه‌ی انتشار است. پوزیشن شبیه‌سازی‌شده از مارجین ثابت ۱۰۰ دلار روی اهرم سیگنال استفاده می‌کند — مقیاسی مشترک برای PnL به USDT میان تریدرها، نه توصیه‌ی اندازه‌ی پوزیشن.
  6. ثبت نتیجه. هر معامله‌ی بسته‌شده یک PnL محقق‌شده به USDT (با احتساب اهرم) و یک ROI درصدی می‌گیرد. این معاملات اعداد نرخ برد، P&L و ROI زیر را تغذیه می‌کنند.

چه چیزی معامله‌ی بسته‌شده به شمار می‌رود

یک سیگنال تنها زمانی بسته تلقی می‌شود که وضعیتش یکی از این‌ها باشد: CLOSED_FULL, CLOSED_PARTIAL, TIMED_OUT.

  • CLOSED_FULL — همه‌ی سطوح حد سود رسیده‌اند یا حد ضرر پوزیشن را بسته است.
  • CLOSED_PARTIAL — دست‌کم TP1 رسیده و باقی پوزیشن بعداً بسته شده است.

سیگنال‌های فعال، در انتظار و خطادار از نرخ برد و P&L کنار گذاشته می‌شوند.

یک معامله‌ی بسته‌شده چگونه طبقه‌بندی می‌شود

هر معامله‌ی بسته‌شده یک نتیجه دارد — سود یا زیان به USDT، با احتساب اهرم. این نتیجه معامله را در یکی از چهار دسته قرار می‌دهد:

  • برد — با سود بسته شد.
  • باخت — با زیان بسته شد.
  • سربه‌سر — بدون سود و زیان بسته شد. نه برد و نه باخت — اما همچنان در شمار کل معاملات بسته‌شده حساب می‌شود.
  • کنارگذاشته — بسته شد اما محاسبه‌ی نتیجه ممکن نشد (به‌ندرت). از آمار حذف می‌شود.

نرخ برد

نرخ برد سهم بردها میان معاملات بسته‌شده است: نرخ برد = بردها ÷ کل معاملات بسته‌شده × ۱۰۰٪. «کل معاملات بسته‌شده» یعنی بردها + باخت‌ها + سربه‌سرها — هر چیزی که نتیجه‌اش معلوم است. تا دو رقم اعشار گرد می‌شود.

P&L و ROI

  • P&L (USDT) — مجموع سود یا زیان همه‌ی معاملات بسته‌شده. هر کدام با همان مارجین ۱۰۰ دلار (مرحله‌ی ۵) شبیه‌سازی می‌شود و فقط نتایج محقق‌شده جمع می‌شوند — پوزیشن‌های باز این عدد را تکان نمی‌دهند.
  • ROI ٪ — میانگین ROI هر معامله (با اهرم). این میانگین بازده به‌ازای هر سیگنال است — هر معامله با وزن برابر، بدون سرمایه‌گذاری مجدد. بازده پرتفوی نیست.

چه بازه‌ای را حساب می‌کنیم

به‌طور پیش‌فرض — 30 روز گذشته، بر اساس تاریخ انتشار سیگنال. در پروفایل تریدر می‌توان بازه را تغییر داد: مثلاً فقط هفته‌ی گذشته یا کل زمان.

چه چیزهایی را (هنوز) لحاظ نمی‌کنیم

  • اندازه‌ی پوزیشن — هر معامله با همان ۱۰۰ دلار (مرحله‌ی ۵) شبیه‌سازی می‌شود تا تریدرها در یک مقیاس قابل مقایسه باشند. ما اندازه‌ی واقعی حساب تریدر و میزان ورودش به یک سیگنال خاص را نمی‌دانیم.
  • لغزش قیمت و کارمزد صرافی — از قیمت‌های داخل سیگنال استفاده می‌کنیم و هزینه‌های واقعی اجرا را کم نمی‌کنیم. روی صرافی واقعی نتیجه کمی بدتر خواهد بود.
  • بستن‌های جزئی — اگر تریدر به اولین حد سود رسیده و باقی را دستی بسته باشد، باز هم معامله را برد کامل حساب می‌کنیم. روش‌شناسی سخت‌گیرانه‌تر نرخ بردی کمی پایین‌تر از ما می‌دهد.

پیاده‌سازی کامل در core/stats_service.py است؛ این صفحه و آن فایل با هم به‌روزرسانی می‌شوند.

← بازگشت به تریدرها