یاد بگیر›تحلیل تکنیکال›مقالهٔ ۸ از ۹

یک سیستم معاملاتی ساده بساز و بک‌تست کن

متوسط حدود ۱۰ دقیقه ·به‌روزرسانی
نکتهٔ کلیدی این مقاله
بک‌تستی که با تنظیم پارامتر آن‌قدر عوض شود تا گذشته را کامل توضیح دهد، چیزی دربارهٔ آینده نمی‌گوید؛ فقط گذشته را حفظ کرده. قاعدهٔ ساده‌ای که در چند زیربازهٔ مختلف پایدار می‌ماند، از قاعدهٔ پیچیده‌ای که فقط یک بازه را کامل فیت می‌کند، قابل‌اعتمادتر است.

سیستم معاملاتی یعنی یک قاعدهٔ دقیق و قابل تکرار برای ورود و خروج، نوشته‌شده طوری که هر بار همان شرط‌ها پیش بیاید، همان تصمیم گرفته شود؛ نه «حس خوبی به این سهم دارم». بک‌تست یعنی همین قاعده را روی تاریخچهٔ واقعی قیمت اجرا کنی و ببینی اگر همیشه رعایتش می‌کردی، چه بازدهی می‌گرفتی. ابزار بک‌تست سایت دقیقاً همین کار را با الگوهای کندلی انجام می‌دهد، و بزرگ‌ترین خطری که این مسیر را خراب می‌کند بیش‌برازش است: تنظیم قاعده تا جایی که فقط گذشته را حفظ کند.

سیستم معاملاتی دقیقاً از چه اجزایی ساخته می‌شود؟

از سه بخش، نه بیشتر: شرط ورود («وقتی الگوی کندلی صعودی با اعتبار بالا دیده شود»)، شرط خروج («بعد از بیست روز معاملاتی» یا «وقتی الگوی نزولی دیده شود»)، و اندازهٔ پوزیشن. اگر یکی از این سه را با کلمهٔ «معمولاً» یا «تقریباً» توضیح می‌دهی، هنوز سیستم نداری؛ یک سلیقه داری.

ابزار بک‌تست سایت روی همین منطق ساخته شده: وقتی کندلی با یکی از الگوهای کندلی صعودی و با اعتباری برابر یا بالاتر از آستانهٔ انتخابی تو (یک تا سه ستاره) دیده شود، ورود در بازگشایی روز بعد انجام می‌شود، نه در بستهٔ همان روز؛ چون سیگنال کندل تازه بعد از بسته‌شدنش کامل می‌شود و ورود در همان روز، در دنیای واقعی اجراناپذیر است. خروج هم بعد از تعداد روز معاملاتی ثابتی که خودت انتخاب می‌کنی (۳، ۵، ۱۰ یا ۲۰ روز) روی قیمت بسته انجام می‌شود. در هر لحظه فقط یک معامله باز است و سیگنال‌هایی که وسط یک معاملهٔ باز می‌رسند نادیده گرفته می‌شوند.

بک‌تست دقیقاً چه چیزهایی را حساب می‌کند؟

پنج عدد کلیدی، همراه با مقایسهٔ اجباری با خرید و نگه‌داری:

عدد معنی
نرخ برد چند درصد معاملات با سود بسته شده‌اند
میانگین بازده هر معامله سود یا زیان متوسط، بعد از کسر هزینه
بازده کل بازده مرکب کل دوره، اگر همهٔ معاملات پشت سر هم انجام می‌شد
بیشینهٔ افت سرمایه بدترین فاصلهٔ سرمایه از بالاترین نقطهٔ قبلی‌اش
بازده خرید و نگه‌داری اگر همان روز اول می‌خریدی و تا امروز نگه می‌داشتی، چقدر بود

هزینهٔ رفت‌وبرگشت (در بک‌تست سایت ۱٫۳٪، کمی محافظه‌کارانه‌تر از کارمزد واقعی خرید و فروش سهام که حدود ۱٫۲۵٪ است) از هر معامله کم می‌شود؛ بدون این هزینه، هر سیستمی روی کاغذ بهتر از واقعیت به نظر می‌رسد. اگر روز ورود نماد کاملاً در صف قفل بوده و دامنهٔ معاملاتی نداشته، خرید عملاً ممکن نبوده و آن معامله حساب نمی‌شود.

