ایجاد یک ربات معامله‌گر ساده: تست، عیب یابی و بهینه سازی (قسمت ششم)

اکنون که شما یک سیستم معاملاتی را طراحی و برنامه نویسی کرده اید، وقت آن است که برنامه را تست کنید تا مطمئن شوید که برنامه شما عاری از خطاهای فنی و منطقی است.

همچنین در ادامه، نگاهی می اندازیم به موضوعی به نام بهینه‌سازی!  قابلیتی که در بعضی از برنامه‌های معاملاتی وجود دارد و به شما این امکان را می‌دهد، قوانین معاملاتی­تان را برای انطباق بهتر با سهامی که به دنبال معامله آن هستید، تعدیل و تنظیم کنید.

 

تست کردن سیستم معاملاتی

اکثر برنامه‌های معاملاتی که زبان برنامه‌نویسی را پشتیبانی می‌کنند، ابزارهای تست کردن را نیز پشتیبانی می‌کنند. این ابزارها به دو دسته تقسیم می‌شوند:

  1. فنی

ابزارهای تست فنی، به دنبال خطاهای فنی در برنامه شما می‌گردند. برای مثال اگر شما فراموش کنید که بعد از یک دستور “;” اضافه کنید، ابزار تست فنی به شما اطلاع می‌دهد که دستور شما نامعتبر است.

دسترسی به ابزار تست فنی، بستگی به نرم‌افزار معاملاتی مورد استفاده شما دارد. در متاتریدر، زمانی که شما می‌خواهید برنامه خود را کامپایل کنید، یک خطا یا نتایج نادرست را نشان می‌دهد. در حالی که نرم‌افزارهای معاملاتی مانند Tradecision یک برنامه “code check” درون رابط کاربری خود دارد که قبل از آنکه کدی را اجرا کنید می‌توانید خطاهای برنامه را چک کنید.

  1. منطقی

ابزارهای تست منطقی، به دنبال خطای منطقی‌ در برنامه شما می‌گردند. برای مثال اگر شما تصادفا به جای استفاده از علامت “>” از علامت “<” استفاده کردید (که یک خطای فنی نیست)، ابزار تست منطقی به شما نشان می‌دهد که نتایج شما منطقی و معنادار نیست.

محبوب‌ترین ابزار تست منطقی، ابزار بک تست (backtest) می باشد. با این ابزار، شما می توانید داده‌های گذشته را گرفته و سیستم معاملاتی خودتان را بر روی آن‌ها اجرا کنید. این کار به شما در مورد سیستم، ایده هایی می دهد، مانند موارد زیر:

  • آیا سیستم معاملاتی شما یک سیستم معاملاتی سودآور است؟
  • کدام شروط، بیشترین سودآوری را دارند؟
  • در کدام قوانین ممکن است خطاهایی وجود داشته باشد؟

 

عیب‌یابی سیستم معاملاتی

مانند دیگر انواع برنامه‌نویسی، عیب‌یابی می‌تواند کار خسته‌کننده و سختی باشد. برای پیدا کردن خطاها در برنامه‌تان، نیاز است به طور نظام‌مند درون برنامه­تان به دنبال خطاهای املایی (syntax errors) بگردید که معمولا هرچند جزیی، سیستم شما را می توانند متوقف کنند.

در اینجا بعضی از خطاهای متداولی را آورده‌ایم که باید به دنبالشان باشیم:

  • فراموش شدن “;” بعد از دستورات: باید بعد از هر دستور “;” باشد.
  • متغیرهای تعریف‌نشده: به یاد داشته باشید که باید متغیرها را قبل از استفاده، اعلان کنید.
  • خطاهای املایی: اگر اسامی و یا توابع به طور نادرست نوشته شوند، برنامه معاملاتی یک خطا را بازمی‌گرداند (مثال زیر را ببینید. )
  • استفاده نادرست از علامت “=” : به یاد داشته باشید علامت “=” یک مقدار را تخصیص می دهد در حالی که “==” به معنای تساوی است.
  • استفاده نادرست از توابع داخلی برنامه: از مستندات برنامه معاملاتی خودتان و یا رابط برنامه نویسی نرم افزار (API) کمک بگیرید تا مطمئن شوید که از املای درستی در حال استفاده هستید.

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

اگر نگاهی به متاتریدر بیندازیم، می‌توانیم ببینیم، زمانی که قصد کامپایل برنامه را داریم، خطاها ظاهر می‌شوند:

در اینجا می بینیم که در توضیحات آمده، متغیر “BuyNow” تعریف نشده است. با دابل کلیک بر روی پیام، به محل این خطا در برنامه می رویم.

همان طور که مشاهده می‌کنید، اکثر برنامه‌های معاملاتی، روش ساده‌ای را برای پیدا کردن خطاهای فنی و اصلاح آنها در اختیار شما قرار می‌دهند. برای اصلاح خطاها کافی است به طور منظم هر پیام خطا را بررسی کرده و اصلاحات مورد نیاز را در برنامه اعمال کنید و سپس برنامه را دوباره کامپایل کنید و یا اینکه (در صورت اطمینان از درست بودن برنامه) سیستم معاملاتی را در نمودارهای خود اعمال کنید.

 

بهینه سازی سیستم معاملاتی

در بعضی از نرم‌افزارهای معاملاتی می توانید متغیرها را برای بهینه سازی انتخاب کنید. برای مثال، در  Tradecision  شما می‌توانید به راحتی یک متغیر را انتخاب کنید و با کدی که قصد بهینه سازی دارد، جایگزین کنید. بهینه سازی، فرایندی است که به دنبال مقدار بهینه یک المان مشخص در سیستم معاملاتی، براساس نتایج عملکرد گذشته آن است. توجه داشته باشید که بهینه‌سازی بیش‌ازحد، منجر به سیستم‌های معاملاتی می‌شوند که توانایی سازگاری با شرایط بازار را  ندارند. در نتیجه ضروری است که تنها بعضی از متغیرهای مهم، بهینه‌سازی شوند و نه همه متغیرها !

در شکل زیر قابلیت بهینه سازی را در نرم افزار Tradicision مشاهده می کنید:

می توانید مشاهده کنید که ما دو متغیر جدید اعلان کرده ایم و آن ها را برابر با “#” قرار داده ایم. “#” به این معناست که برنامه معاملاتی این را با یک مقدار بهینه جایگزین می کند. در ادامه، می بینید که ما از این دو متغیر جدید در استراتزی معاملاتی استفاده کردیم. در نهایت، بازه ای را برای اعداد قرار دادیم (تا برنامه تا بی نهایت را جستجو نکند).

در بعضی دیگر برنامه‌های معاملاتی، قابلیتی مشابه با این وجود دارد، که شما می‌توانید مقدار عددی را با یک “#” جایگزین کنید و به برنامه معاملاتی بگویید که آن را بهینه کند.

 

جمع بندی

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

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *