تجزیه و تحلیل انجام شده در مقاله "روند چه مدت است؟" ، نشان می دهد که قیمت 60 ٪ از زمان در روند باقی مانده است. این به معنای باز کردن موقعیت در ابتدای یک روند بهترین نتیجه است. جستجوی نقاط معکوس روند تعداد زیادی از الگوهای معکوس را ایجاد کرده است. دو بالا/پایین یکی از مشهورترین و اغلب مورد استفاده است.
1. جنبه های نظری شکل گیری الگوی
الگوی دو بالا/پایین را می توان اغلب در نمودار قیمت یافت. شکل گیری آن از نزدیک با تئوری سطح تجارت ارتباط دارد. این الگوی در پایان یک روند شکل می گیرد که قیمت با سطح پشتیبانی یا مقاومت (بسته به حرکت قبلی) برآورده شود. پس از تصحیح در طی آزمایش مکرر سطح ، به جای اینکه از طریق آن شکسته شود ، دوباره به عقب می چرخد.
در این مرحله ، معامله گران ضد روند با بازپرداخت بازپرداخت از سطح و فشار قیمت به سمت تصحیح می شوند. در حالی که جنبش تصحیح شتاب می یابد ، معامله گران پیروی از روند با رفع سود یا بسته شدن موقعیت های ضرر و زیان که هدف از بین بردن سطح بودند ، از بازار خارج می شوند. این حرکت حتی بیشتر منجر به ظهور یک روند جدید می شود.

هنگام جستجوی الگویی در یک نمودار ، هیچ نکته ای در جستجوی تطبیق دقیق تاپ ها/پایین ها وجود ندارد. انحراف سطح بالا/پایین طبیعی در نظر گرفته می شود. فقط اطمینان حاصل کنید که قله ها در همان سطح پشتیبانی/مقاومت قرار دارند. قابلیت اطمینان الگوی بستگی به استحکام یک سطح است که بر اساس آن است.
2. استراتژی تجارت الگوی
محبوبیت الگوی باعث ایجاد چندین استراتژی مربوط به آن شد. در اینترنت ، حداقل سه نقطه ورود متفاوت برای تجارت این الگوی وجود دارد.
2. 1مورد 1
اولین نقطه ورود بر اساس دستیابی به موفقیت گردنبند است. از دست دادن توقف فراتر از خط بالا/پایین تنظیم شده است. رویکردهای مختلفی برای تعریف "دستیابی به موفقیت گردن" وجود دارد. معامله گران ممکن است از یک نوار بسته در زیر گردن و همچنین موردی که برای فاصله ثابت از طریق گردنبند شکسته می شود ، استفاده کنند. هر دو رویکرد جوانب مثبت و منفی خود را دارند. در صورت حرکت تیز ، یک شمع ممکن است در فاصله کافی از گردن بسته شود و الگوی را ناکارآمد کند.

اشکال این رویکرد سطح ضرر نسبتاً بالایی است که باعث کاهش نسبت سود/ریسک استراتژی مورد استفاده می شود.
2. 2مورد 2
نقطه ورود دوم بر اساس تئوری سطح آینه است ، هنگامی که گردنبند به مقاومت در برابر پشتیبانی و برعکس تبدیل می شود. در اینجا ورودی زمانی ساخته می شود که قیمت پس از شکسته شدن به خط گردن برگردد. در این حالت ، از دست دادن توقف فراتر از افراط و تفریط آخرین تصحیح قرار می گیرد که به طور قابل توجهی سطح از دست دادن توقف را کاهش می دهد. متأسفانه ، قیمت همیشه بعد از شکستن آن ، گردنبند را آزمایش نمی کند ، بنابراین تعداد ورودی ها را کاهش می دهد.

