Skip to content

Commit

Permalink
datachecker for alphavantage started to implement
Browse files Browse the repository at this point in the history
  • Loading branch information
97gamjak committed Feb 27, 2024
1 parent 5a3fb8b commit 40771d2
Show file tree
Hide file tree
Showing 6 changed files with 195 additions and 28 deletions.
15 changes: 15 additions & 0 deletions data/alphavantage/KDP_income_annual.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
fiscalDateEnding reportedCurrency grossProfit totalRevenue costOfRevenue costofGoodsAndServicesSold operatingIncome sellingGeneralAndAdministrative researchAndDevelopment operatingExpenses investmentIncomeNet netInterestIncome interestIncome interestExpense nonInterestIncome otherNonOperatingIncome depreciation depreciationAndAmortization incomeBeforeTax incomeTaxExpense interestAndDebtExpense netIncomeFromContinuingOperations comprehensiveIncomeNetOfTax ebit ebitda netIncome
2023-12-31 USD 8080000000 14271000000 12143000000 6734000000 3192000000 4912000000 66000000 5416000000 None -496000000 None 496000000 14828000000 61000000 402000000 399000000 2757000000 576000000 496000000 2181000000 2367000000 3253000000 3652000000 2181000000
2022-12-31 USD 7323000000 13190000000 12315000000 6734000000 2605000000 4645000000 65000000 5209000000 None -693000000 None 693000000 13944000000 -14000000 399000000 386000000 1720000000 284000000 910000000 1435000000 1590000000 2413000000 2799000000 1436000000
2021-12-31 USD 6977000000 12701000000 10502000000 5706000000 2894000000 4153000000 66000000 4711000000 None -518000000 -18000000 500000000 13168000000 2000000 410000000 361000000 2799000000 653000000 623000000 2145000000 2042000000 3299000000 3660000000 2146000000
2020-12-31 USD 6486000000 11130000000 9835000000 5132000000 2480000000 3978000000 69000000 4719000000 None -618000000 -14000000 604000000 11651000000 -17000000 362000000 338000000 1753000000 428000000 622000000 1325000000 1298000000 2357000000 2695000000 1325000000
2019-12-31 USD 6342000000 10500000000 9405000000 4778000000 2378000000 3962000000 81000000 4667000000 None -654000000 672000000 654000000 11104000000 -19000000 358000000 340000000 1694000000 440000000 665000000 1254000000 1488000000 2348000000 2688000000 1254000000
2018-12-31 USD 3882000000 7147000000 6931000000 3560000000 1237000000 2635000000 64000000 3386000000 None -401000000 425000000 401000000 7388000000 19000000 233000000 350000000 788000000 202000000 414000000 589000000 357000000 1189000000 1539000000 586000000
2017-12-31 USD 3995000000 6504000000 6198000000 2201000000 1388000000 2556000000 20000000 2680000000 3000000 -161000000 3000000 164000000 -25000000 8000000 198000000 102000000 1171000000 95000000 226000000 1078000000 1103000000 1335000000 1437000000 1076000000
2016-12-31 USD 3858000000 6283000000 5802000000 3374000000 1433000000 2329000000 20000000 2448000000 3000000 -144000000 3000000 147000000 -13000000 25000000 191000000 99000000 1281000000 434000000 178000000 849000000 813000000 1428000000 1527000000 847000000
2015-12-31 USD 3723000000 6129000000 5790000000 3365000000 1298000000 2313000000 19000000 2444000000 2000000 -115000000 2000000 117000000 -38000000 1000000 192000000 105000000 1184000000 420000000 117000000 764000000 706000000 1301000000 1406000000 764000000
2014-12-31 USD 3630000000 5989000000 5742000000 3293000000 1180000000 2334000000 18000000 2467000000 2000000 -107000000 2000000 109000000 -25000000 0 199000000 115000000 1074000000 371000000 109000000 702000000 654000000 1183000000 1298000000 703000000
2013-12-31 USD 3498000000 5853000000 5672000000 3275000000 1046000000 2272000000 21000000 2634000000 2000000 -121000000 2000000 123000000 -23000000 -383000000 196000000 115000000 543000000 -81000000 123000000 623000000 646000000 666000000 781000000 624000000
2012-12-31 USD 3495000000 5879000000 5667000000 3275000000 1092000000 2268000000 21000000 2647000000 2000000 -123000000 2000000 125000000 7000000 9000000 203000000 124000000 978000000 349000000 125000000 629000000 629000000 1103000000 1227000000 629000000
2011-12-31 USD 3418000000 5787000000 4868000000 2485000000 1024000000 2257000000 15000000 2651000000 3000000 -111000000 3000000 114000000 -17000000 12000000 198000000 126000000 926000000 320000000 114000000 605000000 524000000 1040000000 1166000000 606000000
2010-12-31 USD 3393000000 5426000000 4608000000 2243000000 1025000000 2233000000 16000000 2721000000 3000000 -125000000 3000000 128000000 -86000000 21000000 185000000 127000000 822000000 294000000 228000000 527000000 559000000 950000000 1077000000 528000000
2 changes: 1 addition & 1 deletion data/basic_info.csv
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
2024-02-27T07:24:05.761274
2024-02-27T13:24:31.717188
,Long Name,Sector,Price,Trailing PE,Forward PE,Market Cap,Dividend Yield,Payout Ratio
MMM,3M Company,Industrials,91.86,,8.928571,50433.875968,6.54,61.67
AOS,A. O. Smith Corporation,Industrials,80.74,21.704605,18.496534,11788.848128,1.5800001,33.060002
Expand Down
2 changes: 1 addition & 1 deletion data/calendar.csv
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
2024-02-27T07:24:05.975657
2024-02-27T13:24:31.931211
,Earnings Dates,Ex-Dividend Dates,Pays Dividend
MMM,2024-04-23,,True
AOS,,,True
Expand Down
112 changes: 97 additions & 15 deletions notebooks/alphavantage.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -18,7 +18,7 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -31,30 +31,112 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 0/503 [00:00<?, ?it/s]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Error for KDP: Thank you for using Alpha Vantage! Our standard API rate limit is 25 requests per day. Please subscribe to any of the premium plans at https://www.alphavantage.co/premium/ to instantly remove all daily rate limits.\n",
"2.5% files downloaded\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 0/503 [00:00<?, ?it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Error for KDP: Thank you for using Alpha Vantage! Our standard API rate limit is 25 requests per day. Please subscribe to any of the premium plans at https://www.alphavantage.co/premium/ to instantly remove all daily rate limits.\n",
"2.5% files downloaded\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"from stockMarket.alphavantage.fundamentals import Fundamentals\n",
"\n",
"api_keys = [\"YBW1PZLV0GUC6VE9\", \"IO77VFB86PDVLBNH\"]\n",
"for api_key in api_keys:\n",
" fd = Fundamentals(api_key=api_key, tickers=tickers)\n",
" fd.get_fundamentals_annual()"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"ename": "ValueError",
"evalue": "Thank you for using Alpha Vantage! Our standard API rate limit is 25 requests per day. Please visit https://www.alphavantage.co/premium/ if you would like to target a higher API call frequency.",
"name": "stdout",
"output_type": "stream",
"text": [
"netIncome for WFC at 2022-12-31, report number 1, 3.8% error\n",
"<class 'str'>\n",
"totalRevenue for WFC at 2021-12-31, report number 2, -63.4% error\n",
"<class 'str'>\n",
"totalRevenue for WFC at 2020-12-31, report number 3, -120.9% error\n",
"<class 'str'>\n",
"totalRevenue for WFC at 2019-12-31, report number 4, -83.5% error\n",
"<class 'str'>\n",
"totalRevenue for WFC at 2018-12-31, report number 5, -74.2% error\n",
"<class 'str'>\n"
]
},
{
"ename": "TypeError",
"evalue": "can't multiply sequence by non-int of type 'float'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[5], line 4\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mstockMarket\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01malphavantage\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mfundamentals\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Fundamentals\n\u001b[1;32m 3\u001b[0m fd \u001b[38;5;241m=\u001b[39m Fundamentals(api_key\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mYBW1PZLV0GUC6VE9\u001b[39m\u001b[38;5;124m\"\u001b[39m, tickers\u001b[38;5;241m=\u001b[39mtickers)\n\u001b[0;32m----> 4\u001b[0m \u001b[43mfd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_fundamentals_annual\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/Trading/stockMarket/stockMarket/alphavantage/fundamentals.py:25\u001b[0m, in \u001b[0;36mFundamentals.get_fundamentals_annual\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 21\u001b[0m data[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mto_csv(\n\u001b[1;32m 22\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdata_path \u001b[38;5;241m/\u001b[39m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mticker\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m_income_annual.csv\u001b[39m\u001b[38;5;124m'\u001b[39m, sep\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\t\u001b[39;00m\u001b[38;5;124m\"\u001b[39m, index\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 24\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdata_path \u001b[38;5;241m/\u001b[39m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mticker\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m_balance_annual.csv\u001b[39m\u001b[38;5;124m'\u001b[39m)\u001b[38;5;241m.\u001b[39mexists():\n\u001b[0;32m---> 25\u001b[0m data \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_balance_sheet_annual\u001b[49m\u001b[43m(\u001b[49m\u001b[43msymbol\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mticker\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 26\u001b[0m data[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mto_csv(\n\u001b[1;32m 27\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdata_path \u001b[38;5;241m/\u001b[39m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mticker\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m_balance_annual.csv\u001b[39m\u001b[38;5;124m'\u001b[39m, sep\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\t\u001b[39;00m\u001b[38;5;124m\"\u001b[39m, index\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 29\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdata_path \u001b[38;5;241m/\u001b[39m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mticker\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m_cashflow_annual.csv\u001b[39m\u001b[38;5;124m'\u001b[39m)\u001b[38;5;241m.\u001b[39mexists():\n",
"File \u001b[0;32m~/Trading/stockMarket/.venv/lib/python3.11/site-packages/alpha_vantage/alphavantage.py:218\u001b[0m, in \u001b[0;36mAlphaVantage._output_format.<locals>._format_wrapper\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 216\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(func)\n\u001b[1;32m 217\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_format_wrapper\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m--> 218\u001b[0m call_response, data_key, meta_data_key \u001b[38;5;241m=\u001b[39m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 219\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 220\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mjson\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moutput_format\u001b[38;5;241m.\u001b[39mlower() \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpandas\u001b[39m\u001b[38;5;124m'\u001b[39m \\\n\u001b[1;32m 221\u001b[0m \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moutput_format\u001b[38;5;241m.\u001b[39mlower():\n\u001b[1;32m 222\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m data_key \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
"File \u001b[0;32m~/Trading/stockMarket/.venv/lib/python3.11/site-packages/alpha_vantage/alphavantage.py:160\u001b[0m, in \u001b[0;36mAlphaVantage._call_api_on_func.<locals>._call_wrapper\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 158\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 159\u001b[0m url \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;241m.\u001b[39mformat(url, apikey_parameter)\n\u001b[0;32m--> 160\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_handle_api_call\u001b[49m\u001b[43m(\u001b[49m\u001b[43murl\u001b[49m\u001b[43m)\u001b[49m, data_key, meta_data_key\n",
"File \u001b[0;32m~/Trading/stockMarket/.venv/lib/python3.11/site-packages/alpha_vantage/alphavantage.py:363\u001b[0m, in \u001b[0;36mAlphaVantage._handle_api_call\u001b[0;34m(self, url)\u001b[0m\n\u001b[1;32m 361\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(json_response[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mInformation\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[1;32m 362\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNote\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m json_response \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtreat_info_as_error:\n\u001b[0;32m--> 363\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(json_response[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNote\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[1;32m 364\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m json_response\n\u001b[1;32m 365\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n",
"\u001b[0;31mValueError\u001b[0m: Thank you for using Alpha Vantage! Our standard API rate limit is 25 requests per day. Please visit https://www.alphavantage.co/premium/ if you would like to target a higher API call frequency."
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[54], line 20\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m contract \u001b[38;5;129;01min\u001b[39;00m contracts:\n\u001b[1;32m 19\u001b[0m dc \u001b[38;5;241m=\u001b[39m DataChecker(contract)\n\u001b[0;32m---> 20\u001b[0m \u001b[43mdc\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcheck_data\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/Trading/stockMarket/stockMarket/alphavantage/dataChecker.py:34\u001b[0m, in \u001b[0;36mDataChecker.check_data\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 32\u001b[0m av_data \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mincome\u001b[38;5;241m.\u001b[39mloc[date]\n\u001b[1;32m 33\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 34\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcheck_data_income\u001b[49m\u001b[43m(\u001b[49m\u001b[43mav_data\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mibkr_index\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdate\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 35\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAssertionError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 36\u001b[0m \u001b[38;5;28mprint\u001b[39m(e)\n",
"File \u001b[0;32m~/Trading/stockMarket/stockMarket/alphavantage/dataChecker.py:63\u001b[0m, in \u001b[0;36mDataChecker.check_data_income\u001b[0;34m(self, av_data, ibkr_index, date)\u001b[0m\n\u001b[1;32m 60\u001b[0m av_selling_general_and_admin \u001b[38;5;241m=\u001b[39m av_data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124msellingGeneralAndAdministrative\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m*\u001b[39m \\\n\u001b[1;32m 61\u001b[0m \u001b[38;5;241m1e-6\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m av_data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124msellingGeneralAndAdministrative\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m!=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNone\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;241m0\u001b[39m\n\u001b[1;32m 62\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;28mtype\u001b[39m(av_data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mresearchAndDevelopment\u001b[39m\u001b[38;5;124m'\u001b[39m]))\n\u001b[0;32m---> 63\u001b[0m av_research_and_development \u001b[38;5;241m=\u001b[39m \u001b[43mav_data\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mresearchAndDevelopment\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m \u001b[49m\u001b[43m\\\u001b[49m\n\u001b[1;32m 64\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m1e-6\u001b[39;49m \u001b[38;5;28;01mif\u001b[39;00m av_data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mresearchAndDevelopment\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m!=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNone\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;241m0\u001b[39m\n\u001b[1;32m 65\u001b[0m av_revenue \u001b[38;5;241m=\u001b[39m av_cost_of_goods_and_services_sold \u001b[38;5;241m+\u001b[39m \\\n\u001b[1;32m 66\u001b[0m av_operating_income \u001b[38;5;241m+\u001b[39m av_selling_general_and_admin \u001b[38;5;241m+\u001b[39m av_research_and_development\n\u001b[1;32m 67\u001b[0m ibkr_revenue \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcontract\u001b[38;5;241m.\u001b[39mrevenue[ibkr_index]\n",
"\u001b[0;31mTypeError\u001b[0m: can't multiply sequence by non-int of type 'float'"
]
}
],
"source": [
"from stockMarket.alphavantage.fundamentals import Fundamentals\n",
"import glob\n",
"import numpy as np\n",
"\n",
"from stockMarket.alphavantage.dataChecker import DataChecker\n",
"\n",
"all_tickers = glob.glob(\"../data/alphavantage/*.csv\")\n",
"all_tickers = np.array([ticker.split(\"/\")[-1].split(\"_\")[0] for ticker in all_tickers])\n",
"all_tickers = np.array([ticker.split(\"/\")[-1] for ticker in all_tickers])\n",
"tickers = []\n",
"for ticker in all_tickers:\n",
" if all_tickers[all_tickers == ticker].shape[0] == 3:\n",
" tickers.append(ticker)\n",
"\n",
"tickers = list(set(tickers))\n",
"contracts = populate_contracts(tickers)\n",
"\n",
"\n",
"fd = Fundamentals(api_key=\"YBW1PZLV0GUC6VE9\", tickers=tickers)\n",
"fd.get_fundamentals_annual()"
"for contract in contracts:\n",
" dc = DataChecker(contract)\n",
" dc.check_data()"
]
}
],
Expand Down
Loading

0 comments on commit 40771d2

Please sign in to comment.