در مقاله پیشین از سری مقالات مرتبط با برنامه نویسی در بازارهای مالی به شرح و بررسی «چرا اکسپرت» پرداختیم. در این مقاله به بررسی «بک تست و تست پیش رو ؛ اهمیت همبستگی» میپردازیم.
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف برای اعمال هر یک از این مفاهیم در استراتژیهای معاملاتی میتوانید از سفارش کد پایتون، سفارش کد mql و … برای کد کردن و بهینه یابی استراتژیهای خود استفاده کنید. و در عین حال سوای امکان سفارش اکسپرت میتوانید از سفارش اندیکاتور برای دریافت یک نمایش گرافیکی از محاسبات استراتژی خود بهره ببرید.
– – –
بک تست اشاره به استفاده از یک سیستم معاملاتی روی دادههای تاریخی برای بررسی عملکرد آن در طول مدت مشخص شده، دارد.
– – –
معاملهگرانی که علاقهمند به تجربه یک ایده معاملاتی در یک بازار زنده هستند، اغلب بهاشتباه بهطور کامل بر نتایج بک تست برای تعیین سودآوری سیستم اعتماد میکنند. درحالیکه بک تست گرفتن میتواند اطلاعات ارزشمندی به معامله گران ارائه دهد، این اغلب گمراه کننده است و این بخشی از فرایند ارزشیابی میباشد.
تست برون نمونه و تست عملکرد پیش رو تأیید بیشتری در مورد اثربخشی سیستم ارائه میدهد و میتواند رنگ واقعی سیستم را، قبل از کار با پول واقعی نشان دهد. همبستگی خوب بین نتایج بک تست، تست برون نمونه و تست عملکرد پیش رو برای تعیین پایداری سیستم معاملاتی حیاتی است. بهرهگیری از یک منبع معتبر برای آموزش بکتست و آموزش بهینه یابی میتواند بسیار به پروسهی بهینهیابی کمک کند. همچنین برنامه نویسی و سفارش کد بهینه یابی و نرم افزار بهینه یابی نیز میتواند ابزار مناسبی برای این مطلوب باشد.
مبانی بک تست گرفتن
بک تست اشاره به استفاده از یک سیستم معاملاتی روی دادههای تاریخی برای بررسی عملکرد آن در طول مدت مشخص شده، دارد. بسیاری از پلتفرمهای معاملاتی امروزی از بک تست گرفتن پشتیبانی میکنند. معامله گران میتوانند ایدههای خود را با چند کلیک ساده تست کنند و بینشی در خصوص کارآیی یک ایده بدون به خطر انداختن پول خود در یک حساب معاملاتی به دست آورند. بک تست گرفتن میتواند ایدههای ساده مانند چگونگی عملکرد تقاطع میانگین متحرک روی دادههای تاریخی یا سیستمهای پیچیدهتر با ورودیهای و نقاط ورود متنوع را ارزیابی نماید.
یک منبع معتبر برای آموزش بکتست میتواند بسیار به معاملهگر در روند بهینه یابی سیستم معاملاتیاش کمک کند. تا زمانی که یک ایده بتواند به اندازه کافی ارزیابی شود این میتواند بک تست شود. برخی از معاملهگران و سرمایهگذاران ممکن است به دنبال یک برنامهنویس خبره برای توسعه این ایده به شکل قابل تست باشند. به طور معمول این شامل یک برنامهنویس برای کدنویسی ایده را به زبان اختصاصی مورد استفاده توسط پلت فرم معاملاتی میباشد. برنامه نویس میتواند متغیرهای ورودی تعریف شده توسط کاربر را تعریف کند که به معامله گر اجازه میدهد تا “سیستم” را ارتقا دهد. کاربر میتواند از طریق سفارش کد mql، کد پایتون(python) و یا دیگر زبانهای برنامهنویسی به برنامهنویس استراتژی خود را کد کرده و آمادهی بهینهیابی نماید.
یک مثال از این میتواند در سیستم تقاطع میانگین متحرک ساده ذکر شده در بالا باشد: معامله گر قادر خواهد بود که طول دو میانگین متحرک استفاده شده در سیستم را وارد یا تغییر دهد. معاملهگر میتواند برای تعیین اینکه چه طولی از میانگین متحرک بهترین نتیجه را در دادههای تاریخی خواهد داشت بک تست انجام دهد.
مطالعات بهینه سازی
بسیاری از پلتفرمهای تجاری نیز اجازه مطالعات بهینه سازی را میدهند. این امر مستلزم وارد کردن یک محدوده برای ورودی مشخص و اجازه دادن به کامپیوتر برای “انجام عملیات ریاضی” جهت کشف کردن اینکه که کدام ورودی بهترین عملکرد را دارد میباشد. بهینه سازی چند متغیره میتواند عملیات ریاضی را برای دو یا چند متغیر اجرا نماید تا سطوحی از آنها با هم برای حصول بهترین نتیجه مشخص شود. به عنوان مثال، معاملهگران میتوانند به این برنامه بگویند کدام ورودیهایی را که آنها میخواهند در استراتژی خود اضافه کنند. سپس دادهها با توجه به دادههای تاریخی آزمایش شده، به وزن ایدهآل آنها بهینه میشوند.
بک تست میتواند هیجانانگیز باشد در حالی که یک سیستم غیرسودمند اغلب میتواند به طور جادویی با چند مرحله بهینهسازی به یک ماشین پول ساز تبدیل شود. متاسفانه بهینه سازی سیستم برای رسیدن به بالاترین میزان سودآوری تاریخی، اغلب منجر به سیستمی میشود که در معاملات واقعی ضعیف عمل میکند. بهینه سازی بیش از حد سیستمهایی را ایجاد میکند که تنها بر روی کاغذ خوب ظاهر میشوند.
برازش منحنی استفاده از تجزیه و تحلیل بهینه سازی برای ایجاد بیشترین تعداد معاملات برنده با بزرگترین سود بر روی دادههای تاریخی مورد استفاده در دوره آزمون میباشد. اگر چه این در نتایج بک تست گیری مؤثر به نظر میرسد، برازش منحنی به سیستمهای غیر قابل اعتماد منجر میشود، زیرا نتایج به طور خاص فقط برای دادههای خاص و دوره زمانی مشخص طراحی شده است.
بک تست گیری و بهینه سازی مزایای زیادی را به یک معامله گر ارائه میکند، اما این تنها بخشی از روند در ارزیابی سیستم معاملاتی بالقوه است. گام بعدی معامله گر این است که سیستم را روی دادههای تاریخی که در مرحله اولیه بک تست گیری استفاده نشده است، اعمال کند.
دادههای درون نمونه در مقابل برون نمونه
هنگام تست یک ایده در مورد دادههای تاریخی، ذخیره یک دوره زمانی از اطلاعات تاریخی برای آزمایش مفید است. دادههای تاریخی اولیه که ایده روی آنها تست و بهینه شده است، به عنوان دادههای درون نمونه در نظر گرفته میشود. مجموعه دادهای که معکوس شده است به عنوان دادههای برون نمونه شناخته میشود. این تنظیمات بخش مهمی از فرایند ارزیابی است زیرا راهی را برای تست ایده در دادههایی که جزء مدل بهینه سازی نیست، فراهم میکند. در نتیجه، این ایده به هیچ وجه تحت تأثیر دادههای برون داده تاثیری نخواهد بود و معامله گران قادر خواهند بود تا چگونگی عملکرد سیستم در دادههای جدید را تعیین کنند. یعنی در تجارت واقعی.
معامله گران میتوانند قبل از شروع هر گونه بک تست یا بهینه سازی، درصدی از دادههای تاریخی را که برای آزمایش برون نمونه ذخیره شدهاند، کنار بگذارند. یک روش این است تقسیم دادههای تاریخی به سه بخش و در نظر گرفتن یک سوم آن را برای استفاده در آزمایش برون نمونه میباشد. برای آزمایش اولیه و بهینه سازی فقط دادههای درون نمونه باید استفاده شوند. شکل ۱ یک خط زمانی را نشان میدهد که در آن یک سوم دادههای تاریخی برای آزمایش برون نمونه رزرو شده است و دو سوم برای آزمایش درون نمونه مورد استفاده قرار میگیرد. اگر چه شکل ۱ دادههای برون نمونه را در ابتدای تست نشان میدهد، روشهای معمولی، قسمت بخش برون نمونه را بلافاصله قبل از قسمت عملکرد پیش رو در نظر میگیرند.
هنگامی که یک سیستم معاملاتی با استفاده از دادههای درون نمونه توسعه یافته است، آماده استفاده روی دادههای برون نمونه میباشد. معامله گران میتوانند نتایج عملکرد درون نمونه و برون نمونه را ارزیابی و مقایسه کنند.
همبستگی به شباهت بین عملکرد و روند کلی دو مجموعه داده اشاره دارد. معیارهای همبستگی را میتوان در ارزیابی گزارشهای عملکرد استراتژی ایجاد شده در طول دوره آزمایشی استفاده نمود. (یکی ویژگی که اکثر پلتفرمهای تجاری ارائه میدهند). هرچه همبستگی بین دو طرف قویتر باشد، احتمال اینکه یک سیستم در آزمایشهای عملکرد پیش رو و معامله زنده بهتر عمل کند بیشتر است. شکل ۲ دو سیستم مختلف را نشان میدهد که در نمونههای درون نمونه مورد آزمایش قرار گرفته و بهینه شدهاند و سپس روی دادههای برون نمونه اعمال میشوند. نمودار در سمت چپ سیستمی را نشان میدهد که روی دادههای درون نمونه آزمایش و بهینه سازی شده است سپس روی دادههای برون نمونه استفاده شده است. نمودار سمت چپ سیستمی را نشان میدهد که بطور آشکار روی درون نمونه خوب عمل میکند ولی به طور کامل در دادههای برون نمونه شکست خورده است. نمودار سمت راست یک سیستم را نشان میدهد که در دادههای درون و برون نمونه به خوبی عمل مینماید.
اگر بین آزمونهای درون نمونه و برون نمونه، مثل نمودار چپ در شکل ۲، همبستگی کمی وجود دارد، احتمالاً سیستم بیش از حد بهینه شده و در معامله زنده خوب عمل نمیکند. اگر رابطهای قوی در عملکرد وجود داشته باشد، همانطور که در نمودار سمت راست شکل ۲ دیده میشود، مرحله بعدی ارزیابی شامل یک نوع تست اضافی از نمونه است که به عنوان تست عملکرد پیش رو شناخته میشود.
مبانی تست عملکرد پیش رو
تست عملکرد پیش رو، همچنین به عنوان تجارت کاغذ شناخته میشود، به معامله گران مجموعهای دیگر از دادههای برون نمونه برای ارزیابی یک سیستم ارائه میکند. تست عملکرد پیشرو یک شبیه سازی از معاملات واقعی است و شامل پیگیری منطق سیستم در یک بازار زنده است. این نیز به عنوان معامله کاغذ نامیده میشود چونکه تمام معاملات تنها بر روی کاغذ اجرا میشود؛ یعنی ورود و خروجهای معامله به همراه هر گونه سود یا زیان سیستم ثبت شده است، اما معاملات واقعی انجام نمیشود. یک جنبه مهم تست عملکرد پیشرو است که دقیقاً منطق سیستم را دنبال کند. در غیر اینصورت، ارزیابی این گام فرآیند، اگر نه غیر ممکن بلکه مشکل میشود. معامله گران باید در مورد هر یک از ورود و خروجهای تجاری صادق باشند. اگر معامله مطابق منطق سیستم اتفاق بیفتد، باید مستند و ارزیابی شود.
بسیاری از کارگزاران یک حساب معاملاتی شبیه سازی شده را ارائه میدهند که میتوان معاملات را انجام داد و سود و زیان مربوطه محاسبه نمود. با استفاده از یک حساب معاملاتی شبیه سازی میتواند فضای نیمه واقع گرایانه ای ایجاد نمود که در آن معامله عملی انجام و ارزیابی سیستم ایجاد میشود.
شکل ۲ نیز نتایج تست عملکرد پیش رو در دو سیستم را نشان میدهد. باز هم، سیستم نمایش داده شده در نمودار چپ، بر اساس آزمایش اولیه خوب عمل نمیکند. اما سیستم نمایش داده شده در نمودار راست، همچنان به خوبی در تمام مراحل، از جمله آزمایش عملکرد پیشرو ادامه مییابد. یک سیستم که نتایج مثبت با همبستگی خوب بین آزمون درون نمونه، برون نمونه و عملکرد پیش رو نشان میدهد اماده اجرا در بازار زنده میباشد.
مطلب آخر
بک تست گرفتن یک ابزار ارزشمند در اکثر پلتفرمهای تجاری است. تقسیم دادههای تاریخی به مجموعههای چندگانه برای ارائه آزمون درون نمونه و برون نمونه میتواند به معامله گران یک ابزار عملی و کارآمد برای ارزیابی یک ایده و سیستم معاملاتی ارائه نماید. از آنجایی که اکثر معامله گران روشهای بهینه سازی را در بک تست گرفتن به کار میگیرند، ارزیابی، سیستم بر روی دادههای پاک، برای تعیین پایداری آن، امری مهم میباشد. ادامه آزمایش برون نمونه با تست عملکرد پیش رو یک لایه ایمنی دیگر را قبل از قرار دادن سیستم در بازار پرریسک واقعی فراهم میکند. نتایج مثبت و همبستگی خوب بین بک تست درون نمونه و برون نمونه و آزمایش عملکرد پیش رو احتمال اینکه یک سیستم در معامله واقعی خوب عمل کند را افزایش میدهد.چنین قابلیتی در متاتریدر 5 تعریف شده است و می توان بر اساس مقاله بالا در متا تریدر 5 عمل نمود.
– – –
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف، میتوان استراتژیهای بر مبنای مباحث حجم یا هر یک از مباحث تحلیل تکنیکال را به وسیلهی سفارش کد پایتون یا سفارش کد mql و سفارش اکسپرت کد کرد و در پروسهی بک تست اعتبار سنجی نمود. همچنین میتوان از طریق سفارش اندیکاتور به آنها یک جنبهی نمایشی نمایانتری برای تسهیل تحلیل در سابقهی نماد داد.
– – –
در مقالهی بعدی به بررسی «مصاحبه با والری مازورنکف» میپردازیم.
با نشر مطالب سایت جهان بورس Jahanbourse با ذکر منبع،
ما زا در جهت فرهنگ سازی الگوریتم تریدینگ باری فرمایید.