Select Page

راستی آزمایی استراتژی به روش Back Testing

 


1- Back Testing چیست؟

روش Back Testing، راستی آزمایی استراتژی معاملاتی فارکس از طریق دیتاهای گذشته بازار است. از لحاظ تئوری، اگر تاثیر یک سیستم معاملاتی یا یک استراتژی، در گذشته و در سوابق قیمت یک جفت ارز، مفید باشد، در آینده نیز نتایج مشابهی به دنبال خواهد داشت. البته شرایط بازار همواره در حال تغییر است، و این امر، یک محدودیت ذاتی برای کاربرد این روش می باشد ولی در حال حاضر، فقط به این فکر کنید که این روش میتواند برای شما سطحی منطقی از اطمینان فراهم سازد که یک استراتژی معاملاتی فارکس در آینده سودآور خواهد بود یا خیر.

برای مثال، فرض کنید می خواهید استراتژی معامله از طریق نوسانگر RSI را تست کنید. این استراتژی احتمالا” به شکل زیر خواهد بود:

  1. هر گاه خط RSI از محدوده های اشباع خرید یا اشباع فروش خارج گردید، وارد پوزیشن مرتبط گردید.
  2. حد ضرر را در نزدیکترین high یا low قیمت قرار دهید.
  3. با در نظر گرفتن نسبت ریسک به سود (risk/reward) 1:2 حد take profit را در تنظیم کنید.
  4. در انتخاب حجم معامله، حداکثر ۳ درصد سپرده خود را تحت ریسک قرار دهید.

در مثال زیر دو سیگنال این استراتژی را مشاهده می کنید:

به هدف بررسی موفقیت این استراتژی باید در حد ممکن، استراتژی آن را بر روی سوابق قیمت مورد استفاده قرار دهید. در این بررسی آغاز دوره Back Testing را سال ۲۰۰۱  در نظر می گیریم. در نظر گرفتن چنین دوره ی بلند مدتی به شما کمک خواهد کرد استراتژی را در شرایط مختلف بازار راستی آزمایی نمایید، اگر این روند تنها در یک شرایط خاص بازار و در دوره ای کوتاه صورت پذیرد، نتایج مناسب و قابل اعتمادی به دست نخواهد آمد. برای مثال اگر بررسی شما در یک بازار روند صورت پذیرد، شاید نتایج خوبی بدست آورید، در صورتی که ممکن است استراتژی شما در بازارهای رنج نتایج مناسبی نداشته باشد.

۲- استفاده از Back Testing چگونه به شما کمک می کند؟

در بخش قبلی گفتیم، روش Back Testing می تواند پتانسیل سود آوری بلند مدت استراتژی های معاملاتی فارکس را نشان دهد. البته این روش مزایای دیگری نیز خواهد داشت که ممکن است از آنها بی اطلاع باشید.

  • تمرین

یک معامله گر حرفه ای فارکس به مانند یک بازیکن حرفه ای بسکتبال، همواره نیازمند تمرین کردن اصول پایه ای و ساده حرفه خود می باشد. در معامله فارکس این به معنای تمرین شکار فرصتها می باشد، روش Back Testing
می تواند شرایط این تمرین را در اختیار معامله گر قرار دهد. شاید فکر کنید، به این امر نیاز ندارید، ولی مطمئن باشید اگر مهارت های خود را ارتقاء ندهید ممکن است به سادگی وارد پوزیشنی گردید که با استراتژی شما همخوانی ندارد. به خصوص زمانی که از استراتژی های مختلف استفاده کرده یا  در بازارهای مختلف فعالیت می کنید.

  • اطمینان

همواره با تمرین اطمینان به دست می آید، اطمینان به دست آمده از طریق تمرین، یکی از بهترین دستاوردهای Back Testing است. هنگامی که متوجه می شوید چه زمانی سیستم شما برنده خواهد شد، به راحتی خواهید توانست در مواقع حساس، به سرعت و بدون شک وارد معامله شده و در صورت وقوع مقداری ضرر به خود سخت نگیرید، زیرا قبلا” دریافته اید که این وقایع، جزئی از استراتژی معاملاتی شما می باشند. اطمینان در تصمیم گیری می تواند به شما کمک کند در شرایطی که بازار رفتار مناسبی ندارد، بدون تشکیک و با حداقل سود و یا با ضرری قابل تحمل از بازار خارج شوید.


