Skip to main content

fima

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

نصب

به پایتون نسخهٔ ۳٫۱۰ یا جدیدتر نیاز دارید:

pip install fima

شروع سریع

برای دریافت تاریخچهٔ قیمت سهام، نام نماد را وارد کنید:

from fima import get_ticker_historical_data

history = get_ticker_historical_data(ticker="فملی")
print(history[["ClosingPrice", "TradeVolume"]].head())

خروجی یک جدول پانداس با نمایهٔ JalaliDate است؛ تاریخ‌های شمسی به‌شکل رشته‌هایی مانند 1405-07-26 برمی‌گردند. قیمت پایانی رسمی در ستون ClosingPrice و حجم معاملات در ستون TradeVolume قرار دارد.

چه داده‌هایی در دسترس است؟

  • سهام و شاخص‌ها: تاریخچهٔ قیمت، معاملات و سهامداران از ماژول TSETMC.
  • طلا، ارز و بازارهای جهانی: فهرست نمادها، آخرین قیمت‌های موجود و تاریخچهٔ روزانه از ماژول TGJU.
  • صندوق‌های سرمایه‌گذاری: فهرست صندوق‌ها، ارزش خالص دارایی‌ها و ترکیب دارایی‌ها از ماژول Funds؛ اطلاعات صندوق‌ها از سامانهٔ بورس نیز در همین ماژول است.
  • بورس کالا: معاملات بازار فیزیکی، صادراتی، آتی، اختیار و گواهی سپرده از ماژول IME.
  • اختیار معامله: زنجیرهٔ قراردادها، تاریخچه و محاسبات قیمت و حساسیت‌ها از ماژول Options.
  • فرابورس: اوراق بدهی، شاخص‌ها، نرخ بدون ریسک و تأمین مالی از ماژول IFB.
  • نهادهای مالی: فهرست نهادها از ماژول TSEInstitutions.
  • بانک مرکزی ایران: تاریخچهٔ رسمی نرخ‌های سیاستی و بازار بین‌بانکی از ماژول CBI؛ راهنما و محدودیت دسترسی منبع.

مثال‌های کاربردی

قیمت تعدیل‌شدهٔ سهام

برای افزودن قیمت‌های تعدیل‌شده، گزینهٔ تعدیل را فعال کنید:

from fima import get_ticker_historical_data

history = get_ticker_historical_data(ticker="فملی", adjust_prices=True)
print(history[["ClosingPrice", "AdjustedClosingPrice"]].head())

قیمت خام حفظ می‌شود. تعدیل بر پایهٔ قیمت مرجع بورس و با مبنای آخرین تاریخ برگشتی است؛ این خروجی، سری بازده کل تأییدشده نیست. روش محاسبه و انتخاب تاریخ مبنا در راهنمای تعدیل آمده است.

تاریخچهٔ قیمت دلار

برای دریافت داده‌های طلا و ارز، نام ابزار و گروه آن را مشخص کنید:

from fima import get_tgju_history

usd = get_tgju_history("دلار", "ارز", start_date="2026-10-01", end_date="2026-10-15")
print(usd[["GregorianDate", "ClosingPrice"]].tail())

در این مثال، تاریخ‌های ورودی میلادی‌اند. برای تاریخ شمسی و یافتن نام دقیق ابزارها، راهنمای طلا و ارز را ببینید. واحد هر سری در مشخصات خروجی قرار دارد؛ ریال و تومان به هم تبدیل نمی‌شوند.

اطلاعات صندوق‌های سرمایه‌گذاری

برای دیدن فهرست صندوق‌ها و اطلاعات فعلی آن‌ها از این تابع استفاده کنید:

from fima import get_all_funds

funds = get_all_funds()
print(funds[["FundName", "FundTypeName", "TotalNAV"]].head())

برای دریافت تاریخچهٔ ارزش خالص دارایی‌ها و ترکیب دارایی‌های یک صندوق، نام دقیق آن را از همین فهرست انتخاب کنید؛ نمونه‌ها در راهنمای صندوق‌ها آمده‌اند.

فهرست و جزئیات صندوق‌ها از سامانهٔ بورس

برای انتخاب صندوق از منبع TSETMC، نام گروه و نام کامل صندوق کافی است:

نمونهٔ زیر از نام کلیدهای نسخهٔ ۰٫۱۰٫۰ استفاده می‌کند. تفاوت‌های ناسازگار با نسخه‌های پیشین در راهنمای مهاجرت آمده‌اند.

from fima import get_tsetmc_funds, get_tsetmc_fund_details

