دانلود داده های بازار تاریخی رایگان در پایتون

ساخت وبلاگ

d خود بارگیری داده های بازار تاریخی رایگان برای سهام ، معاملات آینده کالا ، ارز خارجی ، رمزنگاری و قیمت های داخلی

داده های بازار ISTORICAL برای تجزیه و تحلیل مالی و بازگشت به استراتژی ضروری است. فروشندگان داده های حرفه ای گاهی اوقات گزینه ای از نظر اقتصادی برای سرمایه گذاران خرده فروشی یا استارتاپ ها نیستند. خوشبختانه ، با توسعه فن آوری های مالی یا FinTech و حرکت مالی فراگیر ، گزینه هایی از منابع داده بازار آزاد به صورت آنلاین در دسترس است.

در این پست ، من قصد دارم در مورد سه مورد از آنها بحث کنم و نحوه دریافت داده با پایتون را نشان دهم. سه منبع داده و API که در اینجا مورد بحث قرار گرفته اند عبارتند از:

  1. امور مالی یاهو
  2. داتاسار
  3. مبهم
  4. کارگزاران تعاملی (مکمل)

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

1. امور مالی یاهو

شما نمی توانید در مورد Finance Yahoo ، یکی از اولین پزشکان دموکراتیک سازی داده های مالی و شمول مالی مساوی ، استفاده کنید. در سال 2017 به طور موقت در دسترس نبود اما برخی از کتابخانه های رفع شده از آن زمان ارسال شدند ، یکی از آنها بعداً YFINANCE شد. Google Finance خدمات مشابهی را امتحان کرد اما به اندازه محبوب نبود.

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

من باید نیمی از این پست را در Finance Yahoo خرج کنم تا آن را به چهار بخش زیر تقسیم کنم. کد کامل را می توان در اینجا در GitHub یافت.

1. 1 قیمت روزانه

1. 1. 1 سهام و شاخص سهام

قیمت روزانه همان چیزی است که در برگه داده های تاریخ مشاهده می کنید. توجه داشته باشید که می توانید داده ها را برای استفاده بعدی ذخیره کنید ، اما به دلیل تعدیل قیمت عقب ، Adj Close احتمالاً در آینده تغییر می کند.

#! پیپ نصب yfinance#! پیپ نصب mplfinanceاز DateTime واردات DateTimeyfinance را به عنوان yf وارد کنیدوارد کردن mplfinance به عنوان mpfstart_date = dateTime (2019 ، 1 ، 1)end_date = dateTime (2019 ، 12 ، 31)data = yf. download ('aapl' ، start = start_date ، end = end_date)mpf. plot (داده ، نوع = 'شمع' ، mav = (3،6،9) ، حجم = true ، show_nontrading = true)

1. 1. 2 fx و cryptocurrency

به عنوان مثال ، از EuRusD = X برای یورو یا BTC-USD برای بیت کوین استفاده کنید.

data = yf. download ('urusd = x' ، start = start_date ، end = end_date)data. head ()OpenHighlowCloseadj closevolumedate2019-01-01 1. 1494251. 1550011. 1465001. 1493061. 14930602019-01-02 1. 1461321. 1497001. 1345721. 1461711. 14617102019-01-03 1. 1317341. 1409141. 1317341. 1318111. 13181102019-01-04 1. 1390951. 1417741. 1348161. 1391081. 13910802019-01-07 1. 1412921. 1474471. 1405241. 1410441. 1410440

1. 2 اصول

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

Ticker = yf. ticker ('amzn')corp_info =df_info = pd. dataframe. from_dict (corp_info ، Orient = 'index' ، ستون = ['aapl'])df_info
از yahoo_fin واردات stock_infodf_balance_sheet = stock_info. get_balance_sheet ('amzn')DF_BALANCE_SHEET

1. 3 Intraday

Finance Yahoo همچنین تا 10 روز داده های تاریخی تاریخی 1 دقیقه را ارائه می دهد.

#! پیپ نصب yfinance#! پیپ نصب mplfinanceyfinance را به عنوان yf وارد کنیدوارد کردن mplfinance به عنوان mpfاز DateTime واردات DateTimeSD = DateTime (2020 ، 8 ، 24)ed = dateTime (2020 ، 8 ، 25)df = yf. download (tickers = 'amzn' ، start = sd ، end = ed ، interal = "1m")mpf. plot (df ، نوع = 'شمع' ، mav = (3،6،9) ، حجم = درست)

البته قبل از انقضاء پنجره 10 روزه به عنوان نمونه در اینجا ، باید داده ها را در یک پرونده مسطح یا بانک اطلاعاتی ادامه دهید. توجه داشته باشید که شما فقط نیاز به ذخیره گرانول ترین آن دارید ، زیرا کد مشابه زیر به جمع هر فرکانس مورد نظر دیگر کمک می کند.

df2 = df. resample ('5t'). agg () # تا 5 دقیقه بارmpf. plot (df2 ، نوع = 'شمع' ، mav = (3،6،9) ، حجم = درست)

1. 4نقل قول های زنده

همچنین می توان با استفاده از ابزارهای خراش وب ، نقل قول های سهام زنده Yahoo Finance Live را خرد کرد. بسته Yahoo_fin دقیقاً این کار را انجام داده است ، بنابراین اگر نمی خواهید خودتان یکی را بنویسید ، فقط می توانید با عملکردهای آن تماس بگیرید. کد زیر هر ثانیه قیمت سهام را در زمان واقعی دریافت می کند و سپس آن را برای استفاده بعدی ذخیره می کند. پیشنهاد می شود کد را در ساعات بازار اجرا کنید. معمولاً مردم شروع به گوش دادن به قیمت سهام در زمان واقعی در بازار باز می کنند و سپس داده ها را در نزدیکی بازار ذخیره می کنند.

