طرفداری - بک تست چیست؟
به معنی تست کردن استراتژی معاملاتی در گذشته بازار و استخراج نتیجه از آن است. نتایجی که از این کار انتظار میرود، عبارتاند از:
- میزان سود
- میزان زیان
- درصد معاملات برنده به بازنده
- میزان سود و زیان در هر معامله
- حداکثر میزان زیان طی زمان تست و ...
البته، پارامترهای بسیار بیشتری را باید در نظر بگیرند، ولی در این مقاله به این موارد بیشتر پرداخته ایم. برای اینکه بدانید استراتژی معاملاتی تان مناسب است یا نه باید آن را در گذشته بازار بررسی کنید. انجام این کار بهصورت دستی میتواند خطای زیادی به همراه داشته باشد و همچنین، حوصله فراوان میخواهد.
در متاتریدر (4 و 5)، ابزاری به نام Strategy Tester وجود دارد که با آن میتوانید استراتژی کدشده خود را در گذشته بازار بهسرعت و دقیق بررسی کنید و این ابزار، تمام گزارشهای آماری موردنیازتان را در اختیارتان قرار میدهد.
همچنین، در این ابزار میتوانید پارامترهای ورودی استراتژی خود را بهینه کنید.
به دو نکته ی مهمی که در این تعریف وجود دارد، توجه کنید:
الف. بهترین جواب از بین جوابهای ممکن
ب. محدودیتهای مسئله
با مثال سادهای، مفهوم کلی را برایتان توضیح می دهم:
فرض کنید استراتژی معاملاتیتان فقط از یک میانگین متحرک تشکیلشده است و در سادهترین حالت، میخواهید با گذر رو به بالای قیمت از میانگین متحرک، خرید کنید و هنگامیکه قیمت میانگین متحرک را رو به پایین قطع کرد، از معامله خود خارج شوید.

در شکل بالا، فرض میکنیم در فلش رو به بالا (قیمت میانگین متحرک را رو به بالا قطع کرده) میخریم و در فلش رو به پایین (قیمت میانگین متحرک را رو به پایین قطع کرده) میفروشیم.
شکل زیر پارامترهای ورودی میانگین متحرک را نشان میدهد که دارای چهار پارامتر است:
- Period
- Shift
- Method
- Apply to
این پارامترها مقادیر مختلفی به خود میگیرند؛ ولی سؤال اینجا است که کدام پارامترها برای محصول موردنظر ما بهترین هستند؟
پاسخ به این سؤال فقط وقتی معلوم میشود که استراتژی خود را با تمام حالات ورودی در گذشته تست کنید و بهترین جواب را برگزینید. به این کار بهینهسازی میگویند. در معاملات الگوریتمی باید به روش بک تست و بهینه سازی در سطح خیلی خوبی مسلط باشید و از خطاهای آن مطلع باشید.
خطا در بک تست که یک معامله گر الگوریتمی باید حتما از آن مطلع باشد:
- کیفیت داده:
مهمترین مساله در بک تست، کیفیت داده است. داده های گذشته باید با کیفیت باشد تا نتیجه ای که از آن میگیریم قابل استناد باشد. منظور من از کیفیت داده، کیفیتی بالای 97 درصد است. در زیر تصویری از یک نمونه استراتژی که در متا تریدر 5 و در گذشته بازار گرفته شده نمایش داده شده و کیفیت داده آن 100 درصد است.

- تاثیر معاملات خودتان در روند بازار
یکی از مسائلی که در بک تست در نظر گرفته نمیشود این است که وقتی ما در گذشته بازار استراتژی خود را تست میکنیم، تأثیری که خود ما در بازار میتوانستیم داشته باشیم را در نظر نمیگیریم و البته هنوز ابزاری هم برای این موضوع طراحی نشده و یا من اطلاعی از آن ندارم. ولی باید این نکته را بدانیم که این خطا وجود دارد. البته در بازارهایی با حجم معاملات زیاد این خطا کاهش میابد یعنی معاملات شما تأثیر چندانی بر روند بازار ندارد.
- تأثیر spread و commission بر معاملات
یکی از موارد مهمی که در بک تست بهصورت دستی در نظر گرفته نمیشود، در نظر نگرفتن تأثیر این دو عامل در نتایج معاملات است. اگر توانایی تبدیل استراتژی خود را به کد در mql5 را داشته باشید، سیستم بهصورت اتوماتیک این موارد را در نظر میگیرد ولی در متاتریدر 4 این موارد در نظر گرفته نمیشود.
- خطا در پیادهسازی معاملات الگوریتمی
اگر استراتژی خود را بهصورت کد شده در گذشته بازار بررسی میکنید، باید دقت کنید که کد خود را بسیار دقیق پیادهسازی کنید چون خطا در اجرا، خطا درنتیجه را به دنبال دارد.
- Over fit
یکی از بزرگترین خطاهایی که معامله گران الگوریتمی در بک تست و بهینهسازی به آن دچار میشوند، مسئله over fit یا بهینهسازی بیشازحد است. معامله گران مبتدی فکر میکنند هر چه بیشتر پارامترهای استراتژی معاملاتی را دقیق کنند، سود بیشتری نصیب آنها خواهد شد. درصورتیکه اگر شما یک استراتژی را در گذشته بسیار دقیق کنید، احتمال اینکه همان استراتژی در آینده هم نتایج مشابه گذشته بدهد را پایین میآورید چون همه ما میدانیم در بازار، آینده شبیه گذشته نیست.
- انواع تفکر در تحلیل تکنیکال
به صورت کلی 2 نوع تفکر در تحلیل تکنیکال داریم:
- نفکر روندی
- تفکر بازگشت به میانگین
در تفکر روندی، معامله گر به دنبال پیدا کردن روندی در بازار است(صعودی یا نزولی) و با پیدا کردن آن در جهت روند معامله می کند.
در تفکر بازگشت به میانگین، معامله گران به دنبال پیدا کردن سقفها و کفهای قیمتی هستند و عقیده دارند قیمت همیشه به میانگین خود بازمیگردد. در بک تست باید بدانیم کدام تفکر و برای چه بازاری( روندی یا رنج) در استراتژی استفادهشده. چون در غیر این صورت جوابی که از بک تست میگیریم مناسب نخواهد بود.
فوروارد تست (Forward Test):
در بک تست، فرض بر این بود که اطلاعات گذشته بازار را در اختیار داریم؛ ولی در فوروارد تست موضوع متفاوت است.
در فوروارد تست، ابتدا بازه زمانی تست خود را به دو قسمت تقسیم میکنیم که لزوماً مساوی نیستند؛ سپس، استراتژی خود را در قسمت اول بازه زمانی تست میکنیم و پارامترهای بهینه را به دست میآوریم. حال، با همان پارامترهای بهدستآمده، در قسمت دوم معامله میکنیم و نتیجه را با خروجی قسمت اول مقایسه میکنیم. در حقیقت، هنگامیکه استراتژی را در قسمت دوم بررسی میکنیم، فرض بر این است که از آینده خبر نداریم و با توجه به اطلاعات بهدستآمده در گذشته، در آینده معامله میکنیم.
اگر نتایج بهدستآمده تا حد زیادی شبیه هم بود، احتمال این زیاد است که استراتژی در آینده مانند گذشته عمل کند. دقت کنید گفتم زیاد است و درصد نگفتم. درواقع، هیچکس از آینده خبر ندارد و قیمت و بازارها را نمی توان پیشبینی کرد.