# Copy this file to .env and fill in your own values. # Never commit .env to version control. # ── Market data ────────────────────────────────────────────────────────────── ALPHA_VANTAGE_KEY=your_alpha_vantage_key_here FRED_API_KEY=your_fred_api_key_here # https://fred.stlouisfed.org/docs/api/api_key.html # ── Telegram alerts ─────────────────────────────────────────────────────────── TELEGRAM_BOT_TOKEN=your_telegram_bot_token TELEGRAM_CHAT_ID=your_telegram_chat_id # ── PostgreSQL database ─────────────────────────────────────────────────────── DB_HOST=localhost DB_PORT=5432 DB_NAME=advisor DB_USER=advisor_user DB_PASSWORD=your_db_password # ── LLM APIs ───────────────────────────────────────────────────────────────── # Groq — free tier: 100k tokens/day per key https://console.groq.com GROQ_API_KEY_1=your_groq_api_key_here GROQ_API_KEY_2=optional_second_groq_key # doubles daily budget # OpenRouter — free tier: 50 req/day per key https://openrouter.ai OPENROUTER_API_KEY_1=your_openrouter_key_here OPENROUTER_API_KEY_2=optional_second_or_key # doubles daily budget # ── Portfolio settings ──────────────────────────────────────────────────────── PORTFOLIO_CURRENCY=EUR HOME_COUNTRY=FI # affects tax filtering (Finnish MiFID II / UCITS rules) RISK_LEVEL=medium # low | medium | high MAX_ALPHA_VANTAGE_CALLS=22 # ── Pipeline limits ─────────────────────────────────────────────────────────── # Minimum EUR value per buy order — trades below this are demoted to WATCH. # At Nordnet Finland Level 3 (min €7 fee): €100 = 7%, €140 = 5%, €350 = 2%. MIN_TRADE_VALUE_EUR=100 # How many tickers to run through the full LLM debate each day. # Higher = more coverage, more LLM quota consumed. DAILY_ANALYSIS_COUNT=20 # Maximum number of open positions the portfolio can hold at once. MAX_HOLDINGS=10 # ── Schedule (all times UTC) ────────────────────────────────────────────────── # Days: 1-5 = Mon–Fri, 1-7 = Mon–Sun, * = every day, 1,3,5 = specific days SCHEDULE_DAYS=1-5 SCHEDULE_DAILY_TIME=04:00 # full pipeline run SCHEDULE_BRIEF_TIME=07:00 # Telegram morning brief SCHEDULE_MIDDAY_TIME=12:00 # midday holdings check # ── Market selection ────────────────────────────────────────────────────────── # Which exchanges to include when building the universe (comma-separated). # Available codes: NASDAQ NYSE AMEX NYSE_MKT NYSE_ARCA XETRA FSX LSE SIX # HEL STO CPH FNSE FNFI FNDK # Leave empty to include ALL supported exchanges. UNIVERSE_MARKETS=NASDAQ,NYSE,AMEX,XETRA,LSE,SIX,HEL,STO,CPH # Which exchanges to draw daily suggestions from (must be a subset of # UNIVERSE_MARKETS, or leave empty to use all of UNIVERSE_MARKETS). ANALYSIS_MARKETS=