مقدمه
سلام به شما عزیزان و همراهان همیشگی دانشگاه الگوتریدینگ (الگویو). در دنیای پرنوسان و پیچیده بازارهای مالی، جایی که هر تصمیم میتواند منجر به سود یا زیان قابل توجهی شود، داشتن یک استراتژی معاملاتی قوی و اثباتشده، یک ضرورت است. اما چگونه میتوانیم از عملکرد آتی استراتژیهایمان اطمینان حاصل کنیم؟ چگونه میتوانیم ایدههای معاملاتی خود را قبل از ورود با سرمایه واقعی به بازار، بهصورت امن آزمایش کنیم؟ پاسخ در یک مفهوم کلیدی نهفته است: بکتست یا ارزیابی تاریخی.
در این مقاله قصد دارم به شما توضیح دهم که بکتست دقیقاً چیست، چرا انجام آن از اهمیت فوقالعادهای برخوردار است، و چگونه باید آن را به شیوهای صحیح و علمی انجام دهید تا از نتایج آن برای بهینهسازی و اطمینان از استراتژیهای معاملاتی خود بهرهمند شوید. این یک مقاله آموزشی است که به شما کمک میکند درک عمیقتری از این مفهوم اساسی در معاملات الگوریتمی و کوانت تریدینگ پیدا کنید.
اگر با مشاهده ویدئو راحتترید، ویدئوهای زیر را نگاه کنید.
1) بکتست چیست؟
2) چرا بکتست فوقالعاده مهم است؟
اگر با متن راحتترید، به خواندن ادامه بدید!
بکتست چیست؟ تعریفی ساده و کاربردی
به زبان ساده و کلی، بکتست یا ارزیابی تاریخی، به معنای اجرا و ارزیابی عملکرد یک استراتژی معاملاتی روی دیتای گذشته بازار است. تصور کنید یک ایده یا مجموعهای از قواعد برای معاملهگری دارید؛ بکتست به شما این امکان را میدهد که ببینید این قواعد در گذشته بازار به چه شکلی عمل کردهاند و چه نتایجی به بار آوردهاند.
برای انجام بکتست، ما به دو ورودی اصلی نیاز داریم:
- قواعد استراتژی شما: این شامل تمام قوانین ورود، خروج، مدیریت ریسک و سرمایه است که استراتژی شما را تشکیل میدهند.
- دیتای گذشته بازار: این همان دادههای تاریخی قیمت و حجم است که استراتژی شما روی آن شبیهسازی میشود.
ابزارهای بکتست، این دو ورودی را دریافت کرده و برای ما شبیهسازی میکنند که در گذشته بازار، این قواعد یا ایده معاملاتی به چه شکل عمل کرده است، و سپس یک سری نتایج به عنوان خروجی به ما ارائه میدهند. در واقع، بکتست فرایندی خودکار جهت محاسبه و ارزیابی کمیّتهای مختلف عملکرد استراتژی است.
چرا بکتست فوقالعاده مهم است؟ (کاربردهای حیاتی بکتست)
شاید این سوال برایتان پیش بیاید که چرا بکتست تا این حد اهمیت دارد؟ پاسخ اصلی و بنیادین این است که بکتست فاز آزمایش در متد علمی حل مسئله برای ما در صنعت ترید و سرمایهگذاری است.
همانطور که در دوره مبانی و مفاهیم کوانت تریدینگ و الگوتریدینگ به تفصیل توضیح دادهایم، متد علمی تنها روشی است که بشر برای تولید و پیشرفت علم به کار گرفته است. هر آنچه که شما در صنایع و زمینههای علمی مختلف مشاهده میکنید، همه و همه فقط با همین روش کشف شده که جایگزینی هم ندارد! به عبارت دیگر، از روز ازل که انسان شروع به بررسیهای علمی کرده و به یافتهها رسیده، فقط و فقط با این روش بوده است.
متد علمی یک فرایند چرخشی با مراحل مختلف است. این مراحل شامل:
- مشاهدات اولیه
- فرضیهسازی (مدلسازی)
- آزمایش (تست)
- نتیجهگیری و بازنگری
قلب این فرایند، بحث آزمون یا آزمایش است. من بعد از فرضیهسازی باید یک آزمایشی انجام دهم تا ببینم یافتههای من یا مدلسازیام با واقعیت همخوانی دارد یا خیر. دقیقاً مانند علوم آزمایشگاهی که با داروها و ویروسها یا میکروبها سر و کار دارند، محققان اثر دوز مشخصی از دارو روی نمونه مشخصی از ویروسها را بررسی میکنند و نتایج را ثبت میکنند تا بتوانند تاثیر آن را بسنجند. برای ما در صنعت ترید و سرمایهگذاری، این فاز آزمایش، همین بکتست است و هیچ چیز دیگری نداریم.
پس، بکتست صرفاً یک “محکمکاری” یا یک کار اضافه نیست. بکتست یک باید است.
این فرایند دارای روش و ابزار خاص خود برای هر مرحله است که در آینده به آن میپردازم. فعلا بپذیرید و این جام زهر را بنوشید که هر نوع ترید و سرمایهگذاری بدون بکتست اصولی و درست، مزخرفی بیش نیست!
علاوه بر اینکه بکتست فاز آزمایش در متد علمی برای ما است، کاربردهای متعدد دیگری نیز دارد که اهمیت آن را از سطح مهم فراتر برده و به سطح حیاتی میرساند:
روش حل مسئله در فرایند بهینهسازی استراتژی
بهینهسازی (Optimization) به معنای یافتن بهترین جواب (کمینه یا بیشینه) برای یک مسئله ریاضی است. در ترید و سرمایهگذاری، مسئله ما میتواند رسیدن به بیشینه سود، حداقل ضرر، حداکثر بازدهی تعدیل شده با ریسک (Sharpe Ratio)، یا حداکثر وینریت باشد.
ما ابتدا باید هدف (معادله) و ورودیها (دیتای بازار، پارامترهای استراتژی) را مشخص کنیم. حل این معادله برای ما، همان بکتستینگ است که باید آن را به تعداد زیاد و با روشهای مختلف تکرار کنیم تا به جواب بهینه برسیم.
هر گام از این حل کردنها، در واقع یک بکتست است که انجام میدهیم. برای داشتن نتایج دقیق از بهینهسازی، باید بکتست را به درستی انجام دهیم و ماهیت، اشتباهات رایج، چالشها و ابزارهای آن را به دقت بشناسیم.
روش پایه مورد استفاده در استنتاج آماری برای تعیین سودآوری ایده استراتژی در آینده
یکی از مهمترین اهداف بکتست، پیشبینی سودآوری استراتژی در آینده است. بدون در نظر گرفتن آینده، ما صرفاً وقت خود را هدر دادهایم. همانطور که در دوره مبانی و مفاهیم کوانت تریدینگ و الگوتریدینگ دیدیم، ما تست استنتاج آماری را گام به گام با بکتستهای مختلف و به شکل خاصی میسازیم.
این به ما کمک میکند تا تشخیص دهیم آیا نتایج درخشانی که استراتژی در گذشته گرفته، صرفاً مبتنی بر شانس بوده یا احتمال بالایی برای تکرار در آینده دارد.
بررسی صحت پیادهسازی استراتژی
بعد از اینکه به یک ایده استراتژی رسیدیم، اولین قدم ارزیابی اولیه و تستهای حین تدوین است. صحت پیادهسازی یعنی اطمینان از اینکه فرمولبندی و کدنویسی استراتژی به درستی انجام شده است.
مثلاً اگر استراتژی شما مبتنی بر کراس میانگین متحرک ساده (SMA) است (مثلاً SMA 5 و 20)، میخواهید مطمئن شوید که این کراس به درستی تشخیص داده شده و تریدها در زمان و مکان صحیح انجام میشوند.
اینجا، و تنها اینجا، کار انسانی و چشمی (آن هم در مقیاس بسیار محدود و برای تریدهای اندک) مجاز است. من به عنوان تحلیلگر، میتوانم در یک بازه زمانی محدود (مثلاً یک ماهه) و در تایمفریم بالا (روزانه یا هفتگی) اندیکاتور را روی چارت بیندازم و ببینم که مثلاً دو یا سه ترید در تاریخهای خاصی اتفاق افتاده است یا خبر. سپس بکتست را با همان پارامترها و در همان بازه زمانی اجرا میکنم و باید دقیقاً همان نتیجه را به من بدهد یا نه، یعنی دقیقاً همان دو یا سه ترید در همان تاریخها.
این تنها راهی است که میتوانم به صحت کدنویسی و پیادهسازی استراتژی خود قبل از اجرای کامل آن اطمینان حاصل کنم.
بررسی صحت عملکرد استراتژی (تشخیص رفتار بازار)
این مورد فراتر از صحت پیادهسازی است. در بحث تدوین استراتژی به روش متد علمی، ما به دنبال تشخیص یک رفتار خاص در بازار هستیم، نه لزوماً استفاده از یک اندیکاتور خاص. اندیکاتورهایی مانند SMA یا MACD صرفاً “آشکارساز” یا “دیتکتور” آن رفتار هستند و جادویی در خود ندارند.
پس از اتمام بکتست، قبل از توجه به هر پارامتر یا خروجی دیگری (مانند سود خالص)، من فقط و فقط نگاه میکنم که آیا این فرمولهسازی من، آن رفتار مورد نظرم که بازار از خودش نشان داده بود را “گرفته” یا بر اساس آن ترید کرده است یا خیر.
این را نیز نمیتوانیم به هیچ روش دیگری جز یک بکتست صحیح بررسی کنیم. در واقع، هرچه جلوتر میرویم، استفادهها از بکتست متنوعتر و پیچیدهتر میشوند و اگر بخواهیم نتایج مراحل بعدی دقیق باشند، باید از همان مرحله اول، تست به درستی انجام شده باشد.
ارزیابی اولیه و امن استراتژی معاملاتی
قبل از اینکه با سرمایه واقعی وارد بازار شوید، بکتست یک راه امن برای ارزیابی ایدههای معاملاتی شماست. اگر ایدهای را در یک کتاب یا مطلبی دیدید یا کسی آن را به شما پیشنهاد داد و به نظر جالب میآید، لزومی ندارد که بلافاصله با سرمایه خودتان بپرید وسط بازار و اول ضرر کنید تا ببینید که آیا آن استراتژی به درد میخورد یا نه!
راه دیگر و صحیحتر، همین ارزیابی اولیه و امن از طریق بکتستینگ درست است.
ابعاد بحرانی بکتست: از باورهای غلط بترسید!
یکی از بزرگترین اشتباهات و سوء برداشتهای رایج در مورد بکتست، مقیاس و نحوه انجام آن است. متأسفانه بسیاری از افراد ادعا میکنند که بکتست انجام دادهاند، در حالی که در واقعیت کارشان هیچ ارزشی ندارد.
روشهای نادرست بکتست:
بررسی چشمی و دستی روی چارت: اینکه من بخواهم به شکل چشمی روی چارت نگاه کنم و بگویم حالا اینجا میخرد و اینجا میفروشد، کاملاً کار اشتباه و مردودی است؛ چه از نظر علمی و چه از نظر بهرهوری و دقت انجام کار.
تست روی بازه زمانی کوتاه با تعداد تریدهای کم: بعضیها میگویند من استراتژی را بکتست کردم و نتایجش خوب بوده، اما وقتی با آنها صحبت میکنید، میبینید که مثلاً روی یک هفته به شکل چشمی بررسی کرده و 5 یا 10 ترید انجام داده است. این چیزی جز مزخرف نیست و اصلاً بکتست محسوب نمیشود.
تست دستی روی بازه زمانی طولانیتر اما ناکافی: حتی اگر استراتژی را در یک بازه 3 ماهه و به شکل دستی و چشمی بررسی کرده و مثلاً ۱۰۰ ترید برای من ساخته باشد، باز هم این کار هیچ ارزشی ندارد. این کار دقیقاً مانند این است که مثلا به 3 ماه از زندگی یک شخص نگاه کنیم، و نتیجه بگیریم که در کل زندگیاش مانند و به اندازه همین 3 ماه غذا میخورد، رشد میکند، پول دارد، سالم است، و غیره – همین قدر کوتهبینانه و سادهلوحانه …!
بکتست واقعی و استاندارد چگونه است؟
بکتست واقعی و در سطحی بالاتر از آن، “تست پایداری”، یک فرایند بسیار گسترده و سیستماتیک است. اجازه دهید مثالی از ابزاری که خود من برای این کار ساختهام، به شما نشان دهم. این مثال، همان خروجیای است که تصویر آن در عکس بالای عنوان مقاله قرار گرفته است. بیایید باهم ببینیم یک تست پایداری واضعی چگونه است:
برای یک ایده استراتژی واحد، 53494 بکتست سیستماتیک انجام شده است که شامل پارامترهای مختلف، تایمفریمهای مختلف و جهتهای لانگ، شورت و هردو باهم است این عدد تنها شامل بکتستهایی است که حداقل 100 ترید انجام دادهاند و این یعنی شبیهسازی چیزی حدود 6 میلیون و 450 هزار سفارش (Order).
یک بکتست روی یک نماد و یک تایمفریم، اصلاً ارزشی ندارد و هیچ چیز خاصی به ما نمیگوید.
تنها در این حجم انبوه از دیتا و تعداد زیاد بکتستها و اردرهای شبیهسازیشده است که میتوانیم با اطمینان بگوییم مثلاً در 32 درصد حالات سودآور بودهایم یا در 13 درصد موارد عملکرد ممتازی داشتهایم. تعریف کمّی و دقیقی از لفظ “عملکرد ممتاز” در ذهن من هست و در این ابزار پیادهسازی شده (Good results در تصویر) که بیان آن در اینجا موضوعیت ندارد.
بحث اصلی این است که این رویکرد به ما امکان میدهد تا بر اساس علم آمار و علم داده (Data Science)، به یک نتیجه نزدیک به واقعیت برسیم که میتوانیم انتظار داشته باشیم در آینده نیز تکرار شود.
این اعداد آنقدر بزرگ هستند که انجام دستی یا چشمی آنها، حتی در استراتژیهای ساده هم غیرممکن است؛ چه رسد به استراتژیهای پیچیدهتر. پس، وقتی ما از بکتست یا تست آماری و پایداری صحبت میکنیم، منظورمان ابعاد و مقیاس کار در این حد است.
به هیچ وجه به سراغ افرادی نروید که ادعا میکنند با نگاه چشمی، تست یک هفته، یک ماه یا حتی یک سال به صورت دستی و روی کاغذ یا اکسل، یک استراتژی را عالی ارزیابی کردهاند. بهترین حالت این است که آن شخص ابعاد واقعی کار را نمیداند، و بدترین حالت این است که میداند و میخواهد شما را فریب دهد.
متریکهای کلیدی بکتست
پس از انجام بکتست، ابزار بکتستینگ به شما یک سری متریک و عدد و رقم ارائه میدهد که عملکرد استراتژی شما را به صورت کمی نشان میدهد. برخی از نامآشناترینهای آنها عبارتند از:
- نت پرافیت (Net Profit): سود خالص کلی که استراتژی تولید کرده است.
- ماکزیمم دراودان (Maximum Drawdown): حداکثر ریزش سرمایه یا اکوئیتی (دارایی) در طول دوره بکتست.
- تعداد ترید (Number of Trades): تعداد کل معاملاتی که استراتژی انجام داده است.
- وینریت (Win Rate): درصد تریدهای سودآور.
و سایر متریکهای مهم دیگر که در فصل هفتم دوره مبانی و مفاهیم بکتستینگ استراتژیهای معاملاتی به تفصیل در مورد آنها صحبت کردهام. هرکدام از این متریکها چه بهتنهایی و چه در کنار بکتستهای دیگرِ فضای بهینهسازی (Optimization Space)، به نوبهی خود حرفی برای گفتن دارند. برای اینکه بتوانیم این متریکها را به دست آوریم و نتایج مورد نظرمان را به درستی تفسیر کنیم، انجام صحیح بکتست در مقیاس بالا (مانند مثال فوق) ضروری است.
در آینده و در مقالهای جداگانه، به معرفی و توضیح مهمترین متریکها و خروجیهای مورد انتظار بکتست میپردازم.
نتیجهگیری
امیدوارم اکنون درک عمیقتری از مفهوم بکتست و اهمیت حیاتی آن در دنیای الگوتریدینگ و کوانت تریدینگ پیدا کرده باشید. همانطور که تأکید کردم، بکتست نه یک گزینه، بلکه یک باید است و تنها راه علمی و اثباتشده برای ارزیابی و بهینهسازی استراتژیهای معاملاتی شماست.
فراموش نکنید که مقیاس و دقت انجام بکتست اهمیت فراوانی دارد. انجام دستی یا چشمی بکتست روی بازههای کوتاه یا تعداد تریدهای کم، کاملاً بیارزش و گمراهکننده است. برای رسیدن به نتایج قابل اعتماد، که تخمین قابل قبولی از عملکرد آینده باشد، باید از ابزارهای خودکار و متدولوژیهای سیستماتیک استفاده کنید. ابزار شما باید بتواند میلیونها سفارش را شبیهسازی کرده و هزاران بکتست را به طور خودکار انجام دهند.
بکتست به ما امکان میدهد تا:
- ایدههایمان را در محیطی امن و بدون ریسک آزمایش کنیم.
- صحت کدنویسی و اجرای استراتژی را بررسی و تأیید کنیم.
- اطمینان حاصل کنیم که استراتژی ما رفتار مورد نظر بازار را به درستی تشخیص میدهد یا خیر.
- استراتژیهایمان را به سمت حداکثر سودآوری و حداقل ریسک معقول بهینه کنیم.
- مهمتر از همه، بر اساس استنتاج آماری، احتمال سودآوری استراتژی در آینده را تعیین کنیم و از شانس یا نتایج تصادفی دوری کنیم.
توصیه من به شما این است که هرگز بدون بکتستهای دقیق و گسترده، استراتژیهای خود را در بازار واقعی به کار نگیرید. اگر تا کنون این کار را انجام میدادید، از این به بعد دیگر این کار را نکنید و هر کسی که ادعای بکتست با روشهای دستی یا ناقص را داشت، بلافاصله از او دوری کنید؛ چرا که او یا از ابعاد واقعی کار بیخبر است یا قصد فریب شما را دارد.
⭐️ محتوای این مطلب از دوره آموزشی مبانی و مفاهیم بکتستینگ استراتژیهای معاملاتی اقتباس شده است. ⭐️
〰️〰️〰️〰️〰️
🔵🔵🔵 همین حالا در دوره رایگان مبانی و مفاهیم بکتستینگ استراتژیهای معاملاتی ثبت نام کنید! 🔵🔵🔵
🔴🔴🔴 در کانال یوتیوب الگویو عضو شوید و بخشهای رایگان سایر دورهها را مشاهده کنید! 🔴🔴🔴
🟢🟢🟢 در بحث و تبادل نظر تخصصی درباره این دوره شرکت کنید! 🟢🟢🟢
〰️〰️〰️〰️〰️



