بکتست چیست؟ #
بکتست (Backtest) یعنی اجرای یک استراتژی معاملاتی روی داده قیمت تاریخی، برای دیدن اینکه در گذشته چطور عمل میکرد. اینجا همون جاییه که پارامترهای استراتژی رو هم تنظیم میکنی، تا وقتی که نتایج روی همون داده تاریخی خوب بهنظر برسه.
اما یک مشکل اینجاست. استراتژیای که روی داده خودش، همون داده تنظیمشده، خوب بهنظر میرسد چیز زیادی به تو نمیگوید. البته که خوب بهنظر میرسد. تو پارامترها را مشخصاً طوری انتخاب کردی که روی همون داده خوب باشند. برای همین بکتست بهتنهایی کافی نیست.
فورواردتست چیست؟ #
فورواردتست (Forward Test) دقیقاً همین مشکل را حل میکند. این هم بهصورت آفلاین اجرا میشود، درست مثل بکتست. تفاوت کلیدی، خود داده است. فورواردتست از دادههای جدیدتر استفاده میکند، از یک بازه زمانی که مدل قبلاً هیچوقت آن را ندیده، و در فضایی مشابه.
همین باعث میشود فورواردتست قابلاعتمادتر از بکتست باشد. چرا؟ چون پارامترها با دادههای قبل از آن بازه بهینهسازی شدهاند. مدل هیچ راهی برای «تقلب» با دیدن این دادههای جدید از قبل نداشته. اگر یک استراتژی همچنان اینجا عملکرد خوبی داشته باشد، این سیگنال خیلی قویتری نسبت به فقط نتایج بکتست است.
لایو تست چیست؟ #
لایو تست (Live Test) یعنی گذاشتن الگوریتم روی یک حساب دموی واقعی و اجازهدادن به آن که واقعاً در بازار زنده معامله بگیرد.
این قابلاعتمادترین تست از همه است. در واقع، آنقدر قابلاعتماد است که اگر لایو تست نتایج خوبی نشان بدهد، میتوانی همان نتایج را مستقیماً به یک سرمایهگذار نشان بدهی و روی همان سرمایه اضافه برای معامله با آن الگوریتم جذب کنی.
چرا لایو تست اینقدر معتبرتر است؟ چون دیگر هیچ محیط شبیهسازیشدهای وجود ندارد. این خود واقعیت بازار است که مستقیماً با تو صحبت میکند. هزینههای معاملاتی دقیقاً همانطور که در واقعیت هستند اعمال میشوند. زمانبندیها دقیقاند. کارمزدها، اتصال اینترنت، مدیریت خطا — همهچیز در واقعیترین سطح خودش قرار دارد.
نکته منفی: لایو تست زمانبر است #
لایو تست یک اشکال آزاردهنده دارد: زمان زیادی میبرد. برای رسیدن به یک نتیجه واقعاً معتبر، ممکن است لازم باشد الگوریتم چند ماه بهصورت زنده روی بازار اجرا بماند. بدون یک ویپیاس که بهطور پیوسته روشن باشد، مدیریت این کار تقریباً غیرممکن است.
دقیقاً به همین دلیل، بیشتر معاملهگران در کار روزانه توسعه استراتژی عمدتاً به بکتست و فورواردتست بسنده میکنند. لایو تست معمولاً برای زمانی نگه داشته میشود که یک استراتژی از قبل در فورواردتست نتایج واقعاً چشمگیری گرفته باشد.
به سمت پول واقعی عجله نکن #
حتی بعد از یک لایو تست قوی، باید جلوی ذوقزدگی خودت را بگیری. بلافاصله سراغ اجرای همان استراتژی روی حساب واقعی با پول واقعی نرو. چرا؟ چون خطاهای شبیهسازی همچنان میتوانند ظاهر شوند و حسابی از خجالتت دربیایند — چیزی که از تجربه شخصی گفته میشود.
بزرگترین تله: بیشبرازش نتایج بکتست #
یکی از مخربترین اشتباهات، وسواس روی نتایج بکتست است. اگر پارامترهای الگوریتمت را به زور طوری تنظیم کنی که دقیقاً با داده بکتست جور دربیاید، یا اگر مدام تعداد پارامترها و قید و شرطها را زیاد کنی، ممکن است به عددهای باورنکردنی برسی. چیزهایی مثل وینریت ۸۰ درصد، یا پرافیت فکتور ۵ یا ۶.
این عددها چیزی بیش از یک خواب شیرین نیستند. لایو تست تو را از آن خواب، به دردناکترین شکل ممکن، بیدار میکند. برای همین نباید بیرویه تعداد قید و شرطها را در یک استراتژی افزایش بدی.
هیچ الگوریتمی برای همیشه برنده نیست #
یک نکته مهم را باید بهخاطر بسپاری. الگوریتمی وجود ندارد که همیشه در بازار سود بدهد. چرا؟ چون بازار مثل یک موجود زنده رفتار میکند. دائماً در حال تغییر و تکامل است.
این یعنی الگوریتمها و پارامترهایشان هم باید در طول زمان تغییر و تکامل پیدا کنند. نمیتوانی یک مدل را یکبار بنویسی و انتظار داشته باشی با همان پارامترها، مثل یک میراث، برای همیشه کار کند.
تلاش واقعی پشت معاملات الگوریتمی #
نوشتن یک الگوریتم واقعاً خوب که معاملات سودآور را شکار کند، صبر و تلاش زیادی میطلبد. به یادگیری مداوم نیاز دارد.
از دور، الگوریتمهای معاملاتی ممکن است شبیه یک ماشین چاپ پول بهنظر برسند. و شاید این تصور حتی درست باشد. اما باید بفهمی که باید این ماشین را قطعهبهقطعه، با دست، با دقت روی هر جزئیات کوچک، سرهم کنی. احتمال موفقیت اینجا بیشتر از احتمال موفقیت در معاملهگری سنتی نیست.
پس بهتر است قبل از شروع این مسیر، فکر پول راحت را از سرت بیرون کنی. بعد از این کار، آمادهای بروی سراغ مطالعه سطح ۱.
جمعبندی #
بکتست پارامترها را روی داده تاریخی تنظیم میکند، فورواردتست همان پارامترها را روی داده جدیدتر و ندیده برای نتیجهای صادقانهتر بررسی میکند، و لایو تست روی حساب دمو قابلاعتمادترین از همه است، هرچند زمان زیادی میبرد. بیشبرازش نتایج بکتست عددهای غیرواقعی تولید میکند که لایو تست بعداً آنها را رسوا میکند، و هیچ الگوریتمی بدون تنظیم مداوم، برای همیشه سودآور نمیماند.
خلاصه #
بکتست استراتژی را روی داده گذشته تنظیم میکند، فورواردتست آن را روی داده جدیدتر و ندیده بررسی میکند، لایو تست روی حساب دمو معتبرترین اما کندترین اثبات است، و دنبالکردن اعداد کامل بکتست از طریق بیشبرازش فقط تو را برای یک واقعیت دردناک بعدی آماده میکند.