میانگین چیست ؟
«میانگین» معیاری معروف و رایج است که معمولاً در اغلب امور مرتبط با دادهها کاربرد دارد. در میانگینگیری معمولی، از تمامی دادههای موجود در مجموعه فرضی X استفاده میشود و خروجی حاصل از محاسبه میانگین ، تنها یک عدد واحد است. برای مثال، فرض میشود مجموعه X به صورت زیر باشد:
تماس و واتس آپ اکسپرت سفارشی: ۰۷۷۳۳۴۳۳۲۱۱ – ۰۹۹۲۹۱۶۹۳۰۷
برچسب ها: سفارش ساخت ربات فارکس و ساخت ربات معامله گر بورس و ساخت ربات معاملاتی و طراحی ربات تریدر و ربات فارکس رایگان و برنامه نویسی ربات فارکس و آموزش ساخت اکسپرت فارکس و ساخت ربات معامله گر با پایتون و دانلود ربات معامله گر فارکس و خرید ربات تریدر فارکس و ربات فارکس خودکار و ربات معامله گر بورس رایگان و آموزش ساخت ربات معامله گر فارکس و دانلود ربات معامله گر بورس ایران و ربات معامله گر آلپاری و ربات فارکس برای اندروید و طراحی ربات متاتریدر و برنامه نویسی ربات متاتریدر و طراحی ربات فارکس و برنامه نویسی ربات فارکس
اگرX نماد میانگین برگرفته از تمامی دادهها در نظر گرفته شود، مقدار آن به صورت زیر محاسبه خواهد شد:
میانگین متحرک چیست ؟
در مواردی که دادهها دارای نظم زمانی هستند (سریهای زمانی)، میتوان به جای کل دادهها، بخشی از آنها را برای میانگینگیری استفاده کرد. جهت روشنتر شدن این موضوع و ارائه مقدمهای برای تعریف «میانگین متحرک ساده» (Simple Moving Average | SMA)، در ادامه مثالی ارائه شده است.
مثالی برای درک بهتر میانگین متحرک ساده
برای مثال، میتوان زیرمجموعههای زیر را از X استخراج و برای هر کدام یک میانگین محاسبه کرد:
حال میتوان گفت، مقدار «میانگین متحرک ساده» با طول پنجره ۳ در زمان t به صورت زیر محاسبه میشود:
با محاسبه همه مقادیر، مجموعه M به صورت زیر خواهد بود:
از آنجایی که این میانگین با حرکت دادن (Moving) پنجره دید بر روی دادهها حاصل میشود، به آن میانگین متحرک میگویند. باید توجه داشت که مقدار میانگین متحرک برای زمانهای t=1 و t=2 تعریف نشده است.
میانگین متحرک ساده چیست ؟
به بیان ساده و به طور خلاصه، میانگین متحرک ساده که به اختصار SMA خطاب میشود، به وسیله میانگینگیری از یک مجموعه داده در طول یک بازه زمانی مشخص محاسبه میشود. به بیان دیگر، برای SMA، میانگین یک مجموعه از اعداد یا در علوم و بازارهای مالی، یک مجموعه از قیمتها در طول یک بازه زمانی تعیین شده محاسبه میشود. یعنی این قیمتها در بازه زمانی مربوطه با هم جمع و بر تعداد اعضای مجموعه تقسیم میشود. فرمول محاسبه میانگین متحرک ساده یا همان SMA به صورت زیر است:
در فرمول فوق به ترتیب، SMA «مقدار میانگین متحرک ساده»، An «مقدار داده nام در یک بازه زمانی» و n نیز «تعداد دادهها در یک بازه زمانی» هستند. در فرمول فوق، SMA مقدار میانگین متحرک را در بازه زمانی tn محاسبه میکند. با محاسبه SMA برای بازههای زمانی دیگر و مصورسازی آن در نمودار میتوان روند تغییرات میانگین متحرک را مورد تحلیل و بررسی قرار داد.
کاربردهای میانگین متحرک چه هستند؟
از میانگین متحرک برای اهداف متفاوتی استفاده میشود. میانگین متحرک در دو حوزههای علوم مالی و علم داده کاربرد برجستهای دارد. بنابراین، در ادامه این بخش از مقاله «میانگین متحرک چیست»، به شرح مختصری از کاربرد آن در این دو حوزه پرداخته شده است.
کاربرد میانگین متحرک در علوم مالی
میانگین متحرک در علوم مالی و تحلیل تکنیکال بخش جداناپذیری از شاخصها (اندیکاتورها) به حساب میآید. هرچند خود میانگین متحرک به تنهایی یک اندیکاتور پرکاربرد است، در ترکیب با سایر اندیکاتورها نیز به خوبی عمل میکند.
کاربرد میانگین متحرک در علم داده
در علم داده از میانگین متحرک برای «شناسایی روند» (Trend Detection) استفاده میشود. در تحلیل سری زمانی، ابتدا باید روند را از دادهها حذف کرد که به این عمل «Detrending» گفته میشود و استفاده از میانگین متحرک یک روش متداول برای این کار به حساب میآید.
با توجه به اینکه میانگین متحرک تنها از آخرین داده اثر نمیپذیرد، رفتار و تغییرات آن نیز تنها وابسته به آخرین داده نیست. این ویژگی میانگین متحرک باعث ایجاد تاخیر در واکنش آن میشود. اما، از آنجا که حاصل، میانگینگیری از چندین داده است، اعتبار آن بیشتر و نسبت به نوسانات حساسیت کمتری دارد. حال در ادامه مقاله «میانگین متحرک چیست» به انواع مختلف میانگین متحرک اشاره شده است.
انواع میانگین متحرک کدامند؟
میانگینهای متحرک دارای انواع مختلفی هستند که هر یک از آنها در ادامه فهرست شدهاند:
- میانگین متحرک ساده (Simple Moving Average)
- میانگین متحرک نمایی (Exponential Moving Average)
- میانگین متحرک نمایی
- میانگین متحرک نمایی دوگانه
- میانگین متحرک نمایی سهگانه
- میانگین متحرک وزندار (Weighted Moving Average)
- میانگین متحرک بدون تاخیر (Zero-Lag Exponential Moving Average)
تفاوت تمامی این موارد، تنها در روش و چگونگی وزندهی به دادهها است. میانگین متحرک ساده به تمامی دادههای درون پنجره به یک اندازه وزن میدهد:
پیاده سازی میانگین متحرک ساده در پایتون
در این بخش از مقاله «میانگین متحرک چیست» پیاده سازی میانگین متحرک ساده در پایتون آموزش داده شده است. این آموزش به صورت گام به گام ارائه میشود. در گام اول باید کتابخانههای مورد نیاز را فراخوانی کرد. این کار در ادامه انجام شده است.
فراخوانی کتابخانه های مورد نیاز برای پیاده سازی میانگین متحرک در پایتون
برای پیاده سازی میانگین متحرک ساده در پایتون ، ابتدا باید کتابخانههای مورد نیاز را فراخوانی کرد:
حال نیاز به دادههایی برای میانگینگیری وجود دارد.
تولید داده مصنوعی برای پیاده سازی میانگین متحرک در پایتون
اکنون با ایجاد و استفاده از یک تابع، ۵۰ داده مصنوعی تولید میشود:
همانطور که در کدهای فوق ملاحظه میشود، این تابع (S) از حاصل جمع سه تابع سینوسی با فرکانس و شدت متفاوت به همراه یک خط ایجاد شده است.
نمایش و رسم دادههای مصنوعی تولید شده
حال باید کدنویسی لازم برای نمایش و رسم دادهها را انجام داد:
خروجی و نمودار حاصل برای دادههای اصلی به صورت زیر است:
در تصویر فوق مشاهده میشود که دادهها در بازه ۱ تا ۵۰ قرار دارند و دارای رفتاری نوسانی با وابستگی به دادههای پیشین هستند.
محاسبه میانگین متحرک در پایتون
حال باید طول پنجره را تعریف و مقدار میانگین متحرک را محاسبه کرد:
تماس و واتس آپ اکسپرت سفارشی: ۰۷۷۳۳۴۳۳۲۱۱ – ۰۹۹۲۹۱۶۹۳۰۷
برچسب ها: سفارش ساخت ربات فارکس و ساخت ربات معامله گر بورس و ساخت ربات معاملاتی و طراحی ربات تریدر و ربات فارکس رایگان و برنامه نویسی ربات فارکس و آموزش ساخت اکسپرت فارکس و ساخت ربات معامله گر با پایتون و دانلود ربات معامله گر فارکس و خرید ربات تریدر فارکس و ربات فارکس خودکار و ربات معامله گر بورس رایگان و آموزش ساخت ربات معامله گر فارکس و دانلود ربات معامله گر بورس ایران و ربات معامله گر آلپاری و ربات فارکس برای اندروید و طراحی ربات متاتریدر و برنامه نویسی ربات متاتریدر و طراحی ربات فارکس و برنامه نویسی ربات فارکس
به این ترتیب، برای این دنباله، میانگین متحرک محاسبه و در M ذخیره میشود. باید توجه داشت که برای میانگین متحرکی با طول پنجره L، مقدار میانگین متحرک به ازای L−۱ داده اول، تعریف نشده است. با اندکی تغییر در کد و بهبود آن، کدها به صورت زیر در میآیند:
به این طریق، برنامه سازگاری بیشتری خواهد داشت.
تعریف تابع میانگین متحرک در پایتون
حال میتوان برای محاسبه میانگین متحرک، تابعی را به صورت زیر تعریف کرد. از این تابع میتوان به دفعات برای محاسبه میانگین متحرک استفاده کرد.
ایجاد و استفاده از چنین توابعی، دارای دو مزیت است:
- نیازی به تکرار کدها نخواهد بود و به راحتی میتوان به میزان مورد نیاز عملیات مربوطه را روی دادهها پیادهسازی کرد.
- این تابع به گونهای نوشته شده است که وابسته به طول پنجره یا اندازه داده ورودی نباشد و به همین دلیل، همواره به درستی عمل خواهد کرد.
استفاده از تابع تعریف شده برای محاسبه میانگین متحرک در پایتون
حال میتوان از تابع فوق برای محاسبه میانگین متحرک دادهها استفاده کرد:
بنابراین، با استفاده از این تابع، میانگین متحرک به راحتی قابل محاسبه است.
تحلیل شیوه رفتار میانگین متحرک
حالا به منظور بررسی شیوه رفتار میانگین متحرک ، مقادیر توابع S و M در یک نمودار به همراه هم استفاده شدهاند:
باید توجه داشت که چون به تعداد L−۱ عدد از ابتدای میانگین متحرک قابل محاسبه نیست، باید مقادیر X آن از L شروع شود. بهتر است در نمودارهایی که میانگین متحرک بر روی دادههای اصلی رسم میشوند، برای نمودار میانگین متحرک، ضخامت بیشتری را اختصاص داد. در نهایت، خروجی به صورت زیر است:
همانطور که در تصویر فوق مشاهده میشود، میانگین متحرک ، نمودار را با تأخیر دنبال میکند.
تحلیل اثر طول پنجره در نمودار
میتوان برای بررسی اثر طول پنجره در نمودار، میانگین متحرکهایی با طول ۲۱, ۸, ۳ را محاسبه و رسم کرد:
پس از محاسبه، برای رسم نمودار باید از کدهای زیر استفاده شود:
با اجرای کدهای فوق، خروجی به صورت زیر خواهد بود:
به این ترتیب، همانطور که قابل ملاحظه است، با افزایش طول پنجره، سرعت واکنش و شدت واکنش کاهش پیدا میکند و همزمان اعتبار و تأخیر افزایش مییابند. به همین دلیل، باید در تنظیم طول پنجره میانگین متحرک دقت کرد تا هم اعتبار روند مساعد باشد و هم تاخیر میانگین متحرک به قدری نباشد که مشکل یا خطای بیش از حد ایجاد کند.
حذف روند از سری زمانی
میتوان برای حذف روند از سری زمانی، مقدار میانگین متحرک را از مقدار داده واقعی کم کرد تا مقادیر جدیدی به دست آیند که فاقد روند هستند:
کد مربوطه به صورت زیر است:
حالا برای رسم نمودار باید از کدهای زیر استفاده کرد:
باید توجه داشت که در زمان استفاده از subplot، اولین آرگومان، تعداد سطرها، دومین آرگومان تعداد ستونها و آخرین آرگومان نیز شماره نمودار مورد نظر را تعیین میکند. همچنین، برای هر subplot باید به صورت جداگانه خصیصههای xlablel ،ylable ،legend و xlim را تعریف کرد. در آخر، حاصل اجرای کدهای فوق به صورت زیر است:
تحلیل حذف روند از سری زمانی
در خروجی فوق مشاهده میشود که بخش عمده روند در داده حذف شده است. در نمودار پایین هنگامی که مقدار با خط صفر برخورد میکند، همزمان در نمودار بالایی نیز مقدار داده با مقدار میانگین متحرک تلاقی دارد. از طرفی، باید به این نکته نیز توجه داشت که در نمودار پایینی، اثر کمتری از افزایش و کاهشهای Sharp دیده میشود. میتوان گفت، میانگین متحرک به نوعی مانند فیلتر عمل میکند. برای مثال در بازه [۱۵,۲۰] و یا در بازه [۳۰,۴۰] نوسان خیلی کمی در دادههای اصلی مشاهده میشود، اما در نمودار پایینی، نوسان داده برای این بازهها به خوبی قابل مشاهده است.
نکته دیگری که در مورد این نمودار وجود دارد، شباهت نمودار پایینی به مشتق نمودار اصلی است. به طوری که، در هر نقطه که نمودار پایینی مقدار صفر را به خود گرفته است، دادههای اصلی نیز تقریباً بدون تغییر بودهاند. همچنین برای مقادیر مثبت، رشد و برای مقادیر منفی نیز ریزش مشاهده میشود. نکته دیگری که در مورد این نمودار وجود دارد، شباهت نمودار پایینی به مشتق نمودار اصلی است. به طوری که، در هر نقطهای که نمودار پایینی مقدار صفر را به خود گرفته، دادههای اصلی نیز تقریباً بدون تغییر هستند. همچنین، برای مقادیر مثبت در نمودار پایینی رشد و برای مقادیر منفی در نمودار بالایی ریزش اتفاق افتاده است.
جمعبندی
دو بخش اصلی در مقاله «میانگین متحرک چیست» ارائه شده است. در بخش ابتدایی مفاهیم نظری و ریاضی پیرامون میانگین متحرک شرح داده شدند و در بخش بعدی، پیادهسازی آن در پایتون آموزش داده شد. آموزش پیادهسازی میانگین متحرک در پایتون به صورت گام به گام و به همراه کدها و تصاویر خروجی ارائه شدهاند.
تماس و واتس آپ اکسپرت سفارشی: ۰۷۷۳۳۴۳۳۲۱۱ – ۰۹۹۲۹۱۶۹۳۰۷
برچسب ها: سفارش ساخت ربات فارکس و ساخت ربات معامله گر بورس و ساخت ربات معاملاتی و طراحی ربات تریدر و ربات فارکس رایگان و برنامه نویسی ربات فارکس و آموزش ساخت اکسپرت فارکس و ساخت ربات معامله گر با پایتون و دانلود ربات معامله گر فارکس و خرید ربات تریدر فارکس و ربات فارکس خودکار و ربات معامله گر بورس رایگان و آموزش ساخت ربات معامله گر فارکس و دانلود ربات معامله گر بورس ایران و ربات معامله گر آلپاری و ربات فارکس برای اندروید و طراحی ربات متاتریدر و برنامه نویسی ربات متاتریدر و طراحی ربات فارکس و برنامه نویسی ربات فارکس