مثالروی یک نماد، بک‌تست ۲۴ معامله پیدا کرده. ۱۳ تای آن‌ها سود داده‌اند (نرخ برد حدود ۵۴٪) و میانگین بازده هر معامله بعد از کسر هزینه ۰٫۸٪ است. بازده مرکب کل دوره ۱۹٪ شده (کمی کمتر از ۱٫۰۰۸ به توان ۲۴، چون زیان‌ها در ترکیب مرکب سنگین‌تر می‌نشینند)، در حالی که خرید و نگه‌داری در همان بازه ۲۰٪ داده. بیشینهٔ افت سرمایهٔ سیستم ۱۴٪ بوده، در حالی که نمودار قیمت همان بازه افتی حدود ۲۹٪ را نشان می‌دهد. یعنی مسیر سیستم آرام‌تر بوده، ولی بازده کلش هنوز از خرید و نگه‌داری جلو نزده؛ و چون تعداد معاملات کمتر از سی است، خروجی با برچسب «نمونهٔ کم» می‌آید و نباید با اطمینان کامل به آن تکیه کرد.

خروجی اصلی بک‌تست، منحنی سرمایهٔ سیستم در برابر خرید و نگه‌داری است؛ عدد آخر مهم است، ولی هموار بودن مسیر هم مهم است.

بیش‌برازش چیست و چرا خطرناک‌ترین اشتباه بک‌تست است؟

بیش‌برازش یعنی پارامترهای قاعده را آن‌قدر عوض کنی تا روی همان تکه از تاریخچه که جلوی چشمت است، بهترین نتیجهٔ ممکن را بدهد. مشکل این است که آن نتیجه، الگوی واقعی بازار را یاد نگرفته؛ نویز همان بازهٔ خاص را حفظ کرده. وقتی همان قاعده را روی داده‌ای که در تنظیمش دیده نشده اجرا کنی («خارج از نمونه»)، معمولاً می‌بازد.

نمونهٔ واقعی همین اتفاق در موتور استراتژی‌های الگوریتمی خود سایت افتاد: تیم سازنده امتحان کرد که پارامتر میانگین متحرک را برای هر گروه صندوق جداگانه بهینه کند («بهینه‌سازی گام‌به‌گام زمانی»، یعنی تنظیم روی یک بازه و آزمون روی بازهٔ بعدی که مدل آن را ندیده). نتیجه رد شد: پارامتر بهینه‌شده فقط در یکی از سه گروه، از یک قاعدهٔ ثابت و ساده (میانگین متحرک نمایی ۱۰ و ۳۰ برای همه) بهتر عمل کرد. برای همین سایت به‌جای پارامتر جداگانهٔ هر گروه، همان یک قاعدهٔ ساده را برای همه نگه داشته؛ چون در آزمون «بدترین رتبه در زیربازه‌های مختلف» پایدارتر بود، نه چون بهترین بازدهٔ تک‌بازه را داشت.

هشداراگر با تغییر مکرر یک پارامتر (مثلاً تعداد روز نگه‌داری از ۳ به ۵ و ۱۰ و ۲۰) عدد بازده هر بار بهتر می‌شود، این نشانهٔ کشف یک الگوی واقعی نیست؛ نشانهٔ این است که داری روی نویز همان تاریخچه فیت می‌کنی. هر چه پارامترهای بیشتری را آزاد بگذاری، احتمال این تله بیشتر می‌شود.

چطور بک‌تست را قابل‌اعتماد بسازم؟

پنج قاعده:

  1. تعداد معاملات کافی جمع کن. خروجی بک‌تست سایت زیر سی معامله را «نمونهٔ کم» علامت می‌زند؛ زیر این عدد، نرخ برد می‌تواند فقط شانس باشد.
  2. هزینهٔ واقعی را کم کن. بازدهی که کارمزد رفت‌وبرگشت را ندیده، همیشه خوش‌بینانه‌تر از واقعیت است.
  3. همیشه با خرید و نگه‌داری مقایسه کن. سیستمی که فقط سود می‌دهد ولی از خرید و نگه‌داری ساده کمتر است، ارزش پیچیدگی اضافه‌اش را ندارد.
  4. پارامترها را کم نگه دار. هر پارامتر آزاد یک درجهٔ آزادی برای بیش‌برازش است؛ یک قاعدهٔ ساده با دو یا سه شرط، معمولاً پایدارتر از قاعده‌ای با ده شرط است.
  5. اگر می‌توانی، روی چند زیربازه یا چند نماد جدا آزمون کن. قاعده‌ای که فقط در یک بازهٔ خاص کار می‌کند، همان تلهٔ بیش‌برازش است؛ قاعده‌ای که در بیشتر بازه‌ها میانه یا بهتر است، قابل‌اعتمادتر است.

