import streamlit from datetime import datetime, timedelta st.set_page_config(page_title="Options Scanner", layout="wide") st.title("Naked Options Play Finder") ticker = st.text_input("Enter Ticker Symbol (e.g. GME, SPY, TSLA)", "GME") max_price = st.slider("Max Option Price ($)", 5, 200, 50) days_out = st.slider("Days Until Expiration", 1, 14, 7) if st.button("Find Options"): stock = yf.Ticker(ticker) today = datetime.today().date() try: expirations = stock.options st.success(f"Found {len(expirations)} expirations") for exp in expirations: exp_date = datetime.strptime(exp, "%Y-%m-%d").date() if (exp_date - today).days > days_out: continue calls = stock.option_chain(exp).calls puts = stock.option_chain(exp).puts cheap_calls = calls[calls['lastPrice'] <= max_price] cheap_puts = puts[puts['lastPrice'] <= max_price] if not cheap_calls.empty: st.subheader(f"Calls under ${max_price} expiring {exp}") st.dataframe(cheap_calls[['strike', 'lastPrice', 'volume', 'impliedVolatility']]) if not cheap_puts.empty: st.subheader(f"Puts under ${max_price} expiring {exp}") st.dataframe(cheap_puts[['strike', 'lastPrice', 'volume', 'impliedVolatility']]) except Exception as e: st.error(f"Error: {e}")