import yfinance as yf from datetime import datetime, timedelta import pandas as pd def stock_data(tick): try: # Auto suffix untuk saham Indonesia if tick.isalpha() and len(tick) <= 4: tick = tick.upper() + ".JK" else: tick = tick.upper() df = yf.download( tick, start=datetime.now() - timedelta(days=365), end=datetime.now(), progress=False, threads=False, auto_adjust=False ) # Validasi data if df.empty or "Close" not in df.columns: return pd.DataFrame() df = df[["Close"]].dropna() return df except Exception as e: print(f"[ERROR] Failed to fetch {tick} → {e}") return pd.DataFrame()