۳- اصطلاح (Curve Fitting) چیست؟

قبل از اینکه پیشتر برویم، نیاز است با اصطلاح مهم Curve Fitting آشنا شویم. این اصطلاح به شرایطی گفته می شود که شما فرآیند Back Testing  را در یک دوره کوتاهی از سوابق قیمت انجام داده و از این شرایط نتیجه بسیار خوبی در مورد استراتژی مربوطه به دست می آورید. این استراتژی بر روی کاغذ بسیار سودمند خواهد بود ولی در عمل می تواند باعث ضرری جبران ناپذیر برای شما گردد.

مثال:

برای روشن شدن موضوع، نگاهی به سوابق قیمت EUR/USD در تایم فریم ماهیانه می اندازیم. اگر تنها با نتیجه Back Testing در دوره سبز رنگ استراتژی انتخابی خود را بیازمائید، احتمالا” به این نتیجه خواهید رسید که دنبال کردن این استراتژی فوق العاده خواهد بود. ولی اگر این بررسی را در بخش آبی رنگ نیز ادامه دهید احتمالا” تا حد زیادی از اطمینان شما به این استراتژی کاسته خواهد شد.

  • شما همواره نیازمند یک سیستم معاملاتی قوی و کارآمد هستید

این بدان معنی است که استراتژی شما باید در تمامی شرایط بازار جوابگو باشد ولی به این معنی نخواهد بود که شما در کلیه شرایط بازار سود به به دست می آورید. برای مثال بعضی از استراتژی های معاملاتی مناسب در بازار روند، ممکن است در بازارهای رنج باعث وقوع تعداد زیادی ضرر گردند، ولی به احتمال زیاد این ضررها در مواقع سوار شدن بر روندهای قوی قیمت، جبران خواهند شد.

شاید بپرسید با این شرایط چرا نباید فقط در بازارهای روند معامله کنیم؟ پاسخ این است که هیچ کس دقیقا نمی داند روند آینده بازار چگونه خواهد بود، از این رو استراتژی شما در هر دوبازار روند و رنج باید قابل استفاده باشد. استراتژی شما باید در موقع مناسب به شما سرنخ های سود آوری را اریه دهد و اگر نتیجه با پیش بینی هم خوانی نداشت نیز باید بتوانید با ضرری قابل قبول از معامله خارج شوید. پدیده curve fitting می تواند به شما در خصوص نتایج استفاده از استراتژی اطمینان کاذب داده و باعث شود استراتژی خود را بهتر از آنچه هست در نظر بگیرید. به همین دلیل است که انجام Forward Testing نیز در راستی آزمایی استراتژی مهم می گردد.

۴- تفاوت بین راستی آزمایی دستی و اتوماتیک چیست؟

بعضی از معامله گران فارکس فکر می کنند تنها راه انجام Back Testing ، انجام برنامه نویسی و ایجاد یک سیستم اتوماتیک مانند Expert Adviser می باشد، در صورتی که این باور غلط است. هر معامله گری می تواند
 Back Testing را انجام دهد زیرا این بررسی به دو روش دستی و اتوماتیک قابل اجرا می باشد.

  • انجام Back Testing به روش اتوماتیک

این روش به این معناست که شما باید سیستمی داشته باشید که بر اساس استراتژی شما در سوابق قیمت، پوزیشنهای معاملاتی را باز کرده و ببندد. به این منظور ابزارهایی موجود می باشد که شما می توانید خریداری و استفاده نموده و یا خود اقدام به ساخت چنین ابزاری نمایید، این سیستمها قابلیت این را داشته که پس از Back Testing استفاده از آن را ادامه دهید و وارد حساب دمو یا واقعی گردید و به طور کامل معاملات واقعی خود را اتوماتیک کنید.

مزایا:

  1. با این روش می توانید در خواب هم فرآیند معامله را انجام داده و در وقت صرفه جویی کنید.
  2. آیتم احساسات را از معالات خود حذف کنید.
  3. در زمان تست استراتژی سرمایه شما در خطر نباشد.
  4. می توان با کپی برداری از سرویس های معاملاتی سود بیشتری به دست آورد.
  5. قبل از راه اندازی یک سیستم اتوماتیک نیاز است به موارد زیر آگاه باشید
  6. یک اشتباه در کد نویسی (چنانچه قرار است خودتان کد نویسی کنید) می تواند باعث از دست رفتن تمامی سرمایه شما گردد، از این رو نیاز است سیستم خود را با دقت و به دفعات چک کنید.
  7. باید به تمامی پارامتر های سیستم خود آگاه بوده تا بدانید چه موقع از کار می افتد.
  8. با وجود این که این سیستم اتوماتیک است، باز هم نیاز است بر اساس ضوابط مشخصی کنترل گردد.
  9. هیچ تضمینی وجود ندارد که سیستم شما با حساب واقعی نیز کار کند از این رو بهتر است ابتدا آن را در یک حساب دمو بررسی کنید.
  10. استراتژی شما باید با شخصیت و ریسک پذیری شما همخوانی داشته باشد، استراتژی شما ممکن است در بلند مدت عالی باشد ولی برای مثال، اگر شما تحمل پذیرش ۳۰% ضرر را نداشته باشید، احتمالا” قبل از وقوع فرصتهای مناسب سود دهی، اجرای اتوماتیک را کنسل خواهید کرد.
  11. باید با زمان بر بودن و سختی برنامه نویسی آشنایی داشته یا یک برنامه نویس مناسب استخدام کنید و یا بک نرم افزار مناسب این کار را دانلود کنید.
  12. تمامی سیستمها و استراتژی های معاملاتی قابلیت اتوماتیک شدن با برنامه نویسی را نخواهند داشت.
  13. پدیده Curve Fitting ممکن است در تست، شما را گمراه کرده و باعث از دست دادن سرمایه در حسابهای واقعی گردد.
  • انجام Back Testing به روش دستی

 

در این بخش مروری بر انجام Back Testing به روش دستی خواهیم نمود.

مزایا:

  1. با توجه به اینکه شما معاملات را به طور دستی انجام خواهید داد و از سیگنالها استفاده می کنید، به راحتی احساس خواهید نمود که استراتژی شما چگونه کار می کند. این امر می تواند به شما در بهبود سیستم و حتی طراحی سیستمی اتوماتیک در آینده نیز کمک کند.
  2. اجرای Back Testing به شکل دستی برای هر معامله گری ممکن می باشد.
  3. در این روش شما معاملاتی واقعی را شبیه سازی می کنید، شرایط ورود و خروج معامله، محاسبات ریسک و … همگی در این روش دخیل می باشند.
  4. برای انجام این بررسی نیاز به در خطر قرار دادن سرمایه خود نخواهید داشت.

قبل از راه اندازی یک سیستم دستی نیاز است به موارد زیر آگاه باشید

  1. این روش وقت گیر می باشد.
  2. هیچ تضمینی وجود ندارد که سیستم شما با حساب واقعی نیز کار کند از این رو بهتر است ابتدا آن را در یک حساب دمو بررسی کنید.
  3. استراتژی شما باید با شخصیت و ریسک پذیری شما هم خوانی داشته باشد، استراتژی شما ممکن است در بلند مدت عالی باشد ولی برای مثال، اگر شما تحمل پذیرش ۳۰% ضرر را نداشته باشید، احتمالا” قبل از وقوع فرصتهای مناسب سود دهی، از ادامه آن صرف نظر خواهید کرد.
  4. برای اجرای چنین سیستمی نیاز است برای خود ضوابطی مشخص تعریف نماید، زیرا اگر قرار باشد در هنگام معاملات اصول استراتژی خود را تغییر دهید، به احتمال زیاد نتایج خوبی به دست نخواهید آورد.

شاید برای شما تصمیم گیری از میان دو روش ذکر شده Back Testing ساده نباشد، پیشنهاد میکنیم روشی که انتخاب کردید را ادامه دهید تا در اجرای آن حرفه ای گردید. همیشه امکان تغییر روش وجود دارد، ولی استفاده همزمان از دو روش پیشنهاد نمی گردد.

 

۵- چگونه به طریق رایگان استراتژی معاملاتی فارکس را Back Testing کنیم؟

عصر ما، عصری طلایی است، تکنولوژی روز به روز در حال پیشرفت و ارزان تر شدن است، بنابراین اگر از بودجه محدودی برخوردارید، خبر خوبی برای شما داریم. شما می توانید به رایگان Back Testing را آغاز نمایید. در ادامه به پاره ای از این روشهای رایگان اشاره می کنیم:

  • روش دستی:

