دانلود رایگان سابقهٔ قیمت سهام بورس و فرابورس

تیم روشا · ۲۳ آبان ۱۴۰۵

سابقهٔ قیمت سهام بورس تهران و فرابورس را از سه راه رایگان می‌توانید از روشا بگیرید: فایل CSV یک‌ساله در صفحهٔ هر نماد، کلید رایگان API با دادهٔ پایان روز، و پلن دانشگاهی برای دانشجویان و پژوهشگران. این نوشته هر سه راه را قدم‌به‌قدم نشان می‌دهد و می‌گوید چه چیزی رایگان نیست.

روشا (ROSHA)، پلتفرم دادهٔ بازار سرمایه است. داده‌ها از TSETMC و فیپیران می‌آید و همهٔ قیمت‌ها به ریال است.

کدام راه برای شما مناسب است؟

نیاز شما راه پیشنهادی ثبت‌نام
یک یا چند نماد، در اکسل فایل CSV صفحهٔ نماد لازم نیست
کد پایتون، چند ده نماد، به‌روزرسانی روزانه کلید رایگان API شمارهٔ موبایل یا ایمیل
پایان‌نامه یا مقاله با نمادهای زیاد پلن دانشگاهی شمارهٔ موبایل یا ایمیل، و ایمیل دانشگاهی

راه اول: چطور سابقهٔ قیمت یک نماد را با فایل CSV دانلود کنم؟

هر نماد بورس، فرابورس و بازار پایه در روشا یک صفحهٔ رایگان دارد. در این صفحه نمودار یک‌ساله، جدول ۳۰ روز معاملاتی اخیر و دکمهٔ دانلود CSV را می‌بینید.

  1. به صفحهٔ پوشش داده بروید و نام یا نماد را جست‌وجو کنید.
  2. صفحهٔ نماد را باز کنید. برای نمونه، صفحهٔ فولاد در /symbols/46348559193224090/ است.
  3. دکمهٔ دانلود CSV را بزنید. مرورگر شما یک بررسی امنیتی کوتاه را خودکار انجام می‌دهد و فایل دانلود می‌شود.

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

date, jalali_date, open, high, low, close, last, volume, value, trades, close_unadjusted

close قیمت پایانی تعدیل‌شده و close_unadjusted قیمت پایانی خام همان روز است. فایل با UTF-8 و BOM ذخیره شده است و اکسل آن را درست باز می‌کند. برای شاخص‌ها و صندوق‌ها هم فایل مشابهی در صفحهٔ خودشان هست.

محدودیت این راه: هر نشانی IP در روز ۲۰ فایل می‌تواند بگیرد و بازهٔ فایل یک سال است. اگر سابقهٔ بلندتر یا دانلود خودکار می‌خواهید، راه دوم را ببینید.

راه دوم: با کلید رایگان API چه چیزی می‌گیرم؟

با کلید رایگان، سابقهٔ پایان روز را از همان API اصلی می‌گیرید: قیمت روزانه (خام یا تعدیل‌شده)، رویدادهای تعدیل، حقیقی و حقوقی، شاخص‌ها و سابقهٔ صندوق‌ها. سرور MCP هم در پلن رایگان باز است.

سقف پلن رایگان تا آبان ۱۴۰۵ این است: ۳۰ درخواست در دقیقه، ۱٬۰۰۰ درخواست در روز و یک کلید. پلن رایگان مدت ندارد و کارت بانکی نمی‌خواهد.

گرفتن کلید

  1. به صفحهٔ ثبت‌نام بروید و شمارهٔ موبایل یا ایمیل خود را وارد کنید.
  2. کد شش‌رقمی را که پیامک یا ایمیل می‌شود وارد کنید.
  3. کلید همان لحظه ساخته می‌شود و فقط یک بار نمایش داده می‌شود. آن را در جای امنی نگه دارید.

کلید را در متغیر محیطی ROSHA_KEY بگذارید:

Terminal window
export ROSHA_KEY="rosha_xxxxxxxx_your-secret"

اولین درخواست

Terminal window
curl "https://poolick.ir/v1/instruments/46348559193224090/daily?limit=1" \
-H "Authorization: Bearer $ROSHA_KEY"

پاسخ واقعی برای فولاد در ۲۰ آبان ۱۴۰۵:

{"ins_code":"46348559193224090","ticker":"فولاد","adjusted":false,
"rows":[{"d":"2026-11-11","open":4950.0,"high":4950.0,"low":4950.0,"close":4950.0,
"last":4950.0,"prev_close":4810.0,"volume":1142422228.0,
"value":5654990028600.0,"trades":9998,"jdate":"1405-08-20"}]}