پرسش‌های پرتکرار

چند معامله برای یک بک‌تست معتبر کافی است؟

قاعدهٔ سایت سی معامله است؛ زیر آن نتیجه به‌عنوان «نمونهٔ کم» علامت می‌خورد. هرچه تعداد معاملات بیشتر باشد، نرخ برد و میانگین بازده قابل‌اتکاتر می‌شوند، چون نقش شانس در میانگین کمتر می‌شود.

بک‌تست خوب یعنی معاملهٔ واقعی هم همان نتیجه را می‌دهد؟

نه دقیقاً. بک‌تست فرض می‌کند دقیقاً روی قیمت باز روز بعد اجرا می‌شوی و بدون لغزش قیمتی (slippage) و بدون گیرکردن در صف. در بازار واقعی این فرض‌ها همیشه کامل درست در نمی‌آیند، به‌خصوص روی نمادهای کم‌حجم. بک‌تست یک تخمین منظم است، نه یک تضمین.

فرق اعتبارسنجی گام‌به‌گام زمانی با بیش‌برازش چیست؟

اعتبارسنجی گام‌به‌گام زمانی یعنی پارامتر را فقط روی یک بازه تنظیم کنی و روی بازهٔ بعدی که مدل ندیده تست کنی؛ این یک روش دفاعی در برابر بیش‌برازش است، نه خود بیش‌برازش. مشکل وقتی پیش می‌آید که حتی همین روش هم نتیجهٔ پایدار ندهد، مثل تجربهٔ سایت که در بخش قبل توضیح داده شد.

آیا می‌توانم قاعدهٔ خودم را غیر از الگوی کندلی هم بک‌تست کنم؟

نه در ابزار بک‌تست؛ این ابزار فقط الگوهای کندلی را می‌سنجد، چون سایت آن‌ها را با شرط عددی دقیق و بدون تشخیص چشمی پیدا می‌کند. برای قاعدهٔ دیگری مثل تقاطع میانگین متحرک، همین منطق را دستی روی دادهٔ تاریخی همان نماد پیاده کن: ورود در بازگشایی روز بعد، کسر کارمزد و مقایسه با خرید و نگه‌داری. کارنامهٔ استراتژی‌های تقاطع EMA روی صندوق‌ها را هم در صفحهٔ استراتژی‌های سایت می‌بینی.

خلاصه

  • سیستم معاملاتی یعنی قاعدهٔ دقیق و تکرارپذیر ورود، خروج و اندازهٔ پوزیشن.
  • بک‌تست سایت ورود را در بازگشایی روز بعد می‌گیرد، هزینهٔ واقعی کم می‌کند و روزهای قفل در صف را رد می‌کند.
  • نرخ برد، میانگین بازده، بازده مرکب و بیشینهٔ افت را همیشه کنار خرید و نگه‌داری بخوان.
  • بیش‌برازش یعنی فیت‌کردن قاعده روی نویز گذشته؛ تجربهٔ سایت نشان داد قاعدهٔ ساده و پایدار از پارامتر فوق‌بهینه‌شدهٔ ناپایدار بهتر است.
  • زیر سی معامله، نتیجه را با احتیاط بخوان؛ هرچه پارامتر کمتر و زیربازهٔ آزمون بیشتر، اعتماد بیشتر.
قدم عملی: الگوهای کندلی را روی تاریخچهٔ نماد بک‌تست کن
نرخ برد، میانگین بازده هر معامله، بیشینهٔ افت سرمایه و مقایسه با خرید و نگه‌داری، با کسر هزینهٔ معامله.
برو ←
این خروجی مدل آماری است، نه توصیهٔ سرمایه‌گذاری. بازده گذشته تضمین آینده نیست و تصمیم و مسئولیت نهایی با خود شماست. پیش از هر خرید، شرایط خودتان را بسنجید.