معرفی

ساخت وبلاگ

هنگامی که من برای اولین بار کاوش در دنیای تجزیه و تحلیل فنی را شروع کردم ، اولین شاخصی که به آن رسیدم ، نوسانگر میانگین همگرایی/واگرایی (MACD) در حال حرکت بود ، یک شاخص محبوب برای اندازه گیری حرکت سهام و پیروی از روند قیمت سهام بود. اگرچه بسیاری از وب سایت ها (به عنوان مثال Investopedia ، BusinessInsider ، Moneyshow) MACD را به عنوان یک شاخص "اساسی" برای تجارت فنی معرفی کردند ، من به این واقعیت که پیروی از "چند قانون تجارت ساده" کاملاً فروخته نشده است می تواند به من اجازه دهد تا به طور مداوم از آن درآمد کسب کنمتجارتو ، مانند اکثر مردم ، من نمی دانستم چگونه در آن زمان استراتژی های معاملاتی را تست کنم.

با این حال ، اکنون که من کمی برنامه نویسی را می دانم ، تصمیم گرفتم یک سری از پست ها را در مورد اثربخشی تجارت فنی با عنوان چگونگی (نه) سرمایه گذاری بنویسم. این اولین پست در این سری در MACD است.

تکامل شاخص های فنی

به عنوان شروع سریال در مورد چگونگی سرمایه گذاری (نه) ، مناسب است که تئوری خود را در مورد تکامل شاخص های فنی بیان کنم ، که از رمزنگاری وام می گیرد. در رمزنگاری ، Codemakers وجود دارند که الگوریتم های رمزگذاری را ابداع می کنند ، و کد کننده هایی که قصد دارند آنها را بشکنند. پس از شکسته شدن الگوریتم های رمزگذاری ، موارد جدید ایجاد می شوند. این تنش منجر به رمزگذاری قوی تر و پیچیده تر می شود. به نظر می رسد شاخص های فنی به همان روش کار می کنند.

امروز ، شاخص های تجاری زیادی در اختیار ما وجود دارد. و من معتقدم که این موارد از چرخه افرادی که شاخص های جدید را ابداع می کنند و دیگران از آنها سوءاستفاده می کنند ، ناشی می شود و منجر به ایجاد افراد جدید می شود. نکته اصلی در اینجا این است که به محض انتشار شاخص ها برای مصرف انبوه ، آنها متوقف می شوند زیرا یک توده مهم از معامله گران بر روی این سیگنال ها عمل می کنند. به همین ترتیب ، به نظر من این است که وقتی شاخص های فنی موجود در یک مد بسیار ساده ، خیلی آهسته یا هر دو ، نمی توانند بازده اضافی مثبت را ارائه دهند.

با این حال ، یادگیری ماشین (ML) ممکن است امید به تجارت فنی را فراهم کند. اول ، شاخص های جدید و پیچیده تر وقتی که قدیمی ها کار نمی کنند ایجاد می شوند - این معادل تولید ویژگی در ML است. دوم ، استفاده از شاخص های جدید و موجود به روش های پیچیده می تواند باعث شود سیستم های شاخص ها کار کنند - این می تواند با استفاده از الگوریتم های ML حاصل شود.

چگونه (نه) سرمایه گذاری این فرضیه ها را آزمایش می کند.

MACD

با پرداختن به نظریه عمومی خسته کننده من در مورد اینکه چرا شاخص ها کار نمی کنند ، اکنون می توانیم به MACD ، موضوع این پست شیرجه بزنیم.

اصول اولیه

شاخص MACD شامل سه خط است: میانگین حرکت سریع نمایی (EMA) ، EMA کند و EMA از تفاوت بین EMA های سریع و آهسته. تنظیم معمولی 12/26/9 است و به این معنی است که ما از EMA (سریع) 12 روزه ، A (آهسته) EMA 26 روزه و یک EMA 9 روزه تفاوت بین دو EMA قبلی استفاده می کنیم. این تفاوت بین EMA های سریع و آهسته می تواند به عنوان فشار بر قیمت در کوتاه مدت (EMA سریع) در مقابل فشار روی قیمت در کمی طولانی مدت (EMA کند) باشد. قیمت سریعتر در حال افزایش است ، افزایش سریع EMA سریعتر.

سیگنال های تجاری

MACD دارای دو سیگنال اصلی برای خرید و فروش است: ماشه متقاطع Centerline و ماشه متقاطع خط سیگنال. اول ، ماشه متقاطع خط میانی زمانی است که خط MACD (بین EMA سریع و EMA آهسته متفاوت) از بالای/زیر صفر بالا می رود. دوم ، ماشه متقاطع خط سیگنال زمانی است که خط MACD از بالای/زیر خط سیگنال عبور می کند. ما می توانیم هر دو سیگنال را به عنوان افزایش حرکت به سمت بالا/رو به پایین در قیمت ها تفسیر کنیم.

شبیه سازی های معاملاتی

در شبیه سازی های معاملاتی ما ، ما MACD را به سختی رمزگذاری خواهیم کرد ، تنظیمات مختلف EMA را اعمال می کنیم و آنها را در تمام سهام موجود در S& P 500 آزمایش می کنیم. ما همچنین برای ارزیابی هر پیکربندی MACD ، معیارهای بازده و دقت (دقت و فراخوان) را محاسبه خواهیم کرد.

