FinWorld Configuration Guide
Comprehensive guide to configuring FinWorld using Python-based configuration files
Configuration System Overview
FinWorld uses a Python-based configuration system built on mmengine. Each configuration file is a Python script that defines all necessary parameters for a specific task or component.
Key Features
- Python-based: Full Python syntax support for complex configurations
- mmengine Integration: Built on mmengine for unified experiment management
- Registry Mechanism: Flexible component management with type parameters
- Seven-Layer Architecture: Organized by hierarchical layer structure
- Task-oriented: Separate configs for different financial tasks
Configuration Structure
# Basic configuration structure
task_type = "trading" # Task type
symbol = "AAPL" # Asset symbol
workdir = "workdir" # Working directory
method = "ppo" # Method name
tag = f"{symbol}_{task_type}_{method}" # Experiment tag
# Dataset parameters
history_timestamps = 64
future_timestamps = 32
start_timestamp = "2015-05-01"
end_timestamp = "2025-05-01"
# Model parameters
embedding_dim = 256
num_heads = 4
depth = 4
# Configuration dictionaries
dataset = dict(...)
environment = dict(...)
agent = dict(...)
trainer = dict(...)
task = dict(...)
Seven-Layer Architecture Configuration
FinWorld's configuration system is organized around its seven-layer architecture. Each layer has specific configuration parameters:
1. Data Layer
Download & StorageDownload Configuration
downloader = dict(
type="PriceDownloader", # Specify downloader type
source="fmp",
assets_path="configs/_asset_list_/dj30.json",
start_date="1995-05-01",
end_date="2025-05-01"
)
Dataset Configuration
dataset = dict(
type="SingleAssetDataset", # Specify dataset type
symbol="AAPL",
data_path="datasets/exp",
history_timestamps=64,
future_timestamps=32
)
2. Process Layer
Data ProcessingProcessor Configuration
processor = dict(
type="AggProcessor", # Specify aggregator processor type
procs_config=[
dict(
type="Processor", # Specify processor type
assets_name="dj30",
data_type="price",
feature_type="Alpha158"
)
]
)
3. Model Layer
AI ModelsEmbedding Configuration
embed_config = dict(
type="TradingPatchEmbed", # Specify embedding layer type
dense_input_dim=150,
latent_dim=256,
dropout=0.0
)
Encoder Configuration
encoder_config = dict(
type="TransformerEncoder", # Specify encoder type
input_dim=256,
depth=4,
num_heads=4
)
4. Agent Layer
AI AgentsRL Agent
agent = dict(
type="PPO", # Specify PPO agent type
task_type="trading",
action_dim=3,
actor_output_dim=3,
critic_output_dim=1
)
LLM Agent
agent = dict(
type="FinanceAgent", # Specify finance agent type
model="Qwen3-32B",
max_steps=20
)
5. Environment Layer
Trading EnvironmentTrading Environment
environment = dict(
type="EnvironmentPatchTrading", # Specify trading environment type
mode="train",
initial_amount=1e5,
transaction_cost_pct=1e-4
)
Portfolio Environment
environment = dict(
type="EnvironmentPatchPortfolio", # Specify portfolio environment type
mode="train",
initial_amount=1e5,
num_assets=29
)
6. Trainer Layer
Training LogicRL Trainer
trainer = dict(
type="PPOTradingTrainer", # Specify PPO trainer type
policy_learning_rate=1e-5,
total_steps=int(1e8),
device="cuda"
)
ML Trainer
trainer = dict(
type="MLTradingTrainer", # Specify ML trainer type
n_estimators=1000,
learning_rate=0.05
)
7. Task Layer
Task OrchestrationTask Configuration
task = dict(
type="Task", # Specify task type
trainer=None,
task_type="trading"
)
Async Task
task = dict(
type="AsyncTask", # Specify async task type
trainer=None,
task_type="trading"
)
Task-Specific Configurations
FinWorld provides comprehensive configuration examples for different financial tasks. All configuration files are organized in the configs/ directory:
Trading Configurations
Configuration files for single-asset trading tasks using RL, ML, and rule-based approaches.
Portfolio Configurations
Configuration files for multi-asset portfolio management using various approaches.
Forecasting Configurations
Configuration files for time series forecasting using transformer-based models.
Agent Configurations
Configuration files for LLM-based financial agents and reasoning systems.
Data Configurations
Configuration files for data downloading, processing, and feature engineering.
Advanced Configurations
Configuration files for advanced models including VAE, Storm, and diffusion models.
View All Configurations
Explore the complete configuration system on GitHub:
Browse All Configuration FilesComplete Configuration Examples
Explore complete configuration examples for different scenarios on GitHub:
Single Asset Trading
Complete configuration for trading a single asset using PPO reinforcement learning.
AAPL PPO TradingMulti-Asset Portfolio
Configuration for managing a portfolio of 29 DJ30 stocks using PPO.
DJ30 PPO PortfolioTime Series Forecasting
Configuration for forecasting future returns using Autoformer model.
DJ30 AutoformerData Download
Configuration for downloading financial data from multiple sources.
DJ30 Data DownloadBrowse All Examples
Explore the complete collection of configuration examples:
View All Configuration Examples