دوشنبه، عامل پژوهشی هوش مصنوعی ما استراتژی معاملات آتی رمزارز با نسبت Sharpe برابر 4.1 پیدا کرد. تا پنجشنبه، پس از شمردن آزمایشها و متوقفکردن تنظیم عامل روی همان بازه اعتبارسنجی، نتیجه به 0.8 رسید. استراتژی عوض نشده بود؛ برآورد ما از دستاورد جستوجو عوض شده بود.
این کار را در قالب یک گزارش پژوهشی کوتاه روزانه پیش بردیم، چون گفتنِ «بااحتیاط بهینهسازی کنید» آسان است، اما وقتی یک عامل میتواند کد بنویسد، بکتست اجرا کند، امتیاز را بررسی کند و ظرف چند دقیقه دوباره تلاش کند، تبدیلکردنش به روال عملی دشوار است. اینها چیزهایی است که بهترتیب از کار افتادند.
دوشنبه: پرسشی با محدوده مشخص به عامل بدهید
از عامل خواستیم ایدهای ساده برای دنبالکردن روند ساعتی را در بازاری نقدشونده از قراردادهای آتی دائمی آزمایش کند: وقتی میانگین متحرک کوتاه از میانگین بلند عبور میکند وارد معامله شود، اندازه موقعیت را بر اساس هدف نوسان ثابت تعیین کند و با سیگنال معکوس از معامله خارج شود. ابزار معاملاتی، تاریخها، ساختار کارمزد، سابقه فاندینگ، فرض اجرا و بازه پارامترهایی را که میتوانست بررسی کند مشخص کردیم.
نمونه تاریخی از 2021 تا 2025 را دربر میگرفت. سالهای 2021–2023 را برای توسعه، 2024 را برای اعتبارسنجی در نظر گرفتیم و 2025 را بهعنوان مجموعه آزمون نهایی دستنخورده نگه داشتیم. این تفکیک در پیکربندی کار ثبت شد؛ بنابراین عامل میتوانست نتایج توسعه و امتیازهای اعتبارسنجی را بخواند، اما نمیتوانست بازده مجموعه آزمون نهایی را دریافت کند.
اشتباه اولمان این بود که 300 ترکیب پارامتر را در یک کار مجاز دانستیم، بیآنکه بودجه جستوجو را بهعنوان نتیجهای پژوهشی ثبت کنیم. عامل بهترین نتیجه را برگرداند: میانگین سریع 9 ساعته، میانگین کند 73 ساعته و هدف نوسان 0.8%. Sharpe آن در اعتبارسنجی 4.1 بود. میدانستیم عامل تنظیمات زیادی را آزموده است؛ اما هنوز کاری نکرده بودیم که این واقعیت از یادمان نرود.
سهشنبه: با اجرای دوباره، گزینه برتر تغییر کرد
همان کار را در محیطی پاک دوباره اجرا کردیم. تنظیم برتر تغییر کرد و Sharpe آن به 2.7 افتاد. در اجرای اول، حافظه نهان دادههای بازار یک سری فاندینگ بهروزشده ارائه کرده بود، اما اجرای مجدد از یک نسخه ثابتشده استفاده میکرد. هر دو کار ادعا میکردند از یک بازه زمانی استفاده کردهاند؛ فقط یکی نسخه داده بازتولیدپذیری داشت.
مقایسه امتیازها را کنار گذاشتیم و ثبت کامل آزمایش را آغاز کردیم: بازبینی کد، نسخه داده، کارمزدها، فاندینگ، تنظیمات اجرا، مقادیر پارامترها و تمام تلاشهایی که عامل اجرا کرده بود. این کار نشان داد عدد 4.1 مزیت مرموزی در بازار نبود؛ متعلق به یکی از تنظیمات در جستوجویی شامل 300 تلاش روی همان سال اعتبارسنجی بود.
چهارشنبه: پیش از بازکردن مجموعه آزمون نهایی، جستوجو را متوقف کنید
آزمایش را با نسخه ثابت داده و شبکهای کوچکتر و ازپیشتعریفشده، شامل 24 ترکیب، دوباره اجرا کردیم. عامل میتوانست آنها را بر اساس دوره توسعه 2021–2023 رتبهبندی کند. اجازه دادیم 2024 را یک بار برای انتخاب ببیند و بعد تنظیمات انتخابشده و کد را قفل کردیم.
امتیاز Sharpe استراتژی انتخابشده در اعتبارسنجی 0.8 بود. در مجموعه آزمون نهاییِ دستنخورده 2025، پس از اعمال کارمزدهای taker، فاندینگ و همان تأخیر اجرای 1 کندلی که در سراسر مطالعه بهکار رفته بود، امتیازش 0.3 شد. این پاسخ مفیدی بود، اما شواهدی نبود که نشان دهد استراتژی در یک حساب واقعی سودآور خواهد بود.
نکتهای حاشیهای از این هفته: بیشتر از نوشتن کد میانگین متحرک، وقت صرف توافق بر سر معنای «یک آزمایش» کردیم. هر مجموعه پارامتر تغییریافته را یک آزمایش شمردیم و اجراهایی را هم شمردیم که سیگنال یا قاعده اندازه موقعیت را تغییر میدادند. نسخه داده یا فرض اجرای جدید، سابقه اجرای جداگانهای گرفت، چون هرکدام میتوانستند به همان اندازه رتبهبندی را تغییر دهند.
پنجشنبه: دفعه بعد چه کارهایی را کنار میگذاریم
کار اولِ بیحدومرز را کنار میگذاریم. عامل پژوهشی به بودجه جستوجو و ثبت آنچه آزموده نیاز دارد، بهویژه وقتی میتواند از هر نتیجه برای تصمیمگیری درباره تلاش بعدی استفاده کند. مجموعه آزمون نهایی هم باید از نگاههای غیررسمی محافظت شود: بهمحض اینکه کسی نتیجهاش را بخواند و استراتژی را تغییر دهد، آن مجموعه به یک مجموعه اعتبارسنجی دیگر تبدیل شده است.
برای جستوجویی کوچک، دفتر ثبت آزمایش میتواند ساده و روشن باشد:
| مورد ثبتشده | اهمیت |
|---|---|
| نسخههای کد و داده | تا اجرای دوباره همان ورودیها و منطق را بهکار ببرد |
| همه گزینههای آزمودهشده | تا گزینه برتر را در پرتو کل جستوجو بفهمیم |
| نقش دورههای توسعه، اعتبارسنجی و آزمون نهایی | تا امتیاز نهایی بیسروصدا دوباره برای تنظیم استفاده نشود |
| فرضهای کارمزد، فاندینگ و اجرا | تا نتیجه گزارششده توصیفکننده شبیهسازی قابلآزمایش باشد |
پس از بازکردن مجموعه آزمون نهایی، با یک پرسش پژوهشی تازه به دوره توسعه برگردید و نتیجه قبلی را بهعنوان شاهد تاریخی نگه دارید. همان استراتژی را در برابر دورهای که قبلاً دیده است، مدام صیقل ندهید.
عامل کارش را انجام داد: سریع جستوجو کرد و پیکربندیای یافت که ارزش بررسی داشت. کار ما این بود که جستوجو را شفاف کنیم، یک آزمون دستنخورده را حفظ کنیم و امتیاز را اندازهگیریای با سابقه بدانیم. نتیجه جالب نه 4.1 بود و نه 0.3؛ دیدن این بود که عدد اول دقیقاً چطور بهدست آمد.
← همهٔ مطالب


