🎯 دانشکدهٔ ۹ · آزمون سیستم
فوروارد تست
Forward testing
پیشنیازها: بکتست و خطای نگاه به آینده
📚 آموزش در سه سطح
از سطح ساده شروع کنید؛ اگر روشن بود، سطح بعد را بخوانید. سطح مناسب شما ذخیره میشود.
🌱 توضیح ساده
فوروارد تست (Forward test) یعنی اجرای سیستم در زمان واقعی روی دادههایی که هنگام نوشتن قواعد وجود نداشتند. این مرحله چیزهایی را میآزماید که بکتست نمیتواند: اجرای واقعی سفارشها، لغزش قیمت، رفتار پلتفرم و از همه مهمتر، توانایی خود شما در پیروی از قواعد وقتی پول واقعی در میان است.
فوروارد تست مرحلهای است: ابتدا «معامله روی کاغذ» (Paper trading) برای تعداد یا مدت معین؛ سپس سرمایهٔ واقعی کوچک، مثلاً ۱۰ تا ۲۵ درصد ریسک هدف؛ و فقط اگر نتایج در محدودهٔ مورد انتظار بود، افزایش تدریجی اندازه. هر مرحله معیار عبور و معیار توقفِ از پیش نوشتهشده دارد.
چرا این همه احتیاط؟ چون بکتست اجرای کامل فرض میکند، در حالی که در بازار واقعی سفارشها دیر پر میشوند، ارتباط با صرافی قطع میشود و ترس و طمع دخالت میکنند. فوروارد تست ارزانترین راه کشف این فاصله است، پیش از آنکه سرمایهٔ بزرگ در خطر باشد.
📘 توضیح متوسط
نتایج فوروارد را با توزیع نتایج بکتست مقایسه کنید، نه با بهترین حالت آن. آیا نرخ برد، میانگین R و افت سرمایه در محدودهٔ محتمل قرار دارند؟ نمونههای کوچک نویز زیادی دارند: خطای استاندارد نرخ برد برابر √(p(1−p)/n) است. با ۳۰ معامله و نرخ برد ۴۰٪، خطای استاندارد حدود ۹ درصد است؛ یعنی بازهٔ ۹۵٪ تقریباً از ۲۲٪ تا ۵۸٪ است و ۳۰ معامله نمیتواند نرخ برد ۴۰٪ را از ۵۰٪ تمیز دهد.
فاصلهٔ سود کاغذی و سود واقعی را André Perold در سال ۱۹۸۸ «کمبود اجرا» (Implementation shortfall) نامید: تفاوت عملکرد سبد کاغذیای که همهٔ معاملاتش در قیمت تصمیم انجام شده، با سبد واقعی. این فاصله شامل کارمزد، اثر قیمتی سفارش، تأخیر و هزینهٔ فرصت سفارشهای پرنشده است. در فوروارد تست برای هر سفارش، قیمت سیگنال و قیمت اجرای واقعی را ثبت کنید تا این فاصله را اندازه بگیرید.
معیارهای توقف را پیش از شروع بنویسید: مثلاً اگر افت سرمایه از ۱٫۵ برابر بیشترین افت بکتست بیشتر شد، یا رشتهٔ زیانها از محدودهٔ محتمل گذشت، یا لغزش واقعی از دو برابر فرض بکتست بیشتر شد، معامله را متوقف و سیستم را بازبینی کنید. توقفِ از پیش تعیینشده نشانهٔ حرفهای بودن است، نه شکست.
🔬 توضیح تخصصی
ریسک عملیاتی در سیستمهای خودکار میتواند در چند دقیقه کل سرمایه را نابود کند. کنترلهای حداقلی: محدودیت اندازه و تعداد سفارش پیش از ارسال، تطبیق خودکار پوزیشنها با صرافی، هشدارهایی که واقعاً بررسی میشوند، «کلید توقف اضطراری» (Kill switch) که همهٔ سفارشها را لغو و ارسال را قطع کند، و رویهٔ مستند پاسخ به حادثه. استقرار کد تازه هم رویه میخواهد: بازبینی، محیط آزمون، استقرار تدریجی و طرح بازگشت.
تمایز «بدشانسی» از «از بین رفتن مزیت» دشوار است. با شبیهسازی مونتکارلو روی معاملات بکتست، توزیع افت سرمایه و رشتههای زیان را بسازید. افتی که در محدودهٔ صدک ۹۵ است میتواند بدشانسی باشد؛ عبور از آن نشانهٔ احتمالی تغییر رژیم بازار، شلوغ شدن مزیت یا خطای اجرایی است و بازبینی جدی میخواهد.
برخی صندوقها راهبردهای تازه را ماهها با سرمایهٔ کوچک «پرورش» (Incubation) میدهند تا پیش از تخصیص سرمایهٔ اصلی، رفتار زندهشان را ببینند. همه چیز را ثبت کنید: هر سیگنال، هر سفارش، هر اجرا، هر خطا و هر مداخلهٔ دستی. مداخلههای دستی را جداگانه علامت بزنید؛ اگر نتایج خوب فقط از مداخلهها میآید، سیستم شما در واقع اختیاری است و باید جداگانه ارزیابی شود.
🌍 مثال واقعی: ۴۵ دقیقه و بیش از ۴۶۰ میلیون دلار زیان — Knight Capital، ۱ اوت ۲۰۱۲
Knight Capital از بزرگترین بازارسازان سهام آمریکا بود. در اواخر ژوئیهٔ ۲۰۱۲، برای شرکت در «برنامهٔ نقدینگی خردهفروشی» بورس نیویورک، کد تازهای روی مسیریاب سفارشهایش مستقر کرد؛ اما کد روی یکی از هشت سرور کپی نشد و آن سرور با کد قدیمی کار میکرد. صبح ۱ اوت، سفارشهای تازه کارکردی قدیمی و بلااستفاده را در آن سرور فعال کردند که نمیفهمید سفارشها پر شدهاند. پیش از باز شدن بازار، سیستم ۹۷ ایمیل خودکار دربارهٔ خطا فرستاده بود که چون بهعنوان هشدار طراحی نشده بود، بررسی نشد.
در ۴۵ دقیقهٔ نخست معاملات، مسیریاب برای پر کردن ۲۱۲ سفارش مشتری بیش از ۴ میلیون سفارش به بازار فرستاد و بیش از ۳۹۷ میلیون سهم معامله کرد. Knight چند میلیارد دلار پوزیشن ناخواسته گرفت و به گفتهٔ کمیسیون بورس آمریکا (SEC) بیش از ۴۶۰ میلیون دلار زیان کرد؛ شرکت با تزریق سرمایهٔ اضطراری نجات یافت و بعدتر ادغام شد. در اکتبر ۲۰۱۳، SEC در نخستین پروندهاش بر پایهٔ قاعدهٔ دسترسی به بازار، ۱۲ میلیون دلار جریمه تعیین کرد. درس: سیستم خودکار بدون کنترل استقرار، کنترل پیش از ارسال سفارش و کلید توقف اضطراری، یک بمب ساعتی است.
🔤 واژگان تخصصی
اجرای سیستم در زمان واقعی روی دادههایی که در ساخت آن نبودند.
مثال: سه ماه اجرای سیستم با سرمایهٔ کوچک.
ثبت معاملات فرضی در زمان واقعی بدون پول واقعی.
مثال: ثبت سیگنالها و قیمتهای اجرای فرضی در ژورنال.
فاصلهٔ عملکرد سبد کاغذی با سبد واقعی پس از اجرا (Perold، ۱۹۸۸).
مثال: سیگنال در ۱۰۰ و اجرای واقعی در ۱۰۰٫۲.
سازوکاری که فوراً همهٔ سفارشها را لغو و ارسال را متوقف میکند.
مثال: قطع خودکار پس از عبور تعداد سفارشها از سقف تعیینشده.
اجرای زندهٔ راهبرد با سرمایهٔ کوچک پیش از تخصیص سرمایهٔ اصلی.
مثال: شش ماه اجرا با ۵٪ سرمایهٔ هدف.
🔑 نکات کلیدی
- فوروارد تست اجرا، لغزش و انضباط شما را میآزماید.
- مرحلهها: کاغذ، سرمایهٔ کوچک، افزایش تدریجی؛ با معیار عبور و توقفِ از پیش نوشتهشده.
- نمونهٔ کوچک نویز زیادی دارد؛ خطای استاندارد نرخ برد = √(p(1−p)/n).
- کمبود اجرا را با ثبت قیمت سیگنال و قیمت اجرا بسنجید.
- سیستم خودکار بدون کلید توقف و کنترل پیش از ارسال، ریسک فاجعه دارد.
⚠️ اشتباهات رایج
- پریدن از بکتست مستقیم به سرمایهٔ کامل؛ اشتباه است چون فاصلهٔ کاغذ و واقعیت آزموده نشده است.
- قضاوت دربارهٔ سیستم پس از ۱۰ معامله؛ اشتباه است چون نمونه برای تشخیص مزیت بسیار کوچک است.
- تعیین معیار توقف پس از شروع زیان؛ اشتباه است چون تصمیم زیر فشار احساس گرفته میشود.
- نادیده گرفتن هشدارهای خودکار و نداشتن کلید توقف؛ اشتباه است چون خطای نرمافزاری در چند دقیقه فاجعه میسازد.
🛠 تمرین عملی: طرح فوروارد تست سهمرحلهای
- برای سیستمی که بکتست کردهاید، مرحلهٔ کاغذی (مثلاً ۳۰ معامله) را در شبیهساز یا ژورنال اجرا کنید و برای هر سیگنال قیمت سیگنال و قیمت اجرای فرضی را ثبت کنید.
- معیارهای عبور (مثلاً میانگین R در بازهٔ مورد انتظار) و توقف (مثلاً افت بیش از ۱٫۵ برابر بکتست) را با عدد بنویسید.
- برای مرحلهٔ سرمایهٔ کوچک، اندازهٔ ریسک، سقف زیان روزانه و رویهٔ توقف اضطراری را مشخص کنید.
✅ معیار درستی: سه مرحله با معیارهای عددی عبور و توقف نوشته شده، کمبود اجرا اندازهگیری شده و رویهٔ توقف اضطراری روشن است.
🔒 در هیچ تمرینی از سرمایهٔ واقعی، عبارت بازیابی (Seed Phrase)، کلید خصوصی یا اتصال کیف پول اصلی استفاده نکنید.
📝 آزمون تطبیقی
هر بار ۵ سؤال از بانک ۹ سؤالی این درس انتخاب میشود؛ سؤالهایی که قبلاً اشتباه زدهاید زودتر برمیگردند. حدنصاب قبولی ۸۰٪ (۴ از ۵) است و درس بعد با قبولی باز میشود.
✍️ پرسش تشریحی
طرح کامل فوروارد تست برای سیستمی که بکتست کردهاید بنویسید: مراحل، اندازهٔ ریسک هر مرحله، معیارهای عبور و توقف، روش سنجش کمبود اجرا و کنترلهای ریسک عملیاتی. با استناد به حادثهٔ Knight Capital توضیح دهید چرا کنترلهای عملیاتی به اندازهٔ مزیت آماری مهماند.
بعد از نوشتن، پاسخ خود را با این معیارها بسنجید
خودارزیابی: هر نکتهای را که پاسخ شما بهروشنی پوشش داده علامت بزنید.
🤖 دستیار آموزشی
دستیار آفلاین آکادمی: پاسخها فقط از متن درسها و واژگان همین آکادمی پیدا میشوند و منبع هر پاسخ نشان داده میشود. هوش مصنوعی مولد نیست، حدس نمیزند و هیچ سیگنال خرید و فروشی نمیدهد.
📎 منابع مطالعاتی
- SEC Press Release 2013-222 (Oct 16, 2013) — SEC Charges Knight Capital With Violations of Market Access Rule
- WilmerHale (Oct 2013) — Knight Capital Settles Rule 15c3-5 Violations with SEC, Agrees to Pay $12 Million
- Perold (1988) — The Implementation Shortfall: Paper versus Reality, Journal of Portfolio Management 14(3)
🏁 معیار تسلط بر این درس: بتوانید یک فوروارد تست مرحلهای با معیارهای عددی عبور و توقف طراحی کنید، کمبود اجرا را اندازه بگیرید و کنترلهای ریسک عملیاتی سیستم خودکار را تعریف کنید.