From b01051b9f478fb054f4c6e93598322df74bd8a46 Mon Sep 17 00:00:00 2001 From: luohy15 Date: Tue, 30 Sep 2025 11:11:05 +0800 Subject: [PATCH] Switch default data vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- README.md | 21 +++++++++---------- main.py | 16 +++++++------- tradingagents/dataflows/interface.py | 8 +++---- .../{yahoo_finance.py => y_finance.py} | 0 tradingagents/default_config.py | 8 +++---- 5 files changed, 25 insertions(+), 28 deletions(-) rename tradingagents/dataflows/{yahoo_finance.py => y_finance.py} (100%) diff --git a/README.md b/README.md index bc4e3579..f774ec2a 100644 --- a/README.md +++ b/README.md @@ -114,14 +114,11 @@ pip install -r requirements.txt ### Required APIs -You will also need the [Alpha Vantage API](https://www.alphavantage.co/support/#api-key) for financial data. The free tier supports 25 API calls per day. -```bash -export ALPHA_VANTAGE_API_KEY=$YOUR_ALPHA_VANTAGE_API_KEY -``` +You will need the OpenAI API for all the agents, and [Alpha Vantage API](https://www.alphavantage.co/support/#api-key) for fundamental and news data (default configuration). -You will need the OpenAI API for all the agents. ```bash export OPENAI_API_KEY=$YOUR_OPENAI_API_KEY +export ALPHA_VANTAGE_API_KEY=$YOUR_ALPHA_VANTAGE_API_KEY ``` Alternatively, you can create a `.env` file in the project root with your API keys (see `.env.example` for reference): @@ -130,6 +127,8 @@ cp .env.example .env # Edit .env with your actual API keys ``` +**Note:** The default configuration uses [Alpha Vantage](https://www.alphavantage.co/) for fundamental and news data. You can get a free API key from their website, or upgrade to [Alpha Vantage Premium](https://www.alphavantage.co/premium/) for higher rate limits and more stable access. If you prefer to use OpenAI for these data sources instead, you can modify the data vendor settings in `tradingagents/default_config.py`. + ### CLI Usage You can also try out the CLI directly by running: @@ -185,12 +184,12 @@ config["deep_think_llm"] = "gpt-4.1-nano" # Use a different model config["quick_think_llm"] = "gpt-4.1-nano" # Use a different model config["max_debate_rounds"] = 1 # Increase debate rounds -# Configure data vendors (default uses Alpha Vantage for real-time data) +# Configure data vendors (default uses yfinance and Alpha Vantage) config["data_vendors"] = { - "core_stock_apis": "alpha_vantage", # Options: alpha_vantage, yahoo_finance, local - "technical_indicators": "alpha_vantage", # Options: alpha_vantage, yahoo_finance, local - "fundamental_data": "alpha_vantage", # Options: alpha_vantage, openai, local - "news_data": "alpha_vantage", # Options: alpha_vantage, openai, google, local + "core_stock_apis": "yfinance", # Options: yfinance, alpha_vantage, local + "technical_indicators": "yfinance", # Options: yfinance, alpha_vantage, local + "fundamental_data": "alpha_vantage", # Options: openai, alpha_vantage, local + "news_data": "alpha_vantage", # Options: openai, alpha_vantage, google, local } # Initialize with custom config @@ -201,7 +200,7 @@ _, decision = ta.propagate("NVDA", "2024-05-10") print(decision) ``` -> The default configuration now uses Alpha Vantage as the primary data provider, which provides access to real-time market data. For offline experimentation, there's a local data vendor option that uses our **Tauric TradingDB**, a curated dataset for backtesting, though this is still in development. We're currently refining this dataset and plan to release it soon alongside our upcoming projects. Stay tuned! +> The default configuration uses yfinance for stock price and technical data, and Alpha Vantage for fundamental and news data. For production use or if you encounter rate limits, consider upgrading to [Alpha Vantage Premium](https://www.alphavantage.co/premium/) for more stable and reliable data access. For offline experimentation, there's a local data vendor option that uses our **Tauric TradingDB**, a curated dataset for backtesting, though this is still in development. We're currently refining this dataset and plan to release it soon alongside our upcoming projects. Stay tuned! You can view the full list of configurations in `tradingagents/default_config.py`. diff --git a/main.py b/main.py index fe4e4cb3..a85ee6ec 100644 --- a/main.py +++ b/main.py @@ -8,18 +8,16 @@ load_dotenv() # Create a custom config config = DEFAULT_CONFIG.copy() -config["llm_provider"] = "google" # Use a different model -config["backend_url"] = "https://generativelanguage.googleapis.com/v1" # Use a different backend -config["deep_think_llm"] = "gemini-2.0-flash" # Use a different model -config["quick_think_llm"] = "gemini-2.0-flash" # Use a different model +config["deep_think_llm"] = "gpt-4o-mini" # Use a different model +config["quick_think_llm"] = "gpt-4o-mini" # Use a different model config["max_debate_rounds"] = 1 # Increase debate rounds -# Configure data vendors (default uses Alpha Vantage for real-time data) +# Configure data vendors (default uses yfinance and alpha_vantage) config["data_vendors"] = { - "core_stock_apis": "alpha_vantage", # Options: alpha_vantage, yahoo_finance, local - "technical_indicators": "alpha_vantage", # Options: alpha_vantage, yahoo_finance, local - "fundamental_data": "alpha_vantage", # Options: alpha_vantage, openai, local - "news_data": "alpha_vantage", # Options: alpha_vantage, openai, google, local + "core_stock_apis": "yfinance", # Options: yfinance, alpha_vantage, local + "technical_indicators": "yfinance", # Options: yfinance, alpha_vantage, local + "fundamental_data": "alpha_vantage", # Options: openai, alpha_vantage, local + "news_data": "alpha_vantage", # Options: openai, alpha_vantage, google, local } # Initialize with custom config diff --git a/tradingagents/dataflows/interface.py b/tradingagents/dataflows/interface.py index 43044149..bc65df9c 100644 --- a/tradingagents/dataflows/interface.py +++ b/tradingagents/dataflows/interface.py @@ -2,7 +2,7 @@ from typing import Annotated # Import from vendor-specific modules from .local import get_YFin_data, get_finnhub_news, get_finnhub_company_insider_sentiment, get_finnhub_company_insider_transactions, get_simfin_balance_sheet, get_simfin_cashflow, get_simfin_income_statements, get_reddit_global_news, get_reddit_company_news -from .yahoo_finance import get_YFin_data_online, get_stock_stats_indicators_window +from .y_finance import get_YFin_data_online, get_stock_stats_indicators_window from .google import get_google_news from .openai import get_stock_news_openai, get_global_news_openai, get_fundamentals_openai from .alpha_vantage import ( @@ -55,7 +55,7 @@ TOOLS_CATEGORIES = { VENDOR_LIST = [ "local", - "yahoo_finance", + "yfinance", "openai", "google" ] @@ -65,13 +65,13 @@ VENDOR_METHODS = { # core_stock_apis "get_stock_data": { "alpha_vantage": get_alpha_vantage_stock, - "yahoo_finance": get_YFin_data_online, + "yfinance": get_YFin_data_online, "local": get_YFin_data, }, # technical_indicators "get_indicators": { "alpha_vantage": get_alpha_vantage_indicator, - "yahoo_finance": get_stock_stats_indicators_window, + "yfinance": get_stock_stats_indicators_window, "local": get_stock_stats_indicators_window }, # fundamental_data diff --git a/tradingagents/dataflows/yahoo_finance.py b/tradingagents/dataflows/y_finance.py similarity index 100% rename from tradingagents/dataflows/yahoo_finance.py rename to tradingagents/dataflows/y_finance.py diff --git a/tradingagents/default_config.py b/tradingagents/default_config.py index d02411e0..1f40a2a2 100644 --- a/tradingagents/default_config.py +++ b/tradingagents/default_config.py @@ -20,10 +20,10 @@ DEFAULT_CONFIG = { # Data vendor configuration # Category-level configuration (default for all tools in category) "data_vendors": { - "core_stock_apis": "alpha_vantage", # OHLCV data: alpha_vantage, yahoo_finance, local - "technical_indicators": "alpha_vantage", # Technical indicators: alpha_vantage, yahoo_finance, local - "fundamental_data": "alpha_vantage", # Fundamentals: alpha_vantage, openai, local - "news_data": "alpha_vantage", # News: alpha_vantage, openai, google, local + "core_stock_apis": "yfinance", # Options: yfinance, alpha_vantage, local + "technical_indicators": "yfinance", # Options: yfinance, alpha_vantage, local + "fundamental_data": "alpha_vantage", # Options: openai, alpha_vantage, local + "news_data": "alpha_vantage", # Options: openai, alpha_vantage, google, local }, # Tool-level configuration (takes precedence over category-level) "tool_vendors": {