آیا تاکنون برایتان پیش آمده که در حال تماشای وضعیت قیمت یک جفت ارز، الگوی آشنایی ببینید اما مطمئن نباشید چگونه این الگو را تبدیل به یک رویکرد معاملاتی کنید؟ این احساس عدم اطمینان احساسی است که روزانه هزاران معاملهگر با آن دست به گریبان هستند. بک تست (Backtest) گرفتن راهکاری است برای آنکه بتوانید از رویکرد معاملاتی خود اطمینان حاصل کنید. بسیاری از معاملهگران ساعتهای زیادی را صرف مطالعه و تحقیق در مورد الگوها و حرکات قیمت کرده و با انجام بک تست، معاملات خود را با اطمینان بیشتر انجام میدهند.
بک تست در فارکس چیست؟ بک تست یک فرآیند برای استفاده از دادههای گذشته قیمت است تا بتوانید استراتژی معاملاتی خود را آزمایش کنید. شما میتوانید با استفاده از دادههای گذشته قیمت وچارت، به صورت دستی استراتژی خود را آزمایش کنید یا از الگوریتمهای پیچیده استفاده کنید تا آنها کار تشخیص الگوهای مورد نظر شما را انجام دهند.
تفاوتی ندارد از کدام روش برای بک تست استراتژی خود استفاده کنید. این فرآیند به شما کمک میکند تا موقعیتهای معاملاتی بوجود آمده توسط استراتژی خود را مشاهده کرده و مزیتهایی را که از این استراتژی کسب میکنید، مشخص کنید.
روشهای بک تست دستی
ممکن است فرآیند بک تست دستی طاقتفرسا و زمان گیر باشد اما آزمون خود را پس داده است. البته این نوع بک تست بهرهوری چندان بالایی ندارد و احتمال خطا در آن زیاد است.
به عنوان مثال اگر بر روی کاغذ به نمودار نگاه کنید، تعیین اینکه آیا واقعا کفها از کفهای قبلی پایینتر هستند یا خیر کمی دشوار است. اگرچه ابزارهای آنلاین مشکلات را کمی کاهش دادهاند اما با این وجود همچنان این روش وقتگیر است.
بک تست دستی از استراتژی معاملاتی به شما این امکان را میدهد که ببینید آیا ایده معاملهگری شما عملی است یا خیر. همچنین میتوانید با بررسی دادههای گذشته ببینید که استراتژی شما چقدر کارایی دارد. اما اگر بخواهید استراتژی خود را به صورت گسترده آزمایش کنید قطعا فرایندهای خودکار مناسبتر هستند.
اولین قدم در فرآیند بک تست دستی، یافتن نرمافزار نمودارسازی است که کار با آن راحت و آسان باشد. همچنین اگر استراتژی شما به گونهای است که از تایم فریم (Time Frame) روزانه یا هفتگی استفاده میکنید این نرمافزار باید دادههای زیادی (مثلا ۵ تا ۱۰ سال اخیر) را در اختیار داشته باشد. اما اگر معامله گر روزانه (Day Trader) هستید و در تایم فریم میانروز (Intraday) معامله میکنید دادههای چند سال برای تست استراتژی شما کافی خواهد بود.
همچنین باید متوجه باشید که دادههای مورد استفاده در تایم فریم میانروزی تا چه حد میتوانند وسیع باشند. به عنوان مثال اگر بخواهید دادههای گذشته در تایم فریم یک دقیقهای را بررسی کنید، شما برای هرروز ۱۴۴۰ داده دارید که در یک دوره سه ساله بیش از یک میلیون داده میشود.
روشهای بک تست خودکار
روشهای مختلفی برای بک تست خودکار وجود دارد. یکی از این روش ها شبیهساز فارکس (Forex Simulator) است که شما میتوانید با استفاده از آن خودتان به آزمایش استراتژیتان بپردازید. همچنین میتوانید از نرمافزارهای بک تست گیری فارکس که به شما اجازه میدهند رویکردهای اساسی و پیچیدهتری را آزمایش کنید، استفاده کنید.
تعداد بسیار زیادی از وبسایتها هستند که به شما دادههای گذشته قیمت را ارائه میکنند. بیشتر این دادهها اطلاعات روزانه یا هفتگی (قیمت باز شدن، بسته شدن، بالاترین و پایینترین قیمت) را شامل میشوند. شما میتوانید این دادهها را در اکسل وارد کرده و سپس آنها را به پلتفرم انجام بک تست خود منتقل کنید.
همچنین اگر میخواهید یک استراتژی که بر روی دادههای ساعتی یا دقیقهای پیاده میشود را آزمایش کنید، میتوانید از اینترنت این دادهها را پیدا کنید. البته بعضی وبسایتها نیز این دادهها را به شما میفروشند. مزیت خرید این دادهها آن است که معمولا فیلتر شده و تمیز تحویل شما داده میشود و تیکهای (Tick) بد را از سریهای زمانی حذف کردهاند.
باید توجه داشت هر دادهای که بارگیری میکنید باید از نظر صحت و دقت آزمایش شود. نباید در مجموع دادهها هیچ نقطه داده بدی وجود داشته باشد به خصوص اگر میخواهید بر اساس سقفها و کفهای قیمتی وارد معامله شوید. اگر دادهها دارای سقفها و کفهای اشتباه باشند ممکن است نقاط ورود یا خروج اشتباه تعیین شده و منجر به سیگنال ورود و خروج اشتباه شوند.
بعلاوه باید استراتژی خود را عمیقا درک کرده باشید و بدانید که آیا دادهها نتایج را تغییر میدهند یا خیر. به عنوان مثال، اگر بر اساس دادههای روزانه معامله میکنید، ممکن است متوجه نشوید که سقف قیمتی یک روز، قبل کف قیمتی آن روز تشکیل شده است یا بعد آن. اگر محدودههای حد سود (Take Profit) و حد ضرر (Stop Loss) شما نزدیک نقطه ورود شما باشند، این مسئله میتواند مشکلساز شود و شما سیگنال اشتباهی دریافت خواهید کرد.
برای مثال، اگر براساس قیمت بسته شدن یکی از روزهای گذشته وارد معاملهای شوید و سطوح حد سود و حد ضرر شما در بازه قیمتی روز بعدی باشند، نتیجه معامله شبیهسازی شما در چارت روانه به این موضوع وابسته خواهد بود که ترتیب زمانی تعریف شده برای شبیهساز در فرایند ارزیابی حد سود و حد ضرر چگونه انجام شود و شاید نتیجه آن چیزی نباشد که واقعا در عمل رخ داده است.
استفاده از نرم افزار بک تست
روش دیگر برای بک تست گیری استراتژی استفاده از بک تست رایانهای است. امروزه بسیاری از پلتفرمهای معاملاتی دارای بخشی هستند که به معاملهگران اجازه میدهند مدل معاملاتی با استفاده از اندیکاتورهای تکنیکال طراحی کرده و مجموعهای از استراتژیها را آزمایش کنند. در این روش بر اساس دادههای گذشته استراتژی شما آزمایش میشود و به شما امکان میدهد تا ببینید چقدر این استراتژی در گذشته کارایی داشته است.
متاتریدر ۴ (MT4) نمونهای از بک تستگیری خودکار را دارد که میتوانید از آن استفاده کنید.
میتوانید از زبان و رابط کاربری گرافیکی این پلتفرم که یک روش کارآمد برای ساختن استراتژیهای شماست، استفاده کنید. همچنین میتوانید از رابط برنامهنویسی اپلیکیشن (Application program interface یا API) این برنامه استفاده کنید تا سیستمی سفارشی سازی شده برای خود داشته باشید. در تصویر زیر نمونهای از محیط برنامهنویسی در برنامه متاادیتور (متعلق به کمپانی سازنده متاتریدر) را مشاهده میکنید.
ایجاد یک سیستم معاملاتی خودکار
روشهای مختلفی وجود دارد که میتوانید با استفاده از آنها رویکردی سیستماتیک به معاملات خود ببخشید. میتوانید خودتان سیستم را با استفاده از ایدهها و استراتژیهای خود برنامه نویسی کنید، یا میتوانید به شخص دیگری بسپارید تا با استفاده از استراتژی شما یک سیستم خودکار طراحی کند. اگر سیستم معاملاتی شما از ابزارهای متداول مانند میانگین متحرک (Moving Average) یا سایر اندیکاتورهای تکنیکال استفاده میکند، کارآمدترین روش برای بک تست گیری این است که از یک پلتفرم مانند متاتریدر یا نینجا تریدر (Ninja Trader) برای بک تست گیری استفاده کنید.
یادگیری نحوه استفاده از این رابطهای کاربری کمی زمان میبرد اما این سیستمها برای کسانی که تجربه کمی در برنامهنویسی دارند ارائه شدهاند. همچنین برای راحتی شما، استراتژیهای استانداردی مانند کراس اور میانگینهای متحرک (Moving Average Crossovers)، یا شرایط اشباع خرید (Overbought) و اشباع فروش (Oversold) در بیشتر این نرمافزارها از قبل برنامهریزی شده است.
اکثر سیستمهای بک تست و پلتفرمهای معاملاتی، رابط های کاربری نسبتا آسانی دارند که حتی بدون دانش تخصصی میتوانید از آنها استفاده کرده و استراتژی خود همراه با مدیریت ریسک را پیادهسازی کنید. اکثر این بستههای نرم افزاری رابط کاربری گرافیکی سادهای دارند که شما تنها با زدن یک کلیک میتوانید معیارهای استراتژی خود را بسازید.
اگر فکر میکنید که برنامه نویسی یک سیستم معاملاتی خارج از توان شماست، میتوانید برنامه نویس مستقل (Freelancer) استخدام کنید تا به شما در این کار کمک کند.
استخدام یک برنامهنویس مستقل (آزادکار)
برنامهنویسان ماهر و آزادکار بسیار زیادی وجود دارند که میتوانید آنها را استخدام کرده و سیستم معاملاتی شخصی خود را به آنها بسپارید.
همچنین میتوانید از آنها بخواهید تا نتایج مربوط به هر مجموعه دادهای را که با استراتژی شما همخوانی دارد اجرا کرده و به شما نشان دهند. اما استفاده از یک برنامهنویس میتواند نکات منفی نیز داشته باشد. یکی از این اشکالات هزینه اضافی است که شما برای ایجاد سیستم معاملاتی خودکار خود متحمل میشوید. این هزینهها شامل برنامهنویسی اولیه و اشکالزداییهای بعدی نیز میشود. همچنین از آنجایی که احتمالا نیاز به تغییر استراتژی خود خواهید داشت (چرا که هیچ استراتژی تا ابد کارایی ندارد) مجبور خواهید بود برای هر بار تغییر استراتژی هزینهای بپردازید. نکته دیگر اینکه برنامهنویسها معمولا به دو صورت پروژهای و ساعتی، کار میکنند. اینجا شما باید تصمیم بگیرید که با استفاده از کدام روش (ساعتی یا پروژهای) میخواهید برنامهنویس استخدام کنید.
بک تست گیری مزایای بسیاری برای شما دارد. با بک تست گیری مشخص میشود که استراتژی شما در چه سطحی از ریسک قرار دارد و در شرایط مختلف بازار کارایی دارد یا خیر. مهمتر از همه، پیش از آنکه سرمایه واقعی خود را به خطر بیندازید متوجه میشوید که از نظر دادههای گذشته استراتژي شما چقدر کارایی دارد. بک تست گیری سودآوری معاملات شما را در آینده تضمین نمیکند اما میتواند ضررهای احتمالی را به شدت کاهش دهد.
یکی از مزایای برنامهنویسی شخصی برای استراتژی این است که شما قطعا دانش عمیقتری نسبت به نحوه عملکرد سیستم و میزان قدرت نتایج بک تست بدست میآورید. همچنین با این کار اعتماد به نفس بیشتری نسبت به سیستم خود در هنگام معامله واقعی خواهید داشت.
همانطور که قبلا اشاره کردیم، خروجی سیستمی که توسعه میدهید تنها میتواند به خوبی دادههایی باشد که از آنها استفاده میکنید. اگر دادهها معیوب باشند یا در نتایج آنها خطایی وجود داشت باشد، ممکن است سیگنالهای معاملاتی نادرست ایجاد شود.
اگر دادههای خود را از یک ارائه دهنده نرمافزار رایگان بارگیری کردهاید، باید دادهها را مرور کنید تا ببینید آیا قیمتهای مشکوک در آنها وجود دارد یا خیر. در این دادهها معمولا قیمتهای باز و بستهشدن کندلها درست است اما ممکن است بالاترین یا پایینترین قیمت اشتباه باشند که منجر به نتایج اشتباه در بک تست گیری میشوند.
خرید سیستم معاملاتی
در بازار سیستم معاملاتی تجاری زیادی برای خرید وجود دارند. بسیاری از آنها توسط توسعهدهندگان خود مورد آزمایش قرار گرفته و بازده چشمگیری را که توسعهدهندگان آنها تبلیغ میکنند، دارند. اما در هنگام خرید سیستمهای معاملات همواره فرض را بر این بگذارید که اگر سیستم آنقدر خوب است، چرا فرد قصد فروش آن را دارد. بسیاری از این سیستمها اگرچه در دادههای گذشته بسیار خوب و سودآور عمل میکنند اما وقتی در زمان واقعی معامله میشوند، ابدا سودآوری ندارند.
نقد و بررسیهایی درباره سیستمهای معاملاتی که در اینترنت پیدا میشوند، وجود دارد که نحوه عملکرد سیستمهای مختلف را در زمان واقعی توصیف میکند. یک منبع معتبر برای بررسی سیستمهای معاملاتی وبسایت Futures Truth است. اما اگر نمیتوانید نقد و بررسی ها را مطالعه کنید، حتما قبل از استفاده از استراتژی با سرمایه واقعی، حتما استراتژی را روی یک حساب دمو (Demo) امتحان کنید.
مشکلات و مسائل موجود در بک تست گیری
همانطور که گفته شد، یکی از مباحث مربوط به بکتست گیری و خرید یک استراتژی این است که تنها براساس دادههای گذشته عملکرد مناسب دارند. بدین ترتیب ممکن است یک استراتژی روی کاغذ خوب به نظر برسد اما در معاملات واقعی شکست بخورد. شما میتوانید با بهینهسازی بیش از حد یک سیستم معاملاتی در یک دوره زمانی خاص، سیستمی را تولید کنید که تنها در همان دوره زمانی خاص بسیار خوب به نظر برسد. این همان کاری است که کلاهبرداران هنگام فروش سیستمهای معاملاتی انجام میدهند.
طراح یک سیستم معاملاتی میتواند معیارها را به گونهای تغییر دهد که عملکرد سیستم معاملاتی خارق العاده شود. برای مثال ممکن است طراح سیستم یک استراتژی دنبال کننده روند بک تست کند و آن را با استفاده از تقاطع میانگینهای متحرک تنها برای ۲ سال بهینه کند.
اگر نتایج بک تست برای یک استراتژی بیش از حد مطلوب به نظر رسید، دورههای زمانی طولانیتر را نیز بررسی کنید. معمولا در طولانی مدت نتایج متعادلتر میشود البته فروشنده استراتژی این مطلب را به شما نخواهد گفت. شاید استراتژی مثل تقاطع میانگینهای متحرک که در یک دوره دو ساله ۹۰ درصد بازدهی داشته باشد، اما در یک دوره ۱۰ ساله بازدهی تنها به ۲۰% برسد.
اما مهمتر از آن این است که ببینید آیا استراتژی در فوروارد تست (Forward Test) و در مرحله بعدی در معاملات واقعی نیز کارایی مناسب را دارد یا خیر.
علاوهبر این بسیاری از معاملهگران تازهکار تصور میکنند یک سیستم معاملاتی خوب باید درصد معاملات موفق زیادی داشته باشد. از این رو ممکن است فردی پارامترهایی در سیستم ایجاد کند که سیستم درصد بالایی از معاملات برنده داشته باشد. به عنوان مثال بیش از ۹۰ درصد معاملات سودده باشند. چنین سیستمی ممکن است برای افراد تازهکار جذاب به نظر برسد اما در اکثر موارد این سیستمها کارایی ندارند چرا که ضررها چندین برابر هر معامله برندهای است که سیستم تولید میکنند.
حذف احساسات منفی از معاملات
سیستمی که بک تست گیری شده است، برخی از احساسات انسانی را از معاملات حذف میکند. بسیاری از معاملهگران با این تصور که سیستم انها در گذشته به خوبی کار کرده است، آرامش میگیرند. این امر به ویژه زمانی که قیمت بر علیه شما حرکت میکند بسیار مفید است. در این موارد شما با این فرض که سیستم شما کار خواهد کرد از بستن زود هنگام معامله خودداری میکنید و اجازه میدهد سیستم به کار خود ادامه دهد.
یکی از معیارهای مهمی که در بک تست گیری به شما کمک میکند، فاکتور بیشترین افت سرمایه (Drawdown) است. هنگام بکتست گیری از استراتژی معاملاتی خود باید به این فاکتور توجه کنید چرا که این فاکتور بیشترین کاهش در سرمایه شما را محاسبه میکند. بیشترین افت سرمایه به شما نشان می دهد در صورت نامطلوب بودن شرایط، انتظار چه میزان از افت سرمایه را باید داشته باشید. البته باید به یاد داشته باشید که در اکثر مواقع بدترین سناریو همچنان در پیش روی شما است و نه پشت سر شما و همچنان ممکن است سناریویی بدتر از آنچه در بکتست گیری مشاهده کردید، تجربه کنید.
اگر سیستم خود را با ۱۰ هزار دلار سرمایه در یک دوره ۱۰ ساله بک تست گیری کردید و بیشترین سقوط شما ۱۵۰۰ دلار (معادل ۱۵ درصد) بوده، پس انتظار ندارید که بعدا هم بیش از ۱۵-۲۰ درصد از سرمایه خود را از دست بدهید. اگر سیستم خود را در شرایط مختلف بازار امتحان کنید، این تحلیل به شما کمک خواهد کرد بفهمید تا چه میزان لازم است معامله خود را رصد کنید مخصوصا در مواقعی که بازار مطابق انتظار شما رفتار نمیکند. همچنین اگر مشاهده کردید که بیشنیه افت سرمایه (drawdown) شما بیشتر از بیشینه افت قبلی (مثلا ۲ برابر) است، باید مجددا تاریخچه بکتست گیری خود را بررسی کنید و پارامترهای خود را دوباره تنظیم کنید.
اگرچه استفاده از سیستم معاملاتی بکتست شده ، احساسات منفی را به حداقل میرساند، اما این احساسات همچنان ممکن است در روند تصمیمگیری شما نقش داشته باشند. برای تعیین کارایی سیستم باید به آن زمان بدهید. با توجه به نتایج سیستم معاملاتیتان باید از قبل مشخص کنید چه انتظاری از سیستم خود دارید و اگر سیستم در معاملات واقعی طبق بک تست شما عمل نکرد، چه کاری باید انجام دهید.
همچنین شما باید زمانی را برای آزمایش استراتژی خود در یک حساب آزمایشی (دمو) اختصاص دهید. این کار را برای چند هفته یا چند ماه انجام داده تا اطمینان حاصل کنید که سیستم در زمان واقعی نیز همان بازدهی را که در بکتستگیری داشته، ایجاد خواهد کرد.
اگر سیستم خودتان را توسعه داده و از آن بکتست میگیرید، ممکن است نسبت به آن متعصب شوید و حتی در صورتی که به خوبی عمل نکند، نتوانید از آن دست بردارید. در این صورت یادتان باشد که هدف مهمتر از وسیله است. استراتژی شما تنها یک وسیله برای رسیدن به هدف یعنی سودآوری است پس حتی اگر زمان زیادی برای توسعه یک استراتژی صرف کردید، از دست کشیدن از آن ناراحت نشوید.
سخن پایانی
بکتست گیری یکی از راههای بسیار عالی برای تعیین این است که آیا استراتژی معاملاتی شما توانایی سودآوری در آینده را دارد یا خیر. بخاطر داشته باشید که صرفا نتایج مثبت سیستم در گذشته، لزوما به معنای عملکرد مثبت آن در آینده نیست. اما میتواند اطمینان بیشتری در مورد عملکرد استراتژیها ایجاد کند. این بهترین نکتهای است که یک معاملهگر میتواند در انجام معاملاتش به آن امیدوار باشد. هیچ معاملهگری دنبال قطعیت کامل در معاملات نیست بلکه همواره بر اساس احتمالات معامله میکند.
مطمئن شوید که دادههایی که برای بکتست گیری از آنها استفاده میکنید معتبر بوده و دارای کف و سقفهای اشتباه نیستند. اگر در حال معامله با سیستمی هستید که بر روی دادههای میانروزی اجرا میشود، بیشتر مراقب باشید. افت سرمایه را در نظر داشته باشید تا بدانید باید منتظر چه میزان از ضرر باشید. همچنین پیش از به خطر انداختن سرمایه واقعی، ابتدا استراتژی خود را با حساب دمو آزمایش کنید.
هنوز مطلب رو نخوندم ولی با توجه به سابقه ای که دارین میدونم مطلب مفید و خوبیه.
عالی بود. ممنون از زحمات شما.
لطفا از این دست مطالب آموزشی بیشتر پست کنید، خیلی عالی هستن.