هر معامله گر مطمئناً نشانگر زیگزاگ را برای تجزیه و تحلیل حرکات قیمت دامنه داده شده یا بیشتر می داند. یک خط زیگزاگ یک خط شکسته است که گره های آن در اوج و پایین نمودار قیمت قرار دارند.
تغییرات زیادی در این شاخص وجود دارد: 1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7 ، 8 ، 9 ، 10 ، 11 ، 12 ، 13 ، 14 ، 15 ، 16. با این حال ، بسیاری از توسعه دهندگان برنامه MQL5 مشتاق هستنددر ایجاد زیگزاگ "ایده آل" خود. نقاط ضعف اصلی نشانگر زیگزاگ تأخیر ، علائم نادرست گره های مشکوک (نوار خارجی) و عملکرد رضایت بخش است.
به نظر من ، ظریف ترین اجرای زیگزاگ توسط یوری کولیکوف (یوریچ) پیشنهاد شده است. علاوه بر این ، مقالات بسیار خوبی MQL4 وجود دارد ، مانند "یادداشت های لیمن: زیگزاگ". و "نمایش باید ادامه یابد ، یا یک بار دیگر درباره زیگزاگ". به نظر می رسد این موضوع به طور قابل توجهی مورد کاوش قرار گرفته است که تعداد زیادی از نشریات در دسترس هستند. با این وجود چیزی مغناطیسی در مورد آن وجود دارد. اکنون ، این علاقه من را نیز به ویژه در امکان ایجاد یک شاخص پیشرفته زیگزاگ جلب کرده است.
در این مقاله روشی برای ایجاد یک زیگزاگ پیشرفته با استفاده از شاخص پاکت نامه شرح داده شده است. فرض بر این است که ما می توانیم ترکیبی خاص از پارامترهای ورودی را برای یک سری پاکت ها پیدا کنیم ، به این ترتیب بیشتر گره های زیگزاگ در محدوده باند پاکت ها قرار دارند.
روشی برای ایجاد یک شاخص پیشرفته زیگزاگ
ما یک هدف را تعیین خواهیم کرد: برای یافتن مختصات دو گره - جریان و گره پیش بینی شده (شکل 1). گره فعلی گره ای است که هنوز تکمیل نشده است که مختصات آنها هنوز در جستجوی یا تنظیم است. علاوه بر این ، همیشه در نوار فعلی (صفر) قرار دارد. در حالی که در آینده قرار دارد ، یک گره پیش بینی شده باید سطح تخمین زده شده از گره زیگزاگ بعدی را نشان دهد.

شکل 1. پیش بینی گره های جدید زیگزاگ: گره فعلی و گره بعدی.
بنابراین هدف تعیین شده است و ما ایده ای در مورد چگونگی استفاده از پاکت های متوسط در حال حرکت به عنوان پایه ای برای ساختن یک شاخص پیشرفته داریم (شکل 2). ما به دنبال پاکت نامه هایی خواهیم بود که انحراف از گره های زیگزاگ حداقل است. کاملاً منطقی به نظر می رسد که پاکت های قله های Zigzag و فرورفتگی ها باید به طور جداگانه جستجو شوند.

شکل 2. شاخص های زیگزاگ و پاکت های متوسط حرکت.
برای افزایش اهمیت آماری پیش بینی ، به جای استفاده از تنها یک یا حتی 10 شاخص پاکت نامه ، باید از استخر 100 یا بیشتر شاخص با داده های ورودی مختلف استفاده کنیم. آنها در دوره میانگین خط نشانگر اصلی و قیمت مورد استفاده متفاوت خواهند بود (برای قله ها بالا و برای فرورفتگی). بیایید نمادها و فرمول های زیر را معرفی کنیم:
- ZZ - نشانگر Zigzag ؛
- env - خط اصلی شاخص پاکت نامه (همزمان با نشانگر IMA).
- پاکت نامه (i) - مقدار خط اصلی نشانگر پاکت نامه در نوار ITH ؛
- ZZ (بالا) - مقدار اوج زیگزاگ ؛
- ZZ (کم) - مقدار Zigzag Trrugh ؛
- env (بالا) - مقدار خط اصلی شاخص پاکت نامه مربوط به اوج زیگزاگ.
- env (کم) - مقدار خط اصلی نشانگر پاکت نامه مربوط به یک فرورفتگی زیگزاگ.
- n_high - تعداد قله های زیگزاگ ؛
- N_LOW - تعداد درآمدهای زیگزاگ.

ما دو استخر شاخص داریم: یکی برای قله ها و دیگری برای فرورفتگی (حدود 100 شاخص در هر یک). ما انحراف گره های زیگزاگ را از خط اصلی نشانگر پاکت نامه برای هر شاخص در استخر محاسبه می کنیم و میانگین حسابی انحراف را برای هر یک از نشانگر استخر با استفاده از فرمول های فوق می یابیم. شکل زیر نمودار انحراف را با توجه به گره های مشخص شده ZZ از خط اصلی ENV برای یک نشانگر نشان می دهد.

