بکتست چیست و چطور از یک استراتژی معاملاتی بکتست بگیریم؟
بکتست یعنی همان قاعدهای که قرار است فردا با آن معامله کنید را روی دادهٔ واقعیِ گذشته اجرا کنید و ببینید چه میکرد. نه پیشبینی است و نه تضمین؛ یک آزمایش است که جلوِ خرجکردنِ پول برای ایدهای که هیچوقت کار نمیکرده را میگیرد.
بکتست دقیقاً چه کاری میکند
یک استراتژیِ معاملاتی در نهایت یک مشت قاعدهٔ روشن است: کِی بخر، کِی بفروش، چقدر از سرمایه، و کجا بپذیر که اشتباه کردهای. بکتست این قواعد را کندلبهکندل روی تاریخچهٔ واقعیِ یک نماد اجرا میکند و هر معاملهای را که قاعده میساخت، با قیمتِ همان لحظه، ثبت میکند.
خروجی یک عددِ تنها نیست: فهرستِ کاملِ معاملهها، منحنیِ رشدِ سرمایه، بیشترین افتی که پشتِ سر گذاشتهاید (drawdown)، نسبتِ بُرد، و میانگینِ سود و زیانِ هر معامله. عددِ «بازدهِ کل» بدونِ اینها گمراهکننده است — استراتژیای که ۸۰ درصد سود داده ولی وسطِ راه ۶۰ درصد افت داشته، استراتژیای است که هیچکس تا آخرش نمیماند.
- ورود و خروج روی قیمتِ واقعیِ کندل پر میشود، نه قیمتِ آرمانی.
- کارمزدِ خرید و فروش از همان اول کم میشود؛ یک استراتژیِ پرمعامله بدونِ کارمزد همیشه سودده به نظر میرسد.
- حد ضرر و حد سود همانجایی پر میشوند که قیمت واقعاً به آنها رسیده.
سه خطایی که بکتست را بیارزش میکند
نگاه به آینده (look-ahead). اگر محاسبهٔ اندیکاتور در لحظهٔ تصمیم، از کندلهایی استفاده کند که هنوز بسته نشدهاند، نتیجه همیشه درخشان است و همیشه دروغ. این خطا معمولاً در فرمولهای دستی و صفحهگستردهها رخ میدهد و از بیرون هم پیدا نیست: فقط عددِ خوب میبینید.
بیشبرازش (overfitting). اگر پارامترها را آنقدر بچرخانید تا روی همین تاریخچه بهترین نتیجه را بدهند، چیزی که ساختهاید یک توضیحِ دقیق از گذشته است، نه قاعدهای برای آینده. راهِ سنجشش ساده است: بخشی از داده را کنار بگذارید، روی بقیه تنظیم کنید، و بعد روی همان بخشِ کنارگذاشته بیازمایید.
بازهٔ زمانیِ تکحالته. قاعدهای که فقط در یک بازارِ صعودیِ دوساله آزموده شده، فقط گفته است در بازارِ صعودی چه میکند. بازهٔ آزمون باید دورهٔ نزولی و درجا را هم داشته باشد.
بکتست چه چیزی را نمیگوید
بکتست نمیگوید فردا چه میشود. میگوید این قاعده در گذشته چه میکرد — و این دو یکی نیستند. بازار میتواند رفتارش عوض شود، نقدشوندگیِ یک نماد میتواند از بین برود، و قاعدهای که سالها جواب داده میتواند از کار بیفتد.
همچنین بکتست هیچچیز دربارهٔ روانشناسیِ خودِ شما نمیگوید. منحنیای که روی کاغذ ۳۰ درصد افت دارد، در عمل یعنی چند ماه دیدنِ حسابِ قرمز. اگر میدانید آن را تحمل نمیکنید، عددِ بازده بیفایده است.
و مهمتر از همه: بکتست جای مدیریتِ سرمایه را نمیگیرد. اندازهٔ هر معامله و سقفِ زیانِ قابلقبول، تصمیمهاییاند که بیرون از قاعدهٔ ورود و خروج گرفته میشوند.
چطور بدونِ کدنویسی بکتست بگیریم
بیشترِ ابزارهای جدی بکتست یا کدنویسی میخواهند (پایتون، Pine Script) یا فقط بازارهای خارجی را میشناسند. تحلیلیار همین کار را با فرم انجام میدهد و هر دو بازارِ بورس تهران و ارز دیجیتال را پوشش میدهد:
- موتورِ سیگنال بسازید: شرطهای ورود را با اندیکاتور، الگوی کندل، و برای بورس شرطهای صفِ خرید و فروش، در گروههای «و / یا» بچینید.
- استراتژی را کامل کنید: موتورِ ورود و خروج، حد ضرر و حد سود (ثابت، درصدی یا بر پایهٔ ATR)، ورود و خروجِ پلهای، و مدلِ سرمایه.
- بکتست را اجرا کنید: نماد و بازه را انتخاب کنید و نتیجه را با فهرستِ معاملهها و چارتِ نشانهگذاریشده ببینید. روی هر ردیفِ جدول، همان معامله روی چارت با فلشِ ورود و خروج و خطِ حد ضرر نشان داده میشود.
- بیشبرازش را بسنجید: بهینهساز جداسازیِ دروننمونه/بروننمونه دارد و وقتی فاصلهٔ این دو زیاد شود، هشدار میدهد.
واژهها: همین چیز را چطور دیگر مینویسند
- «بکتست»، «بک تست» و «بکتست» هر سه یک چیزند و در متنِ فارسی هر سه نوشته میشوند؛ اصلِ انگلیسیِ آن backtest یا backtesting است.
- «بکتست گرفتن» و «بازآزمایی» هم برای همین کار بهکار میروند.
- «ترید» همان معامله است و «تریدر» همان معاملهگر؛ «استراتژی معاملاتی» و «استراتژی ترید» یک معنا دارند.
پرسشهای پرتکرار
بک تست دقیقاً یعنی چه؟
اجرای قاعدههای ورود و خروجِ یک استراتژی روی دادهٔ تاریخیِ واقعیِ بازار، کندلبهکندل، برای دیدنِ اینکه آن قاعده در گذشته چه معاملههایی میساخت و نتیجهشان چه بود.
چطور بدون برنامهنویسی بک تست بگیرم؟
با ابزاری که شرطها را بهصورتِ فرم میگیرد. در تحلیلیار یک موتورِ سیگنال (شرطهای ورود) میسازید، آن را در یک استراتژی با حد ضرر و مدلِ سرمایه ترکیب میکنید، و روی نماد و بازهٔ دلخواه اجرا میگیرید — بدونِ یک خط کد.
نتیجهٔ بک تست چقدر قابل اعتماد است؟
بهاندازهای که داده و روشِ آزمون درست باشند. سه چیز را بررسی کنید: آیا محاسبه به آینده نگاه میکند؟ آیا پارامترها روی همان داده تنظیم شدهاند (بیشبرازش)؟ آیا بازهٔ آزمون فقط یک نوع بازار را دیده؟ حتی با هر سه درست، بکتست تضمینِ آینده نیست.
بک تست چند سال داده لازم دارد؟
قاعدهٔ سادهای وجود ندارد، ولی بازه باید دستِکم یک دورهٔ صعودی، یک نزولی و یک بازارِ درجا را شامل شود و تعدادِ معاملهها آنقدر باشد که نتیجه تصادفی نباشد. چند ده معامله کمترین چیزی است که میشود به آن نگاه کرد.
فرق بک تست با فوروارد تست چیست؟
بکتست روی گذشته است و فوری؛ فوروارد تست یعنی همان قاعده را از امروز به بعد بدونِ پول واقعی دنبال کنید. فوروارد تست کندتر است ولی از بیشبرازش در امان است. در تحلیلیار همان موتوری که بکتست شده را میتوانید روی بازارِ زنده روشن کنید و سیگنالهایش را بدونِ معامله دنبال کنید.