yougandar commited on
Commit
6aecc4e
·
verified ·
1 Parent(s): de3276e

Rename data_loader.py to polygon_loader.py

Browse files
Files changed (2) hide show
  1. data_loader.py +0 -9
  2. polygon_loader.py +37 -0
data_loader.py DELETED
@@ -1,9 +0,0 @@
1
- import pandas as pd
2
-
3
- def fetch_ohlcv(symbol="AAPL", interval="1d", period="7d"):
4
- # Static fallback data for testing
5
- data = {
6
- 'Close': [195.3, 197.1, 198.8, 199.5, 200.4, 201.1, 199.9, 198.5, 197.2, 196.8],
7
- }
8
- df = pd.DataFrame(data)
9
- return df
 
 
 
 
 
 
 
 
 
 
polygon_loader.py ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import requests
2
+ import pandas as pd
3
+ from datetime import datetime, timedelta
4
+
5
+ API_KEY = "HviulInrP_JHBbZQdm7EZdppph2iTwBJ"
6
+
7
+ def fetch_ohlcv(symbol="AAPL", interval="minute", limit=100):
8
+ end_time = datetime.utcnow()
9
+ start_time = end_time - timedelta(minutes=limit)
10
+
11
+ url = f"https://api.polygon.io/v2/aggs/ticker/{symbol}/range/1/minute/{start_time.date()}/{end_time.date()}"
12
+
13
+ params = {
14
+ "adjusted": "true",
15
+ "sort": "asc",
16
+ "limit": limit,
17
+ "apiKey": API_KEY,
18
+ }
19
+
20
+ try:
21
+ res = requests.get(url, params=params)
22
+ res.raise_for_status()
23
+ data = res.json()
24
+
25
+ if "results" not in data:
26
+ return None
27
+
28
+ df = pd.DataFrame(data["results"])
29
+ df["t"] = pd.to_datetime(df["t"], unit="ms")
30
+ df.set_index("t", inplace=True)
31
+ df.rename(columns={"o": "Open", "h": "High", "l": "Low", "c": "Close", "v": "Volume"}, inplace=True)
32
+ df = df[["Open", "High", "Low", "Close", "Volume"]]
33
+
34
+ return df
35
+ except Exception as e:
36
+ print("Polygon error:", e)
37
+ return None