شکل 3. نمودار انحراف گره های ZZ از Env.
میانگین حسابی از انحرافات برای تعیین سطحی که باید خط اصلی نشانگر پاکت نامه برای ترسیم باند پاکت منتقل شود ، استفاده می شود. بنابراین ، ما به میانگین حسابی انحراف از قله های زیگزاگ نیاز خواهیم داشت تا خط بالایی و میانگین حسابی از انحراف از فرورفتگی ها را ترسیم کنیم تا خط پایین شاخص پاکت نامه ها را ترسیم کنیم.
این خطوط بالا و پایین پاکت نامه هایی است که ما می خواهیم از آنها برای یافتن نقاط مشخصه و پیش بینی گره های زیگزاگ استفاده کنیم. یک بار دیگر ، ما به استخر پاکت های متشکل از مجموعه ای از شاخص های پاکت نامه علاقه مندیم. میانگین حسابی انحراف گره های زیگزاگ از خط اصلی یک پاکت معین برای هر شاخص محاسبه می شود. پس از ترسیم خطوط حاصل (خط فوقانی و پایین) استخر در نمودار ، ما می توانیم موارد زیر را مشاهده کنیم:

شکل 4. خطوط پاکت نامه در هواپیما.
اگر فرض کنیم که هر خط در یک هواپیمای جداگانه قرار دارد ، در حالی که همه آنها در کنار هم یک سطح ایجاد می کنند ، شکل فوق فقط پیش بینی هر شاخص را در صفحه نمودار قیمت نشان می دهد. یک تصویر سه بعدی از این خطوط تقریباً به شرح زیر خواهد بود:

شکل 5. خطوط پاکت نامه در 3D.
بیایید اکنون یک درس سریع در هندسه داشته باشیم. تصور کنید که استخر خطوط نشانگر پاکت نامه یک سطح سه بعدی است. یک هواپیما عمود بر نمودار قیمت بگیرید و سطح را در نوار فعلی (صفر) برش دهید.
در نتیجه ، ما یک مقطع از سطح را نشان می دهیم که یک منحنی را نشان می دهد (شکل فوق یک مورد خاص را نشان می دهد که منحنی یک خط مستقیم است). برای انجام پیش بینی ، داشتن مختصات هر نقطه روی منحنی که بیشتر در محاسبات استفاده می شود ، کافی است.
ما به ویژگی های مقطع زیر نیاز خواهیم داشت: حداکثر و حداقل نقطه و همچنین مرکز ثقل مقطع (میانگین حسابی از تمام مقادیر نقطه). نقاط مشخصه به دست آمده در نوار فعلی (صفر) پیش بینی می شود که داده های مربوطه در تاریخ ذخیره می شوند. این نقاط مشخصه به عنوان پایه ای برای گره های فعلی و بعدی زیگزاگ خدمت می کنند.
از آنجا که جستجوی نوارهای پاکت به طور جداگانه برای قله ها و فرورفتگی ها انجام می شود ، در نتیجه باید دو بخش مقطع را بدست آوریم: یکی برای قله ها و دیگری برای فرورفتگی.
برای به دست آوردن پیش بینی ، از نزدیکترین نقطه مشخصه استفاده خواهیم کرد. به عنوان مثال ، هنگام جستجوی اوج زیگزاگ ، ما نقاط مشخصه سطح مقطع ناشی از تقاطع سطح خطوط بالای نشانگر پاکت نامه را با یک هواپیمای برش می گیریم. برعکس ، برای یافتن یک فرورفتگی ، نقاط مشخصه سطح مقطع ناشی از تقاطع سطح خطوط پایین نشانگر پاکت نامه را با یک هواپیمای برش می گیریم.
آزمایش نشانگر جدید
اکنون که روش را تعریف کرده ایم ، بیایید شاخص را ایجاد کنیم. ما ابتدا آخرین گره های نشانگر Zigzag را پیدا خواهیم کرد و آنها را در نمودار می کشیم. برای این منظور ، ما از کلاس Advancedzigzag که برای کار مورد نظر نوشته شده است استفاده خواهیم کرد:
در کل دو روش وجود دارد:
- روش شمارش تمام گره های زیگزاگ را در یک دوره زمانی معین (تعداد میله ها) پیدا می کند و آنها را در آرایه های مختلف ذخیره می کند و قله ها را از فرورفتگی جدا می کند. به این ترتیب انجام تجزیه و تحلیل و محاسبه پاکت ها آسان تر خواهد بود.
- روش خواندن آخرین گره ها را پیدا می کند و آنها را در یک آرایه واحد ذخیره می کند. ما برای تجسم شاخص Zigzag به این روش نیاز داریم.
کتابخانه GetExtremums (توسط یوری کولیکوف) نیز در جستجوی گره ها ضروری خواهد بود.
بیایید شاخص را در یک مشاور متخصص قرار دهیم. چرا یک مشاور متخصص و نه شاخص؟این البته یک موضوع سلیقه است اما به نظر می رسد از این طریق برای من کارآمدتر است. ویژگی های گرافیکی مشاور خبره بدون شک ضعیف تر است اما ما عملکرد خود را بدست می آوریم زیرا شاخص های همان نمادین در یک جریان واحد کار می کنند ، در حالی که هر EA در جریان جداگانه خود فعالیت می کند. بیایید نگاهی به کد بیندازیم:
ما باید در اینجا چند مورد را روشن کنیم:
- شاخص IEnvelopes با شاخص IMA جایگزین می شود. هیچ چیز دروغین یا گمراه کننده ای در آن وجود ندارد. مسئله این است که خط اصلی iEnvelopes همزمان با IMA است! بنابراین استفاده از شاخص متوسط در حال حرکت راحت تر است.
- ما از دو استخر میانگین در حال حرکت استفاده می کنیم که از هر کدام 227 خط تشکیل شده است ، بنابراین در کل 454 شاخص IMA ایجاد می کنیم! خیلی زیاد است یا کمی؟در اصل ، این تعداد زیادی است. اما ، اول از همه ، در صورت لزوم می توانیم تعداد شاخص ها را تغییر دهیم و ثانیا ، به آمار نیاز داریم. در جستجوی پاکت ها برای ده ها گره چیست؟ما حداقل صد مورد نیاز داریم.
- مقادیر نشانگر به جای OnInit () در بلوک انتیک () بارگذاری می شوند. اگر بلوک بارگیری داده ها در OnInit () قرار گیرد ، بسیار محتمل است که برخی از داده ها دیر بارگذاری شوند و شاخص ها در نتیجه دقیق و به طور کامل محاسبه نشوند. پس از به دست آوردن تمام داده های مربوط به محاسبات ، مقدار متغیر ERR مثبت می شود و این بلوک از کار خارج می شود.
بنابراین ، نشانگر حاصل هفت گره Zigzag آخر را ترسیم می کند و مختصات همه گره های دیگر را در یک تاریخ معین محاسبه می کند (شکل 6). محاسبه فقط یک بار انجام می شود و ما بیشتر از داده های محاسبه شده استفاده می کنیم. مطمئناً می توانید آن را به گونه ای پیاده سازی کنید تا اجازه دهید داده ها به طور مرتب به روز شوند اما در این مقاله ما آن را به یک پاس واحد ادامه خواهیم داد.

