بعد از چند ماه وقفه ، می توانم در نهایت ارسال ارسال به سری جعبه ابزار معاملاتی را از سر بگیرم. ما این سریال را با یادگیری نحوه ترسیم شاخص ها (به طور خاص: میانگین حرکت) در بالای نمودار قیمت شروع کردیم. میانگین حرکت متعلق به گروه گسترده ای از شاخص ها ، به نام شاخص های پوشش ، که در مقیاس مشابه قیمت هستند و بنابراین می توانند در همان نمودار ترسیم شوند. با این حال ، سایر شاخص های فنی این مزیت را ندارند و ما باید آنها را در یک منطقه جداگانه ترسیم کنیم ، که گاهی اوقات یک زیرمجموعه خوانده می شود.
در اینجا نمونه ای از نمودار سهام با یک نشانگر در یک صفحه جداگانه گرفته شده از Yahoo! دارایی، مالیه، سرمایه گذاری:
با استفاده از این پست ، ما می خواهیم چگونگی ایجاد نمودارهای مشابه با استفاده از Matplotlib را کشف کنیم. ما همچنین می خواهیم چگونگی مهار پتانسیل Matplotlib را برای سفارشی سازی و ایجاد نمودارهای اصلی و با کیفیت انتشار کشف کنیم. برای شروع ، ما می آموزیم که چگونه می توانیم با استفاده از matplotlib ، آن نوع زیرمجموعه را بدست آوریم. سپس ، ما آن را برای ترسیم اولین شاخص فنی خود زیر قیمت ، نرخ تغییر (یا ROC) اعمال خواهیم کرد. سپس نگاهی به چگونگی انجام این کار در یک نوار OHLC یا نمودار شمعدان به جای نمودار خط خواهیم داشت.
چند زیرمجموعه با matplotlib
در این مرحله ما باید به برخی از جنبه های فنی نحوه عملکرد Matplotlib بپردازیم: اینگونه است که می توانیم از قابلیت های مختلف توطئه های آن و نمودارهای کیفیت انتشار صنایع دستی استفاده کنیم. تمام کد ارائه شده فرض می کند که شما از نوت بوک Jupyter استفاده می کنید. اگر در عوض ، شما از ویرایشگر متن معمولی یا خط فرمان استفاده می کنید ، باید اضافه کنید:
هر بار که نمودار ایجاد می شود تا بتواند آن را مشاهده کند.
در دو پست اول این سری ، ما اولین توطئه قیمت مالی خود را با استفاده از قالب ایجاد کردیم:
شما می توانید اولین مقاله در مورد میانگین های متحرک یا دوم در مورد میانگین های متحرک وزنی و نمایی را مشاهده کنید.
هنگام فراخوانی این روش ، Matplotlib برای ایجاد نمودارها چند کار در پشت صحنه انجام می دهد:
- اول ، این یک شیء به نام شکل ایجاد می کند: این ظرفی است که همه نمودارهای ما در آن ذخیره می شوند. با این حال ، یک شکل به صورت خودکار و بی سر و صدا ایجاد می شود ، با این حال ، ما می توانیم صریحاً آن را ایجاد کنیم و در صورت نیاز به عبور برخی از پارامترها ، به عنوان مثال ، به آن دسترسی پیدا کنیم. با دستورالعمل: شکل = plt. figure (figsize = (12،6))
- در بالای آن ، Matplotlib یک شیء به نام محورها ایجاد می کند (با محور اشتباه نکنید): این شی با یک زیرمجموعه واحد موجود در شکل مطابقت دارد. باز هم ، این عمل معمولاً در پشت صحنه اتفاق می افتد.
در هر شکل ، ما می توانیم چندین زیرمجموعه (محورها) داشته باشیم که در یک ماتریس مرتب شده اند:
اولین نمودارهای نقشه چندگانه ما
وقتی صحبت از نمودارهایی با زیر مجموعه های مختلف می شود ، روش ها و روش های کافی برای چرخش سر ما در دسترس است. ما قصد داریم فقط یک مورد را انتخاب کنیم: روش . subplot () اهداف ما را به خوبی ارائه می دهد. از طریق آموزش های دیگر ، ممکن است با روشی به نام . add_subplot () روبرو شوید: روش . subplot () یک بسته بندی برای . ADD_SUBPLOTS () است (این بدان معنی است که باید استفاده از آن را ساده تر کند). به استثنای چند جزئیات ، استفاده از آنها در واقع بسیار مشابه است.
هر زمان که یک زیرمجموعه را به یک شکل اضافه کنیم ، باید سه پارامتر را تهیه کنیم:
- تعداد ردیف های موجود در ماتریس نمودار.
- تعداد ستون ها
- تعداد زیرمجموعه خاص: می توانید از نمودار بالا توجه داشته باشید که اشیاء محورها به سمت چپ به راست و سپس از بالا به پایین شماره گذاری می شوند.
بگذارید سعی کنیم یک مثال عملی از نمودار طرح چندگانه 2x2 عمومی بسازیم:
که نمودار زیر را به ما می دهد:
اضافه کردن یک زیرمجموعه شاخص به یک سری قیمت
اکنون که می دانیم چگونه نمودارهایی را با چندین قطعه ایجاد کنیم ، می توانیم مهارت های خود را برای ترسیم یک شاخص در پایین نمودار قیمت اعمال کنیم. برای این کار ، ما قصد داریم از شاخصی که به عنوان نرخ تغییر (ROC) شناخته می شود استفاده کنیم. در واقع چند تعریف متفاوت از ROC وجود دارد ، و موردی که می خواهیم برای مثال خود از آن استفاده کنیم ، براساس فرمول است:
جایی که تاخیر می تواند هر تعداد کامل از صفر باشد و تعداد دوره ها را نشان دهد (در نمودار روزانه: روزها) ما به دنبال مقایسه قیمت خود هستیم. به عنوان مثال ، هنگامی که ما ROC قیمت روزانه را با یک تاخیر 9 روزه محاسبه می کنیم ، ما به سادگی می بینیم که در درصد ، قیمت نسبت به 9 روز پیش چقدر افزایش یافته است (یا پایین آمده است). در این مقاله نمی خواهیم در مورد نحوه تفسیر نمودار ROC و استفاده از آن برای تصمیمات سرمایه گذاری بحث کنیم: این بهتر باید یک مقاله اختصاصی داشته باشد و ما قصد داریم این کار را در یک پست آینده انجام دهیم.
ما با آماده سازی محیط خود شروع می کنیم:
برای این تمرین ، من از Yahoo! قیمت های روزانه برای Invesco QQQ Trust ، ETF که عملکرد شاخص NASDAQ 100 را ردیابی می کند. شما می توانید در اینجا پرونده CSV را که من استفاده می کنم پیدا کنید. ما می توانیم داده های خود را بارگیری کنیم و نگاهی اجمالی به آن داشته باشیم:
که به نظر می رسد:
سپس می توانیم یک سری ROC را با یک تاخیر 9 روزه محاسبه کنیم و آن را به عنوان ستون به قاب داده خود اضافه کنیم:
برای خواندن نمودارهای مثال ما ، فقط از مجموعه ای از داده های موجود استفاده می کنیم. در اینجا نحوه انتخاب 100 ردیف آخر ، مربوط به 100 روز معاملاتی اخیر آورده شده است:
اکنون ما آماده هستیم تا اولین نمودار نقشه چندگانه خود را با قیمت بالا و نشانگر ROC در پایین ایجاد کنیم. می توان توجه داشت که ، در مقایسه با یک نمودار عمومی با زیرمجموعه ها ، نشانگر ما دارای همان تاریخ و زمان (محور افقی) به عنوان نمودار قیمت است:
ما به تازگی نمودار اول خود را با قیمت و ROC در مناطق جداگانه ترسیم کرده ایم: این نمودار کار خود را به این معنا انجام می دهد که باعث می شود قیمت و شاخص قابل مشاهده باشد. با این حال ، این کار را به روشی بسیار بصری جذاب انجام نمی دهد. برای شروع ، قیمت و ROC در همان زمان محور به اشتراک می گذارند: نیازی به استفاده مجدد از برچسب های تاریخ در هر دو نمودار نیست. ما می توانیم با استفاده از: آنها را از نمودار بالا حذف کنیم:
همچنین می توانیم شکاف بین دو زیرزمین را با:
همچنین ایده خوبی است که یک خط افقی در سطح صفر ROC اضافه کنید تا آن را خواندنی تر و همچنین اضافه کردن برچسب ها به هر دو محور عمودی.
این نمودار از قبل بهتر به نظر می رسد. با این حال ، Matplotlib هنگام ایجاد نمودارهای حرفه ای ، پتانسیل بسیار بیشتری را ارائه می دهد. در اینجا چند نمونه از آنچه می توانیم انجام دهیم آورده شده است:
- برای تقویت خوانایی نشانگر ROC ، می توانیم مناطق بین طرح و خط افقی را پر کنیم. روش . fill_between () در خدمت این هدف خواهد بود.
- ما می توانیم برچسب های تاریخ را قالب بندی کنیم تا به عنوان مثال فقط نام ماه را به صورت کوتاه نشان دهیم (به عنوان مثال ، ژانویه ، فوریه ، ...).
- ما می توانیم از یک قالب درصد برای برچسب ها در محور عمودی ROC استفاده کنیم.
- ما می توانیم یک شبکه را به هر دو زیرمجموعه اضافه کنیم و یک رنگ پس زمینه تنظیم کنیم.
- حاشیه ها (بالشتک) بین نقشه و مرزها را افزایش دهید.
- به منظور به حداکثر رساندن نسبت اتصال داده نمودار ، می توانیم تمام ستون فقرات (مرزهای اطراف زیرمجموعه ها) و علائم کنه را در محور افقی و عمودی برای هر دو زیرمجموعه حذف کنیم.
- همچنین می توانیم اندازه پیش فرض را برای همه فونت ها بر روی تعداد بیشتری تنظیم کنیم ، مثلاً 14.
این یک لیست کاملاً طولانی از پیشرفت ها است. بدون اینکه بیش از حد در جزئیات گم شود ، کد زیر باید مثال خوبی را ارائه دهد:
این نمودار با دستکاری پارامترهای پیش فرض MATPLOTLIB می توانیم به آنچه می توانیم به دست بیاوریم. البته ، ما همیشه می توانیم با استفاده از یک برگه سبک موجود ، همانطور که در اولین مقاله از این سری انجام داده ایم ، به پیشرفت های بصری دست یابیم. با:
هنگام استفاده از زیرمجموعه های شاخص ، بیشتر اوقات می خواهیم بخش قیمت منطقه بزرگتر از بخش نشانگر را در نمودار ببرد. برای دستیابی به این هدف ، ما باید شبکه نامرئی را که Matplotlib برای قرار دادن زیرمجموعه ها استفاده می کند ، دستکاری کنیم. ما می توانیم با استفاده از عملکرد GridSpec این کار را انجام دهیم. این یکی دیگر از ویژگی های بسیار قدرتمند Matplotlib است. من فقط یک مثال کوتاه از نحوه استفاده از آن برای کنترل نسبت ارتفاع بین دو زیرمجموعه ما ارائه می دهم:
به عنوان یک یادداشت جانبی ، ممکن است متوجه شوید که چگونه این نمودار 14 را به عنوان اندازه قلم از کد نمودار قبلی حفظ کرده است. این اتفاق می افتد زیرا هرگونه تغییر در پارامترهای RCPARAMS MATPLOTLIB دائمی است (تا زمانی که سیستم را مجدداً راه اندازی کنیم). در صورت نیاز به تنظیم مجدد آنها می توانیم استفاده کنیم:
و در صورت استفاده از نوت بوک Jupyter ، ٪ matplotlib را به صورت خطی اضافه کنید.
شاخص ها با نمودارهای OHLC و شمعدان
در تمام مثالهای قبلی ، قیمت را به عنوان یک طرح خط ترسیم کردیم. توطئه های خط یک روش مناسب برای تجسم قیمت ها است که ما فقط یک نقطه داده (در این حالت ، قیمت بسته شدن) برای هر دوره از معاملات داریم. اغلب اوقات ، با سری قیمت های مالی ، ما می خواهیم از نمودارهای نوار OHLC یا نمودارهای شمعدانی استفاده کنیم: این نمودارها می توانند تمام قیمت هایی را که خلاصه فعالیت معاملاتی روزانه (باز ، بالا ، پایین ، نزدیک) را به جای نزدیک بودن نشان می دهد.
برای ترسیم نمودارهای نوار OHLC و نمودارهای شمعدانی در Matplotlib ما باید از کتابخانه MPLFinance استفاده کنیم. همانطور که در پست قبلی این سریال اشاره کردم ، توسعه MPLFinance حرکت جدیدی را جمع کرده است و همه چیز به سرعت در حال تحول است. بنابراین ، ما فقط به طور مکانیکی در مورد نحوه استفاده از آن برای ایجاد نمودارهای خود سر و کار خواهیم داشت.
MPLFinance دو روش برای ایجاد زیرمجموعه ها در نمودارها و اضافه کردن یک شاخص ارائه می دهد:
- با استفاده از روش های خارجی ، نمودارها کم و بیش شبیه به کارهایی است که تاکنون انجام داده ایم. MPLFinance از ترسیم نمودارهای OHLC یا CANDLESTICKS مراقبت می کند. سپس می توانیم یک شیء محور را با نشانگر خود به عنوان یک زیرمجموعه جداگانه منتقل کنیم.
- استفاده از روش پانل ها حتی ساده تر از کد MATPLOTLIB خالص است: MPLFInance کنترل تمام عملیات ترسیم و یک ظاهر طراحی شده را برای ما انجام می دهد. برای دستکاری جنبه های بصری نمودار می توانیم سبک های موجود را اعمال کنیم یا سبک خودمان را ایجاد کنیم.
روش محورهای خارجی کمتر از یک هفته پیش از زمان نوشتن این مطلب منتشر شد. من هنوز مشتاقانه منتظر استفاده از آن هستم تا دریابم که چه پتانسیل ای می تواند ارائه دهد.
به عنوان طعم دهنده کاری که می توانیم با استفاده از روش پانل MPLFINANCE انجام دهیم ، می توانیم یک نمودار شمعدانی را با حجم در یک صفحه جداگانه ترسیم کنیم:
ما می توانیم نشانگر ROC خود را در یک زیرمجموعه جداگانه اضافه کنیم:
نتیجه
چندین بسته در آنجا وجود دارد که امکان ایجاد نمودارهای مالی با استفاده از پایتون و پاندا را فراهم می کند. به طور خاص ، Plotly از توانایی خود در ایجاد نمودارهای تعاملی خوب به نظر می رسد. از طرف دیگر ، Matplotlib ممکن است بهترین نمودارها را مستقیماً از جعبه تولید نکند (در صورت نیاز به Seabo نگاه کنید) با این حال ، این یک پتانسیل سفارشی عظیم دارد که باعث می شود نمودارهای استاتیک ایجاد شود که بتواند در یک حرفه ای ایستادگی کندانتشار.
به همین دلیل من معتقدم که ارزش این را دارد که از ویژگی های Matplotlib استفاده کنید. تحولات آینده MPLFinance این امکانات را جذاب تر می کند.< Pan> نتیجه گیری
استراتژی های مؤثر فارکس...
ما را در سایت استراتژی های مؤثر فارکس دنبال می کنید
برچسب :
نویسنده : توران میرهادی
بازدید : <-PostHit->
تاريخ : شنبه
19 فروردين
1402 ساعت: 14:40