Python4Finance
9.32K subscribers
570 photos
41 videos
153 files
764 links
کانال Python4Finance
آموزش پایتون در اقتصاد و مدیریت مالی
هر روز چند نکته را در خصوص پایتون برای مالی بیاموزیم
***
ارتباط با من
b2n.ir/y72935
***
آپارت:
aparat.com/Python4Finance
کانال چالش ها:
t.me/python4finance_challenge
加入频道
طریقه دریافت اطلاعات از TSETMC (بورس ایران)
بخش اول
خب ، کم کم بریم سراغ مباحث مربوط به الگوریتم تریدینگ در بورس ایران. گفتیم که هدف ما از یادگیری پایتون، مدلسازی (اقتصادی و مالی) و اتخاذ تصمیم مناسب در زمان مناسب است. برای این موضوع لازم است از داده های صحیح استفاده کنیم. بهترین منبع اطلاعاتی برای بورس ایران سایت شركت مديريت فناوري بورس تهران (لینک) است.
برای دریافت اطلاعات از این سایت، راه های مختلفی وجود دارد.
روش اول: استفاده از کتابخانه Beautiful Soup : این کتابخانه با روش scrape اطلاعات سایت را برای شما واکشی می کند. از این روش بیشتر برای سایت هایی که api در اختیار شما قرار نمی دهند و خروجی فایل (اکسل یا csv و ...) ندارند استفاده می شود. در روزهای آینده در این خصوص توضیح خواهم داد.
روش دوم: استفاده از کتابخانه pandas. در پست بعد در خصوص استفاده از کتابخانه پانداس برای واکشی داده از TSETMC با هم صحبت خواهیم کرد.

#پایتون_مالی
#داده
#TSETMC
#Pandas
#Beautiful_Soup

پایتون برای مالی در تلگرام
https://yangx.top/joinchat/AAAAAFGMkouqbsb86Vfzug
پایتون برای مالی در بله
https://ble.im/python4finance
طریقه دریافت اطلاعات از TSETMC (بورس ایران)- بخش دوم

آشنایی با انواع داده ها در پانداس

قبل از وارد کردن داده های بورس ایران، به طور کلی، پانداس از سه نوع داده پشتیبانی می کند.
1- داده های سری (Series): سری ها، داده‌های یک بعدی و همگن هستند (مثلا سری های زمانی و ...)
2- قاب داده (DataFrame): این نوع داده که ما در اقتصاد و مالی به آن داده های مقطعی (cross section) می گوییم، داده های دو بعدی هستند که مقادیر مختلف دادهای مختلف را در یک زمان مشخص نشان می دهند. طبیعی است که داده های موجود در انباره داده ناهمگن هستند.
3- داده های پنل (Panel Data): داده های سه بعدی که ترکیبی از دو نوع داده فوق هستند.

#پایتون_مالی
#داده
#Pandas

پایتون برای مالی در تلگرام
https://yangx.top/joinchat/AAAAAFGMkouqbsb86Vfzug
پایتون برای مالی در بله
https://ble.im/python4finance
1
طریقه دریافت اطلاعات از TSETMC (بورس ایران)- بخش سوم