شکل 6. نشانگر زیگزاگ (7 گره).
علاوه بر این ، بیایید سطح مقطع سطوح شاخص های پاکت را ترسیم کنیم. برای انجام این کار ، موارد زیر را به روش Ontick () اضافه خواهیم کرد:
یادداشتی برای برنامه نویسان تازه کار: اپراتورها در انتهای قله ها و بلوک فرورفتگی ها ندارند ؛ "در انتهای رشته. این یک اشتباه یا تایپی نیست. اینها ماکرو هستند (به بخش داده ها در جایی که اعلام شده اند مراجعه کنید) - آنها بسیار مفید هستند! توصیه می کنم از آنها در برنامه های خود استفاده کنید.
برای تشخیص نقاط مقطع سطح تشکیل شده توسط خطوط پاکت، اندازه نقاط متفاوت است: هر چه میانگین دوره خط اصلی نشانگرهای پاکت بیشتر باشد، نقاط بزرگتر هستند (شکل 7). علاوه بر این، مقاطع حول یک محور عمودی که از نوار جریان (صفر) می گذرد در جهات مختلف می چرخند: قله ها در 90 درجه به سمت راست و فرورفتگی ها در 90 درجه به سمت چپ هستند.
اکنون آنها را می توان در صفحه نمودار قیمت مشاهده کرد. در ابتدا، آنها در صفحه برش دراز کشیده بودند (شکل 5) و قابل مشاهده نبودند. ما فقط می توانستیم آنها را برای خودمان تصور کنیم، بدون اینکه هیچ ایده ای در مورد شکل آنها داشته باشیم. خطوط مقطع شکل بسیار عجیبی دارند. این نیز برای راحتی تجزیه و تحلیل گرافیکی انجام می شود. از نظر بصری سطح مقطع شبیه به دو دنباله دار پرنده است:

شکل 7. سطح مقطع مخزن نشانگر پاکت.
بیایید به محاسبه ویژگی های مقطع ادامه دهیم: حداکثر و حداقل، و همچنین مرکز ثقل (میانگین حسابی). مقادیر به دست آمده به عنوان نقاط روی نوار فعلی نمایش داده می شوند که اندازه نقطه مربوط به اندازه مشخصه مربوطه است. علاوه بر این، ما آنها را برای تجزیه و تحلیل بیشتر در تاریخچه ذخیره خواهیم کرد. بنابراین، موارد زیر را به کد موجود اضافه می کنیم:
حالا بیایید ببینیم که وقتی به صورت گرافیکی نمایش داده می شود چگونه به نظر می رسد:

شکل 8. ویژگی های مقطع: حداکثر و حداقل و همچنین مرکز ثقل برای قله ها و فرورفتگی ها به طور جداگانه ترسیم شده است.
ما فقط باید با پیدا کردن و ترسیم گره های پیشرفته ZigZag آخرین لمس نهایی را اضافه کنیم. ما کد را با اضافه کردن موارد زیر تقویت می کنیم:
بنابراین، ما نشانگر پیشرفته پیشرفته ZigZag را داریم که موقعیت گره های جدید را پیش بینی می کند (شکل 9). خود گره ها در نقاط مقطع مشخصه قرار دارند: حداکثر، حداقل و مرکز ثقل. عنوان کاری نشانگر "دو دنباله دار" است.
لازم به ذکر است که زمان تکمیل گره بعدی که در آینده است ناشناخته مانده است. اساسا، ما فقط می توانیم یک مختصات گره - قیمت را پیش بینی کنیم.

شکل 9. نشانگر پیشرفته ZigZag گره ها را پیش بینی می کند: جریان و گره بعدی.
تجزیه و تحلیل نتایج و پیشنهادات برای توسعه دهندگان
مشاهدات شاخص نشان داده است که:
- انحراف مختصات گره زیگزاگ از گره های پیش بینی شده در منطقه تحمل است. تعداد زیادی گره در سایه مقطع مربوطه قرار دارد. این قطعاً فقط یک ارزیابی کیفی است. نتایج دقیق تر در مقاله های آینده دنبال خواهد شد.
- مقطعی از خطوط پاکت ها رفتار بازار و حرکت قیمت مورد انتظار را نشان می دهد! به دم دنباله دار که از نقاطی با کوچکترین دوره متوسط (کوچکترین اندازه) تشکیل شده است ، توجه کنید. در جهت قیمت هدایت می شود. دم دنباله دار به پیچیده ترین راه خم می شود و هرچه بیشتر در جهت مخالف چرخانده شود ، شانس دیدن تغییر روند بیشتر خواهد بود. به سادگی رفتار شاخص را در بازه های زمانی مختلف با دامنه های مختلف تماشا کنید. این بسیار جالب است!
- نقاط مشخصه خطوطی که ممکن است مقاومت شدیدی در برابر حرکت قیمت داشته باشند. بنابراین می توان آنها را به عنوان خطوط پشتیبانی و مقاومت در نظر گرفت.
- هنگامی که نقاط مرکز ثقل مقطع از آن جلوتر می شوند (به عنوان قله های شکل 9) ، این نشانگر وجود روند رو به بالا است.
بنابراین آنچه در نتیجه به دست آوردیم ، یک شاخص بسیار جالب است که می تواند در یک استراتژی معاملاتی امتحان شود!
نتیجه
- روش پیش بینی گره های نشانگر Zigzag که در مقاله مورد بررسی قرار گرفته است به ما امکان ایجاد شاخص جدید - "دو دنباله دار" را می دهد.
- Zigzag پیشرفته مختصات احتمالی گره های جدید را نشان می دهد ، حتی اگر این فقط یک پیش بینی باشد.
- از الگوریتم در نظر گرفته شده در مقاله می توان برای ترسیم شاخص های پیشرفته مشابه استفاده کرد ، نه لزوماً شاخص های زیگزاگ ، به عنوان مثال. فراکتال ها یا شاخص های semaphore.
- برنامه نویسان Novice MQL5 ممکن است جالب باشد که ببینند چگونه می توانند ماکرو را در برنامه های خود ایجاد کنند تا میزان کد مکرر را کاهش دهند.
ترجمه شده از روسی توسط Metaquotes Ltd. مقاله اصلی: https://www. mql5.com/ru/articles/646
هشدار: کلیه حقوق این مواد توسط Metaquotes Ltd. کپی یا چاپ مجدد این مواد به طور کامل یا جزئی محفوظ است.
ویدیو های آموزشی فارکس...
ما را در سایت ویدیو های آموزشی فارکس دنبال می کنید
برچسب :
نویسنده : محبوب امانی
بازدید : 60
تاريخ : پنجشنبه
24 فروردين
1402 ساعت: 20:33