ساخت هیستوگرام MACD با Elasticsearch

ساخت وبلاگ

حرکت میانگین واگرایی همگرایی (MACD) یک شاخص تجاری است که برای تجزیه و تحلیل فنی سهام اختراع شده توسط جرالد اپل در سال 1979 استفاده می شود. MACD شامل دو مقدار متوسط در حال حرکت ، یک دوره کوتاه و یک دوره طولانی است. برای تمرین معمول ، دوره کوتاه 12 و دوره طولانی 26 است و عملکرد متوسط در حال حرکت از وزن نمایی (EWMA) استفاده می کند. در اصل ، MACD فاصله بین میانگین متحرک با وزنی کوتاه مدت با وزن طولانی و دوره ای از قیمت سهام روزانه است. اگر فاصله تمایل به کاهش داشته باشد ، به معنای همگرایی و برعکس ، واگرایی است. هنگامی که MACD صفر است ، روند در حالت انتقالی بین همگرایی و واگرایی قرار دارد. معادله محاسبه به شرح زیر است:

اگر MACD مثبت باشد و از صفر دور باشد ، حرکت صعودی قیمت سهام در حال افزایش است. اگر منفی و به دور از صفر باشد ، حرکت نزولی در حال افزایش است. در جدول زیر معنی ترکیب مقدار و روند MACD شرح داده شده است.

در این مقاله ، ما سعی می کنیم MACD را برای صندوق های مبادله ای بدون بورس (ETF) اعمال کنیم و روی Elasticsearch به عنوان ابزاری برای تجزیه و تحلیل تمرکز کنیم. مثال زیر به طور تصادفی "Fidelity Inteational Multifactor ETF" را انتخاب می کند. نماد تیک آن FDEV است. داده ها از محدوده زمانی بین 2021-01-05 و 2021-05-31 ارائه شده توسط IEX ، مبادله سرمایه گذاران انتخاب شده است.

هنگامی که مقدار MACD از زیر صفر بالا می رود و از صفر عبور می کند ، بازار صعودی محسوب می شود. از طرف دیگر ، هنگامی که مقدار MACD از بالای صفر کاهش می یابد و از صفر عبور می کند ، بازار نزولی محسوب می شود. در نمودار فوق می بینیم که هنگام تغییر روند قیمت ، تقاطع MACD و محور y (y = 0) تاخیر می یابد. بنابراین ، معامله گران اغلب از این نقص انتقاد می کنند. در سال 1986 ، توماس آسپری برای حل این مشکل MACD Histogram/Momentum را معرفی کرد و اکنون به طور گسترده ای مورد استفاده قرار می گیرد. هیستوگرام MACD می تواند هنگام مقایسه با MACD ، سیگنال های اولیه را ارائه دهد. با این حال ، بعداً مشخص شد که برخی از به اصطلاح سیگنال های اولیه ممکن است نامعتبر باشند و نیاز به تأیید سایر شاخص ها دارند. در اصل ، هیستوگرام MACD فاصله بین MACD و خط سیگنال آن است. خط سیگنال EWMA MACD با دوره 9 است. فرمول به شرح زیر است:

هنگامی که macd_histogram صفر است (دو خط عبور می کند) ، این بدان معنی است که روند در حال معکوس است. شکل زیر MACD روزانه و خط سیگنال مربوطه برای نماد FDEV از 2021-01-15 و 2021-05-31 را نشان می دهد. با مشاهده زمان زمانی که MACD و محور y (y = 0) در آن تقاطع می کنند ، یک تقاطع مربوطه را در پیش رو بین MACD و خط سیگنال پیدا خواهید کرد.

از آنجا که نمودار خط MACD و خط سیگنال آن آسان نیست ، می توان از نمودار نوار استفاده کرد تا MacD_Histogram را به تصویر بکشد تا به طور شهودی روند بازار را منعکس کند. شکل زیر macd_histogram روزانه را برای نماد FDEV از 2021-01-15 تا 2021-05-31 نشان می دهد. نوار هنگامی که MACD از خط سیگنال بالاتر باشد و برعکس ، یک مقدار مثبت است. ارتفاع نوار تفاوت بین MACD و خط سیگنال است. در شکل ، میله های موجود در رنگ آبی آبی نشان دهنده مثبت و نشان دادن روند صعودی است. میله های رنگ آبی نشان دهنده مثبت است اما روند نزولی را نشان می دهد. میله های رنگ نارنجی نشان دهنده منفی است اما رشد را نشان می دهد. سرانجام ، میله های رنگ قرمز نشان دهنده منفی و رشد منفی است.

فرض کنید یک شاخص Elasticsearch وجود دارد که دارای داده ها است ، و نقشه برداری داده های آن همان چیزی است که در مقاله قبلی توضیح داده شده است (محاسبه عرض باند بولینگر از طریق Elasticsearch). مراحل زیر نحوه استفاده از Elasticsearch را برای ساخت هیستوگرام MACD و نشان دادن کد بدنه درخواست API REST توضیح می دهد.

کلیه اسناد مربوطه را از طریق عملیات جستجو جمع آوری کنید

برای جمع آوری اسناد با نماد FDEV و تاریخ بین 2021-01-15 و 2021-5-31 از یک پرس و جو "BOOL" با یک بند "باید" استفاده کنید. با توجه به محاسبه میانگین حرکت 26 روز تجارت ، داده های اضافی به مدت 1. 5 ماه (از دسامب ر-2021 تا ژانویه 14-2021) تنظیم می شود.

ارزش معمولی روزانه صندوق را محاسبه کنید