2. 3مورد 3
نقطه ورود سوم بر اساس تئوری روند است. این با دستیابی به موفقیت از خط روند ساخته شده از نقطه شروع حرکت تا افراط و تفریط گردنبند تعریف شده است. همانطور که در مورد اول ، یک توقف از دست دادن فراتر از خط بالا/پایین تنظیم شده است. ورود زودرس در مقایسه با اولین نقطه ورود ، سطح از دست دادن توقف پایین تر را فراهم می کند. همچنین در مقایسه با مورد دوم سیگنال های بیشتری را ارائه می دهد. در عین حال ، چنین نقطه ورود سیگنال های کاذب بیشتری را نشان می دهد ، زیرا یک کانال ممکن است بین خطوط افراطی و گردن شکل بگیرد ، یا ممکن است الگوی پنالتی وجود داشته باشد. هر دو مورد حاکی از ادامه روند است.

هر سه استراتژی دستور می دهند در سطح برابر با فاصله بین افراطی و یک گردنبند از سطح خارج شوند.

همچنین ، هنگام تعیین الگوی موجود در نمودار ، باید توجه داشته باشید که دو بالا/پایین باید به وضوح از حرکت قیمت متمایز شود. هنگام توصیف الگوی ، یک محدودیت اغلب اضافه می شود: حداقل باید شش میله بین دو تاپ/پایین وجود داشته باشد.
علاوه بر این ، از آنجا که شکل گیری الگوی مبتنی بر تئوری سطح قیمت است ، تجارت الگوی نباید با آن مغایرت داشته باشد. بنابراین ، بر اساس هدف در نظر گرفته شده ، گردن نباید پایین تر از سطح FIBO 50 حرکت اولیه باشد. علاوه بر این ، برای فیلتر کردن سیگنال های کاذب ، ممکن است حداقل سطح اصلاح اول (تشکیل گردنبند) را به عنوان شاخصی از قدرت سطح قیمت اضافه کنیم.
3. ایجاد EA
3. 1جستجوی افراط و تفریط
ما شروع به توسعه EA از بلوک جستجوی الگوی خواهیم کرد. بیایید از نشانگر Zigzag از تحویل استاندارد Metatrader 5 برای جستجوی افراط و فروش قیمت استفاده کنیم. قسمت محاسبه شاخص را به کلاس منتقل کنید همانطور که در مقاله شرح داده شده است [1]. این شاخص حاوی دو بافر شاخص است که حاوی ارزش قیمت در نقاط افراطی است. بافرهای نشانگر حاوی مقادیر خالی بین افراط و تفریط هستند. به منظور ایجاد دو بافر شاخص حاوی مقادیر خالی متعدد ، آنها توسط آرایه ای از ساختارهای حاوی اطلاعاتی در مورد افراط و تفریط جایگزین شدند. ساختار ذخیره اطلاعات در مورد افراطی به شرح زیر است.
اگر حداقل یک بار از نشانگر Zigzag استفاده کرده اید ، می دانید که هنگام جستجوی پارامترهای بهینه ، چه تعداد سازش را باید انجام دهید. مقادیر پارامتر خیلی کوچک یک حرکت بزرگ را به قسمت های کوچک تقسیم می کنند ، در حالی که مقادیر پارامتر خیلی بزرگ از حرکات کوتاه پرش می کنند. الگوریتم جستجوی الگوهای گرافیکی از کیفیت یافتن افراط و تفریط بسیار خواستار است. در حالی که سعی در پیدا کردن یک میانه دارم ، تصمیم گرفتم از این شاخص با مقادیر پارامتر کوچک استفاده کنم و یک روبنا اضافی را با ترکیب حرکات یک طرفه با اصلاحات کوتاه در یک حرکت ایجاد کنم.
کلاس Ctrends برای حل این مسئله توسعه یافته است. هدر کلاس در زیر ارائه شده است. در طول اولیه سازی ، مرجع به شیء کلاس شاخص و حداقل مقدار حرکتی که به عنوان یک روند ادامه در نظر گرفته می شود به کلاس منتقل می شود.
برای به دست آوردن داده در مورد افراط و تفریط ، روشهای زیر در کلاس ارائه شده است:
- ExtremumbyTime - برای زمان مشخص شماره Extremum را در پایگاه داده دریافت کنید ،
- Extremum - Retu Extremum در یک موقعیت مشخص در پایگاه داده ،
- ISHIGH - اگر یک افراط مشخص در بالا و نادرست باشد اگر پایین باشد ، درست است.
بلوک اطلاعات عمومی دارای روش هایی است که تعداد کل افراط و تفریط ذخیره شده ، نماد و بازه زمانی استفاده شده را باز می گرداند.
منطق کلاس اصلی در روش محاسبه اجرا می شود. بیایید نگاهی دقیق تر به آن بیندازیم.
در ابتدای روش ، ارتباط مرجع به شیء کلاس نشانگر و وجود افراط و تفریط موجود توسط شاخص را بررسی کنید.
در مرحله بعد ، تعداد افراط و تفریط های فرآوری شده را تعریف کنید. اگر همه افراط و تفریط پردازش می شوند ، با نتیجه واقعی از روش خارج شوید.
پس از آن ، مقدار لازم از افراط و تفریط را از کلاس شاخص درخواست کنید.
اگر تا به امروز هیچگونه افراط و تفریحی در پایگاه داده وجود نداشته است ، با فراخوانی روش AddTrendPoint ، قدیمی ترین افراطی را به پایگاه داده اضافه کنید.
در مرحله بعد ، حلقه را با تکرار بر روی همه افراط و تفریط های بارگیری شده ترتیب دهید. Extremums قبلی قبل از آخرین ذخیره شده از آن رد شده است.
در مرحله بعدی ، بررسی کنید که آیا نقاط شدید یک طرفه هستند یا خیر. اگر یک افراطی جدید مورد قبلی را دوباره ترسیم می کند ، داده ها را به روز کنید.
برای نقاط شدید مخالف ، بررسی کنید که آیا حرکت جدید ادامه روند قبلی است یا خیر. اگر بله ، داده ها را در مورد افراط و تفریط به روز کنید. اگر خیر ، با فراخوانی روش AddTrendPoint ، داده ها را در قسمت افراطی اضافه کنید.
کد کامل همه کلاس ها و روش های آنها در ضمیمه موجود است.
3. 2جستجوی الگو
پس از تعریف قیمت افراطی ، بلوک را برای جستجوی نقاط ورود به بازار بسازید. این کار را به دو مرحله زیر تقسیم کنید:
- یک الگوی ورود بالقوه بازار را جستجو کنید.
- نقطه ورود بازار.
این قابلیت به کلاس CPTte اختصاص داده می شود. عنوان آن در زیر ارائه شده است.
این الگوی با استفاده از چهار افراط مجاور تعریف شده است. داده های مربوط به آنها در S_STARTTREND ، S_STARTCORRECTION ، S_ENDCORRECTION و S_ENDTREND STRREND ذخیره می شود. برای شناسایی الگوی ، ما به حداقل و حداکثر سطح تصحیح نیز نیاز خواهیم داشت که در متغیرهای D_Mincorrection و D_MaxCorration ذخیره می شوند. ما از نمونه کلاس Ctrends که قبلاً ایجاد شده بود ، افراط و تفریط به دست خواهیم آورد.
در حین اولیه سازی کلاس ، نشانگر را به سطح کلاس Ctrends و سطح تصحیح مرزی منتقل می کنیم. در داخل روش ، اعتبار نشانگر عبور داده شده را بررسی کنید ، اطلاعات دریافت شده را ذخیره کرده و ساختارهای افراطی را پاک کنید.
جستجوی الگوهای بالقوه در روش جستجو () انجام می شود. این روش در پارامترها تاریخ شروع جستجو را دریافت می کند و ارزش منطقی را برای اطلاع رسانی از نتایج جستجو باز می گرداند. بیایید الگوریتم متد را با جزئیات در نظر بگیریم.
ابتدا ارتباط اشاره گر را به شیء کلاس Ctrends و حضور افراط و تفریط ذخیره شده بررسی کنید. در صورت نتیجه منفی ، از روش با نتیجه کاذب خارج شوید.
در مرحله بعد ، نقطه شدید مربوط به تاریخ مشخص شده در ورودی ها را تعریف کنید. اگر هیچ افراطی یافت نشد ، با نتیجه کاذب از روش خارج شوید.
در مرحله بعد ، حلقه را برای تکرار بیش از همه افراط و تفریط با تاریخ مشخص و تا آخرین مورد شناسایی شده ترتیب دهید. اول ، ما چهار افراط متوالی به دست می آوریم. اگر حداقل یکی از افراط و تفریط ها به دست نیامده است ، به حالت افراطی بعدی بروید.
در مرحله بعد، بررسی کنید که آیا اکستریم ها با الگوی لازم مطابقت دارند یا خیر. اگر این کار را نکردند، به سمت افراط های بعدی بروید. اگر الگو شناسایی شد، پرچم را روی true قرار دهید و با همان نتیجه از روش خارج شوید.
مرحله بعدی تشخیص نقطه ورود است. از حالت دوم برای آن استفاده خواهیم کرد. برای کاهش ریسک عدم بازگشت قیمت به خط گردن، تایید سیگنال را در بازه زمانی پایین تر جستجو می کنیم.
برای پیاده سازی این قابلیت، اجازه دهید متد CheckSignal() را ایجاد کنیم. جدا از خود سیگنال، روش سطوح توقف ضرر و برداشت سود را برمی گرداند. بنابراین در پارامترهای متد از اشاره گر به متغیرها استفاده می کنیم.
در ابتدای روش، پرچم را برای وجود الگوی شناسایی شده قبلی بررسی کنید. اگر الگو پیدا نشد، از روش با نتیجه "نادرست" خارج شوید.
سپس زمان بسته شدن شمع تشکیل الگو را مشخص کرده و داده های تایم فریم مورد نظر خود را از ابتدای تشکیل الگو تا لحظه فعلی بارگذاری کنید.
پس از آن، حلقه را مرتب کنید که در آن پیشرفت خط گردن، اصلاح شمع و بسته شدن شمع فراتر از خط گردن را در نوار جهت حرکت مورد انتظار بررسی می کنیم.
من برخی محدودیت های دیگر را در اینجا اضافه کرده ام:
- اگر قیمت از سطح بالا/پایین عبور کند، الگو نامعتبر در نظر گرفته می شود.
- اگر قیمت به سطح سود مورد انتظار برسد، الگو نامعتبر در نظر گرفته می شود.
- سیگنال ورود به بازار در صورتی نادیده گرفته می شود که بیش از دو شمع قبل از باز کردن موقعیت از زمان فعال شدن سیگنال تشکیل شده باشد.
پس از تشخیص سیگنال ورود به بازار، نوع سیگنال ("-1" - فروش، "1" - خرید) و سطوح معاملات را مشخص کنید. استاپ لاس در حداکثر عمق اصلاح نسبت به خط گردن پس از شکستن آن تنظیم می شود. دو سطح را برای کسب سود تعیین کنید:
1. در 90% از خط اکسترموم تا خط گردن در جهت موقعیت.
2. در 90٪ از حرکت روند قبلی.
محدودیت را اضافه کنید: سطح سود برداشت اول نمی تواند از سطح دوم تجاوز کند.
کد کامل تمامی کلاس ها و متدها در پیوست موجود است.
3. 3. در حال توسعه EA
پس از کار مقدماتی، تمام بلوک ها را در یک EA جمع کنید. متغیر خارجی را اعلام کنید و آنها را به سه بلوک تقسیم کنید:
- پارامترهای شاخص ZigZag.
- پارامترها برای جستجوی الگوها و نقاط ورودی؛
- پارامترهای انجام عملیات معاملاتی
در متغیرهای جهانی ، آرایه ای را برای ذخیره نشانگرها به الگوی اشیاء ، نمونه کلاس عملیات معاملاتی ، نمونه کلاس جستجو در جایی که نشانگر به نمونه کلاس پردازش شده ذخیره می شود و متغیر برای ذخیره الگوی بعدی است ، اعلام کنید. زمان شروع.
برای فعال کردن توانایی تنظیم دو سود به طور همزمان ، از فناوری ارائه شده در مقاله استفاده کنید [2].
تمام اشیاء لازم را در عملکرد oninit () آغاز کنید. از آنجا که ما هرگز نمونه های کلاس Czigzag و Ctrends را اعلام نکردیم ، ما آنها را به سادگی آغاز می کنیم و نشانگرهایی را به این اشیاء به آرایه خود اضافه می کنیم. در صورت خطای اولیه سازی ، در هر مرحله از عملکرد با نتیجه init_failed خارج شوید.
موارد اشیاء کاربردی را در عملکرد Ondeinit () پاک کنید.
طبق معمول ، عملکرد اصلی در عملکرد ONTICK اجرا می شود. می توان آن را به دو بلوک تقسیم کرد:
1. بررسی سیگنال های ورود به بازار در الگوهای قبلاً شناسایی شده. هر بار که یک شمع جدید در یک بازه زمانی کوچک از جستجوی تأیید سیگنال ظاهر می شود ، راه اندازی می شود.
2. جستجوی الگوهای جدید. هر بار که یک شمع جدید در یک بازه زمانی کار ظاهر می شود (مشخص شده برای شاخص) راه اندازی می شود.
در ابتدای عملکرد ، حضور یک نوار جدید را در یک بازه زمانی تأیید نقطه ورود بررسی کنید. اگر نوار تشکیل نشده است ، تا کنه بعدی از عملکرد خارج شوید. لازم به ذکر است که این رویکرد فقط درصورتی که بازه زمانی تأیید یک نقطه ورود از بازه زمانی کار تجاوز نمی کند ، به درستی کار می کند. در غیر این صورت ، به جای خروج از عملکرد ، باید به بلوک جستجوی الگوی بروید.
اگر یک نوار جدید ظاهر شد ، حلقه را برای بررسی تمام الگوهای ذخیره شده قبلی برای حضور سیگنال ورود به بازار ترتیب دهید. ما دو شیء آرایه اول را برای سیگنال ها بررسی نخواهیم کرد ، زیرا نشانگرها را در مواردی از کلاسهای جستجوی افراطی در این سلول ها ذخیره می کنیم. اگر نشانگر ذخیره شده نامعتبر باشد یا عملکرد بررسی سیگنال نادرست باز می گردد ، نشانگر از آرایه خارج می شود. سیگنال های الگوی در عملکرد CheckPatte () بررسی می شوند. الگوریتم آن در زیر ارائه خواهد شد.
پس از بررسی الگوهای قبلاً شناسایی شده ، وقت آن است که به بلوک دوم بروید - جستجوی الگوهای جدید. برای انجام این کار ، در دسترس بودن یک نوار جدید در بازه زمانی کار را بررسی کنید. اگر یک نوار جدید تشکیل نشده است ، از عملکردی که منتظر کنه جدید است ، خارج شوید.
هنگامی که یک نوار جدید ظاهر می شود ، تاریخ اولیه جستجو برای الگوهای را تعریف کنید (با توجه به عمق تاریخ تجزیه و تحلیل مشخص شده در پارامترها). در مرحله بعد ، ارتباط اشاره گر به شیء کلاس Cpatte را بررسی کنید. اگر نشانگر نامعتبر است ، یک نمونه کلاس جدید ایجاد کنید.
پس از آن ، روش جستجو برای الگوهای بالقوه را در یک حلقه فراخوانی کنید. در صورت جستجوی موفقیت آمیز ، تاریخ شروع جستجوی الگوی جدید را تغییر داده و حضور الگوی شناسایی شده را در آرایه ای از موارد قبلاً یافت شده بررسی کنید. اگر این الگوی از قبل در آرایه وجود دارد ، به جستجوی جدید بروید.
اگر الگوی جدیدی پیدا شد ، با فراخوانی عملکرد CheckPatte () سیگنال ورود به بازار را بررسی کنید. پس از آن ، در صورت لزوم الگوی را در آرایه ذخیره کنید و نمونه کلاس جدید را برای جستجوی بعدی آغاز کنید. حلقه ادامه می یابد تا روش جستجو () در طی یکی از جستجوهای بعدی نادرست برگردد.
بیایید نگاهی به الگوریتم عملکرد CheckPatte () داشته باشیم تا تصویر کامل شود. این روش نشانگر را به نمونه کلاس CPate در پارامترها دریافت می کند و مقدار منطقی نتیجه عملیات را برمی گرداند. اگر عملکرد نادرست برگردد ، الگوی تجزیه و تحلیل شده از آرایه اشیاء ذخیره شده حذف می شود.
در ابتدای عملکرد ، با روش جستجوی سیگنال ورود به بازار کلاس Cpatte تماس بگیرید. در صورت عدم موفقیت چک ، عملکرد را با نتیجه کاذب خارج کنید.
اگر جستجوی سیگنال ورود به بازار موفقیت آمیز است ، سطح معاملاتی را تعیین کرده و طبق سیگنال سفارش ورود به بازار را ارسال کنید.
اگر موقعیت با موفقیت باز شد ، عملکرد را با نتیجه کاذب خارج کنید. این کار به منظور حذف الگوی استفاده شده از آرایه انجام می شود. این به ما اجازه می دهد تا از باز شدن مجدد موقعیت در همان الگوی خودداری کنیم.
کد کامل کلیه روشها و توابع در ضمیمه ارائه شده است.
4- آزمایش استراتژی
اکنون که EA توسعه یافته است ، وقت آن است که کار خود را در مورد داده های تاریخ بررسی کنیم. این آزمایش در دوره 9 ماه سال 2018 برای EURUSD انجام خواهد شد. جستجوی الگوهای در M30 انجام می شود ، در حالی که نقاط ورود به موقعیت در м5 شناسایی می شوند.


