الحصول على البيانات التاريخية للأوراق المالية من API لمشروع الثعبان

3

أقوم بعمل برنامج لتحليل الأسهم ، ولكن من أجل ذلك ، أحتاج إلى واجهة برمجة التطبيقات للبيانات التاريخية الخاصة ببورصة نيويورك.

لقد بحثت في كل مكان ، ولكن لم أتمكن من العثور على حلول مفيدة (أي تعطل واجهات برمجة تطبيقات Yahoo / Google Finance).

لقد جربت Alpha Vantage API ، ولكن لا يبدو أنه ينتج قيمًا لقيم الإغلاق / الفتح لكل سهم.

هل هناك طريقة أخرى يمكنني من خلالها الوصول إلى البيانات التاريخية من قبل الجماهير دون تنزيل ملف .csv لكل سهم مباشرة من تمويل ياهو؟

شكرا لك مقدما!

4 الاجابة

3
افضل جواب

يمكن لوحدة python yahoofinancials التعامل مع ذلك بسهولة من أجلك. بالإضافة إلى بيانات الأسهم التاريخية الشهرية واليومية وما إلى ذلك ، يمكنها أيضًا الحصول على جميع البيانات المالية الأساسية لأي شركة على تمويل ياهو (الميزانية العمومية ، وبيان الدخل ، والتدفق النقدي ، والنسب ، وما إلى ذلك)

يمكنك تثبيته مع yahoofinancials تثبيت نقطة. لا تعتمد على واجهة برمجة تطبيقات Yahoo المغلقة ولا تحتاج إلى برنامج تشغيل ويب مهيأ للعمل. بالإضافة إلى عدم الحاجة إلى مفاتيح التسجيل أو API. وهو يعمل عن طريق تجزئة كائن مخزن البيانات الموجود في كل صفحة ويب مالية لـ yahoo.

يمكنك تمرير إما مؤشر أسهم / مؤشر واحد كسلسلة أو قائمة من سلاسل مؤشر لسحب أسهم / فهارس متعددة في وقت واحد. من السهل أيضًا وضع البيانات في إطار بيانات Pandas للتحليلات.

$ pip install yahoofinancials

مثال سحب متعدد الرموز:

from yahoofinancials import YahooFinancials

tech_stocks = ['AAPL', 'MSFT', 'INTC']
bank_stocks = ['WFC', 'BAC', 'C']

yahoo_financials_tech = YahooFinancials(tech_stocks)
yahoo_financials_banks = YahooFinancials(bank_stocks)

tech_cash_flow_data_an = yahoo_financials_tech.get_financial_stmts('annual', 'cash')
bank_cash_flow_data_an = yahoo_financials_banks.get_financial_stmts('annual', 'cash')

banks_net_ebit = yahoo_financials_banks.get_ebit()
tech_stock_price_data = tech_cash_flow_data.get_stock_price_data()
daily_bank_stock_prices = yahoo_financials_banks.get_historical_stock_data('2008-09-15', '2017-09-15', 'daily')

مثال للاستخدام:

from yahoofinancials import YahooFinancials

yahoo_financials = YahooFinancials('WFC')
print(yahoo_financials.get_historical_stock_data("2017-09-10", "2017-10-10", "monthly"))

إخراج JSON:

{
    "WFC": {
        "prices": [
            {
                "volume": 260271600,
                "formatted_date": "2017-09-30",
                "high": 55.77000045776367,
                "adjclose": 54.91999816894531,
                "low": 52.84000015258789,
                "date": 1506830400,
                "close": 54.91999816894531,
                "open": 55.15999984741211
            }
        ],
        "eventsData": [],
        "firstTradeDate": {
            "date": 76233600,
            "formatted_date": "1972-06-01"
        },
        "isPending": false,
        "timeZone": {
            "gmtOffset": -14400
        },
        "id": "1mo15050196001507611600"
    }
}
:مؤلف
2
افضل جواب

حاول Quandl . إنه بسيط وسهل الاستخدام ، ولكن يجب عليك التسجيل والحصول على مفتاح API لبعض المكتبات.

In [11]: mydata = quandl.get('WFE/INDEXES_NYSE')

In [12]: mydata.head(5)
Out[12]: 
               Value
Date                
2016-01-31   9632.70
2016-02-29   9559.53
2016-03-31  10207.38
2016-04-30  10436.92
2016-05-31  10441.00

إذا كنت تريد تحديد نطاق زمني ، استخدم ما يلي

In [37]: quandl.get("WIKI/AMZN", start_date="2017-7-10", end_date="2018-7-10")
Out[37]: 
                Open       High      Low     ...       Adj. Low  Adj. Close  Adj. Volume
