- Add Tradier to VENDOR_LIST, TOOLS_CATEGORIES (options_chain), and VENDOR_METHODS
- Update route_to_vendor to catch TradierRateLimitError for fallback
- Add options_chain: tradier to DEFAULT_CONFIG data_vendors
- Create options_tools.py with @tool decorated get_options_chain and get_options_expirations
- Add TRADIER_API_KEY and TRADIER_SANDBOX to .env.example
- Add OptionsContract dataclass with 21 fields (Greeks, IV, market data)
- Add OptionsChain dataclass with to_dataframe() and filter_by_dte() methods
- Add get_options_expirations() with DTE filtering and Pitfall 5 normalization
- Add get_options_chain() returning string for LLM tool consumption
- Add get_options_chain_structured() returning OptionsChain for programmatic use
- Add session cache with clear_options_cache() and Pitfall 2 normalization
- Always request greeks=true per D-05
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add _clean_dataframe() to normalize stock DataFrames before stockstats:
coerce invalid dates/prices, drop rows missing Close, fill price gaps.
Also add on_bad_lines="skip" to all cached CSV reads.
- Replace hardcoded column indices with column name lookup
- Add mapping for all supported indicators to their expected CSV column names
- Handle missing columns gracefully with descriptive error messages
- Strip whitespace from header parsing for reliability
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace FinnHub with Alpha Vantage API in README documentation
- Implement comprehensive Alpha Vantage modules:
- Stock data (daily OHLCV with date filtering)
- Technical indicators (SMA, EMA, MACD, RSI, Bollinger Bands, ATR)
- Fundamental data (overview, balance sheet, cashflow, income statement)
- News and sentiment data with insider transactions
- Update news analyst tools to use ticker-based news search
- Integrate Alpha Vantage vendor methods into interface routing
- Maintain backward compatibility with existing vendor system
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>