جهت استخراج داده های بورس تهران حتما با روش های مختلفی آشنایی دارید، ما میخواهیم شما استخراج داده های بورس تهران توسط پایتون را توسط کتابخانه های finpy-tse و pytse-client آشنا کنیم.
من با این کتابخانه ها کمی کار کردم و به نظر من کتابخانه finpy-tse داده های تمیز تری ارائه می نماید و بدلیل اینکه داخل خود از کتابخانه pandas استفاده نموده جداول مرتب بوده و نیاز به جدول سازی مجدد نمی باشد.

قابلیت های کتابخانه finpy-tse:
- قابلیت دسترسی به دادههای یک سهم با استفاده از نماد یا نام کامل فارسی
- قابلیت انجام تعدیل قیمت به صورت یکجا با احتساب انواع افزایش سرمایه و پرداخت سود نقدی
- هوشمندی در تشخیص جابجایی یک نماد بین بازارهای مختلف و یکپارچه سازی همه سوابق نمادهای دارای جابجایی
- قابلیت دسترسی به سوابق همه شاخصهای بازار بورس و هوشمندی در تشخیص اشتباهات املایی و نگارشی عناوین شاخص صنایع بورسی
- قابلیت دسترسی به سابقه دادههای درونروز یک نماد شامل عمق بازار و ریز معاملات
- قابلیت دسترسی و رصد لحظهای دیدهبان و عمق بازار در ساعت انجام معاملات در بازار
- قابلیت تهیه لیست جامعی از مشخصات همه سهمهای بازار
- قابلیت دانلود دستهجمعی سابقه قیمت لیستی از سهمها و ساخت پنل قیمت پایانی تعدیل شده برای آنها
- قابلیت دسترسی به سابقه ۱۰ ساله قیمت دلار بازار آزاد
- خروجی سازگار با دیتافریم پانداز و قابلیت فیلترینگ زمانی مجدد بر اساس تاریخ شمسی
- قابلیت ارائه تاریخ شمسی، میلادی و نام ایام هفته برای دادههای روزانه
اولین مطلب من در خصوص گزینش و پالایش سهم های بورس تهران با استفاده از پایتون
با استفاده از کدهای زیر ابتدا کتابخانه های مورد نظر را دریافت نمایید:
pip install finpy_tse
pip install pandas
کد زیر جهت استخراج داده های سهام های بورس، فرابورس و پایه می باشد که شما می توانید با شرایط خود هر یک را جدا گانه انتخاب نمایید:
import finpy_tse as fpy
df = fpy.Build_Market_StockList(
bourse=True,
farabourse=True,
payeh=True,
detailed_list=False,
show_progress=False,)
df = df.index.to_list()
#با این کار شما اسامی سهام ها را به لیست تبدیل می کنید
sels = []
پس از اینکه لیست کامل سهام ها را دریافت نمودیم یک حلقه ایجاد میکنیم تا داده های سهام ها دریافت گردد.
import pandas as pd
# عدد ۷۴۷ تعداد سهام می باشد شما بر اساس تعداد لیستی که دریافت میکنید می توانید آن را دریافت کنید
# start_date، end_date جهت زمان دوره مورد نظر شما درصورتی که از اندیکاتور ها میخواهید استفاده نمایید بهتر است از داده یک ساله استفاده نمایید و درصورتی که جهت تحلیل ریسک و بازدهی استفاده میکنید از بازه ۵ ساله استفاده نمایید
i = 0
while i < 747:
stock = fpy.Get_Price_History(stock=df[i], start_date='1402-07-01', end_date='1402-11-07', adjust_price=True, double_date=True)
stock.to_csv("{}.csv".format(df[i]))
sels.append(df[i])
i += 1
دلیل استفاده از حلقه While در این فرمول این است که سامانه های اینترنتی و انلاین ایران مدام قطع و وصل میگردند و ابزار امنیتی متعددی دارند که این امر سبب میگردد در زمان دریافت اطلاعات قطعی و خارج شدن از حلقه صورت پذیرد شما با این روش شما لیست جداول دانلود شده را دریافت نموده اید و مابقی را دریافت میکنید.
درصورتی که بخواهید با حلقه For داده ها را دریافت کنید فرمول به شکل زیر می باشد.
import pandas as pd for i in df:
stock = fpy.Get_Price_History(stock=i, start_date='1402-07-01', end_date='1402-11-07', adjust_price=True, double_date=True)
stock.to_csv("{}.csv".format(i))
sels.append(i)
i += 1
لازم به ذکر است که در فولدری که فایل کد ذخیره گردیده است بر اساس نام هر سهم یک فایل CSV ساخته می گردد درصورتی که علاقمند به ساخت فایل اکسل باشید کافی است to_csv را به to_excel تغییر دهید.
امیدوارم استخراج داده های بورس تهران توسط پایتون برای شما مفید باشد.
دیدگاهتان را بنویسید