funds = get_tsetmc_funds("مختلط")
print(funds[["FundName", "RegistrationNumber"]].head())
details = get_tsetmc_fund_details(funds.iloc[0]["FundName"], fund_type="مختلط")
print(details["FundName"])

نام صندوق را از ستون FundName انتخاب کنید. جدول فهرست و دیکشنری جزئیات از نام‌های یکسان برای مفهوم‌های مشترک استفاده می‌کنند. فیلدهای نامشخص منبع فقط در بخش صریح ProviderMetadata حفظ می‌شوند. اطلاعات این منبع ممکن است با وب‌سایت صندوق از نظر تاریخ و پوشش متفاوت باشد؛ راهنمای صندوق‌های بورس جزئیات بیشتری دارد.

قرارداد داده‌ها

خروجی‌های عمومی نسخهٔ ۰٫۹ از یک قرارداد مشترک پیروی می‌کنند:

  • نام ستون‌های جدول‌ها و کلیدهای معمول دیکشنری‌ها انگلیسی و به‌شکل PascalCase است؛ نام توابع و پارامترهای پایتون به‌شکل snake_case باقی می‌ماند. مفهوم‌های مالی یکسان نیز تا جای ممکن نام یکسان دارند.
  • تاریخ‌های میلادی در جای مناسب به‌صورت datetime پانداس و تاریخ‌های شمسی به‌شکل رشتهٔ لاتین YYYY-MM-DD برمی‌گردند.
  • مقدارهای مالی قابل محاسبه عددی‌اند، اما شناسه‌هایی که کاربرد محاسباتی ندارند رشته باقی می‌مانند. مقدارهای ناموجود نیز با رفتار معمول داده‌های گمشده در پانداس نمایش داده می‌شوند.
  • درصدهای داخل جدول‌ها بر حسب واحد درصد هستند؛ برای نمونه 2.5 یعنی 2.5%.
  • واحد پول و واحد فیزیکی اعلام‌شدهٔ ارائه‌دهنده بدون تبدیل حفظ می‌شود، مگر آنکه مستندات یک تابع صریحاً خلاف آن را بگویند.

تعریف کامل نام‌ها، نوع داده‌ها و استثناها در قرارداد داده‌های عمومی آمده است.

ارتقا به نسخهٔ ۰٫۹٫۰

در نسخهٔ ۰٫۹٫۰ نام برخی ستون‌ها، نوع بعضی داده‌ها، مقیاس درصدهای جدولی و تعدادی محاسبه برای یکپارچگی و اصلاح معنی مالی تغییر کرده‌اند. اگر از نسخه‌ای قدیمی‌تر ارتقا می‌دهید، راهنمای کامل مهاجرت را پیش از به‌روزرسانی کد خود ببینید. نام توابع و پارامترهای عمومی تغییر نکرده است.

مستندات بیشتر

نکات مهم

  • دریافت داده به اینترنت و در دسترس بودن منبع وابسته است؛ دادهٔ موجود ممکن است قدیمی یا ناقص باشد.
  • این کتابخانه مستقل از ارائه‌دهندگان داده است. شرایط استفادهٔ هر منبع را رعایت کنید.

مشارکت و گزارش مشکل

برای گزارش مشکل، یک مسئله در گیت‌هاب باز کنید. نام تابع، نمونهٔ کوتاه کد و متن خطا را بنویسید. برای توسعه و اجرای آزمون‌ها، راهنمای مشارکت را ببینید.

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

Metadata

Release files for fima 0.11.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fima 0.11.0
File Size Uploaded Provenance
fima-0.11.0.tar.gz 86.0 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for fima 0.11.0
File Interpreter ABI Platform
fima-0.11.0-py3-none-any.whl Python 3 none any Details

Total release size: 158.6 kB

Release files / fima-0.11.0.tar.gz

Download URL fima-0.11.0.tar.gz
Size 86.0 kB
Tags Source
SHA-256 checksum
How to use checksums
009175aede3d785d281d20f6842ec04a23e555d7cb9d5554d6d1c0669be6a1d9
BLAKE2b-256 checksum
How to use checksums
c82a06b92588efe21c5dc46069af0503236b1dbb2366ca4abde9ebfd1a2dd7a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / fima-0.11.0-py3-none-any.whl

Download URL fima-0.11.0-py3-none-any.whl
Size 72.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c1d5c654bae2994b1da68d5e54784ed8acf0bf9877a778ac2bca7fa52335630f
BLAKE2b-256 checksum
How to use checksums
b44a17990684b0e358dd077f66c07b0b320044ea51812ba5782f51a8c832d8bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Security for fima 0.11.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for fima-0.11.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page