معیارهای ارزیابی

برای ارزیابی اثربخشی MACD در سهام S& P 500 ، من (1) بازده ، (2) دقت ، و (3/4) بیش از بازده و دقت نسبت به پایه ها را محاسبه می کنم.

بازگرداندن

در شبیه سازی ها ، من از بازده 5 روزه ، 10 روزه و 20 روز به جلو استفاده کردم. داشتن افق معاملاتی متعدد ، احتمال یافتن استراتژی های برنده را افزایش می دهد. بنابراین ، اگر ما نتوانیم استراتژی های سودآور MACD را پیدا کنیم ، اطمینان بیشتری خواهیم داشت که استراتژی های MACD کار نمی کنند.

بازده اضافی

من از بازده خرید و نگهدارنده هر سهام به عنوان معیار استفاده کردم. بنابراین بازده اضافی به عنوان بازده استراتژی تجارت MACD منهای بازده خرید و نگهدارنده تعریف شد.

دقت، درستی

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

مزیت دقیق

مزیت دقت مشخص می کند که شاخص MACD نسبت به یک حدس ساده چقدر دقیق است. فرض کنید بازده 10 روزه یک سهم 60 درصد مواقع مثبت و 40 درصد مواقع منفی است. یک حدس ساده لوحانه می تواند حدس زدن نتیجه محبوب تر باشد: مثبت. اگر اندیکاتور MACD حدس می زند که بازده ها فقط در 30 درصد مواقع مثبت هستند، بهتر بود حدس ساده ای را انجام دهیم.

قوانین

در شبیه سازی معاملات خود از قوانین زیر استفاده کردیم:

  1. فقط معاملات طولانی مجاز است
  2. معاملات زمانی انجام می شود که سیگنال خرید فعال شود. متقاطع خط مرکزی (CC): خط سیگنال از بالای صفر عبور می کند b. متقاطع خط سیگنال (SLC): خط MACD از بالای خط سیگنال عبور می کند + خط MACD بالای صفر است

ما از پارامترهای زیر استفاده کردیم:

  1. بازگشت: 5 روزه، 10 روزه و 20 روزه (به طور جداگانه)
  2. EMA سریع: 2، 3، 4 و 5 برابر دوره بازگشت به جلو
  3. EMA آهسته: 2، 3، 4، و 5 برابر تنظیم سریع EMA
  4. خط سیگنال: 4، 8، 12، 16 و 20 روز
# ماژول های مورد نیاز را وارد کنید وارد كردن fix_yahoo_finance as yf وارد كردن matplotlib as pl وارد كردن matplotlib. pyplot as plt وارد كردن بی حسی as np وارد كردن پانداها as pd از جانب pandas_datareader وارد كردن داده ها as pdr وارد كردن scipy. stats as ss از جانب sklea. ansemble وارد كردن RandomForestClassifier از جانب sklea. linear_model وارد كردن رگرسیون خطی از جانب sklea. metrics وارد كردن طبقه بندی_گزارش, confusion_matrix, precision_score, recall_score از جانب sklea. model_selection وارد كردن TimeSeriesSplit از جانب sklea. naive_bayes وارد كردن BeoulliNB وارد كردن هشدارها از جانب yahoo_finance وارد كردن اشتراک گذاری # تنظیمات هشدارها.هشدارهای فیلتر('چشم پوشی') # لغو pdr yf.pdr_override() # فهرست سهام وارداتی sp500 = pd.read_csv('sp500. csv') # تاریخ ها را پیکربندی کنید تاریخ شروع = '01-01-1990' تاریخ پایان = '01-06-2018' # داده های از پیش پردازش شده را بارگیری کنید res_df = pd.read_csv('macd_ret5_results. csv') res_df10 = pd.read_csv('macd_ret10_results. csv') res_df20 = pd.read_csv('macd_ret20_results. csv') 

تابع برای شبیه سازی معاملات

# شبیه سازی استراتژی MACD # m1 مضربی از دوره بازگشت به جلو است # m2 مضربی از m1 است دف sim_macd_multi(موجودی, m1 = [2, 3, 4, 5], m2 = [2, 3, 4, 5], sl = [4, 8, 12, 16, 20], برمی گرداند = 5): # تاریخ ها را پیکربندی کنید تاریخ شروع = '01-01-1990' تاریخ پایان = '01-06-2018' # رسیدگی به خطا تلاش كردن: # داده ها را بکشید orig_df = pdr.get_data_yahoo(موجودی, تاریخ شروع, تاریخ پایان, پیش رفتن=نادرست) # فهرست نتایج را اولیه کنید خروجی = [] برای m in m1: برای n in m2: برای s in sl: # داده ها را کپی کنید df = orig_df.کپی  معاملات FX...

ما را در سایت معاملات FX دنبال می کنید

برچسب : نویسنده : شهلا ریاحی بازدید : <-PostHit-> تاريخ : چهارشنبه 15 شهريور 1402 ساعت: 23:48