برای انجام Back Testing  توسط معامله گرانی که به شکل دستی کار می کنند یکی از انتخابهای مناسب، استفاده از سایت www.tradingview.com می باشد. در این سایت بدون نیاز به هیچ گونه تنظیماتی می توانید شروع به کار کنید. البته این فرآیند را با نرم افزار Metatrader نیز می توانید انجام دهید، هرچند کار با آن کمی پیچیده تر می باشد. در ادامه خلاصه ای از انجام Back Testing توسط نرم افزار Metatrader را شرح می دهیم:

۱- قبل از هر چیز در نرم افزار اکسل برای خود یک صفحه مخصوص این کار ایجاد کرده و حتما” نتایج BackTesting خود را ثبت نمایید تا در آینده بتوانید در تحلیل نتایج، از آن استفاده کنید. نمونه ای از این صفحه اکسل، می تواند به شکل زیر باشد:

 

2- با استفاده از یک محاسبه گر سایز پوزیشن ، حجم معامله خود را با در نظر گرفتن ریسک مورد انتظار، محاسبه کنید.

۳- جفت ارز مورد نظر خود را انتخاب کنید.

 

 

4- تایم فریم مورد نظر خود را انتخاب کنید.

 

5- در صورت نیاز ابزارهایی مانند اندیکاتور و نوسانگر مورد نیاز خود را به چارت اضافه کنید.

 

6- در نوار ابزار بالای صفحه Metatrader بر روی گزینه زیر کلیک کنید:

 

این حرکت باعث می گردد چارت از حالت زنده و فعال خارج گشته و در تاریخ مورد نظر شما ثابت بماند.

۷- توسط نگاه داشتن کلیک چپ موس بر روی چارت و حرکت موس به تاریخ هدف در گذشته بروید.

۸- نشانگر موس را به حالت crosshair تغییر دهید.

 

در این حالت وقتی موس را بر روی یک کندل استیک نگاه دارید در نوار پایین چارت تاریخ کندل و در نوار سمت راست قیمت هر نقطه آن نمایش  داده می شود. به علاوه با نگاه داشتن موس روی هر کندل اطلاعات کلی قیمت آن نیز در پیامی نشان داده خواهد شد.

۹- حال با فشردن کلید F12 می توانید زمان را با تایم فریم انتخابی به جلو ببرید، برای مثال اگر در تایم فریم D1 هستید، با هر بار فشردن F12 نمودار شما یک کندل به جلو خواهد رفت. در صورتی که نیاز به بازگشت داشتید می تواند از ترکیب کلیدهای Shift و F12 استفاده نمایید.

۱۰- پس از بررسی چارت، در هر نقطه ای که از لحاظ استراتژی شما نقطه ورود می باشد، مکث کنید، باید کندل این نقطه همواره در آخرین بخش سمت راست چارت باشد، به این منظور که شما آینده قیمت را ندیده و در تصمیمات خود به اشتباه نیفتید و یا با استفاده از آینده قیمت، خود را فریب ندهید.

۱۱- بر روی چارت، در محل stop loss و take profit دو خط افقی قرار دهید.

۱۲- مشخصات این کندل را در فایل اکسل، به همراه حدود stop loss، take profit و هر آنچه نیاز دارید ثبت کنید.

۱۳- حال با فشردن کلید F12 فریم به فریم جلو بروید تا قیمت به خط stop loss یا take profit برخورد کند.
(می توانید جهت سهولت کار مبنای همه محاسبات خود را قیمت close کندل ها در نظر بگیرید).

۱۴- در این نقطه میزان سود یا ضرر خود را محاسبه کرده و در فایل اکسل وارد نمایید.

۱۵- این فرآیند را در حد ممکن تکرار کنید تا به یک صفحه اکسل حاوی دفعات زیادی معامله توسط استراتژی خود دست یابید.

  • روش اتوماتیک

اگر بخواهید با استفاده از Metatrader فرآیند Back Testing اتوماتیک را انجام دهید، به حجم بالایی از اطلاعات ورودی نیاز خواهید داشت. وباید توانایی کد نویسی در این نرم افزار را داشته باشید، البته بهتر است از کدهای آماده موجود در اینترنت استفاده کرده و تغییرات مورد نظر خود را در آنها اعمال کنید. انجام Back Testing به روش اتوماتیک نیازمند مهارت برنامه نویسی بوده و بهتر است قبل آغاز این فرآیند، مهارتهای مورد نظر را به دست آورده باشید.

 

چارت معامله

مجله

بازار

بروکر

تقویم

ابزار فارکس