این پروژه نمایانگر یک فرآیند کامل و End-to-End در توسعه یک سیستم معاملاتی الگوریتمی مبتنی بر یادگیری تقویتی عمیق (Deep Reinforcement Learning) است. هدف، ساخت یک عامل هوشمند (Agent) بود که بتواند به صورت خودکار در بازار بورس تهران معامله کرده، پرتفوی خود را مدیریت کند و بازدهی بالاتری نسبت به شاخص کل به دست آورد.
چالش اولیه:
پروژه با یک مدل پایه (V5) آغاز شد که دارای خطاهای ساختاری در محیط معاملاتی (KeyError) و منطق تصمیمگیری ناقص بود. این مدل قادر به مدیریت ریسک نبود و استراتژی آن بر اساس دادههای محدودی شکل گرفته بود.
فرآیند توسعه و راهکار من:
برای رسیدن به یک مدل قابل اتکا و سودآور، من یک نقشه راه چندمرحلهای را اجرا کردم:
۱. تثبیت و ارتقاء محیط (Environment Enhancement):
رفع خطای کلیدی: ابتدا با تحلیل کد، خطای KeyError را در منطق بازگشتی محیط (TSEPortfolioEnv) شناسایی و برطرف کردم تا یک پایه پایدار برای توسعه داشته باشیم.
تزریق هوش به مدل (Feature Engineering): محیط معاملاتی را به نسخه V6 ارتقا دادم. در این نسخه، دو ورودی حیاتی برای درک بهتر بازار اضافه شد:
نسبت حجم معاملات (Volume Ratio): برای تشخیص جریان پول و قدرت روند.
شاخص نوسان (Volatility): برای درک ریسک بازار و مدیریت فعال نقدینگی.
۲. بهینهسازی هوشمند پارامترها (Hyperparameter Tuning with Optuna):
به جای استفاده از پارامترهای پیشفرض، از فریمورک بهینهسازی Optuna استفاده کردم تا بهترین ترکیب از پارامترهای کلیدی مدل (مانند learning_rate, gamma, n_steps و معماری شبکه) را به صورت خودکار پیدا کنم.
این فرآیند روی دادههای اعتبارسنجی (Validation Set) اجرا شد تا از بیشبرازش (Overfitting) روی دادههای آموزش جلوگیری شود.
۳. آموزش و اعتبارسنجی نهایی (Final Training & Forward Testing):
با استفاده از پارامترهای بهینه شده، یک مدل نهایی با معماری شبکه عصبی بزرگتر (Large) آموزش داده شد.
مهمترین بخش پروژه، آزمون این مدل روی دادههای دیده نشده (Unseen Data) از ژانویه ۲۰۲۳ به بعد بود. این تست که به آن Forward Test میگویند، عملکرد واقعی استراتژی را در شرایط بازار واقعی شبیهسازی میکند.
نتایج کلیدی:
بازدهی کل (ROI): مدل نهایی در تست فوروارد به بازدهی خیرهکننده ۷۶.۵۵٪ دست یافت.
مدیریت ریسک هوشمند: نمودارها نشان داد که عامل در زمانهای ریزش بازار (مانند روز ۳۵۰ام تست)، به طور خودکار درصد نقدینگی (Cash Ratio) خود را تا ۲۴٪ افزایش داده و با شروع روند صعودی، مجدداً به صورت تهاجمی وارد بازار شده است. این رفتار نشاندهنده یک استراتژی مدیریت ریسک پویا و هوشمند است، نه یک سود شانسی.
پایداری (Robustness): نتایج نزدیک مدل پیشفرض (۷۳٪) و مدل بهینه (۷۶٪) نشاندهنده پایداری و قابل اتکا بودن منطق اصلی استراتژی است.
تکنولوژیهای مورد استفاده:
Python
Pandas & NumPy (برای پردازش دادههای مالی)
PyTorch (به عنوان بکاند کتابخانه RL)
Stable Baselines 3 (برای پیادهسازی الگوریتم PPO)
Optuna (برای بهینهسازی هایپرپارامترها)
Git (برای کنترل نسخه و تگگذاری نهایی v6.1-tuned-gold)
این پروژه نمونهای کامل از توانایی من در حل مسئله، مهندسی ویژگی، بهینهسازی مدلهای پیچیده و تمرکز بر نتایج قابل اندازهگیری و واقعی است.