تست استراتژی های معاملاتی تست استراتژی های معاملاتی بر روی کنه های واقعی سیستم معاملاتی در اکسل
برنج. 1. بهینه سازی فضای چند بعدی الگوریتم ها برای استراتژی های معاملاتی.
بهینه سازی استراتژی های معاملاتی
در فرآیند معاملات الگوریتمی، نیاز دائمی به تنظیم پارامترهای الگوریتم های استراتژی معاملاتی وجود دارد. ترکیبی از همه پارامترهای ممکنبه فضای چند بعدی بزرگ از گزینه های استراتژی تبدیل می شود. برای به دست آوردن سودآورترین و پایدارترین استراتژی ها، باید این فضا را بررسی کنید و پارامترهای بهینه را برای معامله انتخاب کنید.
اکثر بهترین راهمطالعه هر مجموعه، شمارش کامل تمام عناصر آن است. با این حال، با توجه به حجم عظیمی از دادههایی که فرد باید در طول بهینهسازی با آنها سر و کار داشته باشد، به عنوان یک قاعده، انجام چنین مطالعهای با جستجوی جامع غیرممکن است. ما باید الگوریتم های تحلیلی مختلفی را اعمال کنیم که به ما امکان می دهد میزان واقعی تحقیق را در فرآیند جستجوی افراط کاهش دهیم.
بسیاری از این الگوریتم ها به خوبی شناخته شده اند: روش مونت کارلو، روش نزول گرادیان، روش بازپخت شبیه سازی شده، الگوریتم های تکاملی و غیره. در این مورد، اصلاحات مختلفی در این الگوریتم های بهینه سازی وجود دارد. در تجارت الگوریتمی، به عنوان یک قاعده، پیاده سازی الگوریتم های ژنتیک و مونت کارلو وجود دارد. به هر طریقی، همه این الگوریتمها از «جادوی اعداد تصادفی» یا، از نظر علمی، بهینهسازی تصادفی غیرخطی استفاده میکنند.
یک مشکل کلاسیک با الگوریتمهای بهینهسازی تصادفی این است که آنها برای مقادیر کمی از تحقیقات واقعی و نمونههای کوچک نماینده نیستند. به عنوان مثال، مونت کارلو در یک فضای چند اکسترمال مؤثر نیست، مطالعه را بر روی افراط جهانی متمرکز می کند، و چشم انداز محلی، اما نه کمتر جالب را از دست می دهد. الگوریتم چنین وظایفی را برای خود تعیین نمی کند، فقط باید سودآورترین استراتژی را پیدا کند. الگوریتم ژنتیک همچنین میتواند شاخهای از جهشهای ناموفق را پشت سر بگذارد و در برخی از حدهای موضعی و غیره متوقف شود.
این به این دلیل است که این الگوریتمهای بهینهسازی فعال هستند مراحل اولیهشما باید روی مقدار محدودی از داده ها در فضایی که هنوز کشف نشده است تصمیم بگیرید و به راحتی می توانید از مطالعه خارج شوید. مناطق مهم. برای جلوگیری از این امر، باید نمونه های داده و زمان تحقیق را افزایش داد و در مورد ما، زمان به وزن طلا می ارزد. لازم است تا آنجا که ممکن است با صرف حداقل زمان، قسمت های اضافی فضا را با جزئیات بیشتر کاوش کنیم. در عین حال، در شرایط به سرعت در حال تغییر معاملات مبادلاتی، توجه نه تنها به پارامترهای سودآور، بلکه به پارامترهای پایدار استراتژی های معاملاتی نیز مهم است. پارامترهای پایدار به عنوان تشکیل خوشه هایی با نتایج مشابه درک می شوند. استراتژی های سودآوری که خارج از خوشه ها هستند ممکن است پایدار نباشند و منجر به زیان های جدی شوند. به نوبه خود، استراتژی از خوشه کمتر در معرض تغییرات در بازار است.
روش بهینه سازی خوشه تصادفی
با در نظر گرفتن ویژگیهای بهینهسازی استراتژیهای مبادله، یک الگوریتم ترکیبی توسعه داده شد (نگاه کنید به) که مشخص شد یک الگوریتم دلپذیر دارد. اثر جانبی- او با موفقیت خوشه ها را شناسایی و کاوش کرد. من نام الگوریتم حاصل را گذاشتم - "روش بهینه سازی خوشه تصادفی".
بنابراین، فرآیند تحقیق، الگوریتم در دو مرحله انجام می شود:
- بررسی فضای استراتژی ها با حذف مناطق زیان آور و پرخطر
- مطالعه دقیق منتهیات و خوشه های فضا
برای رهایی از عدم قطعیت در صورت کمبود داده در مراحل اولیه مطالعه، الگوریتم وظیفه یافتن استراتژیهای سودآور را تعیین نمیکند، بلکه برعکس، به دنبال بیسودترینها میگردد و آنها را از فضا حذف میکند. همراه با مناطقی که با پتانسیل هم مرز هستند خطرات بالاتلفات.
کار به ترتیب زیر انجام می شود:
- یک فضای چند بعدی از تمام پارامترهای ممکن استراتژی معاملاتی شکل می گیرد.
- استراتژی ها به طور تصادفی از فضا انتخاب شده و بر روی داده های تاریخی با پارامترهای مشخص شده آزمایش می شوند.
- بر اساس نتایج آزمایش، ریز منطقههای مرزی حول استراتژیهای بیسود حذف میشوند. این امر فضای تحقیق را کاهش می دهد و در تکرارهای بعدی بر مناطق سودآورتر و پایدارتر تمرکز می کند.
- تکرارهای آزمایش تا زمانی که فضای استراتژی به میزان لازم کشف شود انجام می شود.
برنج. 2. مرحله اول الگوریتم «بهینه سازی خوشه تصادفی» مطالعه فضای استراتژی است.
مرحله 2. مطالعه دقیق خوشه ها و افراط.
بعد از مرحله اول مطالعه، انواع اکسترم ها خوب می شوند. با این حال، به دلیل ویژگیهای الگوریتم (بسیاری از ریزمنطقهها قطع شدهاند)، فضا به نظر میرسد که "خارجدار" است و برخی از موارد افراطی را نمیتوان با جزئیات زیاد مطالعه کرد. برای کاوش کامل همه خوشههای جالب، الگوریتم بهینهسازی فرآیند کاوش را دقیقاً برعکس شروع میکند. برای انجام این کار، تمام بهترین استراتژی ها انتخاب شده و میکرو دامنه ها نیز در اطراف آنها تخصیص داده می شوند. اگر راهبردهای ناشناخته ای در این مناطق یافت شوند، به علاوه مورد آزمایش قرار می گیرند (شکل 3 را ببینید).
برنج. 3. مرحله دوم الگوریتم "بهینه سازی خوشه تصادفی" مطالعه دقیق افراط است.
در نتیجه، پس از اجرای الگوریتم، تمام مناطقی از فضا که برای ما جالب هستند بررسی میشوند و خوشههایی با استراتژیهای سودآور با جزئیات آزمایش میشوند. در همان زمان، حجم واقعی تحقیق، به عنوان یک قاعده، بیش از 25-50٪ از حجم کل فضای گزینه های استراتژی نیست (شکل 4 را ببینید).
بهینه سازی رو به جلو
به نظر می رسد که پارامترها بهینه شده اند و می توانید تجارت را شروع کنید. با این حال، این پایان فرآیند تحقیق نیست. فرآیند بهینهسازی در معرض خطر «تطبیق» یا بهینهسازی مجدد پارامترها با دادههای تاریخی مورد استفاده در فرآیند است، بنابراین باید نتایج بهدستآمده را نیز بررسی کنید. برای این کار از روش استفاده می شود راه رفتن به جلو. ماهیت روش در این واقعیت نهفته است که پارامترهای استراتژی ها بر روی داده های تاریخی متفاوت از موارد مورد استفاده در فرآیند بهینه سازی آزمایش می شوند.
برای انجام این کار، کل محدوده داده های تاریخی به نمونه هایی متشکل از مجموعه های زیر تقسیم می شود:
- IS ("در نمونه")- نمونه مورد استفاده برای بهینه سازی
- OOS ("خارج از نمونه")- نمونه مورد استفاده برای آزمایش نتایج بهینه سازی
برنج. 5. طرح راه رفتن به جلو بهینه سازی.
برای کاهش حجم تحقیق در مراحل بررسی نتایج، می توان بلافاصله پس از بهینه سازی، استراتژی هایی با عملکرد ضعیف را فیلتر کرد و در نتیجه کل زمان تست را کاهش داد. در نتیجه چنین بررسی، پارامترهای عینی استراتژی های معاملاتی را به دست خواهیم آورد که از بهینه سازی بیش از حد محافظت می شوند (شکل 6 و شکل 7 را ببینید).
برنج. شکل 6. نتایج بهینه سازی در داده های "در نمونه".
برنج. 7. بررسی نتایج بهینه سازی در داده های "خارج از نمونه".
تجزیه و تحلیل نتایج
به عنوان یک قاعده، پس از بررسی با روش Walk Forward، بیشتر استراتژیهای معاملاتی دیگر به اندازه پس از بهینهسازی جذاب به نظر نمیرسند. در حالت ایدهآل، استراتژیها باید شاخصهای آماری خود را تأیید کنند، در حالی که افراطها و خوشهها باید شکل و موقعیت خود را در فضا حفظ کنند.
برای تجزیه و تحلیل راحت نتایج، فضای چند بعدی استراتژی ها را برای هر پارامتر در قالب نقشه حرارتی تجسم کردم (شکل 2 را ببینید). برنج. 8). نقشه به صورت بصری شکل و اندازه خوشه ها، موقعیت افراط ها را ارزیابی می کند، تأثیر پارامترها را بر اثربخشی استراتژی بررسی می کند، تغییرات را پس از بررسی مجدد برای بهینه سازی و غیره ارزیابی می کند.
برنج. 8. نمونه ای از یک بخش از فضا با پارامترهای بهینه شده و تابع هدف.
برای ارزیابی جامع نتایج بهینه سازی Walk Forward، یک ماتریس با تمام مراحل و پارامترهایی که از فیلتر عبور کرده اند ساخته می شود. به رنگ سبزمراحلی که در آن پارامترها عملکرد خود را تایید کرده اند، به ترتیب برجسته و در صورتی که تایید نشده باشند قرمز می شوند. پارامترهایی که در تعداد زیادی از مراحل به خوبی عمل می کنند را می توان برای معاملات مناسب تر در نظر گرفت (شکل 9 را ببینید).
برنج. 9. Matrix Walk Forward با تمام نتایج بررسی داده های OOS.
در صورت لزوم، نتایج را می توان برای مطالعه دقیق تر به سیستم های تجزیه و تحلیل شخص ثالث صادر کرد. به عنوان مثال، در R، Excel یا Mathlab (به شکل 10 مراجعه کنید).
برنج. 10. صادرات نتایج بهینه سازی به اکسل.
برای اینکه در نهایت اطمینان حاصل شود که پارامترهای انتخاب شده صحیح هستند، آزمایش های دقیق استراتژی ها انجام می شود، صافی منحنی بازده ارزیابی می شود، سفارشات روی نمودار نمایش داده می شوند و گزارش معاملات مورد مطالعه قرار می گیرد (شکل 11 را ببینید).
برنج. 11. تجزیه و تحلیل دقیق پارامترهای استراتژی معاملاتی.
نتیجه
پس از بهینه سازی و همه بررسی ها، استراتژی هایی خواهیم داشت که به طور بالقوه برای معاملات واقعی در بورس مناسب هستند.
در نهایت، ما همه چیز را دوبار بررسی کردیم، شاید از قبل امکان شروع معامله وجود داشته باشد؟ در واقع، ما فقط در نیمه راه هستیم، هنوز برای فرستادن الگوریتم های معاملاتی به نبرد خیلی زود است. بعدی که می آید:
- تست استراتژیها روی دادههای "زنده" از Exchange برای تأیید شاخصهای بهدستآمده در طول آزمایش.
- یک سبد از استراتژی های معاملاتی برای تنوع بخشیدن به ریسک ها تشکیل دهید. ضمناً باید بهینه شود.
- در فرآیند معاملات واقعی، به صورت دوره ای نتایج به دست آمده با نتایج آزمایش را کاهش دهید تا تنظیمات بهینه ساز تستر را تنظیم کنید.
تجارت همه مبارک!
برچسب ها: اضافه کردن برچسب
قبل از معامله با پول واقعی، باید مطمئن شوید که استراتژی انتخاب شده قادر به کسب سود مداوم است.
این مقاله به بررسی سه استراتژی و بررسی اثربخشی آنها در 10-18 سال گذشته می پردازد. اینها استراتژی های کاملا متفاوتی هستند، بنابراین هر معامله گر می تواند چیز جالبی را در آنها پیدا کند و از آن در معاملات خود استفاده کند.
ایدههای ارائهشده در اینجا کامل نیستند، اما میتوانند به عنوان نقطه شروع خوبی باشند.
استراتژی معاملاتی Gapdown
گاهی اوقات می توانید ببینید که چگونه سهام قوی که در بخش خود یا حتی در کل بازار پیشتاز هستند، یک شبه بیش از 10 درصد سقوط می کنند تا در جلسه معاملاتی بعدی تقریباً به سطح اولیه خود بازگردند.
این اتفاق برای نتفلیکس (NFLX) افتاد که این گزارش را در 16 جولای پس از بسته شدن بازار منتشر کرد.
این شرکت رشد کمتری را در هجوم مشترکان جدید نسبت به انتظارات سرمایه گذاران نشان داد.
در 16 جولای، سهام نتفلیکس بالاتر از میانگین متحرک 50 روزه خود در 400.48 دلار به پایان رسید. با این حال، صبح روز بعد با کاهش 14 درصدی، 344 دلار معامله شد. در نهایت، تا پایان روز، قیمت به 379 دلار رسید و تقریباً به طور کامل ضرر را پس گرفت.
تحلیل تاریخی
از سال 2000، S&P 500 بالاتر از میانگین متحرک 50 روزه خود 536 بار با حجم کافی برای باز کردن بیش از 10 درصد کاهش در صبح روز بعد بسته شده است.
تجزیه و تحلیل نشان می دهد که اگر پس از هر افت، یک موقعیت خرید باز کرده و آن را در پایان همان روز ببندیم، در این صورت چنین معاملاتی در 47 درصد موارد موفق خواهند بود و میانگین سود 0.43 درصد (بدون احتساب کمیسیون) خواهد بود. ).
در اینجا برخی از نتایج استو همچنین منحنی تعادل که پویایی نتایج را در طول زمان منعکس می کند:
- تعداد معاملات: 536
- میانگین سود/زیان (P/L) در هر معامله: 0.43%
- بازده تعدیل شده ریسک (RAR): 123.34%
- درصد معاملات سودآور: 47.95%
- چهارشنبه سود: 5.83%
- چهارشنبه . ضرر: -4.54٪
- نسبت سود: 1.21
همانطور که می بینید، در طول 18 سال گذشته، این استراتژی نوسانات بسیار بالایی را نشان داده است، بنابراین استفاده از آن برای اکثر معامله گران دشوار خواهد بود.
اگرچه آمار تجارت کاملا مناسب است، اما منحنی تراز نشان می دهد که این سیستم از سال 2010 عملکرد ضعیفی داشته است. و این در حالی است که کمیسیون مورد توجه قرار نگرفت.
برای ایجاد یک سیستم معاملاتی مناسب بر اساس خرید سهام S&P 500 پس از افت یک شبه بیش از 10٪ با خروج در پایان روز، کار بیشتری باید انجام شود.
میانگین استراتژی معاملاتی بازگشت
این استراتژی را می توان همراه با استراتژی پیروی از روند برای سهام میکروکاپ در شاخص راسل میکروکاپ استفاده کرد.
پیچیدگی به کارگیری اصل بازگشت میانگین برای چنین سهامی در این واقعیت نهفته است که حجم معاملات در چنین اوراق بهادار کم است و جریان اخبار در آنها کمیاب است. این منجر به این واقعیت می شود که آنها به سادگی می توانند برای مدت طولانی در حالت "رانش" باشند. با در نظر گرفتن این موضوع، ساختن یک استراتژی معاملاتی خوب به نوعی کاتالیزور نیاز دارد تا از ورود به سهامی که راه به جایی نمی برند جلوگیری شود.
ایده این استراتژی مبتنی بر جستجو برای یک پایین ترین قیمت جدید است و افزایش گردش مالی روزانه (تعداد سهام x قیمت بسته شدن) به عنوان یک کاتالیزور بالقوه برای افزایش سریع قیمت عمل می کند. بنابراین، شما باید سهامی را پیدا کنید که یک Low جدید را تشکیل می دهد، که در آن نوار بعدی ناگهان ظاهر می شودو قیمت شروع به افزایش می کند.
مجموعه کامل قوانین به شکل زیر است:
خرید:
- تعطیلی دیروز< минимальная цена закрытия за 50 дней
- و گردش مالی امروز > 250000 دلار
- و گردش مالی امروز > 2 انحراف استاندارد بالاتر از میانگین متحرک 20 روزه است
- و IBS > 0.2
- و قیمت بسته شدن امروز بین 0.5 تا 20 دلار است
فروش:
- بالاترین قیمت بسته شدن در 5 میله گذشته
- یا در 10 روز
مثال معامله
شکل نمونه ای از چنین معامله ای را برای سهام OVID نشان می دهد:
در اینجا می توانید ببینید که در 10 آگوست 2017، OVID یک Low 50 روزه جدید را تشکیل می دهد. به دنبال آن افزایش حجم در 11 آگوست دنبال می شود و IBS 0.72 است.
بنابراین، شما می توانید یک معامله طولانی در باز روز بعد (فلش سبز) وارد کنید. پس از 7 روز، قیمت به High 5 میله رسید، بنابراین معامله در باز بودن روز بعد بسته می شود (فلش قرمز). سود 32.53% (بدون احتساب کمیسیون) بود.
بک تست برای همه سهام از شاخص راسل میکروکاپ برای دوره 8/2008 تا 1/2018 نتایج زیر را به همراه داشت:
(نتایج شامل کمیسیون 0.2٪ در هر معامله است. موقعیت ها روی 250 دلار ثابت هستند. همه ورودی ها و خروج ها در افتتاحیه روز معاملاتی بعدی انجام شد. دوره های قبلی آزمایش نشدند).
- تعداد معاملات: 6052
- میانگین سود/زیان (P/L) در هر معامله: 1.02%
- چهارشنبه مدت زمان نگهداری، میله ها: 6.04
- بازده تعدیل شده ریسک: 51.13%
- درصد معاملات سودآور: 53.72 درصد
- چهارشنبه . سود: 7.35%
- چهارشنبه . ضرر: -6.33٪
- نسبت سود: 1.35
همانطور که می بینید، این مجموعه قوانین نتایج بسیار خوبی را در نمونه بسیار گسترده ای از معاملات برای سهام ارزان ارائه می دهد. منحنی تعادل صاف است.
اینها نتایج امیدوارکننده ای هستند، بنابراین، بر اساس این قوانین، ارزش توسعه یک سیستم معاملاتی تمام عیار با اندازه واقعی پرتفوی، رتبه سهام و محاسبه اندازه موقعیت را دارد.
استراتژی معاملات پولبک
معاملات پول بک به طور گسترده ای برای سهام استفاده می شود. این شامل خرید زمانی است که یک عقب نشینی کوتاه مدت در طول یک روند بلند مدت رخ می دهد. با این حال، اگر سهام به اندازه کافی نوسان نداشته باشد، چنین تجارتی سرمایه قابل توجهی را ایجاد می کند.
بنابراین، جالب است که بررسی کنیم که چنین سیستمی چگونه در بازار آتی رفتار خواهد کرد، جایی که امکان دسترسی به سرمایه وام گرفته شده (اهرم) بسیار بالاتر است.
قوانین این استراتژی بسیار ساده است:
خرید:
- قیمت بسته شدن > MA 200 روزه
- و قیمت بسته شدن< 10-дневной СС
فروش:
- قیمت بسته شدن > MA 10 روزه
- یا توقف ضرر 10%
در اینجا نتایج آزمایش بر روی تاریخچه برخی از ابزارهای آتی آمده است:
همانطور که می بینید، معاملات آتی سهام (S&P 500 E-Mini و Dow Jones E-Mini) نتایج پایداری را نشان دادند. نتایج برای خزانهداری ایالات متحده (دو ساله و ده ساله ایالات متحده) نیز خوب بود. و روی طلا (Gold mini) و روغن (Oil) سیستم ضعیف عمل کرد.
این نتایج بر اساس معامله فقط یک قرارداد و نه است. هزینه 10 دلاری یک طرفه گنجانده شده است.
همانطور که ممکن است انتظار داشته باشید، این نتایج نشان می دهد که این استراتژی در بازار صعودی بهترین عملکرد را دارد. بنابراین توصیه می شود از نوعی فیلتر جهت بازار به همراه آن استفاده شود. در بازار صعودی، این استراتژی می تواند بسیار سودآور باشد. در هر صورت، ارزش این را دارد که آزمایش های بیشتری انجام دهید.
تکمیل استراتژی تجارت بر روی عقب نشینی جزء کوتاه
همچنین توصیه میشود که استراتژی فوق را در مورد معاملات پولبک با معاملات کوتاه تکمیل کنید. بک تست مناسب برای ES (S&P 500 E-Mini) انجام شده است. قوانین معاملات طولانی مدت یکسان هستند، فقط موارد زیر ظاهر می شود قانون اضافیبرای معاملات کوتاه مدت در واقع، این یک تصویر آینه ای از قانون برای معاملات طولانی است و فقط به دنبال عقب نشینی های صعودی در بازار نزولی است.
فروش کوتاه:
- قیمت بسته شدن< 200-дневной СС
- و قیمت بسته شدن > MA 10 روزه
پوشش موقعیت:
- قیمت بسته شدن< 10-дневной СС
- یا توقف ضرر 10%
- تعداد معاملات: 323
- درآمد خالص: 77,445 دلار
- کل بازده سالانه (CAR): 5.34%
- حداکثر برداشت (MDD): -16.45٪
- میانگین سود/زیان (P/L): 3.66%
- نسبت سود: 1.49
همانطور که می بینید، اضافه شدن جزء کوتاه نتایج معاملاتی این استراتژی را در ES بهبود بخشید. درآمد خالص از 53901 دلار به 77445 دلار در مدت مشابه افزایش یافت، در حالی که حداکثر کاهش در همان سطح باقی ماند. منحنی تعادل نیز بسیار خوب به نظر می رسد.
البته این سیستم نیاز به تست و شفاف سازی بیشتری دارد.. با این وجود، برای چنین استراتژی ساده، اولین نتایج را می توان دلگرم کننده در نظر گرفت.
در این مقاله نتایج آزمایش یک استراتژی معاملاتی ساده را در 3 حالت نشان خواهیم داد: OHLC روی M1"فقط با استفاده از قیمت های باز، زیاد، پایین و بسته میله های دقیقه؛ سپس شبیه سازی دقیق در" همه کنه ها"و قابل اطمینان ترین تست در حالت" هر تیک بر اساس کنه های واقعی" با استفاده از تیک های ثبت شده از تاریخ.
این به ما امکان می دهد درک کنیم که در حالت های مختلف به چه کیفیتی می رسیم و نحوه استفاده صحیح از تستر را برای به دست آوردن نتایج سریع نشان می دهیم. حالت "OHLC در M1" به شما امکان می دهد یک تست ارزیابی سریع دریافت کنید، شبیه سازی در حالت "همه تیک ها" تقریب خوبی به واقعیت به ما می دهد و آزمایش بر روی تیک های واقعی دقیق ترین نتایج را ارائه می دهد، اما به مقدار متناظری نیاز دارد. زمان. علاوه بر این، اشتباهات در منطق یک ربات معامله گر می تواند بر تعداد عملیات معاملاتی تأثیر بگذارد و منجر به این واقعیت شود که نتایج آزمایش یک استراتژی در تاریخچه به حالت تست انتخاب شده بستگی دارد.
چه استراتژی معاملاتی را آزمایش کردیم
ما یک استراتژی بازرگانی ساده بر اساس آخرین نوارهای RangeLength ایجاد کرده ایم. قوانین تجارت در آن به شرح زیر است: در نوار تازه باز شده، محدوده بالاترین و بالاترین قیمت های پایینبرای آخرین N میله. در Expert Advisor ضمیمه شده، پارامتر RangeLength پیش فرض 20 میله است و به معنای عرض پنجره ای است که محدوده را در آن می سازیم.
پس از اولین شکست دامنه به بالا یا پایین، آمار تیک های ورودی شروع به جمع آوری می کند: چند تیک بالاتر از سطح محدوده شکسته شده است و چند تیک در زیر است. به محض اینکه تیک های دریافتی بزرگتر یا مساوی با TicksForEnter = 30 شدند، تصمیم گرفته می شود که با قیمت فعلی وارد بازار شوید. اگر دامنه به سمت بالا شکسته شد، تعداد تیکهای بالاتر از سطح شکست باید بیشتر از تعداد تیکهای زیر این سطح باشد. در این صورت خرید انجام می شود. برای ورود به یک موقعیت کوتاه، برعکس است.
خروج از یک موقعیت باز در زمان، از طریق نوارهای BarsForExit رخ می دهد. همانطور که می بینید، قوانین معاملات ساده هستند. برای وضوح، آنها در شکل نشان داده شده اند:
بیایید ببینیم که چگونه نتایج آزمایش این استراتژی در سه حالت مختلف شبیه سازی تیک تغییر می کند.
چگونه ما آزمایش کردیم
استراتژی معاملاتی بر روی EURUSD در H1 در 6 ماه اول سال 2016 - از 01/01/2016 تا 06/30/2016 آزمایش شد. تمام پارامترهای Expert Advisor روی مقادیر پیشفرض تنظیم شدند، زیرا وظیفه ما آزمایش ساده استراتژی در حالتهای مختلف شبیهسازی بود.
مقایسه نتایج در حالت های مختلف تست
نتایج آزمایش در حالت های مختلف در یک جدول خلاصه شده است. اول از همه، تفاوت در تعداد عملیات معاملاتی چشمگیر است. بر این اساس، تمام شاخص های تست دیگر نیز متفاوت هستند. در همان زمان، آزمایش در حالت "OHLC در M1" 1.57 ثانیه طول کشید که 23 برابر سریعتر از حالت "همه تیک ها" است. چنین تفاوتی هنگام بهینه سازی پارامترهای ورودی سیستم معاملاتی اهمیت زیادی خواهد داشت.
به نوبه خود، حالت «هر تیک بر اساس تیکهای واقعی» حتی زمانبرتر بود - 74 ثانیه در مقابل 36.7 ثانیه در حالت «همه تیکها». این به راحتی با این واقعیت توضیح داده می شود که هنگام استفاده از تیک های واقعی، بیش از 34 میلیون تیک شبیه سازی شده است که تقریباً 2 برابر بیشتر از حالت "همه تیک ها" است. بنابراین، هر چه تعداد تیکهای بیشتری در هنگام تست استفاده کنیم، زمان بیشتری برای یک پاس در تستر استراتژی لازم است.
پارامتر | OHLC روی M1 | همه کنه ها | هر تیک بر اساس واقعی |
---|---|---|---|
تیکوف | 731 466 | 18 983 485 | 34 099 141 |
سود خالص | 169.46 | -466.81 | -97.24 |
معاملات | 96 | 158 | 156 |
معاملات | 192 | 316 | 312 |
کاهش سهام (%) | 311.35 (3.38%) | 940.18 (9.29%) | 625.79 (6.07%) |
کاهش موجودی | 281.25 (3.04%) | 882.58 (8.76) | 591.99 (5.76%) |
معاملات سودآور (%) | 50 (52.08%) | 82 (51.90%) | 73 (46.79%) |
میانگین برد پیاپی | 2 | 2 | 2 |
زمان تست، از جمله زمان تولید کنه | 1.6
ثانیه | 36.7
ثانیه | 74
ثانیه (1 دقیقه و 14 ثانیه) |
ما گزارش های تست را در حالت های مختلف شبیه سازی در قالب گیف های متحرک جمع آوری کرده ایم تا تفاوت آماری را مشاهده کنید.
بر این اساس، نمودار ترازنامه و حقوق صاحبان سهام نیز تفاوت هایی با هم دارند. اما در عین حال، واضح است که این استراتژی ساده جذاب به نظر نمی رسد - یک دوره رشد با یک دوره افول جایگزین می شود و نمودارهای هر آزمون مانند یک زنجیره شانس به نظر می رسد. شما نمی توانید با استفاده از چنین سیستمی معامله کنید، نتیجه مشابه پرتاب کردن سکه خواهد بود.
سیستم های معاملاتی وابسته به ورود کنه ها هستند
سیستم معاملاتی نشان داده شده بسیار به روش مدل سازی بستگی دارد - به تعداد تیک های ورودی و ترتیب دریافت آنها. هنگام تست در حالت "OHLC on M1"، کمترین تیک ها را شبیه سازی می کنیم و ممکن است همیشه برای ورود به بازار کافی نباشند. حالتهای «همه تیکها» و «هر تیک براساس تیکهای واقعی» میتوانند ترتیب کاملاً متفاوتی از تیکها داشته باشند. هنگام مدلسازی «Every Tick»، میتوانیم دنبالهای از تیکها را بهطور یکنواخت افزایش یا کاهش دهیم، که عملاً ورود به بازار را در صورت شکسته شدن محدوده تضمین میکند. هنگام تست در حالت "هر تیک بر اساس تیک های واقعی" از تاریخچه ثبت شده تیک ها استفاده می شود و در آنجا پویایی تغییرات قیمت می تواند کاملا غیر منتظره باشد.
در نتیجه، حتی در ابتدای بازه آزمایشی، می بینیم که هر دو سطح ورود و خروج در نمودارها متفاوت است و برخی از معاملات نادیده گرفته می شوند.
چهار حالت تولید تیک
تستر استراتژی در ترمینال متاتریدر 5 به شما امکان می دهد استراتژی های معاملاتی را در چهار حالت شبیه سازی تیک آزمایش کنید، آنها در مقاله مبانی تست متاتریدر 5 توضیح داده شده اند. سریع ترین و خشن ترین آنها " فقط قیمت افتتاحیه"، که در آن عملیات معاملاتی فقط در باز کردن یک نوار جدید قابل انجام است. در این حالت، هیچ اقدامی در داخل نوار در دسترس EA نیست و برای تست استراتژی هایی که قیمت را در نظر نمی گیرند بسیار مناسب است. در داخل نوار توسعه می یابد.
بعدی از نظر دقت مدل سازی حالت است " OHLC روی M1"، که قیمتهای باز، زیاد، پایین و بسته را برای هر نوار دقیقه موجود در محدوده تاریخچه آزمایش شده شبیهسازی میکند. بنابراین، هنگام آزمایش در بازه زمانی H1 به مدت یک ساعت، مشاور متخصص 240 بار فراخوانی میشود: در هر یک از 60 بار. میلههای دقیقهای، کنترلکننده ()OnTick 4 بار فراخوانی میشود - یک بار برای هر قیمت OHLC. با این شبیهسازی، میتوانید از Trailing Stop استفاده کنید، در صورت لزوم، توسعه قیمت را بر روی بازههای زمانی و شاخصهای دیگر مشاهده کنید. برای مثال، استراتژیهای آزمایشی مانند " 3 صفحه نمایش بزرگ».
اگر به بازسازی کاملاً قابل اعتماد تاریخ در تستر استراتژی نیاز دارید، از " استفاده کنید همه تیک ها بر اساس کنه های واقعیدر این حالت، تستر به طور مستقل تیک های واقعی ثبت شده را از سرور معاملاتی کارگزار دانلود می کند و توسعه قیمت را بر اساس آنها ایجاد می کند. همه کنه هابنابراین، اگر کارگزار کل سابقه ثبت شده برای نمادهای مورد نیاز را داشته باشد، می توانید داده های تاریخی واقعی را بدون مدل سازی مصنوعی آزمایش کنید. با این حال، همانطور که نشان داده شده است، قیمت چنین دقت تیک به تیک افزایش قابل توجهی در زمان تست خواهد بود. در جدول با نتایج مقایسه سه حالت .
توسعه سیستم را با حالت "OHLC on M1" شروع کنید
همانطور که می بینید، برنده شدن در همه چیز به طور همزمان غیرممکن است - اگر بخواهیم زمان را کاهش دهیم و به سرعت یک ایده معاملاتی را آزمایش کنیم، دقت را در حالت های شبیه سازی ساده از دست می دهیم. اگر برای آزمایش لازم است از صحت قیمت های ورودی و توالی سیگنال های معاملاتی اطمینان حاصل شود، باید از حالت های دقیق تری استفاده کنید که به زمان بیشتری نیاز دارند.
قبل از شروع آزمایش یک استراتژی معاملاتی، باید به وضوح آگاه باشید که حالت شبیه سازی انتخابی، صحت نتایج و میزان زمان صرف شده برای به دست آوردن آنها را تعیین می کند. اگر نیاز به ارزیابی سریع و آزمایش استراتژی معاملاتی خود دارید، از حالت "OHLC on M1" استفاده کنید. در آن می توانید به سرعت پتانسیل سیستم معاملاتی را ارزیابی کنید.
مرحله بعدی اشکال زدایی و حالت "Every Tick" است
اگر نتایج اولیه رضایت بخش بود، می توانید به تنظیم دقیق و تجزیه و تحلیل سیستم معاملاتی در حالت های شبیه سازی دقیق تر ادامه دهید. در اینجا، اشکال زدایی استراتژی در حالت آزمایش به کمک خواهد آمد - می توانید نقاط شکست را تنظیم کنید و وضعیت متغیرها و تحقق شرایط تعیین شده در EA را بررسی کنید. در اینجا می توانید انتظار داشته باشید شگفتی های ناخوشاینداگر فراموش کرده اید که برخی از تفاوت های ظریف سیستم خود را در نظر بگیرید.
دقت تست در مقابل سرعت
همانطور که از نتایج آزمایش سیستم معاملاتی توصیف شده در سه حالت مشاهده می شود، یک معامله گر همیشه می تواند و باید حالت شبیه سازی تیک را متناسب با استراتژی معاملاتی خود انتخاب کند. اگر سیستم را در بازه زمانی روزانه آزمایش می کنید، سپس " فقط قیمت افتتاحیه"- سرعت بالای تست به قیمت کیفیت نتایج نخواهد بود.
اگر در حال نوشتن یک استراتژی اسکالپینگ یا آربیتراژ هستید، یا استراتژی شما بر اساس محاسبات بیدرنگ شاخصها یا شاخصهای مصنوعی است، حالت "" مورد نیاز است. آزمایش زمان بیشتری می برد، اما نتایج را تا حد امکان به واقعیت نزدیک خواهید کرد. درست است، ما نباید فراموش کنیم که تاریخ هرگز تکرار نمی شود، و بنابراین، حتی در این حالت، پارامترهای ورودی که به طور ایده آل با کمک بهینه سازی انتخاب شده اند، موفقیت را هنگام راه اندازی ربات در یک حساب واقعی تضمین نمی کنند.
بین این دو حد " OHLC روی M1"و" همه کنه ها"، که سریعتر از " هر تیک بر اساس کنه های واقعی"، اما دقت تست کمتری را ارائه دهید. به طور کلی، میتوانیم قانونی را تدوین کنیم که زمان و دقت آزمایش را توصیف کند:
هر چه تست سریعتر بگذرد، دقت شبیه سازی معاملات کمتر می شود. هرچه توسعه قیمت با جزئیات بیشتر و دقیقتر از تاریخ الگوبرداری شود، زمان بیشتری برای آزمایش مورد نیاز است.
سرورهای معاملاتی سالهاست که تاریخچه تیک واقعی را جمعآوری میکنند و تستر استراتژی در متاتریدر 5 در حالت "هر تیک بر اساس تیکهای واقعی" تمام تاریخچه لازم را به صورت خودکار دانلود میکند. اما هرچه تست قابل اعتمادتر باشد، به منابع بیشتری نیاز دارد. بنابراین، تعادلی بین دقت و سرعت انتخاب کنید.
همه استراتژی ها نیاز به مدل سازی دقیق در مراحل اولیه توسعه ندارند. انتخاب درستحالت تست به شما کمک می کند در زمان صرفه جویی کنید و از بین ببرید مقدار زیاداستراتژی های اشتباه!
و تنها پس از حل کار اصلی - ایجاد یک سیستم معاملاتی خودکار سودآور - می توانید روی کنه های واقعی بهینه سازی کنید. در این مرحله، شما از قبل به قدرت یک شبکه محاسباتی توزیع شده نیاز دارید.
هر اندیکاتور یا سیستم معاملاتی (پرداخت، رایگان، شخص ثالث یا خودساخته) را می توان تنها پس از تست موفقیت آمیز به روش های مختلف و به روش های مختلف در یک حساب واقعی قرار داد. شرایط معامله. بهینه سازی و تست شایسته استراتژی های معاملاتی - فرآیند مورد نیازبرای تجارت موفق
توسعه یک سیستم معاملاتی مستلزم زمان و تلاش زیادی است، بنابراین روش های تجربی برای انتخاب پارامترها برای مدت طولانی مورد استفاده قرار نگرفته است. امروزه مرحله تست به یک جزء ضروری تحلیل تکنیکال تبدیل شده است و به شما امکان می دهد سرمایه را برای تجارت واقعی ذخیره کنید.
فرآیند آزمایش استراتژی های معاملاتی به معنای اجرای یک الگوریتم بر روی داده های تاریخی یا شبیه سازی شده است. آزمون باید «سیگنالهای» مبادله را برای ایجاد معاملات خرید/فروش ببیند و نتیجه یک معامله «ممکن» را نشان دهد - میزان درآمد/زیان نشانگر مناسب بودن برای کار واقعی است.
اهداف و روش های اصلی
اول از همه، شما باید بررسی کنید:
- شاخص های عملکرد موجود در استراتژی؛
- مدلهای بازار (دارایی، نقدینگی، هزینهها، سرعت، لغزش، ریسک) بدون معامله واقعی؛
- بهینه بودن پارامترها با توجه به نتایج بک تست؛
- کد برنامه برای خطاهای توسعه
این آزمون باید شامل تجزیه و تحلیل گذشته / پیش بینی آینده باشد و گزارشی با نتایج گرافیکی و کمی ارائه دهد. می توانید در تستر دانلود کنید:
- تاریخچه - مجموعه ای از نوارهای تشکیل شده قبلی با پارامترهای قیمت ها، حجم ها، شاخص ها: سپس قیمت "گذشته" و "آینده" برای تجزیه و تحلیل به منظور ارزیابی واکنش "آینده" در پویایی "گذشته" تشکیل می شود.
- مقادیر قیمت مدلسازی شده توسط سناریو: سپس دادههای تیک (تاریخچه یا واقعی) را به ورودی تستر وارد کنید و پیشبینی حرکت را دریافت کنید.
روش اول سهولت، سرعت، اما دقت پایین را ارائه میکند و در روش دوم، استراتژی دقیقاً همانطور که در معاملات واقعی انجام میدهد در تستر رفتار میکند. نتایج شبیهسازی شده را میتوان بهعنوان فایلهای خارجی ذخیره کرد، که میتوانند از طریق منوی «File» - «Open offline» در ترمینال بارگیری شوند.
استراتژی های معاملاتی را می توان با استفاده از موارد زیر آزمایش کرد:
- هر نرم افزار ریاضی (Matlab یا MS Excel با پلاگین برای معاملات سهام)؛
- سیستم های ایجاد سیستم های مکانیکی (MetaStock، Wealth-Lab، Omega)؛
- زبان های برنامه نویسی جاوا، اسکالا یا C++/C# برای ایجاد و آزمایش ربات های تجاری؛
- تسترهای تعبیه شده در پلتفرم های معاملاتی
به طور سنتی، برای به دست آوردن نتایج پایدار و صحیح در فرآیند آزمایش، موارد زیر به طور مداوم اعمال می شود:
- تست بصری یک اندیکاتور یا سیستم:نیاز به مشاهده تاریخچه قیمت برای یک دوره طولانی (یک تا دو سال) دارد. این فرآیند وقت گیر با نرم افزار تستر استراتژی دستی ساده شده است.
- ایجاد، تست و بهینه سازی یک مشاور متخصص.
- تست سابقه طولانی در حالت خودکار.
- تست روی یک حساب آزمایشی یا روی یک حساب سنت:پس از به دست آوردن نتایج پایدار برای دو روش اول - یک محاسبه طولانی، اما دقیق ترین، انجام می شود. تفاوت بین حساب دمو و حساب سنت فقط روانی است.
در صورت دریافت نتایج نامطلوب، باید برای انتخاب پارامترهای مشاور وقت بگذارید و گزینه بهینه سازی داخلی مناسب ترین مکانیسم برای این کار است.
آزمایش کنندگان استراتژی معاملاتی
آنها ابزارهای تحلیلی چند ارزی برای پردازش تاریخچه بارگیری شده از فایل های خارجی هستند. این فرآیند به طور متوالی از طریق نقل قول ها مرتب می شود، واکنش الگوریتم را تجزیه و تحلیل می کند، و معاملات مجازی را باز می کند. برای انتخاب بهترین گزینه می توانید به طور همزمان روی چندین دارایی حساب کنید.
هنگام آزمایش استراتژی های معاملاتی، حالت تاخیر اجرای تصادفی، مشکلات شبکه را در طول اجرای واقعی سفارشات توسط نمایندگی ها شبیه سازی می کند. حالت تجسم روند را در زمان واقعی نشان می دهد: تمام معاملات باز شده در نمودار قیمت نمایش داده می شوند، تنظیمات بر اساس معیارها انجام می شود: سرعت، کیفیت، سود، دوره، شرایط مختلفتجارت
نتیجه در قالب اطلاعات گرافیکی و آماری آورده شده است: درصد سود / زیان، تعداد معاملات بازنده / سودآور، شاخص های عوامل ریسک، انتظار ریاضی برنده شدن و غیره.
مکانیسم آزمایش "به جلو" استراتژی های معاملاتی به خلاص شدن از مشکلات پارامترهای "تناسب" کمک می کند: تاریخچه به دو بخش تقسیم می شود - بهینه سازی در یک نیمه انجام می شود و بخش دوم باید نتیجه را تأیید کند. آزمایشکنندگان میتوانند از متدولوژی آزمایش توزیعشده پشتیبانی کنند، یعنی ظرفیتهای اضافی را در این فرآیند، از جمله در شبکههای محاسبات ابری، لحاظ کنند.
الزامات اساسی برای تنظیمات هنگام آزمایش استراتژی های معاملاتی:
- دانلود داده های تمام دوره ها؛ محدوده تاریخ حداقل 5 سال است، با گنجاندن اجباری دوره هایی با بحران / پویایی غیر استاندارد (به عنوان مثال، 2008-2009).
- اگر از یک دوره کوچکتر استفاده می کنید، باید دوره های روند و حرکت صاف را شامل شود.
- تعداد معاملات شبیه سازی شده کمتر از 300 معامله است.
- الگوریتم را روی چندین ابزار مایع تست کنید.
هنگام تنظیم پارامترهای تست، موارد زیر را در نظر بگیرید:
- هزینه های تجاری (اسپرد، کمیسیون)؛
- لغزش/تاخیر؛
- تأثیر نقدینگی دارایی (دینامیک حجمی)؛
- تغییر شرایط بازار؛
- انواع سفارش های تجاری که برای استفاده برنامه ریزی شده است (سفارش های بازار یا محدود).
اگر یک دستور بازار بلافاصله اجرا شود، اما قیمت نهایی آن برای آزمایش تعریف نشده باشد، آنگاه سفارشهای محدود میتوانند برای مناسبترین قیمت برای معامله «منتظر» شوند. یک دستور محدود یک وسیله غیرفعال در نظر گرفته می شود، زیرا اگر دستورات کمی وجود داشته باشد، می تواند اجرا نشده یا تا حدی اجرا شود. اگر رفتار دفتر سفارش به طور دقیق مدلسازی نشود، آزمون بلادرنگ نتایج بدتری نسبت به آزمون بکآست نشان میدهد.
فراموش نکنید: قبل از بسته شدن جلسات، اسپرد می تواند چندین برابر افزایش یابد، بنابراین نباید با در نظر گرفتن آخر هفته تست های کوتاهی انجام دهید - هزینه های بسیار بیشتری دریافت خواهید کرد.
معمولاً از سه روش محاسبه استفاده می شود:
- قیمت های افتتاحیه:سریع ترین، اما نادرست ترین روش، اکثر استراتژی ها، زمانی که برای یک دوره حداکثر 1 ساله آزمایش می شوند، ممکن است به هیچ وجه یک معامله را باز نکنند.
- برای پست های بازرسی:از نظر دقت و زمان متعادل ترین است، اما سطح اعتماد به داده های دریافتی پایین است.
- برای همه کنه ها:دقیق ترین روش، نزدیک به واقعیت.
با هر روشی برای آزمایش در یک دوره طولانی، نتایج چند سال گذشته دقیق ترین هستند، هم برای سیستم های روند و هم برای سیستم های عقب نشینی.
فراموش نکنید: اجرای مدل های واقعی و حجم داده های شبیه سازی شده برای آزمایش دقیق نیاز به منابع فنی دارد و در تجسم روند محاسبه را کند می کند.
آزمایش استراتژی های معاملاتی به درستی تمام بازه های زمانی، از جمله داده های حجمی را مدل سازی می کند. در طول آزمون، شاخص ها به صورت آنلاین محاسبه می شوند.
پس از اتمام تست، می توانید مدل نمودار را با تمام نقاط ورودی / خروجی و داده های نشانگر باز کنید، بنابراین اگر استراتژی ها یا شاخص ها دارای خطا باشند، قطعا ظاهر می شوند. مقادیر شاخص محاسبه شده از تاریخچه ممکن است با مقادیر در زمان آزمایش متفاوت باشد.
نتایج آزمون را می توان به عنوان دنباله ای از داده های محدود شده در اکسل یا هر نرم افزار دیگری بارگذاری کرد.
یادت نره :n شما نمی توانید در محاسبات از مجموعه ای ناقص از مظنه ها یا واردات جزئی از منابع مختلف استفاده کنید. نقلقولهای دقیقه باید بهطور خودکار مجدداً محاسبه شوند و بدون شکاف یا جابجایی موقت در محاسبه وارد شوند.
و به عنوان نتیجه ...
تست استراتژی های معاملاتی به شما امکان می دهد صحت و سودآوری الگوریتم را بدون معامله واقعی در بازار ارزیابی کنید. علاوه بر پول، باعث صرفه جویی در زمان می شود - آزمایش بر روی مظنه ها در یک دوره چند ساله فقط چند ساعت طول می کشد، می توان آن را در هر زمان متوقف کرد، ابزار، شرایط محاسبه یا پارامترهای بهینه سازی را تغییر داد. منبع:
دکمه های اجتماعی برای جوملامحبوب:
- 14 نوامبر 2013 06:32 | نشانگر معکوس - تعیین پایان روند 55948
- 1394/04/02 10:04 | نشانگر VSA بازار را مانند یک کتاب باز 53422 می خواند
- 1393/09/23 11:08 | سازنده مشاور فارکس به شما امکان می دهد هر ربات تجاری 48882 را ایجاد کنید
اول، در مورد گرافیک. در بالا سمت راست لبخند نوسان است. در پایین سمت چپ نمایه موقعیت فعلی است. (خط قهوه ای شیب نوسان است، نشان می دهد که چگونه نوسان می تواند در هنگام تغییر قیمت تغییر کند). بقیه فکر کنم واضحه
عملکردی. علاوه بر اجرای سریع موقعیت (شروع) و مشاهده سهام (سرعت روند پردازش) و اجرای گام به گام (StepByStep)، من یک نمایه و حسابداری برای تغییرات نوسانات اضافه کردم.
نحوه استفاده. (به وبلاگ قبلی مراجعه کنید). فقط برای دیدن نتیجه، start را فشار دهید. برای تماشای مرحله به مرحله، کادر سمت چپ StepByStep را علامت بزنید. برای مشاهده نمایه موقعیت، روی نمایه کلیک کنید. اگر StepByStep را فشار می دهید و نمی خواهید هر بار Profile را فشار دهید، کادر سمت چپ دکمه Profile را علامت بزنید. اگر میخواهید یک نمایه معمولی (استاندارد) تماشا کنید، علامت Volatility را بردارید. اگر چک باکس (Volatility) علامت زده شود، با در نظر گرفتن تغییر (تغییر احتمالی) در نوسان، نمایه ترسیم می شود. (خط قهوه ای روی نمودار).