Date                                         ...                                        
2017-07-10   985.000   999.4392   983.50     ...         983.50     996.470    3462884.0
2017-07-11   993.000   995.9900   983.72     ...         983.72     994.130    2947479.0
2017-07-12  1000.650  1008.5500   998.10     ...         998.10    1006.510    3491988.0
2017-07-13  1004.620  1006.8800   995.90     ...         995.90     999.855    2864533.0
2017-07-14  1002.400  1004.4500   996.89     ...         996.89    1001.810    2066362.0
2017-07-17  1004.690  1014.7500  1003.81     ...        1003.81    1010.040    3636801.0
2017-07-18  1006.000  1026.0300  1004.00     ...        1004.00    1024.380    3957892.0
2017-07-19  1025.000  1031.5900  1022.50     ...        1022.50    1026.870    2936902.0
2017-07-20  1031.590  1034.9700  1022.52     ...        1022.52    1028.700    2964341.0
2017-07-21  1021.280  1026.1000  1011.00     ...        1011.00    1025.670    2677517.0
2017-07-24  1028.340  1043.0100  1027.43     ...        1027.43    1038.950    3212499.0
2017-07-25  1038.050  1043.3300  1032.48     ...        1032.48    1039.870    2432328.0
2017-07-26  1043.200  1053.2000  1043.20     ...        1043.20    1052.800    2828980.0
2017-07-27  1069.550  1083.3100  1040.18     ...        1040.18    1046.000    9905158.0
2017-07-28  1012.140  1032.8500  1001.00     ...        1001.00    1020.040    7624498.0
2017-07-31  1019.050  1019.0500   987.02     ...         987.02     987.780    7246638.0
2017-08-01   996.110  1006.4000   991.58     ...         991.58     996.190    4421395.0
2017-08-02  1001.770  1003.2100   981.73     ...         981.73     995.890    4017780.0
2017-08-03   999.470   999.5000   984.59     ...         984.59     986.920    3203134.0
2017-08-04   989.680   991.6720   982.00     ...         982.00     987.580    2704026.0
2017-08-08   994.350   996.2800   985.79     ...         985.79     989.840    2847527.0
2017-08-09   982.600   988.0000   975.27     ...         975.27     982.010    3434077.0
2017-08-10   976.295   979.8600   954.68     ...         954.68     956.920    5560388.0
2017-08-11   960.000   970.3900   951.38     ...         951.38     967.990    3431423.0
2017-08-14   978.410   985.5000   976.19     ...         976.19     983.300    3008007.0
2017-08-15   988.900   991.7400   982.00     ...         982.00     982.740    2513139.0
2017-08-16   981.650   986.4605   973.22     ...         973.22     978.180    3096051.0
2017-08-17   977.840   977.8400   960.32     ...         960.32     960.570    3396045.0
2017-08-18   961.400   965.4300   954.65     ...         954.65     958.470    3248677.0
2017-08-21   957.570   961.2000   945.46     ...         945.46     953.290    3008450.0
...              ...        ...      ...     ...            ...         ...          ...
2018-02-13  1385.930  1419.7200  1383.53     ...        1383.53    1414.510    5858860.0
2018-02-14  1406.250  1452.0600  1403.36     ...        1403.36    1451.050    5881238.0
2018-02-15  1466.890  1468.9400  1436.84     ...        1436.84    1461.760    5598111.0
2018-02-16  1457.370  1465.8000  1446.56     ...        1446.56    1448.690    4410879.0
2018-02-20  1446.490  1488.7700  1446.49     ...        1446.49    1468.350    6388374.0
2018-02-21  1485.000  1503.4900  1478.92     ...        1478.92    1482.920    6216694.0
2018-02-22  1495.360  1502.5400  1475.76     ...        1475.76    1484.760    4732555.0
2018-02-23  1495.340  1500.0000  1486.50     ...        1486.50    1500.000    4327008.0
2018-02-26  1509.200  1522.8400  1507.00     ...        1507.00    1521.950    4909053.0
2018-02-27  1524.500  1526.7800  1507.21     ...        1507.21    1511.980    4708378.0
2018-02-28  1519.510  1528.7000  1512.00     ...        1512.00    1512.450    4426580.0
2018-03-01  1513.600  1518.4900  1465.00     ...        1465.00    1493.450    6835230.0
2018-03-02  1469.100  1501.0500  1455.01     ...        1455.01    1500.250    6587564.0
2018-03-05  1494.240  1525.3800  1481.00     ...        1481.00    1523.610    5233934.0
2018-03-06  1533.200  1542.1300  1528.00     ...        1528.00    1537.640    4561718.0
2018-03-07  1526.520  1545.9000  1522.51     ...        1522.51    1545.000    4174123.0
2018-03-08  1550.000  1554.8800  1545.25     ...        1545.25    1551.860    3512528.0
2018-03-09  1563.500  1578.9400  1559.08     ...        1559.08    1578.890    4417059.0
2018-03-12  1592.600  1605.3300  1586.70     ...        1586.70    1598.390    5115886.0
2018-03-13  1615.960  1617.5400  1578.01     ...        1578.01    1588.180    6427066.0
2018-03-14  1597.000  1606.4400  1590.89     ...        1590.89    1591.000    4164395.0
2018-03-15  1595.000  1596.9100  1578.11     ...        1578.11    1582.320    4026744.0
2018-03-16  1583.450  1589.4400  1567.50     ...        1567.50    1571.680    5145054.0
2018-03-19  1554.530  1561.6600  1525.35     ...        1525.35    1544.930    6376619.0
2018-03-20  1550.340  1587.0000  1545.41     ...        1545.41    1586.510    4507049.0
2018-03-21  1586.450  1590.0000  1563.17     ...        1563.17    1581.860    4667291.0
2018-03-22  1565.470  1573.8500  1542.40     ...        1542.40    1544.100    6177737.0
2018-03-23  1539.010  1549.0200  1495.36     ...        1495.36    1495.560    7843966.0
2018-03-26  1530.000  1556.9900  1499.25     ...        1499.25    1555.860    5547618.0
2018-03-27  1572.400  1575.9600  1482.32     ...        1482.32    1497.050    6793279.0

[179 rows x 12 columns]
:مؤلف
1
افضل جواب

هناك الكثير من الخدمات. على سبيل المثال ، إجراء بحث على Google:

دفع

مجانا

تحقق أيضا من هذه القائمة

:مؤلف
1
افضل جواب

يمكنك الحصول على بيانات المخزون من مجموعات البيانات المعدة أو كشط من مواقع أخرى.

هنا يمكنك العثور عليه: https://github.com/eliangcs/pystock-data

أو https://www.kaggle.com/borismarjanovic/price-volume-data-for-all-us-stocks-etfs https://www.kaggle.com/camnugent/sandp500

:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام