قبل از اینکه یک استراتژی معاملاتی را با پول واقعی اجرا کنیم، یک سؤال مهم وجود دارد:
اگر این استراتژی را روی دادههای گذشته بازار اجرا میکردیم، چه نتیجهای میگرفتیم؟
اینجاست که بکتست (Backtest) اهمیت پیدا میکند.
بکتست به معاملهگر اجازه میدهد یک استراتژی مشخص را روی دادههای تاریخی بازار آزمایش کند و ببیند اگر در گذشته دقیقاً طبق همان قوانین معامله میکرد، چه عملکردی به دست میآورد.
اما بکتست فقط برای پیدا کردن یک استراتژی «سودده» نیست. هدف مهمتر آن این است که بفهمیم استراتژی در چه شرایطی عملکرد خوبی دارد، چه زمانی شکست میخورد و چه میزان ریسک و افت سرمایهای ایجاد میکند.
بکتست چیست؟
بکتست یعنی اجرای قوانین یک استراتژی روی دادههای گذشته، به شکلی که انگار در همان زمان واقعاً در بازار حضور داشتهایم.
فرض کنید استراتژی شما میگوید هرگاه قیمت یک شرایط مشخص را ایجاد کرد، وارد معامله شوید، حد ضرر مشخصی داشته باشید و در نقطه مشخصی از معامله خارج شوید.
در بکتست، به نمودار گذشته برمیگردید و بررسی میکنید که اگر در هر موقعیتی که این شرایط ایجاد شده بود دقیقاً طبق قوانین خود عمل میکردید، نتیجه چه میشد.
به این ترتیب، به جای اینکه فقط بگویید «فکر میکنم این استراتژی خوب است»، میتوانید عملکرد آن را با دادههای واقعی گذشته بررسی کنید.
چرا قبل از معامله واقعی بکتست کنیم؟
یکی از مشکلات معاملهگران این است که گاهی یک استراتژی را فقط با چند معامله قضاوت میکنند.
مثلاً سه معامله انجام میدهند و هر سه سودده میشوند و نتیجه میگیرند که استراتژی فوقالعاده است.
اما سه معامله برای ارزیابی یک سیستم معاملاتی کافی نیست.
ممکن است نتیجه کاملاً تصادفی باشد.
بکتست به معاملهگر کمک میکند تعداد بسیار بیشتری از موقعیتهای گذشته را بررسی کند و تصویر واقعبینانهتری از عملکرد احتمالی استراتژی به دست آورد.
قبل از بکتست باید استراتژی مشخص باشد
نمیتوان یک استراتژی مبهم را بهدرستی بکتست کرد.
برای مثال، جملهای مانند:
«وقتی نمودار خوب به نظر رسید، خرید میکنم.»
قابل بکتست نیست.
اما اگر بگوییم:
«وقتی قیمت شرایط X را ایجاد کرد، در قیمت مشخص وارد میشوم، حد ضرر در Y قرار میگیرد و هدف Z است.»
آنوقت قوانین مشخصی داریم که میتوان آنها را روی گذشته بازار آزمایش کرد.
بنابراین اولین مرحله بکتست، تبدیل ایده معاملاتی به قوانین مشخص و قابل اندازهگیری است.
یک بکتست ساده چگونه انجام میشود؟
فرض کنید یک استراتژی برای معاملات بیتکوین دارید.
ابتدا یک بازه تاریخی مشخص انتخاب میکنید.
سپس نمودار را به نقطهای در گذشته میبرید و بدون نگاه کردن به ادامه نمودار، شروع به بررسی میکنید.
هر زمان شرایط ورود استراتژی ایجاد شد، معامله را طبق قوانین ثبت میکنید.
نقطه ورود، حد ضرر و حد سود را مشخص میکنید و بعد بررسی میکنید که نتیجه معامله چه بوده است.
این کار را برای تعداد زیادی از معاملات تکرار میکنید.
در پایان، مجموعه نتایج به شما نشان میدهد استراتژی در آن بازه تاریخی چگونه عمل کرده است.
چه اطلاعاتی را باید در بکتست ثبت کنیم؟
برای اینکه نتیجه قابل استفاده باشد، بهتر است هر معامله به صورت منظم ثبت شود.
حداقل باید مشخص باشد معامله در چه قیمتی باز شده، حد ضرر کجا بوده، هدف چه قیمتی داشته، معامله با سود بسته شده یا ضرر و میزان سود یا زیان آن چقدر بوده است.
همچنین ثبت تاریخ معامله، بازار، تایمفریم و دلیل ورود میتواند در تحلیل بعدی بسیار مفید باشد.
هدف این است که در پایان فقط با یک عدد مثل «سود ۳۰ درصدی» مواجه نباشیم؛ بلکه بدانیم این نتیجه چگونه به دست آمده است.
فقط درصد سود را بررسی نکنید
فرض کنید استراتژی A در پایان بکتست ۵۰ درصد سود ایجاد کرده و استراتژی B نیز ۵۰ درصد سود داشته است.
آیا هر دو دقیقاً یکسان هستند؟
خیر.
ممکن است استراتژی اول این سود را با افت سرمایه بسیار شدید به دست آورده باشد، در حالی که استراتژی دوم مسیر بسیار باثباتتری داشته است.
به همین دلیل، در ارزیابی بکتست باید علاوه بر سود نهایی، معیارهایی مانند نرخ برد، میانگین سود و ضرر، تعداد معاملات و حداکثر افت سرمایه (Maximum Drawdown) نیز بررسی شوند.
نرخ برد چیست؟
نرخ برد نشان میدهد چه درصدی از معاملات استراتژی با سود بسته شدهاند.
مثلاً اگر از ۱۰۰ معامله، ۵۵ معامله سودده باشند، نرخ برد برابر با ۵۵ درصد است.
اما نرخ برد به تنهایی نشاندهنده کیفیت استراتژی نیست.
ممکن است یک استراتژی نرخ برد بالایی داشته باشد اما در معاملات بازنده ضررهای بسیار بزرگی ایجاد کند.
در مقابل، استراتژی دیگری ممکن است نرخ برد پایینتری داشته باشد ولی معاملات موفق آن سودهای بسیار بیشتری نسبت به ضرر معاملات ناموفق ایجاد کنند.
حداکثر افت سرمایه چرا مهم است؟
فرض کنید یک استراتژی در نهایت ۱۰۰ درصد سود ایجاد کرده است.
در نگاه اول نتیجه بسیار جذاب به نظر میرسد.
اما اگر در مسیر رسیدن به این سود، سرمایه معاملهگر در مقطعی ۶۰ درصد کاهش پیدا کرده باشد، شرایط کاملاً متفاوت است.
Maximum Drawdown نشان میدهد سرمایه در بدترین دوره چقدر از یک سقف قبلی افت کرده است.
این معیار کمک میکند بفهمیم تحمل کردن مسیر این استراتژی در دنیای واقعی تا چه اندازه دشوار خواهد بود.
هزینه معاملات را فراموش نکنیم
یکی از اشتباهات رایج در بکتست این است که معاملهگر فقط قیمت ورود و خروج را در نظر بگیرد.
در دنیای واقعی، معامله هزینه دارد.
کارمزد، اسپرد و در برخی شرایط اسلیپیج میتوانند روی نتیجه نهایی تأثیر بگذارند.
اگر استراتژی تعداد زیادی معامله کوتاهمدت انجام میدهد، نادیده گرفتن این هزینهها میتواند نتیجه بکتست را غیرواقعی و بیش از حد خوشبینانه کند.
بکتست نباید آینده را پیشبینیشده نشان دهد
یکی از مهمترین محدودیتهای بکتست این است که عملکرد گذشته تضمینکننده عملکرد آینده نیست.
ممکن است یک استراتژی در یک دوره خاص بسیار خوب عمل کند، اما با تغییر شرایط بازار عملکرد آن کاهش پیدا کند.
بازار همیشه یک رفتار ثابت ندارد.
گاهی روندهای قدرتمند شکل میگیرند و گاهی بازار وارد نوسانات خنثی و نامنظم میشود.
بنابراین نتیجه بکتست باید به عنوان شواهدی درباره عملکرد تاریخی یک استراتژی دیده شود، نه تضمینی برای سود آینده.
چرا نباید استراتژی را بیش از حد برای گذشته تنظیم کنیم؟
گاهی معاملهگر آنقدر قوانین استراتژی را تغییر میدهد تا نتیجه بکتست تقریباً عالی شود.
مثلاً پارامترهای مختلف را بارها تغییر میدهد تا بیشترین سود ممکن را از دادههای گذشته استخراج کند.
این مسئله میتواند به Overfitting یا بیشبرازش منجر شود.
در این حالت، استراتژی ممکن است گذشته را بسیار خوب توضیح دهد، اما وقتی وارد دادههای جدید شود، عملکرد آن بهشدت کاهش پیدا کند.
هدف بکتست پیدا کردن استراتژیای نیست که گذشته را به بهترین شکل حفظ کرده باشد؛ هدف پیدا کردن روشی است که منطق معاملاتی قابل تکرار و قابل دفاعی داشته باشد.
تست خارج از نمونه چیست؟
یکی از روشهای بهتر برای بررسی استراتژی این است که همه دادههای تاریخی را برای ساخت و آزمایش اولیه استفاده نکنیم.
بخشی از دادهها میتواند برای توسعه و تنظیم استراتژی استفاده شود و بخشی دیگر کنار گذاشته شود.
بعد از نهایی شدن قوانین، استراتژی روی دادههایی آزمایش میشود که قبلاً برای تنظیم آن استفاده نشدهاند.
اگر استراتژی در این بخش نیز عملکرد منطقی داشته باشد، اعتماد ما به قابلیت تعمیم آن بیشتر میشود.
بکتست دستی یا نرمافزاری؟
بکتست را میتوان به صورت دستی روی نمودار انجام داد یا از ابزارهای نرمافزاری برای اجرای خودکار قوانین استفاده کرد.
بکتست دستی برای یادگیری رفتار قیمت و استراتژی بسیار مفید است، اما زمان بیشتری میگیرد.
بکتست خودکار میتواند تعداد بسیار زیادی معامله را در مدت کوتاهی بررسی کند، اما نیازمند این است که قوانین استراتژی کاملاً دقیق و قابل تبدیل به دستورهای مشخص باشند.
در هر دو روش، کیفیت دادهها و درست بودن قوانین اهمیت زیادی دارد.
بعد از بکتست چه کار کنیم؟
اگر نتیجه بکتست مناسب بود، هنوز نباید بلافاصله سرمایه زیادی وارد بازار کرد.
مرحله بعدی میتواند آزمایش استراتژی در شرایط واقعی بازار با سرمایه آزمایشی یا حجم بسیار محدود باشد.
در این مرحله مشخص میشود آیا معاملهگر میتواند همان قوانینی را که روی نمودار گذشته اجرا کرده، در شرایط واقعی و تحت فشار روانی نیز رعایت کند یا خیر.
این تفاوت بسیار مهم است.
ممکن است یک استراتژی روی کاغذ عملکرد خوبی داشته باشد، اما اجرای آن برای معاملهگر در بازار واقعی دشوار باشد.
یک مثال ساده
فرض کنید استراتژی شما در ۲۰۰ معامله گذشته بررسی شده است.
نتیجه نشان میدهد که ۸۰ معامله سودده و ۱۲۰ معامله ضررده بودهاند.
در نگاه اول، نرخ برد فقط ۴۰ درصد است.
اما اگر میانگین سود معاملات موفق سه برابر میانگین ضرر معاملات ناموفق باشد، این استراتژی میتواند همچنان عملکرد مثبتی داشته باشد.
در اینجا مشخص میشود که فقط شمردن معاملات موفق کافی نیست.
باید ببینیم هر معامله چقدر سود یا ضرر ایجاد کرده و مسیر رسیدن به نتیجه نهایی چگونه بوده است.
اشتباهات رایج در بکتست
یکی از اشتباهات رایج این است که معاملهگر هنگام بررسی نمودار گذشته، ادامه نمودار را میبیند و ناخودآگاه از اطلاعات آینده برای تصمیمگیری استفاده میکند.
اشتباه دیگر تغییر قوانین در میانه آزمایش است.
اگر هر بار که معاملهای ضررده میشود قوانین را تغییر دهیم، دیگر نمیتوانیم عملکرد یک استراتژی مشخص را ارزیابی کنیم.
همچنین انتخاب فقط بهترین دورههای بازار میتواند نتیجه را بیش از حد خوشبینانه نشان دهد.
یک بکتست مناسب باید تا حد امکان شرایط مختلف بازار را در بر بگیرد.
جمعبندی
بکتست ابزاری است برای اینکه قبل از به خطر انداختن سرمایه واقعی، یک استراتژی معاملاتی را روی دادههای گذشته آزمایش کنیم.
اما یک بکتست حرفهای فقط به دنبال بیشترین سود نیست.
تعداد معاملات، نرخ برد، میانگین سود و ضرر، حداکثر افت سرمایه و هزینههای معاملاتی نیز باید بررسی شوند.
همچنین نباید فراموش کرد که نتیجه خوب در گذشته تضمینکننده سود در آینده نیست.
بهترین استفاده از بکتست این است که بفهمیم آیا یک ایده معاملاتی واقعاً قوانین مشخص، منطق قابل آزمایش و عملکرد قابل قبول دارد یا صرفاً روی کاغذ جذاب به نظر میرسد.
قبل از اینکه با پول واقعی به یک استراتژی اعتماد کنیم، بهتر است ابتدا از آن بخواهیم خودش را در گذشته ثابت کند؛ البته بدون اینکه تصور کنیم گذشته میتواند آینده را تضمین کند.
