آزمون مونت کارلو برای بکتست استراتژی یعنی مجموعه معاملات ثبتشده را به سناریوهای متعدد تبدیل کنیم تا ببینیم استراتژی فقط در یک ترتیب مطلوب سودده است یا در توالیهای نامناسب نیز قابلتحمل میماند. برای این کار، معاملات مستقل را استخراج کنید، ترتیب آنها را در صدها مسیر جابهجا کنید و در هر مسیر سود تجمعی، بیشینه دراوداون و احتمال عبور از حد مجاز را ثبت کنید. سپس همین فرآیند را با کاهش نرخ برد، افت میانگین سود و افزایش هزینه اجرا تکرار کنید. اگر محدوده بدبینانه نتایج با بودجه ریسک حساب پراپ سازگار نبود، پیش از فوروارد تست باید اندازه ریسک، قوانین ورود و خروج یا خود استراتژی بازبینی شود.
چرا یک منحنی سرمایه برای تصمیمگیری کافی نیست؟
منحنی سرمایه حاصل از بکتست معمولاً فقط یک مسیر تاریخی را نشان میدهد. این مسیر به ترتیب وقوع بردها و باختها وابسته است. دو استراتژی یا دو اجرای فرضی از یک مجموعه معامله یکسان، اگر ترتیب متفاوتی داشته باشند، میتوانند قله، کف و دراوداون کاملاً متفاوتی ایجاد کنند.
این موضوع برای پراپ تریدر مهمتر است؛ زیرا سود نهایی بهتنهایی معیار بقا نیست. ممکن است یک استراتژی در پایان دوره سودده باشد، اما در میانه مسیر با توالیای از باختها به محدوده نقض قانون حساب برسد. بنابراین پرسش اصلی این نیست که «بکتست چقدر سود ساخته است؟» بلکه این است که «در چه سهمی از مسیرهای محتمل، پیش از رسیدن به سود، ریسک حساب از کنترل خارج میشود؟»
آزمون تصادفیسازی، نتیجه را از یک عدد یا یک نمودار به توزیعی از سناریوها تبدیل میکند. این توزیع باید کنار قواعد واقعی حساب، مانند حد دراوداون و توقف روزانه، تفسیر شود؛ نه جدا از آنها. برای شناخت تفاوت انواع دراوداون و اثر آن بر شبیهسازی، میتوانید راهنمای تفاوت دراوداون ثابت و تریلینگ در پراپ را نیز بررسی کنید.
تعریف عملی آزمون مونت کارلو برای بکتست استراتژی
ورودیهای لازم
- فهرست کامل معاملات، نه فقط سود و زیان نهایی.
- نتیجه هر معامله بر حسب R یا واحد ریسک ثابت.
- زمان و بازار معامله، در صورت نیاز برای بررسی توالیهای زمانی.
- هزینه اجرای واقعی یا فرض محافظهکارانه شامل اسپرد و اسلیپیج.
- حد دراوداون و سایر محدودیتهای حساب پراپ که باید بهعنوان خط قرمز آزمون وارد شوند.
در سادهترین نسخه، فقط ترتیب معاملات جابهجا میشود و مقدار سود یا زیان هر معامله ثابت میماند. این روش شکنندگی ناشی از توالی را بررسی میکند. در نسخه کاملتر، علاوه بر جابهجایی ترتیب، سناریوهای افت کیفیت عملکرد و افزایش هزینه اجرا نیز ساخته میشوند.
خروجیهایی که باید ثبت شوند
- سود یا زیان نهایی هر مسیر.
- بیشینه دراوداون هر مسیر.
- طولانیترین توالی باخت یا دوره رکود.
- تعداد و سهم مسیرهایی که از حد دراوداون عبور میکنند.
- حد پایین و بالای نتایج، بههمراه محدودهای که بخش عمده سناریوها در آن قرار گرفتهاند.
از گزارش یک «بهترین مسیر» خودداری کنید. بهترین مسیر معمولاً برای تصمیم ریسکگذاری ارزش محدودی دارد. تمرکز باید بر بخش بدبینانه توزیع و میزان سازگاری آن با قوانین حساب باشد.
پروتکل مرحلهای تصادفیسازی معاملات
- مجموعه داده را پاکسازی کنید. معاملات ناقص، معاملات تکراری و مواردی را که با قوانین نهایی استراتژی اجرا نشدهاند، جدا کنید. حذف معامله زیانده فقط برای بهتر شدن نتیجه مجاز نیست.
- واحد نتیجه را یکسان کنید. بهتر است سود و زیان هر معامله با R ثبت شود تا مقایسه بازارهایی مانند XAU/USD، USD/JPY و BTC/USD به تفاوت اندازه حساب یا حجم وابسته نباشد.
- فرضهای آزمون را پیشاپیش بنویسید. مشخص کنید چه چیزی تصادفی میشود، هزینه اجرا چگونه محاسبه میشود و عبور از چه حدی شکست سناریو محسوب میشود.
- ترتیب معاملات را جابهجا کنید. از مجموعه اصلی، مسیرهای متعدد بسازید. هر مسیر باید از همان معاملات تشکیل شود، اما ترتیب آنها متفاوت باشد.
- منحنی سرمایه هر مسیر را محاسبه کنید. از سرمایه اولیه یا مبنای ریسک شروع کنید، نتیجه هر معامله را بهصورت تجمعی اضافه کنید و قلههای جدید را برای محاسبه دراوداون دنبال کنید.
- سناریوهای افت عملکرد را جداگانه اجرا کنید. کاهش نرخ برد، کاهش میانگین R و افزایش هزینه اجرا را در یک سناریوی مبهم با هم مخلوط نکنید؛ در غیر این صورت علت شکنندگی مشخص نمیشود.
- نتیجه را با قوانین حساب تطبیق دهید. فقط مسیرهایی را که سودده هستند نشمارید. احتمال عبور از حد مجاز دراوداون و شکل وقوع آن را معیار اصلی قرار دهید.
- تصمیم بگیرید. اگر محدوده بدبینانه قابلتحمل نیست، مستقیماً به فوروارد تست یا چالش نروید. ابتدا ریسک هر معامله، فیلترهای ورود، زمان معامله یا فرض هزینه را بازبینی کنید.
جدول سناریوهای کاهش عملکرد و تفسیر آنها
| سناریو | تغییر مورد آزمون | پرسش تصمیمگیری |
|---|---|---|
| ترتیب متفاوت | جابهجایی توالی برد و باخت، بدون تغییر نتیجه معاملات | آیا استراتژی به یک ترتیب خوششانس وابسته است؟ |
| افت نرخ برد | بخشی از معاملات برنده به نتیجه خنثی یا زیانده تبدیل میشود | با کاهش کیفیت سیگنال، دراوداون به کجا میرسد؟ |
| افت میانگین سود | مقدار بردها کاهش مییابد، در حالی که زیانها ثابت میمانند | آیا حاشیه سود استراتژی در برابر خروج زودهنگام یا اجرای ناقص کافی است؟ |
| افزایش هزینه اجرا | اسپرد و اسلیپیج بیشتری از هر معامله کسر میشود | آیا مزیت آماری پس از هزینهها باقی میماند؟ |
| ترکیبی محافظهکارانه | ترتیب نامطلوب، افت عملکرد و هزینه بیشتر در یک آزمون مشخص | آیا مسیر بدبینانه هنوز با بودجه ریسک پراپ سازگار است؟ |
این سناریوها نباید برای ساختن یک نتیجه ترسناک یا خوشبینانه انتخاب شوند. هدف، مشخص کردن حساسیت استراتژی است: اگر با تغییر کوچک در کیفیت اجرا، دراوداون بهطور محسوسی افزایش یابد، استراتژی شکنندهتر است و باید با ریسک کمتری آزمایش شود.
مثال سناریویی؛ یک مجموعه معامله با چند مسیر متفاوت
فرض کنید یک مجموعه فرضی از معاملات XAU/USD با نتایج زیر بر حسب R ثبت شده است: سه معامله با نتیجه مثبت و چند معامله با نتیجه منفی. در مسیر تاریخی، بردها در ابتدای دوره قرار گرفتهاند و منحنی سرمایه ابتدا رشد کرده است. در یک تصادفیسازی دیگر، همان بردها پس از چند باخت متوالی ظاهر میشوند. تعداد معاملات و نتیجه تکتک آنها تغییر نکرده، اما مسیر دوم افت اولیه عمیقتری دارد.
حالا سه آزمون را جدا کنید:
- در آزمون اول فقط ترتیب معاملات را تغییر دهید.
- در آزمون دوم، بخشی از نتایج مثبت را با سود کوچکتر محاسبه کنید.
- در آزمون سوم، هزینه اجرای بیشتری از هر معامله کم کنید تا اثر اسلیپیج و اسپرد دیده شود.
اگر مسیر تاریخی بهراحتی زیر حد دراوداون باقی بماند اما بخش قابلتوجهی از مسیرهای تصادفی از آن عبور کنند، نتیجه «استراتژی سودده» بهتنهایی برای پراپ کافی نیست. این یافته الزاماً به معنی کنار گذاشتن استراتژی نیست؛ میتواند نشان دهد که ریسک هر معامله زیاد است، تعداد معاملات برای تحمل توالی باخت کافی نیست یا مزیت استراتژی به اجرای بسیار دقیق وابسته است.
برای جلوگیری از اشتباه در برآورد هزینه، مفروضات خود را کنار دادههای اجرا قرار دهید و از چارچوب سنجش اسپرد و اسلیپیج در پراپ تریدینگ استفاده کنید. در BTC/USD، سناریوی هزینه اجرا باید جدا از نتیجه تصادفیسازی گزارش شود، چون افزایش هزینه ممکن است تمام مزیت معاملات کوتاهمدت را تحت فشار قرار دهد.
معیار تصمیم مخصوص پراپ تریدر
برای حساب پراپ، خروجی آزمون باید به یک ماتریس تصمیم تبدیل شود. سه پرسش زیر را برای هر سناریو پاسخ دهید:
- بقا: چند مسیر پیش از رسیدن به سود از حد مجاز دراوداون عبور میکنند؟
- شدت: دراوداون مسیرهای بدبینانه چقدر از محدودهای که برای حساب قابلتحمل است فاصله دارد؟
- قابلیت اجرا: آیا تریدر میتواند توالی باخت و دوره رکود مشاهدهشده را بدون تغییر خودسرانه قوانین تحمل کند؟
قانون تصمیم نوا پراپ در این چارچوب، انتخاب بر اساس بدترین محدوده قابلقبول است، نه بهترین مسیر تاریخی. اگر سناریوهای محافظهکارانه با بودجه ریسک حساب سازگار نیستند، میتوان اندازه ریسک هر معامله را کاهش داد یا استراتژی را برای دادههای خارج از نمونه آماده کرد. برای تفکیک کیفیت آماری از کیفیت اجرای واقعی، اعتبارسنجی استراتژی با دادههای خارج از نمونه مکمل این آزمون است.
همچنین نتیجه هر معامله را در ژورنال با خطای استراتژی و خطای اجرا تفکیک کنید. این کار کمک میکند افت عملکرد ناشی از خود استراتژی با لغزش در اجرای قوانین اشتباه نشود. برای این منظور، ژورنال معاملاتی حرفهای و تفکیک خطای استراتژی از اجرای معامله کاربرد دارد.
روش بکتست و قالب داده پیشنهادی
برای هر ردیف داده، حداقل این فیلدها را ثبت کنید:
| فیلد | کاربرد |
|---|---|
| شناسه معامله | جلوگیری از حذف یا تکرار ناخواسته |
| نماد و زمان | بررسی تفاوت بازار و ترتیب زمانی |
| نتیجه خام بر حسب R | محاسبه منحنی سرمایه مستقل از حجم |
| هزینه اجرا | کسر اسپرد، کمیسیون یا اسلیپیج طبق فرض آزمون |
| نتیجه خالص | ورودی محاسبه مسیر سرمایه |
| برچسب خطا | تفکیک خطای استراتژی از خطای اجرای تریدر |
سپس یک قالب گزارش ثابت بسازید: نام سناریو، تعداد مسیرها، سود نهایی، بیشینه دراوداون، طولانیترین توالی باخت و سهم مسیرهای عبوری از حد مجاز. تعداد شبیهسازی را از قبل تعیین کنید و با هر بار دیدن نتیجه مطلوب آن را تغییر ندهید. استفاده از صدها مسیر در پروتکل عملی، امکان مشاهده پراکندگی مسیرها را بیشتر میکند؛ اما کیفیت داده و واقعبینانه بودن سناریوها از عدد خام شبیهسازی مهمتر است.
تفاوت آزمون تصادفیسازی با فوروارد تست
تصادفیسازی معاملات با دادههای موجود کار میکند و حساسیت نتیجه به ترتیب، افت عملکرد و هزینه را میسنجد. فوروارد تست، استراتژی را روی داده یا بازهای اجرا میکند که در ساخت و تنظیم قواعد استفاده نشده است. بنابراین اولی آزمون شکنندگی و مسیرهای ممکن است و دومی آزمون رفتار استراتژی در اجرای جدید.
هیچکدام جای دیگری را نمیگیرد. آزمون مونت کارلو میتواند پیش از فوروارد تست نشان دهد که ریسک انتخابشده برای حساب نامتناسب است. فوروارد تست نیز میتواند خطاهای زمانبندی، کیفیت داده و تفاوت اجرای واقعی با بکتست را آشکار کند. اگر در آزمون تصادفیسازی، سناریوهای بدبینانه از حد ریسک عبور میکنند، ورود به فوروارد تست با همان اندازه ریسک تصمیم مناسبی نیست.
اشتباهات رایج در شبیهسازی دراوداون
- تمرکز فقط بر سود نهایی: دو مسیر با سود نهایی مشابه ممکن است دراوداون میاندورهای بسیار متفاوتی داشته باشند.
- تغییر نتیجه معاملات بهجای ترتیب آنها: در آزمون پایه، باید مشخص باشد که اثر توالی را میسنجید یا اثر افت کیفیت عملکرد را.
- نادیده گرفتن هزینه اجرا: نتیجه خام بدون هزینه، برای تصمیم پراپ کافی نیست.
- حذف دورههای رکود: حذف معاملات یا بازههای نامطلوب، توزیع ریسک را مخدوش میکند.
- تنظیم قوانین پس از مشاهده نتیجه: فرض آزمون باید پیش از اجرای سناریو نوشته شود.
- اشتباه گرفتن نتیجه آزمون با پیشبینی: شبیهسازی تضمین نمیکند مسیر آینده دقیقاً یکی از مسیرهای تولیدشده باشد؛ فقط حساسیت داده و فرضها را روشن میکند.
چکلیست پیش از فوروارد تست
- آیا همه معاملات معتبر و کامل استخراج شدهاند؟
- آیا نتیجه معاملات با واحدی یکسان مانند R ثبت شده است؟
- آیا ترتیبهای متعدد و نه فقط مسیر تاریخی بررسی شدهاند؟
- آیا نرخ برد، میانگین سود و هزینه اجرا جداگانه تحت فشار قرار گرفتهاند؟
- آیا بیشینه دراوداون هر مسیر ثبت شده است؟
- آیا احتمال عبور از حد مجاز با قوانین واقعی حساب مقایسه شده است؟
- آیا ریسک هر معامله پیش از فوروارد تست ثابت و از قبل تعریف شده است؟
- آیا معیار توقف، بازبینی یا ادامه آزمون مکتوب است؟
سؤالات متداول
چرا ترتیب معاملات در بکتست مهم است؟
چون ترتیب بردها و باختها قله و کف منحنی سرمایه را تغییر میدهد. در حساب پراپ، همین تغییر میتواند دراوداون را به محدوده نقض قانون برساند، حتی اگر مجموعه معاملات در پایان سودده باشد.
چطور توالی تصادفی برد و باخت را شبیهسازی کنم؟
نتیجه هر معامله را در یک فهرست نگه دارید، ترتیب فهرست را در مسیرهای متعدد جابهجا کنید و برای هر مسیر سود تجمعی و بیشینه دراوداون را محاسبه کنید. نتیجه معاملات نباید بدون تعریف سناریو تغییر کند.
چه تعداد شبیهسازی برای ارزیابی استراتژی لازم است؟
یک عدد ثابت برای همه استراتژیها وجود ندارد. تعداد را پیشاپیش تعیین کنید و از صدها مسیر برای مشاهده پراکندگی استفاده کنید؛ سپس پایداری نتیجه را در برابر تغییر فرضها و کیفیت داده بررسی کنید.
اگر بکتست سودده باشد اما شبیهسازی دراوداون سنگین نشان دهد چه کنم؟
پیش از فوروارد تست، ریسک هر معامله، هزینه اجرا، فیلتر ورود و مجموعه داده را بازبینی کنید. اگر سناریوهای بدبینانه با بودجه ریسک حساب سازگار نیستند، با همان اندازه ریسک وارد مرحله بعد نشوید.
تفاوت آزمون تصادفیسازی با فوروارد تست چیست؟
تصادفیسازی حساسیت نتایج موجود به توالی و افت عملکرد را میسنجد؛ فوروارد تست رفتار استراتژی را روی داده یا بازه جدید بررسی میکند. آزمون اول مکمل و فیلتر مرحله پیش از دومی است.
جمعبندی
بکتست یک مسیر تاریخی میسازد، اما پراپ تریدر به سنجش مسیرهای دشوار نیز نیاز دارد. با استخراج معاملات مستقل، جابهجایی توالی، افزودن سناریوهای افت عملکرد و ثبت بیشینه دراوداون، میتوان شکنندگی استراتژی را پیش از فوروارد تست آشکار کرد. تصمیم نهایی باید بر اساس بدترین محدوده قابلقبول و سازگاری آن با قوانین حساب گرفته شود؛ نه بر مبنای نرخ برد یا سود نهایی یک منحنی سرمایه.
منابع
این مقاله evergreen است و برای ادعاهای بیرونی یا رویدادهای تازه به منبع خبری استناد نمیکند. چارچوب ارائهشده بر داده معاملات، فرضهای اجرای ثبتشده و قوانین حسابی تکیه دارد که تریدر باید پیش از آزمون بهطور مشخص وارد کند.