در مقاله الگوهای معکوس: تست الگوی دو بالا/پایین به بررسی و تست استراتژی معاملاتی بر اساس الگوی Double top پرداختیم. این مقاله با در نظر گرفتن الگوی معکوس دیگری از تحلیل گرافیکی به نام Head and Shoulders موضوع را ادامه می دهد.
1. جنبه های نظری شکل گیری الگو
الگوهای Head and Shoulders و Inverted Head and Shoulders از شناخته شده ترین و پرکاربردترین الگوهای گرافیکی هستند. نام الگو به وضوح ساختار گرافیکی آن را توصیف می کند. الگوی Head and Shoulders در انتهای روند صعودی شکل می گیرد و سیگنال های فروش را ارائه می دهد. خود الگو از سه صفحه متوالی نمودار قیمت تشکیل شده است. قسمت میانی از دو قسمت مجاور بالا می رود، مانند یک سر بالای شانه ها. قسمت بالای میانی سر و قسمت های مجاور شانه نامیده می شود. خطی که قسمت پایینی را بین رویه های الگو به هم متصل می کند، خط گردن نامیده می شود. سیگنال های الگوی که یقه آن به سمت چپ متمایل است قوی تر در نظر گرفته می شود. الگوی Inverted Head and Shoulders نسخه آینه ای از Head and Shoulders است که حرکت صعودی را نشان می دهد.
اغلب، این الگو در صورت پیشرفت کاذب سطح حمایت/مقاومت قیمت شکل میگیرد. معامله گران پیرو روند، یک اصلاح کوچک (بالای شانه چپ) را فرصت خوبی برای افزایش موقعیت خود می دانند. در نتیجه، قیمت به روند فعلی بازگشته و سطح شانه چپ را می شکند. پس از شکستن سطح حمایت/مقاومت فعلی، روند تضعیف شده با افزایش موقعیت های معامله گران مخالف روند متوقف می شود که منجر به اصلاح جدید می شود. یک روند معکوس شکل می گیرد و قیمت دوباره به زیر سطح می رسد (هد شکل می گیرد). تلاش دیگری برای از سرگیری روند، ضعف آن را نشان می دهد، یک حرکت کوچک شکل می گیرد (شانه راست). در این مرحله، فعالان بازار متوجه تغییر روند می شوند. معامله گران پیرو روند به طور انبوه از بازار خارج می شوند، در حالی که معامله گران مخالف روند، موقعیت خود را افزایش می دهند. این منجر به یک حرکت قدرتمند و شکل گیری یک روند جدید می شود.
2. استراتژی معاملاتی الگو
همانند الگوی دوبل بالا/پایین، استراتژی های مختلفی برای معامله با سر و شانه وجود دارد. از بسیاری جهات، آنها شبیه استراتژی های معاملاتی الگوی قبلی هستند.
2. 1. مورد 1
استراتژی اول بر اساس شکستن خط گردن است. در این حالت، سفارش پس از شکسته شدن خط با قیمت بسته بازه زمانی تحلیل شده باز می شود. در این حالت، یک استاپ لاس در سطح اکسترموم سر الگو یا با یک فرورفتگی کوچک تنظیم می شود. گسترش نماد باید در نظر گرفته شود.
اشکال این روش این واقعیت است که در صورت حرکت شدید قیمت، یک میله ممکن است دور از خط گردن بسته شود. این ممکن است باعث زیان سود و افزایش ریسک معاملات زیان ده بر اساس یک الگوی خاص شود.
تغییر این مورد، انجام معامله پس از غلبه قیمت بر فاصله ثابت مشخصی از خط گردن به سمت یک روند نوظهور است.
2. 2. مورد 2
گزینه الگوی دوم - باز کردن یک موقعیت زمانی که قیمت پس از شکستن آن به خط گردن بازگردد. در این حالت، توقف ضرر برای آخرین اکسترم تعیین میشود که آن را کوتاهتر میکند و به معاملهگر اجازه میدهد معامله با حجم بیشتری را با همان ریسک باز کند. این نسبت بالقوه سود/زیان را افزایش می دهد.
مانند دو بالا/پایین، قیمت همیشه پس از شکستن آن به خط گردن باز نمی گردد. در نتیجه، تعداد قابل توجهی از الگوها نادیده گرفته می شود. بنابراین، در این مورد، از برخی الگوها صرف نظر می کنیم و برای بیشترین زمان از بازار خارج می شویم.
هنگام استفاده از هر دو مورد، حداقل سود توصیه شده در فاصله دور گردن برابر با حرکت قیمت از سر تا خط گردن است.
3. ایجاد یک مشاور متخصص برای تست استراتژی
شاید قبلاً متوجه تشابه رویکردهای معاملاتی الگوهای Double top/bottom و Head and Shoulders شده باشید. ما از الگوریتم مقاله قبلی برای توسعه یک EA جدید استفاده خواهیم کرد.
ما قبلاً بیشتر کارهای مقدماتی را در مقاله انجام داده ایم [1]. بیایید کلاس CHS_Pattern را برای جستجوی الگوها ایجاد کنیم. باید از کلاس CPattern مشتق شود تا بتوانیم پیشرفت مقاله قبلی را اعمال کنیم. بنابراین، ما به تمام متدهای کلاس والد دسترسی خواهیم داشت. در اینجا فقط عناصر گم شده را اضافه می کنیم و روش های اولیه سازی کلاس، جستجوی الگو و نقطه ورودی را بازنویسی می کنیم.
در روش مقداردهی اولیه کلاس، ابتدا کلاس والد را مقداردهی اولیه کنید و ساختارهای اضافه شده را آماده کنید.
در روش جستجوی الگو، تعداد کافی اکستروم را برای تعیین الگو بررسی کنید.
سپس شاخص اکسترموم مربوط به تاریخ مشخص شده ای را که جستجوی الگوها از آن شروع می شود، تعریف کنید. اگر بعد از تاریخ مشخص شده یک اکستروم تشکیل نشد، با نتیجه نادرست از روش خارج شوید.
در مرحله بعد، داده های شش اکستروم آخر را دانلود کنید و حرکات قیمت را برای مطابقت با الگوی لازم بررسی کنید. اگر الگو پیدا شد، با نتیجه واقعی از روش خارج شوید. اگر الگو پیدا نشد، یک الگو به سمت لحظه فعلی جابجا شده و حلقه را تکرار کنید. اگر الگوی پس از تکرار روی تمام اکسترم ها یافت نشد، با نتیجه نادرست از روش خارج شوید.
در مرحله بعد روش جستجوی نقاط ورودی را دوباره بنویسید. در شروع متد، بررسی کنید که آیا الگو قبلاً در نمونه کلاس تحلیل شده پیدا شده است یا خیر. اگر الگو پیدا نشد، از روش با نتیجه غلط خارج شوید.
سپس، بررسی کنید که چند میله بعد از ظاهر شدن الگو تشکیل شده است. اگر الگو به تازگی شکل گرفته است، با نتیجه غلط از روش خارج شوید.
پس از آن، تاریخچه نقل قول لازم را دانلود کرده و متغیرهای کمکی را آماده کنید.
بیشتر در حلقه، به دنبال پیشرفت خط گردن با تعدیل بعدی قیمت باشید. سطوح سود بالقوه را در طول پیشرفت خط گردن تعریف کنید. هنگام جستجو برای بازگشت قیمت به خط گردن، بررسی کنید که آیا قیمت به سطح سود بالقوه رسیده است یا خیر. اگر قیمت قبل از بازگشت به خط گردن به سود بالقوه برسد، الگوی نامعتبر در نظر گرفته می شود و با نتیجه کاذب از روش خارج می شویم. هنگامی که نقطه ورودی شناسایی شد، یک سطح توقف ضرر تعریف کنید و با نتیجه واقعی از روش خارج شوید. توجه داشته باشید که نقطه ورود در صورتی معتبر تلقی می شود که زودتر از دو نوار آخر بازه زمانی تجزیه و تحلیل شده تشکیل نشده باشد. در غیر این صورت با نتیجه غلط از روش خارج شوید.
کد کامل تمامی روش ها و توابع در پیوست ارائه شده است.
کد EA برای آزمایش استراتژی از مقاله [1] تقریباً بدون تغییر گرفته شده است. تنها تغییرات مربوط به جایگزینی کلاس برای کار با الگو بود. کد کامل EA را می توانید در پیوست پیدا کنید.
EA در دوره 10 ماهه 2018 آزمایش شد. پارامترهای آزمایش در تصاویر زیر ارائه شده است.
این آزمایشات توانایی EA در ایجاد سود در بازه زمانی مورد بررسی را نشان داد. بیش از 57 ٪ از معاملات با سود با فاکتور سود 2. 17 بسته شدند. با این حال ، میزان معاملات غیرقابل تحمل است - فقط در طی 10 ماه فقط 14 معاملات.
4- ترکیب دو الگوی در یک EA واحد
در نتیجه کارهایی که در دو مقاله انجام شده است ، ما دو سود سودآور EAS را روی الگوهای گرافیکی معکوس دریافت کردیم. کاملاً طبیعی است که ، برای افزایش کارایی کلی تجارت ، منطقی خواهد بود که هر دو استراتژی را در یک برنامه معاملاتی ترکیب کنیم. همانطور که قبلاً نیز اشاره کردم ، کلاس جستجوی الگوی جدیدی که توسعه داده ایم از یک مدل قبلی گرفته شده است. این کار ما را در ترکیب استراتژی ها در یک EA واحد بسیار ساده می کند.
ابتدا بیایید کلاس ها را شناسایی کنیم. کلاس پایه Cobject شامل روش مجازی نوع است. بیایید آن را به توضیحات کلاسهای خود اضافه کنیم. در کلاس Cpattern ، این روش مقدار 101 را برمی گرداند ، در حالی که در کلاس CHS_PATTERN ، 102 را برمی گرداند. در حال حاضر ، ما فقط از دو الگوی استفاده می کنیم ، بنابراین می توانیم خود را به ثابت های عددی محدود کنیم. هنگام افزایش تعداد الگوهای ، توصیه می کنم از شمارش ها برای بهبود خوانایی کد استفاده کنید.
پس از آن ، روش مقایسه کلاس را با بلوک برای مقایسه انواع کلاس تکمیل کنید. در نتیجه ، کد روش به شرح زیر است.
این تغییر کد کلاس را تکمیل می کند. حال ، بیایید کد EA را نهایی کنیم. در اینجا ما نیز موارد اضافی خواهیم داشت. ابتدا بیایید عملکردی را ایجاد کنیم که بسته به یک پارامتر به دست آمده ، نمونه جدیدی از کلاس مناسب ایجاد کند. کد عملکرد بسیار ساده است و فقط در استفاده از سوئیچ فراخوانی یک روش ایجاد کلاس مورد نیاز است.
تغییرات زیر در عملکرد ONTICK ایجاد می شود. آنها فقط باید با بلوک جستجوی الگوهای جدید انجام دهند. بلوک جستجوی نقاط ورود به بازار در الگوهای موجود در حال حاضر نیازی به تغییر به دلیل وراثت کلاس ندارد.
در اینجا ما حلقه را ترتیب می دهیم تا به طور مداوم الگوهای یک نوع و سپس از تاریخ دیگر را جستجو کنیم. برای انجام این کار ، امکان فراخوانی عملکردی را که به تازگی در نقاط ایجاد کلاس جدید اضافه شده است ، فعال کنید. شاخص عبور فعلی حلقه در پارامترها به آن ارسال می شود. الگوریتم عملکرد EA بدون تغییر باقی مانده است.
این تغییر کد EA را تکمیل می کند. کد EA کامل را در پرونده پیوست شده Twopatterns. mq5 پیدا کنید.
پس از ایجاد تغییرات لازم ، آزمون را با همان پارامترها انجام خواهیم داد.
نتایج آزمون نشان می دهد که چگونه استراتژی ها یکدیگر را تکمیل می کنند. EA 128 معاملات (60 ٪ از آنها سودآور بود) در دوره آزمون انجام داد. در نتیجه ، فاکتور سود EA 1. 94 را تشکیل می داد ، در حالی که ضریب بازیابی 3. 85 بود. نتایج کامل تست در تصاویر زیر نمایش داده می شود.
5. آزمایش سیستم تجارت
به منظور آزمایش ثبات عملکرد سیستم تجارت ، ما آن را بر روی 6 نماد اصلی بدون تغییر پارامترهای آزمون آزمایش کرده ایم.
نماد | سود | عامل سود |
---|---|---|
یورو | 743. 57 | 1. 94 |
اروغپی | 125. 13 | 1. 47 |
GBPJPy | 33. 93 | 1. 04 |
EURGBP | -191. 7 | 0. 82 |
GBPUSD | -371. 05 | 0. 60 |
usdjpy | -657. 38 | 0. 31 |
همانطور که از نتایج جدول بالا مشاهده می شود ، EA در نیمی از نمادهای آزمایش شده سودآور بود ، در حالی که دیگران ضرر و زیان نشان دادند. این واقعیت یک بار دیگر تأیید می کند که نمودار قیمت هر نماد نیاز به یک رویکرد فردی دارد و قبل از استفاده از EA ، لازم است آن را برای شرایط خاص بهینه سازی کنید. به عنوان مثال ، بهینه سازی پشتی از دست دادن توقف اجازه افزایش سود در چهار و کاهش ضرر در دو نماد را می دهد. این باعث افزایش سودآوری کلی سبد نماد شد. نتایج در جدول زیر نمایش داده می شود.
نماد | سود | عامل سود | از دست دادن از دست دادن |
---|---|---|---|
یورو | 1020. 28 | 1. 78 | 350 |
اروغپی | 532. 54 | 1. 52 | 400 |
GBPJPy | 208. 69 | 1. 17 | 300 |
EURGBP | 91. 45 | 1. 05 | 450 |
GBPUSD | -315. 87 | 0. 55 | 100 |
usdjpy | -453. 08 | 0. 33 | 100 |
6. تنظیم سیگنال های معاملاتی بر روی نمادهای ضرر
با توجه به نتایج آزمون EA در بخش قبلی ، دو نماد وجود دارد که نتایج منفی را نشان می دهد. اینها GBPUSD و USDJPY هستند. این ممکن است نشان دهنده قدرت کافی الگوهای در نظر گرفته شده برای معکوس روند بر روی این نمادها باشد. حرکت پایدار به سمت کاهش تعادل منجر به ایده معاملات در طی یک سیگنال ورودی می شود.
بنابراین سطح هدف برای یک معامله معکوس چیست و از کجا باید ضرر متوقف کنیم؟برای پاسخ به این سؤالات ، بیایید ببینیم که در نتیجه آزمون قبلی چه چیزی را بدست آورده ایم. این آزمایش نشان داد که معاملات باز بیشتر با از دست دادن توقف بسته شده است. قیمت به سود اول به ندرت رسید. بنابراین ، با معکوس کردن یک معامله ، می توانیم ضرر توقف و سود 1 را تغییر دهیم.
یک مطالعه دقیق از نمودارهای معامله از دست دادن نشان داد که کانال ها اغلب در محدوده قیمت سیگنال های کاذب تشکیل می شوند ، در حالی که در تجزیه و تحلیل گرافیکی استاندارد ، کانال ها الگوهای ادامه روند هستند. بنابراین ، ما می توانیم انتظار داشته باشیم که یک حرکت قیمت قابل مقایسه با مورد قبلی باشد. در حین مراجعه به کد روش CheckSignal (کلاس جستجوی الگوی) ، به راحتی می توانیم ببینیم که مقیاس حرکت قبلی توسط سود Take 2 ثابت شده است. همه ما نیاز داریم که سود 2 را در همان فاصله تنظیم کنیدقیمت فعلی اما در جهت دیگری.
این به ما اجازه می دهد تا با تغییر کد EA ، به جای تغییر کد کلاس های جستجوی الگوی ، معاملات را معکوس کنیم.
برای اجرای چنین عملکردی ، پارامتر ReverseTrade را به EA اضافه کنید تا به عنوان عملکرد بازرگانی معکوس بر روی پرچم OF/OFF استفاده شود.
با این حال ، یک پارامتر واحد نمی تواند منطق افتتاح معامله را تغییر دهد. بیایید در عملکرد CheckPattern تغییراتی ایجاد کنیم. متغیر دما را به بلوک اعلامیه متغیرهای محلی اضافه کنید. این متغیر در هنگام تبادل ضرر توقف و قیمت 1 سود به عنوان یک ذخیره موقت استفاده می شود.
در مرحله بعد ، بررسی وضعیت پرچم ReverseTrade را به بدنه سوئیچ اضافه کنید. اگر پرچم روی کاذب تنظیم شده است ، از منطق قدیمی استفاده کنید. هنگام استفاده از معاملات معکوس ، ضرر توقف را تغییر دهید و ارزش سود 1 را بگیرید. در مرحله بعد ، محاسبه مجدد مقادیر سود را در نقاط نماد بدست می آورد و مقادیر به دست آمده را به کلاس ClimittakeProfit منتقل می کند. پس از گذشت موفقیت آمیز همه تکرارها ، معامله ای بر خلاف سیگنال دریافت شده را باز کنید.
این بهبود کد EA را تکمیل می کند. کد کامل همه کلاس ها و عملکرد در ضمیمه ارائه شده است.
بیایید عملکرد معاملات معکوس را آزمایش کنیم. آزمایش اول با استفاده از همان بازه زمانی و بازه زمانی در GBPUSD انجام می شود. پارامترهای EA در تصاویر زیر ارائه شده است.
نتایج آزمون کارآیی محلول را نشان داد. در بازه زمانی آزمایش شده ، EA (با عملکرد معاملات معکوس) سود را نشان داد. از 127 معاملات انجام شده ، 95 (75. 59 ٪) با سود بسته شدند. ضریب سود شامل 2. 35 بود. نتایج کامل تست در تصاویر زیر نمایش داده می شود.
برای رفع نتیجه به دست آمده ، یک آزمایش مشابه را در USDJPY انجام دهید. پارامترهای تست در تصاویر ارائه شده است.
آزمون دوم عملکرد معکوس نیز موفقیت آمیز بود. از 108 معاملات ، 66 (61. 11 ٪) با سود بسته شدند و ضریب سود 2. 45 بود. نتایج کامل تست در تصاویر نمایش داده می شود.
این آزمون نشان داده است که استراتژی های از دست دادن به لطف وارونگی موقعیت ممکن است به موارد سودآور تبدیل شود. با این حال ، به خاطر داشته باشید که یک استراتژی سودآور در یک نماد ممکن است همیشه در یک جفت دیگر سودآور نباشد.
نتیجه
این مقاله زنده ماندن استراتژی ها را بر اساس استفاده از الگوهای گرافیکی استاندارد نشان داده است. ما موفق شده ایم در طی یک دوره زمانی طولانی سود کسب و کار EA را بر روی نمادهای مختلف توسعه دهیم. با این حال ، هنگام استفاده از استراتژی های معاملاتی ، همیشه باید مشخصات هر نماد را در نظر بگیریم ، زیرا یک استراتژی ممکن است در برخی شرایط و از دست دادن در شرایط دیگر سودآور باشد. معکوس کردن معاملات ممکن است گاهی اوقات وضعیت را بهبود بخشد ، اگرچه باید شرایط معاملاتی در نظر گرفته شود.
به طور طبیعی ، اینها تنها اولین اقدامات در ساخت یک سیستم معاملاتی سودآور است. EA ممکن است بر اساس پارامترهای دیگر بهینه شود. علاوه بر این ، عملکرد آن ممکن است تکمیل شود (انتقال از دست دادن توقف به "Breakeven" ، توقف دنباله و غیره). البته ، من توصیه نمی کنم از EA بر روی نمادهای شناخته شده که از دست دادن هستند استفاده کنند.
امیدوارم تجربه من به شما در تدوین استراتژی معاملاتی خود کمک کند.
EA ارائه شده در مقاله فقط به عنوان نمایشی از استراتژی است. باید تصفیه شود که در بازارهای واقعی استفاده شود.
منابع
- الگوهای معکوس: آزمایش الگوی دو بالا/پایین
- با استفاده از سفارشات محدود به جای اینکه سود را بدون تغییر کد اصلی EA بدست آورید
برنامه های مورد استفاده در مقاله
# | نام | نوع | شرح |
---|---|---|---|
1 | zigzag. mqh | کتابخانه کلاس | کلاس نشانگر Zig Zag |
2 | trends. mqh | کتابخانه کلاس | کلاس جستجوی روند |
3 | الگوی. mqh | کتابخانه کلاس | کلاس برای کار با الگوهای دوتایی/پایین |
4 | hs_pattern | کتابخانه کلاس | کلاس برای کار با الگوهای سر و شانه |
5 | limittakeprofit. mqh | کتابخانه کلاس | کلاس برای جایگزینی سفارش با سفارشات محدودیت سود کسب کنید |
6 | header. mqh | کتابخانه | پرونده هدر EA |
7 | head-shollers. mq5 | مشاور متخصص | EA بر اساس استراتژی سر و شانه |
8 | twopatterns. mq5 | مشاور متخصص | EA با ترکیب هر دو الگوی |
هشدار: کلیه حقوق این مواد توسط Metaquotes Ltd. کپی یا چاپ مجدد این مواد به طور کامل یا جزئی محفوظ است.