نتایج آزمون توانایی EA در تولید سود را نشان داد. EA در مدت زمان آزمایش 90 معاملات (70 مورد از آنها سودآور) انجام داد. ضریب سود 2. 02 است ، ضریب بازیابی 4. 77 است که نشانگر امکان استفاده از EA در حساب های واقعی است. نتایج آزمون کامل در زیر نمایش داده می شود.

نتیجه
در این مقاله ، ما EA را بر اساس الگوی واژگونی روند دو برابر/پایین توسعه داده ایم. آزمایش EA در تاریخچه تاریخچه نتایج قابل قبول و توانایی EA در تولید سود را تأیید کرده است که امکان استفاده از الگوی دوتایی/پایین به عنوان یک سیگنال معکوس روند کارآمد هنگام جستجوی نقاط ورود به بازار است.
منابع
برنامه های مورد استفاده در مقاله
| # | نام | نوع | شرح |
| 1 | zigzag. mqh | کتابخانه کلاس | کلاس نشانگر زیگ زاگ |
| 2 | trends. mqh | کتابخانه کلاس | کلاس جستجوی روند |
| 3 | الگوی. mqh | کتابخانه کلاس | کلاس برای کار با الگوهای |
| 4 | limittakeprofit. mqh | کتابخانه کلاس | کلاس برای جایگزینی سفارش با سفارشات محدودیت سود کسب کنید |
| 5 | header. mqh | کتابخانه | پرونده هدر EA |
| 6 | doubletop. mq5 | مشاور متخصص | EA بر اساس استراتژی دو بالا/پایین |
هشدار: کلیه حقوق این مواد توسط Metaquotes Ltd. کپی یا چاپ مجدد این مواد به طور کامل یا جزئی محفوظ است.< SPAN> در این مقاله ، ما EA را بر اساس الگوی واژگونی روند دو برابر/پایین توسعه داده ایم. آزمایش EA در تاریخچه تاریخچه نتایج قابل قبول و توانایی EA در تولید سود را تأیید کرده است که امکان استفاده از الگوی دوتایی/پایین به عنوان یک سیگنال معکوس روند کارآمد هنگام جستجوی نقاط ورود به بازار است.
آموزش کار در فارکس...
ما را در سایت آموزش کار در فارکس دنبال می کنید
برچسب :
نویسنده : Mihayloo
بازدید : <-PostHit->
تاريخ : سه
شنبه
23 اسفند
1401 ساعت: 16:13