TradingAgents/tradingagents/default_config.py

72 lines
3.0 KiB
Python

import os
DEFAULT_CONFIG = {
"project_dir": os.path.abspath(os.path.join(os.path.dirname(__file__), ".")),
"results_dir": os.getenv("TRADINGAGENTS_RESULTS_DIR", "./results"),
"data_cache_dir": os.path.join(
os.path.abspath(os.path.join(os.path.dirname(__file__), ".")),
"dataflows/data_cache",
),
# LLM settings
"llm_provider": "openai",
"deep_think_llm": "gpt-5.2",
"quick_think_llm": "gpt-5-mini",
"backend_url": "https://api.openai.com/v1",
# Provider-specific thinking configuration
"google_thinking_level": None, # "high", "minimal", etc.
"openai_reasoning_effort": None, # "medium", "high", "low"
# Graph settings
"max_recur_limit": 100,
# Swing trading settings
"market": "KRX", # "KRX" or "US"
"swing_hold_days_min": 2,
"swing_hold_days_max": 20,
# Portfolio settings
"portfolio_id": "default",
"swing_portfolio_id": "swing_default",
"core_portfolio_id": "core_long_term",
"total_capital": 100_000_000, # 1억원 (KRX) or $100,000 (US)
"max_positions": 5,
"max_position_pct": 0.20, # 20% of total capital per position
"default_stop_loss_pct": 0.05, # 5%
"default_take_profit_pct": 0.15, # 15%
# Core long-term strategy settings (separated from swing)
"core_long_term_tickers": ["005930"], # e.g., Samsung Electronics
"core_budget_per_ticker": 1_000_000, # 1백만원 per run
"core_max_position_pct": 0.40, # 40% cap per core ticker
"core_stop_loss_pct": 0.30, # wide stop for long-term holding
"core_take_profit_pct": 1.00, # optional broad target
"core_max_hold_days": 3650, # ~10 years
# Screening settings
"screening_min_market_cap": 500_000_000_000, # 5000억원
"screening_min_volume": 100_000,
"screening_max_candidates": 5,
"us_universe": "sp500", # "sp500", "nasdaq100", or "custom"
"custom_watchlist": [], # custom ticker list for manual universe
# Broker settings (Kiwoom Securities REST API)
"broker_enabled": False, # True to enable order execution
"broker_dry_run": True, # True = validate only, False = real orders
"kiwoom_app_key": os.getenv("KIWOOM_APP_KEY", ""),
"kiwoom_app_secret": os.getenv("KIWOOM_APP_SECRET", ""),
"kiwoom_account_no": os.getenv("KIWOOM_ACCOUNT_NO", ""),
"kiwoom_is_paper": True, # True = 모의투자, False = 실전투자
# Data vendor configuration
"data_vendors": {
"core_stock_apis": "yfinance",
"technical_indicators": "yfinance",
"fundamental_data": "yfinance",
"news_data": "yfinance",
# Korean market data vendors
"krx_stock_apis": "krx",
"korean_market_data": "krx",
"korean_fundamental_data": "krx",
"korean_news_data": "naver",
},
# Tool-level configuration (takes precedence over category-level)
"tool_vendors": {
"get_dart_financials": "dart",
"get_dart_disclosures": "dart",
"get_dart_shareholders": "dart",
},
}