#! pip requests_html را نصب کنید#! پیپ yahoo_fin را نصب کنیدوارد کردن numpy به عنوان npواردات پاندا به عنوان PDاز yahoo_fin واردات stock_infoاز DateTime واردات DateTimeزمان واردات# نقل قول های زمان واقعیبرای من در محدوده (10):اکنون = dateTime. Now ()قیمت = Stock_info. get_live_price ("جاسوسی")چاپ (اکنون ، "جاسوسی:" ، قیمت)real_time_quotes. loc [i] = [اکنون ، قیمت]time. sleep (1)چاپ (real_time_quotes)# برای استفاده بعدی صرفه جویی کنید# real_time_quotes. to_csv ('realtime_tick_data. csv' ، index = false)

2. DataReader Pandas

این دقیقاً یک منبع داده نیست بلکه یک API در پشته Pydata است که از مجموعه ای از منابع داده پشتیبانی می کند. همانطور که از نام آن پیداست ، داده ها به عنوان PANDAS DataFrame بارگیری می شوند. سند کامل را می توان در اینجا یافت. در زیر لیست منابعی که در حال حاضر از آن پشتیبانی می کند ، آورده شده است. من فقط دو مورد اول را در لیست خواهم گذراند.

2. 1 Alphavantage

Alphavatange API خاص خود را در اینجا دارد. می توانید به مستندات آنها مراجعه کنید. برای استفاده از pandas data_reader ،

واردات پاندا به عنوان PDوارد کردن pandas_datareader به عنوان PDRوارد کردن mplfinance به عنوان mpfts = pdr. av. tim_series. AvtimeseriesReader ('amzn' ، api_key = 'your_free_api_key')df = ts. read ()df. index = pd. to_datetime (df. index ، فرمت = '٪ y- ٪ m- ٪ d')mpf. plot (df ، نوع = 'شمع' ، mav = (3،6،9) ، حجم = true ، show_nontrading = true)

2. 2 فرد

فرد به عنوان مثال تولید ناخالص داخلی ، بیکاری ، تورم ، داده های کلان اقتصاد زیادی دارد. در اینجا اگر به بازار نرخ بهره علاقه دارید ، در اینجا

وارد کردن pandas_datareader به عنوان PDRstart = dateTime (2019 ، 1 ، 1)پایان = DateTime (2019 ، 12 ، 31)Syms = ['DGS1MO' ، 'DGS3MO' ، 'DGS1' ، 'DGS3' ، 'DGS10']df = pd. dataframe ()برای Syms در Syms:ts = pdr. fred. fredreader (سیم ، شروع = شروع ، پایان = پایان)df1 = ts. read ()df = pd. concat ([df ، df1] ، محور = 1)df

منحنی عملکرد بلوغ ثابت را می دهد. مثال کامل این است که در اینجا در GitHub یافت می شود.

3. quandl

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

قراردادهای خام ماهانه و قراردادهای مداوم وجود دارد ، در Quandl شما قادر به بارگیری هر دو هستید.

وارد کردن quandlstart = dateTime (2019 ، 1 ، 1)پایان = DateTime (2019 ، 12 ، 31)df = quandl. get ('Chris/cme_cl1' ، start_date = start ، end_date = پایان ، qopts = ، authtoken = 'your_free_api_key')plt. figure (figsize = (20،10))plt. plot (df. settle)

4- کارگزاران تعاملی

این یک بخش تکمیلی است ، اگر حساب کارگزاران تعاملی ندارید ، احساس راحتی کنید.

این روش فقط به صورت مشروط و مشروط به این که شما یک حساب کارگزاران تعاملی تأمین شده دارید ، مشروط است. من عمدتاً از آن استفاده می کنم زیرا ، به عنوان مثال ، یاهو مالی داده های آینده را ندارد. فیلمنامه کامل در اینجا در GitHub واقع شده است.

IB به اندازه نوار یک ثانیه تا 180 روز کوتاه ارائه می دهد. برای بارگیری نوار یک ثانیه ، وارد IB شوید ، این اسکریپت را اجرا کنید و سپس در زیر اجرا کنید.

#! Python download_historical_data_from_ib. pyترشی وارد کردنوارد کردن mplfinance به عنوان mpfبا باز (r '.  data  tick  20200810. pkl' ، 'rb') به عنوان f:futures_hist_prices_dict = ترشی (f)df = futures_hist_prices_dict ['esu0 fut globex']mpf. plot (df ، نوع = 'شمع' ، mav = (3،6،9) ، حجم = درست)

نتیجه

در این پست ، ما سه منبع داده مالی تاریخی رایگان ، یعنی Finance Yahoo ، Pandas Datareader و Quandl را در بین سهام ، نرخ ، FX ، Cryptocurrency و کالاها مشاهده کرده ایم. و همچنین یک منبع داده داخلی داخلی شرطی ، کارگزاران تعاملی.

برای اهداف کلی ، ما همیشه می توانیم به کتابخانه های اساسی تر مانند درخواست ها ، گروه های زیبا یا سلنیوم متوسل شویم تا مستقیماً داده ها را خراش دهیم. بعداً در مورد آن< Pan> df = futures_hist_prices_dict ['esu0 fut globex']

کتاب آموزش بورس...
ما را در سایت کتاب آموزش بورس دنبال می کنید

برچسب : نویسنده : محمود استادمحمد بازدید : 34 تاريخ : پنجشنبه 19 مرداد 1402 ساعت: 17:00