تحلیل اکتشافی دادههای مالی با پایتون
تحلیل داده اکتشافی به انگلیسی Exploratory Data Analysis و به اختصار EDA را باید نخستین گام در معاملات الگوریتمی و ساخت سیستمهای معامله خودکار به حساب آوریم.
در علم آمار میتوان EDA را به صورت زیر تعریف کرد (ویکیپدیا):
«رویکردی برای تحلیل مجموعهدادهها با هدف چکیده کردن ویژگیهای اصلی آنها با محاسبه آمارههای توصیفی و ترسیم نمودارهای آماری»
شما در این آموزش با مفاهیم EDA و نحوه اجرای آنها روی دادههای مالی با استفاده از پایتون آشنا میشوید.
*تذکر: پیش از تهیه این بسته حتماً فیلم معرفی و ریز سرفصلها را در ادامه این مطلب بررسی کنید.
فیلم معرفی
محتوای آموزش
در درس اول این آموزش با مفهوم و مراحل تحلیل اکتشافی دادهها آشنا میشویم. در ادامه ابزار لازم را نصب و راهاندازی میکنیم. برای اهداف این آموزش به پایتون و متاتریدر ۵ و کتابخانههای متعددی مثل pandas و numpy و matplotlib و seaborn و scipy نیاز داریم. در درس سوم با پایتون به متاتریدر متصل میشویم و اطلاعات قیمتی ۵ سال اخیر سه جفت ارز را از سرورهای متاتریدر استخراج و داخل فایل csv ذخیره میکنیم.
پس از تهیه دادهها در سه درس نخست، فایل پروژه را ایجاد میکنیم و دادههای استخراج شده از متاتریدر را برای انجام تحلیل داده اکتشافی داخل پروژه فراخوانی میکنیم. آنگاه دادهها را بصورت DataFrame ذخیره میکنیم.
یکی از کارهای مهم در EDA شناسایی و برخورد با دادههای خالی است. این دادهها ممکن است از نبود واقعی داده و یا خطای انسانی ناشی شوند. ما نیز در جریان این آموزش دادههای nun یا خالی را شناسی و تصحیح میکنیم.
در درس بعد آمارههای توصیفی مثل میانگین را روی دادهها محاسبه میکنیم. سپس نمودار قیمتی جفت ارزها را رسم میکنیم. آنگاه با استفاده از نمودار قیمتی و آمارتوصیفی، دادههای پرت (Outliers) را شناسایی میکنیم.
در درس بعد با دو روش Z_Score و IQR برای شناسای و حذف دادههای پرت آشنا میشوم و در نهایت با تابع zscore از ماژول scipy دادههای پرت را حذف میکنیم.
در بخش آخر از آموزش به آمار تجسمی روی دادهها میپردازیم. ابتدا اختلاف قیمت روزانه جفت ارزها را محاسبه و بعد روی این اختلاف قیمت& آمار توصیفی را بدست میآوریم و تحلیل میکنیم. در درس پانزدهم تابع توزیع اختلاف قیمت را رسم میکنیم و از این نمودار برای پیشبینی احتمال تغییر قیمت جفت ارزها استفاده می کنیم.
در ادامه ماتریس پراکندگی دادهها را رسم میکنیم و با استفاده از آن پیوستگی بین جفت ارزها را محاسبه میکنیم. سپس با تابع corr از ماژول pandas ضریب همبستگی پیرسون را برای جفت ارزها محاسبه میکنیم. با این ضریب قدرت همبستگی و در واقع ارتباط بین جفت ارزها مشخص میشود. در آخر هم نمودار حرارتی ضریب همبستگی پیرسون را رسم میکنیم.
در درس آخر هم با کتابخانه گرافیکی dtale در پایتون برای انجام فرآیند تحلیل اکتشافی دادهها آشنا می شویم.
* تذکر: سورس کدها و پیوستهای مدرس به فیلمهای این بسته پیوست شده است.
ویژگیهای آموزش
- سریع و سناریودار و فشرده است.
- استخراج داده از بازار واقعی را میآموزید.
- در هر سه بازار بورس، فارکس و رمزارز قابل استفاده است.
- مبانی نظری EDA با اجرای عملی در پایتون همراه شده است.
- سورس کدها به آموزش پیوست شده است.
سرفصلهای آموزش
درس صفر: معرفی دوره
- معرفی دوره
- پیشنیاز دوره
- مرور مطالبی که در دوره گفته شده
درس اول: مقدمهای بر تحلیل اکتشافی دادهها
- تعریف EDA یا تحلیل اکتشافی دادهها
- روند انجام فرآیند تحلیل اکتشافی دادهها در آموزش
درس دوم: ابزارشناسی
- معرفی ابزار مورد استفاده در آموزش
- معرفی کتابخانههای لازم
درس سوم : اتصال به سرور متاتریدر ۵
- استفاده از ماژول MetaTrader5 برای اتصال به سرور متاتریدر
- لاگین به حساب متاتریدر در پایتون
درس چهارم : استخراج دادها
- استخراج اطلاعات 5 سال اخیر ۳ نماد از بازار فارکس با استفاده از ماژول MetaTrader5
- ذخیره دادههای هر نماد در یک دیتافریم پاندازی
- تبدیل ستون time دادهها در دیتافریم به زمان با تابع to_datatime
درس پنجم: ذخیره دادها
- استفاده از ماژول path برای ساخت فایل csv و مسیر ذخیره آن
- ذخیره اطلاعات دیتافریم در فایل csv
- حذف ستون index ها در زمان ذخیره اطلاعات در فایل csv
- تبدیل ستون time دادهها در دیتافریم به زمان با تابع to_datatime
درس ششم: جمعآوری دادها
- ساخت فایل پروژه EDA
- فراخوانی ماژول های numpy و pandas و scipy و seaborn و matplotlib و mpld3 و warnings در پروژه
- فراخوانی اطلاعات جفت ارزها از فایل csv در پروژه
درس هفتم: آمادهسازی داده
- تعریف یک دیتافرم خالی با اینکس تاریخ 5 سال اخیر
- ذخیره دادهها با متد join در یک دیتافرم
درس هشتم: پاکسازی دادهها
- بررسی مراحل پاک سازی داده
- شناسایی و حذف سطرهای از دادهها که تمام مقدارهای آن خالی است.
- شناسایی و حذف سطرهای از دادهها که حداقل یکی از مقادیر قیمت بسته شدن آن خالی است.
- شناسایی سطرهای از دادهها که حداقل یکی از مقادیر آن خالی است.
- جایگزینی این مقدار خالی با مقدار صحیح کندل بعداطلاعات دیتافریم در فایل csv
درس نهم: آمار توصیفی دادها
- محاسبه آمار توصیفی در pandas با متد describe
- آشنایی با مفهوم میانگین در آمار توصیفی
- آشنایی با مفهوم انحراف معیار در آمار توصیفی
- آشنایی با مفهوم بیشینه و کمینه در آمار توصیفی
- آشنایی با مفهوم صدکها یا چارک در آمار توصیفی
درس دهم: بررسی آمار توصیفی برای شناسایی دادههای پرت
- بررسی مقدار min و فاصله آن تا چارک اول برای یافتن دادههای پرت
- بررسی مقدار max و فاصله آن تا چارک اول برای یافتن دادههای پرت
درس یازدهم: بررسی نمودار قیمتی برای شناسایی دادهها پرت
- رسم نمودار قیمتی دادههای A و بررسی نمودارها برای شناسایی داده پرت
- رسم نمودار قیمتی دادههای B و بررسی نمودارها برای شناسایی داده پرت
- رسم نمودار قیمتی دادههای C و بررسی نمودارها برای شناسایی داده پرت
درس دوازدهم: روش های پاک سازی دادهها پرت
- معرفی انواع روشهای شناسایی و حذف دادههای پرت
- معرفی روش IQR برای شناسای و حدف دادههای پرت
- معرفی روش Z-score برای شناسای و حدف دادههای پرت
درس سیزدهم: پاک سازی دادهها
- حذف دادههای پرت با استفاده از متد zscore از ماژول Scipy
- رسم نمودار قیمتی و محاسبه آمار توصیفی برای بررسی نتیجه حذف داده ها
درس چهاردهم: آمار تجسمی
- محاسبه اختلاف قیمت روزانه جفت ارزها
- تحلیل آمار توصیفی روی اختلاف قیمت روزانه جفت ارزها
درس پانزدهم: رسم Histogram توزیع دادهها
- رسم هیستوگرام توزیع اختلاف قیمت روزانه هر جفت ارزها
- معرفی ویژگیهای توزیع نرمال
- پیشبینی احتمال تغییر قیمت روزانه جفت ارزها از روی نمودار توزیع نرمال
درس شانزدهم : رسم ماتریس پراکندگی
- رسم ماتریس پراکندگی اختلاف قیمت روزانه جفت ارزها
- بررسی نمودار چگالی کرنلی (Kernel Density Estimation) توزیع اختلاف قیمت روزانه هر جفت ارزها
- معرفی ویژگیهای نمودار چگالی کرنلی (Kernel Density Estimation)
- پیشبینی احتمال تغییر قیمت روزانه جفت ارزها از روی نمودار چگالی کرنلی (Kernel Density Estimation)
درس هفدهم: همبستگی (Correlation) بین جفت ارزها
- محاسبه همبستگی بین دو جفت ارز بر اساس بررسی نمودار پراکندگی دادهها
- محاسبه ضریب همبستگی پیرسون
- رسم نمودار حرارتی ضریب همبستگی پیرسون
درس هجدهم: معرفی کتابخانه گرافیکی dtale
- نصب کتابخانه dtale
- فراخانی ماژول dtale در پروژه و تشکیل جدول روی دادهها
- معرفی منوهای مختلف و روش کار با این کتابخانه گرافیکی
درس نوزدهم: جمعبندی
- مروری بر مطالب گفته شده در دوره
- ایدههای برای ادامه مسیر
پیشنیاز
استفاده از این آموزش دو پیشنیاز دارد:
۱- آشنایی با برنامه نویسی پایتون که اگر آشنا نیستید، میتوانید از لینک زیر استفاده کنید.
آموزش برنامه نویسی پایتون از صفر تا شی گرایی (+)
۲- آشنایی با مبانی معامله در بازارهای مالی که اگر ندارید، ابتدا بسته زیر را ببینید.
آموزش شروع معامله الگوریتمی با پایتون (+)
مشخصات فنی
مدت زمان | ۲ ساعت (فشرده) |
محتوای بسته | فیلم + سورس کد |
سبک تولید | فشرده/تدوینی/سناریودار |