چرا بک‌تست شما ممکن است گمراه‌کننده باشد؟ بررسی تمام سیگنال‌های خرید و فروش

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

مشکل کجاست؟ نگاه به مستطیل‌های سبز و قرمز

شروع به کار می‌کنیم با یک استراتژی ساده، چون هدفمون اینجا خودِ استراتژی نیست. فرض کنید می‌خوایم با همون مثالِ خودمون، یعنی کراسِ دو تا میانگین، خرید انجام بدیم. این شد شرط. حالا می‌خوایم بگیم این باید شرطِ خرید باشه؛ باید یه «سیگنال خرید» جلوش بذارم و بعد هم یه «سفارش» که می‌شه یه اردر توی بازار. چیزی که تا اینجا دیدیم این بود که اگه میانگینِ ۱۴ روزه، ۳۱ روزه رو به بالا قطع کنه یه سفارشِ خرید داده می‌شه. می‌تونیم عکسش رو هم برای فروش بذاریم و لیست نمادهامون رو هم انتخاب کنیم که استراتژیی ما روی چه نمادهایی کار می‌کنه. اوکی، الان اگه اجرا بزنیم، استراتژیی ما روی این سهم‌های مختلف اجرا می‌شه. حالا کاری به سود و زیانش نداریم؛ به‌صورتِ مستطیل داره به من نشون می‌ده کجا خریده، کجا فروخته — مستطیل‌های سبز و قرمز که نشان‌دهندهٔ موفقیت و باخت هستن. اما نکته‌ای که وجود داره: درسته اینجا خریده و قطعاً اینجا سیگنال داده بوده، اما ممکنه در ادامه هم سیگنال داده باشه و ما دیگه به اون سیگنال اهمیت ندادیم.

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

چرا این مهمه؟ چون اگه شما از نوتیفیکیشن استفاده می‌کنید، هر بار که اون سیگنال رخ می‌ده برای شما اون نوتیفیکیشن میاد و کاری نداره که قبلاً خریدید یا نخریدید. لذا شما باید استراتژیتون رو به لحاظِ تعدادِ سیگنالهایی که می‌ده هم بررسی کنید. این موضوع به‌ویژه در تابلوخوانی و مدیریت ریسک در بازارهای پرنوسان حیاتی است.

راه حل: استفاده از بلاک شرطی و نمایش روی نمودار

خب چطور می‌تونیم این کار رو بکنیم؟ از طریق بلاک نمودار می‌تونیم لحظهٔ وقوعِ سیگنالها رو نمایش بدیم؛ یعنی اگه سیگنال رخ داد، مثلاً من رو نمودار یه نقطهٔ یک بذارم، و اگه رخ نداد صفر بذارم. خب چطور می‌تونم به‌صورتِ شرطی یه چیزی رو انتخاب کنم؟ ما یه بلاک شرطی (Conditional Block) داریم؛ بذارید بیارمش بالا. بلاک شرطی به چه شکلی کار می‌کنه؟ یه شرطی به‌عنوانِ تریگر بهش می‌دید؛ اگه شرط درست باشه یک، و اگه شرط غلط باشه صفر — مقدارِ دوم رو بهش می‌دیم. پس بلاک شرطی (یا انتخاب شرطی) به این شکله که یه والیوِ True/False می‌گیره و در ازای اون، یکی از دو تا مقدار رو در خروجی انتخاب می‌کنه. خروجیش رو من انداختم روی نمودار و می‌گم برو پایین رسمش کن.

اجرای عملی روی نمودار

همین کار رو می‌تونیم برای فروشمون هم انجام بدیم؛ به این ترتیب که دارید می‌بینید، اینجا قرمز. اتفاقی که افتاد، دو تا نمودار در پایین اضافه شد: یکی قرمز، یکی آبی. آبی سیگنالِ خریده که اینجا سیگنال خرید داده، قرمز اینجا سیگنال فروش داده. سیگنال خرید و سیگنال فروش که این مستطیلِ باریک رو ایجاد کرده. این استراتژیی که الان نوشتم استراتژیی خوبیه. چرا؟ چون سیگنالِ خرید که می‌ده، دیگه سیگنال خریدی نمی‌ده تا وقتی که سیگنال فروش بده؛ یعنی استراتژیی که سیگنال خرید، سیگنال فروش، سیگنال خرید، سیگنال فروش... یه خرید اینجا داده و دیگه نفروخته؛ فروشش هم شده روزِ آخر، یعنی به‌خاطر اینکه استراتژیی ما به انتها رسیده. خب پس من این‌طوری می‌تونم ارزیابی کنم: سیگنال خرید، فروش، خرید، فروش پشت سرِ هم اتفاق افتاده. با این مکانیزمی که بهتون نشون دادم، شما می‌تونید دقیقاً سیگنالهاتون رو بگیرید.

هشدار: وقتی اندیکاتور مدام سیگنال تکراری می‌دهد

فرض کنید استراتژیی ما رو عوض می‌کنم و به‌جای اون می‌گم میانگینِ چهارده‌روزه، میانگینِ سی‌ویک رو کراس کنه — مقایسه صورت بگیره، یعنی وقتی میانگینِ چهارده‌روزه از میانگینِ سی‌ویک‌روزه رفت بالا و ازش عبور کرد، در این شرایط بخر. یه نگاهی به بخش سیگنالها بندازیم. خب شما نگاه کنید که اینجاها صفره و اینجا یک داده، یعنی سیگنال خرید داده، و این سیگنالِ خرید هر روز دیگه تکرار شده؛ یعنی تا این انتها که سیگنال فروش بده، سیگنال خرید داده. دقت می‌کنید چه اتفاقی افتاد؟ یعنی شما به‌کرّات سیگنالِ خرید داشتید. همین‌طوری دارید می‌بینید، در این بازه‌ها کاملاً سیگنال خرید داشتید؛ یعنی هر روز شما سیگنال خرید داشتید. خب این هم حالتِ بدی خواهد شد. فرض کنید این استراتژی رو به نوتیفیکیشن وصل کنید و بگید هر بار که سیگنالِ خرید داد به من خبر بده؛ هر روز برای شما سیگنالِ خرید رو نوتیفیکیشنش رو ارسال می‌کنه، در حالی که شما اینجا خریدید و تمام شده و رفته. و اینها می‌تونه شما رو اذیت کنه، چون شما روی یک سهم کار نمی‌کنید، روی تعدادِ زیادی سهم کار می‌کنید و حتی روی یک استراتژی هم کار نمی‌کنید، روی استراتژیهای متنوعی کار می‌کنید؛ لذا این باعث می‌شه کلی نوتیفیکیشن داشته باشید که شما رو اذیت کنه.

نتیجه‌گیری

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