# Predix
Installation • Quick Start • Configuration • Features
--- ## Overview **Predix** is an autonomous AI agent for quantitative trading strategies in the EUR/USD forex market. Built on a multi-agent framework, Predix automates the full research and development cycle: - 📊 **Data Analysis** – Automatically analyzes market patterns and microstructure - 💡 **Strategy Discovery** – Proposes novel trading factors and signals - 🧠 **Model Evolution** – Iteratively improves predictive models - 📈 **Backtesting** – Validates strategies on historical 1-minute data Predix is optimized for **1-minute EUR/USD FX data** (2020–2026) and uses Qlib as the underlying backtesting engine. --- ## Installation ### Prerequisites - **Python 3.10 or 3.11** - **Docker** (required for sandboxed code execution) - **Linux** (officially supported; macOS/Windows may work with adjustments) ### Quick Install ```bash # Install from PyPI pip install predix # Or install from source git clone https://github.com/PredixAI/predix cd predix pip install -e . ``` ### Development Setup ```bash # Create conda environment conda create -n predix python=3.10 conda activate predix # Install in editable mode with dev dependencies make dev ``` --- ## Quick Start ### 1. Health Check Verify your environment is properly configured: ```bash rdagent health_check --no-check-env ``` ### 2. Configure LLM Backend Create a `.env` file in your project root: ```bash # Example: OpenAI configuration cat << EOF > .env CHAT_MODEL=gpt-4o EMBEDDING_MODEL=text-embedding-3-small OPENAI_API_BASE=https://api.openai.com/v1 OPENAI_API_KEY=your-api-key-here EOF ``` **Alternative providers:** - **Azure OpenAI**: Set `AZURE_API_KEY`, `AZURE_API_BASE`, `AZURE_API_VERSION` - **DeepSeek**: Use `CHAT_MODEL=deepseek/deepseek-chat` with `DEEPSEEK_API_KEY` - **SiliconFlow (embedding)**: Use `EMBEDDING_MODEL=litellm_proxy/BAAI/bge-m3` ### 3. Run Quantitative Trading Loop ```bash # Full factor & model co-evolution rdagent fin_quant # Factor-only evolution rdagent fin_factor # Model-only evolution rdagent fin_model ``` ### 4. Monitor Results ```bash # Start the UI dashboard rdagent ui --port 19899 --log-dir log/ --data-science ``` Then open `http://127.0.0.1:19899` in your browser. --- ## Configuration ### Data Configuration Edit [`data_config.yaml`](data_config.yaml) to customize: ```yaml instrument: EURUSD frequency: 1min data_path: ~/.qlib/qlib_data/eurusd_1min_data # Walk-forward split train_start: "2022-03-14" train_end: "2024-06-30" valid_start: "2024-07-01" valid_end: "2024-12-31" test_start: "2025-01-01" test_end: "2026-03-20" # Market context for LLM prompts market_context: spread_bps: 1.5 target_arr: 9.62 # Target annual return (%) max_drawdown: 20 # Max drawdown (%) ``` ### Environment Variables | Variable | Description | Example | |----------|-------------|---------| | `CHAT_MODEL` | LLM for reasoning | `gpt-4o`, `deepseek-chat` | | `EMBEDDING_MODEL` | Embedding model | `text-embedding-3-small` | | `OPENAI_API_KEY` | API key for OpenAI | `sk-...` | | `DEEPSEEK_API_KEY` | API key for DeepSeek | `sk-...` | | `DS_LOCAL_DATA_PATH` | Local data directory | `./data` | --- ## Features ### 🔄 Iterative Factor Evolution Predix continuously proposes, implements, and validates new alpha factors: - Learns from backtest feedback - Avoids overfitting through walk-forward validation - Discovers non-obvious patterns in order flow, volatility, and session dynamics ### 🧠 Model Architecture Search Automatically explores and refines predictive models: - Linear baselines (LightGBM, XGBoost) - Deep learning (LSTM, Transformer, Temporal CNN) - Ensemble methods ### 📚 Knowledge Base Built-in knowledge accumulation across loops: - Successful factors are archived - Failed attempts inform future proposals - Cross-loop learning improves robustness ### 🖥️ Interactive UI Real-time dashboard for monitoring: - Factor performance metrics - Model architecture evolution - Cumulative returns and drawdowns - Code diffs and implementation history --- ## Project Structure ``` predix/ ├── rdagent/ # Core agent framework │ ├── app/ # CLI and scenario apps │ ├── components/ # Reusable agent components │ ├── core/ # Core abstractions │ ├── scenarios/ # Domain-specific scenarios │ └── utils/ # Utilities ├── constraints/ # Constraint definitions ├── docs/ # Documentation ├── web/ # Web UI frontend ├── data_config.yaml # Data configuration ├── pyproject.toml # Project metadata └── requirements.txt # Dependencies ``` --- ## Data Setup Predix uses 1-minute EUR/USD data. To prepare your dataset: ```bash # Run the data setup script (if provided) ./setup_predix_eurusd.sh # Or manually place data in: # ~/.qlib/qlib_data/eurusd_1min_data/ ``` Expected data columns: `$open`, `$close`, `$high`, `$low`, `$volume` --- ## CLI Commands | Command | Description | |---------|-------------| | `rdagent fin_quant` | Full factor & model co-evolution | | `rdagent fin_factor` | Factor-only evolution | | `rdagent fin_model` | Model-only evolution | | `rdagent fin_factor_report --report-folder=