در حدود سال 2013 ، من به تئوری موج الیوت رسیدم ، وقتی یکی از دوستان خوب من مرا با این موضوع آشنا کرد. من در حال قلاب زدن و خواندن اصل کلاسیک Elliott Wave بودم: کلید رفتار بازار توسط Prechter ، Frost et al. در این هشت سال ، موضوع گاهی اوقات برای من بیشتر و گاهی جالب بود. اما از آنجا که هیچ روش قابل اعتماد برای یافتن امواج (جدا از اشتراک های گران قیمت ؛-)) وجود ندارد ، امواج هرگز راه خود را برای تجارت من پیدا نکرده اند (که در اصل یک استراتژی خرید و نگه داشتن در تمام کلاس های دارایی است). با افزایش شدید بیت کوین در Q1 / 2021 دوباره به موضوع علاقه مند شدم و سعی کردم الگوریتم / repo git را برای پایتون پیدا کنم. متأسفانه ، هیچ الگوریتم موج الیوت خارج از جعبه وجود ندارد که برای من کار کند. بنابراین خودم یکی را امتحان کردم.
نظریه اساسی موج الیوت
برای معرفی دقیق امواج می توانید مقاله ویکی پدیا را بخوانید. اگر اینجا هستید ، شانس خوب است ، که اصول را می دانید. نکات اصلی نظریه موج الیوت عبارتند از
- یک بازار در امواج توسعه می یابد
- یک موج همیشه یک موج تکانشی 5 طرفه است (ظهور ، تصحیح ، افزایش ، تصحیح ، افزایش).
- اینها با شماره 12345: 1 افزایش ، 2 تصحیح ، 3 افزایش ، 4 تصحیح ، 5 افزایش محاسبه می شود
- به دنبال آن یک موج تصحیح 3 طرفه (کاهش ، تصحیح ، کاهش)
- شمارش شده با نامه های ABC: کاهش ، تصحیح B ، کاهش C
- هنگامی که تعداد معتبری برای حرکت 12345 وجود داشته باشد ، 5 فرم A (1) را در مقیاس زمانی بالاتر شکل می دهد.
- C (2) را در این مقیاس زمانی و غیره تشکیل می دهد.
- این می تواند در هر دو جهت (عاقلانه) ادامه یابد: بازه های زمانی کوچکتر و بزرگتر
در صورت اعمال برخی از قوانین ، شمارش معتبر (12345) وجود دارد. این قوانین مربوط به طول (به ارزش) و مدت زمان (در زمان) امواج است ، به عنوان مثال موج سوم همیشه باید از بالای اول باشد ، موج 2 حداقل 20 ٪ از موج 1 و غیره را اصلاح می کند.
مشکل اصلی من در مورد امواج ساختار فراکتال یک بازار است: اگر محورها (زمان و ارزش) را حذف کنید ، نمی توانید بگویید که آیا این نمودار ساعتی است یا به طور روزانه. بنابراین من برخی از افکار را در یک الگوریتم موج الیوت که در پایتون اجرا شده است قرار داده ام.
ایده اصلی الگوریتم
اول ، من می خواهم چند اصطلاح را معرفی کنم ، که من برای الگوریتم موج الیوت استفاده می کنم.
یک مونواو حرکت از یک نقطه معین (DateTime) است ، که در آن هر شمع زیر در حال تشکیل یک بالا (یا کم احترام در یک حرکت به سمت پایین) است.
موج موج زنجیر مونواوها است ، به عنوان مثال5 monowaves برای یک ضربه ، 3 برای تصحیح ، 2 برای یک الگوی tietjen (موج دوم دقیقاً به سطح فیبوناچی 0. 618 اصلاح می شود).
Waverule مجموعه ای از قوانینی است که همه باید با آن مطابقت داشته باشند ، که موج موج به عنوان یک الگوی معتبر شناخته می شود ، به عنوان مثال. موج 3 شورت نیست ، موج 4 پایین تر از سطح موج 1 و غیره نیست.
توابع اصلی next_max () و next_min ()
من دو عملکرد اصلی را اجرا کردم که با توجه به نقطه شروع (start_idx) ، انتهای مونواو فولوینگ (در زمان و بزرگی / مقدار) باز می گردند. این تابع یک آرگومان اضافی دارد: SKIP_N که به ترتیب N بعدی (یا حداقل) را رد می کند. این به معنای بی نظیر به معنای این است که Monowave می تواند در داخل اصلاحات (کوچکتر) داشته باشد. به طور طبیعی ، اصلاحات نباید از پایین نقطه شروع فراتر رود. عملکرد در این مورد کاذب را برمی گرداند.
این توابع می توانند از طریق start_idx در نقاط دلخواه شروع شوند. در اصل ، تماس با Next_min از بالا / انتهای موج 1 انتهای موج 2 را پیدا می کند. تماس با Next_max () از آنجا پایان موج 3 و غیره را پیدا می کند.