از یک جمع "date_histogram" ، به نام macd_histogram ، با پارامتر "فیلد" به عنوان "تاریخ" و پارامتر "فاصله" به عنوان "1D" استفاده کنید تا قیمت صندوق را هر روز استخراج کنید. پس از آن ، یک جمع "schripted_metric" به نام TP ، برای محاسبه قیمت معمولی ، که برابر با متوسط قیمت بالاترین ، کمترین و قیمت بسته است ، دنبال می شود.

تاریخ سطل را استخراج کنید

به دلیل داده های اضافی ، عملیات بعدی باید بعداً قسمت خارج از حد را فیلتر کنند. تجمع "حداقل" به نام "Datest" به دست آوردن تاریخ سطل است. در سرور Elasticsearch ، قسمت Date در زمان EPOCH ذخیره می شود. واحد زمانی میلی ثانیه است و منطقه زمانی UTC است.

سطل ها را با بیش از 1 سند انتخاب کنید

برای فیلتر کردن سطل های خالی (روزهای غیر تدارک) ، یک جمع "سطل_ لیست" ، به نام STP ، برای انتخاب سطل با تعداد اسناد آن بیشتر از 0 استفاده می شود.

روزانه 12 تجارت روزانه و 26 روز تجارت EWMA از مقدار معمولی را محاسبه کنید

برای محاسبه EWMA روز 12 تجارت از مقدار معمولی ، از یک جمع "Moving_FN" به نام EWMA12 استفاده کنید. EWMA با استفاده از عملکرد MovingFunctions. ewma با پارامتر آلفا به عنوان 2/(پنجره+1) محاسبه می شود. تجمع EWMA26 می تواند به همان روش انجام شود.

برای مشخص کردن نتایج حاصل از EWMA12 و EWMA26 از یک جمع "bucket_script" به نام MACD استفاده کنید. سپس شاخص MACD با توجه به معادله محاسبه می شود.

با استفاده از پنجره پارامتر به عنوان 9 و پارامتر "Buckets_Path" برای تعیین نتایج MACD برای محاسبه EWMA روز 9 تجارت MACD ، از یک جمع "Moving_FN" ، به نام سیگنال استفاده کنید. EWMA با استفاده از عملکرد MovingFunctions. ewma با پارامتر آلفا به عنوان 2/(9+1) محاسبه می شود.

برای مشخص کردن نتایج جمع آوری MACD و سیگنال ، از یک جمع "bucket_script" به نام macd_histogram استفاده کنید. سپس ، شاخص هیستوگرام MACD با توجه به معادله محاسبه می شود.

نوع مقدار هیستوگرام MACD را مشخص کنید

الف) از یک جمع "مشتق" به نام MACD_HISTOGROMDIFF ، با پارامتر "Buckets_Path" استفاده کنید تا مقدار MACD_HISTOGRAM را مشخص کنید تا تعیین کنید که آیا این یک افزایش یا کاهش از زمان بندی پیش رو است.

ب) از یک جمع "bucket_script" ، به نام macd_histogramtype ، با پارامتر "buckets_path" استفاده کنید تا نتایج حاصل از تجمع macd_histogram و macd_histogramdiff را برای طبقه بندی نوع مقدار macd_histogramgogram مشخص کنید.

➤ نوع 1 اگر macd_histogramdiff یک کاهش و macd_histogram است< 0 ➤ Type 2 if MACD_HistogramDiff is an increment and MACD_Histogram < 0 ➤ Type 3 if MACD_HistogramDiff is an increment and MACD_Histogram > 0 ➤ Type 4 if MACD_HistogramDiff is a decrement and MACD_Histogram >0 ➤ نوع 0 را برای موارد دیگر تایپ کنید

اسناد اضافی را برای خروجی فیلتر کنید

برای انتخاب سطل های صحیح مشخص شده در بیانیه "اسکریپت" ، از یک جمع "bucket_selector" به نام smacd_histogram استفاده کنید. معیار انتخاب آن دسته از سطل است که تاریخ آن را در یا بعد از 2021-01-1515 دارند (زمان زمان 1610668800000 در میلی ثانیه مشخص شده است).

پس از جمع آوری نتایج ، می توانیم ارقام را همانطور که قبلاً نشان داده شده است ترسیم کنیم.

مثال Elasticsearch مورد استفاده در این مقاله ، ادغام یکپارچه و درک آسان را نشان می دهد. خوانندگان می توانند بیشتر به پروژه منبع باز در GitHub مراجعه کنند (construct_macd_histogram_with_elasticsearch)

I. با تشکر از IEX (مبادله سرمایه گذاران) ارائه داده های ETF و همچنین GitHub که ذخیره پروژه منبع باز را تأمین می کند.

ii. این مقاله مبتنی بر یک فکر فنی است و هیچ مشاوره سرمایه گذاری را تشکیل نمی دهد. خوانندگان باید هنگام استفاده از آن مسئولیت های خود را بر عهده بگیرند.

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

IVآن دسته از خوانندگانی که احساس علاقه می کنند می توانند به کتاب نویسنده نویسنده برای تمام مهارتهای اساسی Elasticsearch مراجعه کنند."Advanced Elasticsearch 7. 0" ، آگوست 2019 ، PACKT ، ISBN: 9781789957754. < SPAN> I. با تشکر از IEX (مبادله سرمایه گذاران) داده های ETF و همچنین GitHub را برای ذخیره سازی پروژه منبع باز فراهم می کند.

پایگاه های معاملاتی...
ما را در سایت پایگاه های معاملاتی دنبال می کنید

برچسب : نویسنده : فرشته صدرعرفایی بازدید : 65 تاريخ : پنجشنبه 3 فروردين 1402 ساعت: 17:56