Spaces:
Sleeping
Sleeping
| import finnhub | |
| import datetime | |
| import pandas as pd | |
| class FinnhubDataProvider: | |
| def __init__(self): | |
| self.client = finnhub.Client(api_key="csrq269r01qj3u0os3r0csrq269r01qj3u0os3rg") | |
| def get_stock_data(self, symbol, start_date, end_date): | |
| start_timestamp = int(datetime.datetime.strptime(start_date, '%Y-%m-%d').timestamp()) | |
| end_timestamp = int(datetime.datetime.strptime(end_date, '%Y-%m-%d').timestamp()) | |
| try: | |
| data = self.client.stock_candles(symbol, 'D', start_timestamp, end_timestamp) | |
| if data['s'] == 'ok': | |
| df = pd.DataFrame({ | |
| 'date': pd.to_datetime(data['t'], unit='s'), | |
| 'close': data['c'], | |
| 'high': data['h'], | |
| 'low': data['l'], | |
| 'open': data['o'], | |
| 'volume': data['v'] | |
| }) | |
| df.set_index('date', inplace=True) | |
| return df | |
| else: | |
| print(f"Error fetching data for {symbol}") | |
| return None | |
| except Exception as e: | |
| print(f"Error: {e}") | |
| return None | |