الگوریتم در محل کار
با توجه به نمودار OHLC دلخواه (روزانه ، شمع های ساعتی و غیره)
- First Monowave را پیدا کنید ، یعنی حداکثر بعدی را در نمودار پیدا کنید و با 1. مشخص کنید.
- از این یکی ، حداقل بعدی را پیدا کنید ، یعنی Monowave و با 2. مشخص کنید (برابر با تماس Next_min (start_idx = end_wave1 ، پرش = 0))
- حداکثر 5 موج را ادامه دهید (یا WavePatte که به دنبال آن هستید)
- یک موج برای این موج موج بمالید
اکنون ، دو چیز می تواند اتفاق بیفتد:
- اگر الگوی معتبر است ، اولین تعداد موج الیوت خود را پیدا کرده اید. تبریک می گویم!
- این الگوی معتبر نیست ، زیرا نقض قانون وجود دارد.
من الگوریتم جستجو را چنین طراحی کرده ام ، که شما لیستی از مثلاً را منتقل می کنید. 5 گزینه اگر به دنبال تعداد 12345 معتبر (به نام Impulse) برای 5 تماس متوالی Next_Max () و Next_min () هستید ، یعنی عبور [0،0،0،0،0] منجر به تماس با Next_Max خواهد شد (پرش = 0)، next_min (پرش = 0) ، و غیره. در حالی که می گذرد [2،1،2،0،0] منجر به تماس با Next_max (Skip = 2) ، Next_min (Skip = 1) ، Next_max (Skip = 2) و غیره خواهد شد.
در صورت الگوی نامعتبر ، اکنون باید ورودی ها را تغییر داده و ترکیب های مختلف پرش از حداقل و حداکثر محلی را آزمایش کنید. می توانید از قسمت جستجو حلقه کنید ، به عنوان مثالبا آزمایش تمام الگوهای Waver که برای همه ترکیبات بین [0،0،0،0،0] یافت می شود و می گویند [5،5،5،5،5].
به عنوان مثال اتریم روزانه
در این مثال من شمع های روزانه اتر را از 28 فوریه 2021 به بعد گرفتم. یک روش سریع و آسان برای بازیابی داده های تاریخی در این پست قابل خواندن است. این الگوریتم با گزینه ها [1،0،0،0،0] اجرا می شود (اولین حداکثر یافت می شود) که منجر به تعداد زیر خواهد شد:

خوشبختانه الگویی برای این گزینه ها پیدا شد که همیشه اینگونه نیست. به عنوان مثال اگر داده های شما یک روند کلی به سمت پایین را نشان می دهد ، ممکن است حداکثر اول را پیدا نکنید ، زیرا تمام شمع ها دارای اوج کمتری خواهند بود.
با این حال ، الگوی یافت شده (12345) ، یک حساب معتبر نیست ، زیرا کم موج 4 از انتهای موج اول فراتر می رود.
تماس با یاب با گزینه های استاندارد [0،0،0،0،0] منجر به این الگوی می شود:

می بینید که برای تعداد موج الیوت بسیار سالم تر به نظر می رسد. در واقع ، این یک شمارش معتبر است! موج 2 نیز به خوبی در نزدیکی سطح فیبوناچی 618 قرار دارد.
افکار نهایی در مورد این الگوریتم موج الیوت
لطفاً توجه داشته باشید که برای داشتن یک معتبر 1 ، زیر ساخت موج اول نیز باید یک موج تکانشی 12345 معتبر باشد. می بینید که همیشه این مشکل (ساختار بازار فراکتال) را خواهید داشت و تعیین می کنید که آیا 1 از این زیر مجموعه یک infinitum 12345 AD است. از آنجا که من یک روز معامله گر (به هیچ وجه معامله گر) نیستم ، به دنبال ورودی ها و اهداف (طول امواج در زمان) می گردم به ترتیب چند روز تا سفارش هفته ها. این تضمین می کندnoاسترس کمتری دارد ، زیرا لازم نیست روزانه نمودارها را بررسی کنم.
As the third wave often is the strongest (value wise) I look especially for a corrective 2 and entry the market somewhere at this point. I use this Elliott Wave Algorithm to count on a fine dataset, say hourly candles and set the wave structure (12345 > (1) > ABC > (2) etc.) on this timeframe, but trade on the larger counts (1)(2)(3), or even (1)(2)(3)(4)(5) >(من).
مرمت
من همه چیز را با numba ، کامل شیء بهینه کرده ام. اجرای هزاران ترکیب فقط چند ثانیه طول می کشد. می توانید کد موجود را در GitHub پیدا کنید.
بحث در اینجا ادامه دارد.
تجارت با گزینههای باینری...
ما را در سایت تجارت با گزینههای باینری دنبال می کنید
برچسب :
نویسنده : نازنین فراهانی
بازدید : 39
تاريخ : شنبه
10 تير
1402 ساعت: 12:46