1- وارد سایت TSETMC شوید. نمادی که می خواهید اطلاعات آن را تحلیل کنید انتخاب کنید.
2- در بالای صفحه بخش سابقه را انتخاب کنید.
3- از منو «تهیه خروجی» را انتخاب کنید یا دکمه e را فشار دهید.
4- لینک مربوطه را ذخیره نمایید.
(http://www.tsetmc.com/tsev2/data/Export-txt.aspx?t=i&a=1&b=0&i=778253364357513)



#پایتون_مالی
#داده
#Pandas

پایتون برای مالی در تلگرام
https://yangx.top/joinchat/AAAAAFGMkouqbsb86Vfzug
پایتون برای مالی در بله
https://ble.im/python4finance
1
طریقه دریافت اطلاعات از TSETMC (بورس ایران)- بخش چهارم

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

#پایتون_مالی
#داده
#Pandas

پایتون برای مالی در تلگرام
https://yangx.top/joinchat/AAAAAFGMkouqbsb86Vfzug
پایتون برای مالی در بله
https://ble.im/python4finance
1
مقایسه روند دو سهم اپل و مایکروسافت در بورس NASDAQ

در این مثال با استفاده از کتابخانه pandas_datareader اطلاعات مربوط به سهام دو شرکت اپل و مایکروسافت دریافت شده و نمودار روند آن ترسیم شده است.
#پایتون_مالی
#pandas_datareader

پایتون برای مالی در تلگرام
https://yangx.top/joinchat/AAAAAFGMkouqbsb86Vfzug
پایتون برای مالی در بله
https://ble.im/python
پرکردن نقایص داده ها (interpolate)
یکی از مشکلاتی که در کار با سری های زمانی و دیتافریم ها داریم، داده های ناقص است. برای مثال یک سهم ممکن است در زمان های خاصی بسته باشد یا داده های یک متغیر در زمان های خاصی در دسترس نباشد. این موارد باعث به هم خوردن محاسبات و بعضا error های حین برنامه می شود. پانداس برای مدیریت کردن داده های خالی یا اصطلاحا NaN روش های متنوعی را ارائه می دهد. یکی از این روش ها پر کردن داده ها بر اساس داده های قبلی و بعدی است. به این معنا که پانداس داده های قبلی و بعدی را در نظر می گیرد و جای خالی را با میانگین آنها پر می کند. این کار در هموار سازی داده ها بسیار تاثیر گذار است. در تصویر این پست، نمونه ای این روش با استفاده از تابع interpolate در پانداس نشان داده شده است.

#پانداس
#سری_زمانی
#پایتون_مالی
#داده
#interpolate
#pandas


پایتون برای مالی در تلگرام
https://yangx.top/joinchat/AAAAAFGMkouqbsb86Vfzug
کار با مقادیر از دست رفته در پایتون، ماژول Pandas- بخش پنجم (پایانی)

در پست های قبل در خصوص داده های از دست رفته صحبت کردیم. پانداس امکانات بسیار خوبی را برای کار با توابع از دست رفته در اختیار قرار می دهد.
معمولا یا داده های از دست رفته را حذف می کنیم (dropna) یا آنها را با یک مقدار ثابت جابجا می کنیم (replace و fillna) یا آنها را با نزدیک ترین مقدار قبلی یا بعدی پر می کنیم (fillna). البته می توانیم با استفاده از توابع شرطی تصمیم خاصی روی آنها بگیریم (notnull و isnull)
در تصویر این پست، نحوه عملکرد برخی توابع کار با داده های از دست رفته نشان داده شده است.

#پانداس
#pandas
#fillna
#bfill
#ffill

پایتون برای مالی در تلگرام https://yangx.top/python4finance
پایتون برای مالی در بله https://ble.im/python4finance
2
نمایش شاخص S&P500 (وضعیت 500 شرکت برتر بورس نیورک)

در این برنامه شاخص S&P از ابتدای سال 2020 تا امروز رسم شده است. به ریزش بازار سهام در ابتدای پیدایش ویروس کرونا و بعد، از بین رفتن آثار آن در طی این مدت دقت فرمایید.

#شاخص
#پایتون_مالی
#S&P
#pandas_datareader


پایتون برای مالی در تلگرام https://yangx.top/python4finance
پایتون برای مالی در بله https://ble.im/python4finance
رفع مشکل دریافت دیتا از Yahoo Finance با Pandas-datareader

چند روزی بود که به علت تغییرات در سایت Yahoo Finance امکان دریافت داده از طریق Pandas-datareader میسر نبود و با خطا مواجه می شدیم.
خوشبختانه توسعه دهندگان این ماژول چند ساعت قبل (امروز 22 تیر 1400) آپدیتی را برای این موضوع ارائه کردند.
برای به روز رسانی این ماژول دستور زیر را در CMD اجرا کنید.
pip install --upgrade pandas-datareader

#پایتون_مالی
#یاهو_فایننس
#pandas_datareder
#yahoo_finance

@python4finance
کار با اندیس های تکراری در Pandas
بسیاری از اوقات پیش می آید، که در دیتافریم ها، اندیس‌های تکراری داریم. مثلا فرض کنید میزان فروش شرکت در ایام هفته را ثبت کرده ایم اما برای برخی روزها چون عدد فروش ثبت کرده‌ایم، لازم است همه را یکی کنیم.
یکی از راهکارها برای حل این موضوع استفاده از groupby است. دقت داریم که این تابع همیشه با یک تابع کمکی مثلا میانگین، جمع و ... استفاده می شود.
در مثال این پست؛ جمع موارد بر اساس اندیس تکراری نمایش داده شده است.

#پانداس
#اندیس_تکراری
#پایتنون_مالی
#pandas


@python4finance
اعمال یک تابع روی دیتافریم با تابع apply
یکی از توابع کارآمد در کار با دیتافریم ها تابع apply است. به کمک این تابع می توانید توابع مورد نظر خود را روی دیتافریم اعمال کنید. تابع apply بعد از groupby استفاده می شود.
یک مثال:
فرض کنید میزان خرید و فروش سهام خود را از دو سهم A و B به صورت روزانه ثبت کرده اید.
می خواهیم میزان خرید و فروش کل از هر سهم را محاسبه کنیم.
می خواهیم درصد خرید و فروش هر کدام از سهم ها را نیز محاسبه کنیم.
در مثال این پست می توانید نمونه کد این مثال را مشاهده نمایید.


#دیتافریم
#اعمال_تابع
#پایتون_مالی
#dataframe
#pandas
#groupby
#apply

@python4finance
بررسی روند GDP ایران و ایالات متحده از سال 2000 تا الان
این اطلاعات به کمک ماژول pandas dataredear و از منبع بانک جهانی (Iran GDP , US GDP) استخراج و رسم شده است.

#پایتون_مالی
#تولید_ناخالص_داخلی
#GDP
#Pandas_datareader


@python4finance
1
مقایسه عناصر دو دیتافریم
حالتی را تصور کنید که شما داده های مربوط به یک نماد (مثلا بیت کوین) را در یک بازه زمانی مشخص از دو کارگزاری مختلف دریافت می کنید اما در محاسبات (مثلا محاسبه انحراف معیار یا میانگین) نتایج مختلفی را مشاهده می کنید. در این حالت ابتدا لازم است یکسان بودن داده ها را بررسی کنید. برای بررسی یکسان بودن داده ها از تابع compare در pandas استفاده می کنیم.
در مثال این پست، عناصر دو دیتافریم بررسی و تفاوت ها نمایش داده می شود.

#دیتا_فریم
#پانداس
#پایتون_مالی

#DataFrame
#Pandas
#python

@python4finance