ذخیرهٔ کل سابقهٔ یک نماد در فایل CSV

هر درخواست تا ۵۰۰۰ ردیف برمی‌گرداند. سابقهٔ فولاد از اسفند ۱۳۸۵ تا امروز ۴۶۸۰ ردیف است و در یک درخواست جا می‌شود. کد زیر آن را با قیمت تعدیل‌شده در یک فایل CSV می‌نویسد:

import csv
import os
import time
import requests
BASE = "https://poolick.ir"
HEADERS = {"Authorization": f"Bearer {os.environ['ROSHA_KEY']}"}
def get(path, **kwargs):
"""GET with one retry on 429, waiting as long as Retry-After says."""
for _ in range(2):
r = requests.get(BASE + path, headers=HEADERS, timeout=30, **kwargs)
if r.status_code != 429:
break
time.sleep(int(r.headers.get("Retry-After", "1")))
r.raise_for_status()
return r.json()
data = get(
"/v1/instruments/46348559193224090/daily",
params={"adjusted": "true", "limit": 5000},
)
rows = data["rows"]
# utf-8-sig adds the BOM that Excel needs
with open("foolad-daily-adjusted.csv", "w", newline="", encoding="utf-8-sig") as f:
writer = csv.DictWriter(f, fieldnames=list(rows[0]))
writer.writeheader()
writer.writerows(rows)
print(len(rows), "rows:", rows[0]["d"], "to", rows[-1]["d"])

برای نماد دیگر، ins_code آن را با جست‌وجو پیدا کنید: /v1/instruments?q=خودرو. جزئیات در شروع سریع و مرجع سابقهٔ روزانه آمده است.

راه سوم: پلن دانشگاهی برای چه کسانی است؟

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

  1. با شمارهٔ موبایل یا ایمیل ثبت‌نام کنید و کلید رایگان بگیرید.
  2. در پنل، درخواست پلن دانشگاهی را با نام دانشگاه و ایمیل دانشگاهی خود بفرستید.
  3. همکاران ما درخواست را بررسی می‌کنند. پس از تأیید، پلن برای ۳۶۵ روز فعال می‌شود.

پلن دانشگاهی هم دادهٔ پایان روز است و دادهٔ لحظه‌ای ندارد. سقف‌های روز این پلن را در صفحهٔ قیمت‌ها ببینید.

چه چیزی رایگان نیست؟

  • دادهٔ لحظه‌ای. قیمت زنده، دفتر سفارش و ریز معاملات در REST API به پلن دارای خانوادهٔ intraday نیاز دارد.
  • برداشت انبوه و پرتکرار. با ۱٬۰۰۰ درخواست در روز می‌توانید سابقهٔ صدها نماد را بگیرید. همگام‌سازی روزانهٔ کل بازار با چند نوع داده به سهمیهٔ بیشتری نیاز دارد.
  • فایل CSV بلندتر از یک سال. فایل صفحهٔ نماد یک‌ساله است. سابقهٔ کامل از API می‌آید.
  • بازنشر دادهٔ خام. استفاده در تحلیل، مدل و داشبورد داخلی آزاد است. بازنشر یا فروش دوبارهٔ دادهٔ خام به مجوز سازمانی نیاز دارد.
  • تضمین سطح خدمت. پلن رایگان SLA ندارد. وضعیت سرویس را در صفحهٔ وضعیت ببینید.

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

پرسش‌های پرتکرار

داده‌ها تا چه تاریخی عقب می‌رود؟

سابقهٔ روزانه از فروردین ۱۳۸۰ شروع می‌شود و تا آبان ۱۴۰۵ بیش از ۷٬۸۰۰ نماد را دارد. بازهٔ هر نماد را در صفحهٔ پوشش داده ببینید.

داده چه زمانی به‌روز می‌شود؟

دادهٔ پایان روز، ساعت ۱۸:۱۵ هر روز معاملاتی (شنبه تا چهارشنبه) به وقت تهران به‌روز می‌شود.

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

هر دو را دارید. با adjusted=true قیمت تعدیل‌شده و بدون آن قیمت خام را می‌گیرید. توضیح کامل در قیمت تعدیل‌شده است.

آیا این داده توصیهٔ سرمایه‌گذاری است؟

نه. روشا فقط داده می‌دهد. هیچ بخشی از این داده توصیه به خرید، فروش یا نگهداری نیست.

همهٔ راه‌های رایگان در صفحهٔ دادهٔ رایگان هم فهرست شده است.

Esc

نمونه: «فولاد»، «شاخص کل»، «عیار»، «rate limit»