Agents And Forecasting
Configuration
The repo keeps behavior in config files:
configs/agents/
├── single_asset_ppo.json
└── multiple_asset_ppo.json
configs/predictions/
├── ar1_baseline.json
├── arimax_price_only.json
├── arimax_sentiment.json
├── gaussian_process_price_only.json
├── gaussian_process_sentiment.json
├── lstm_price_only.json
├── lstm_sentiment.json
├── ridge_arx_price_only.json
├── ridge_arx_sentiment.json
├── lightgbm_direct_price_only.json
├── lightgbm_direct_sentiment.json
├── lightgbm_price_only.json
└── lightgbm_sentiment.json
Training modules and forecast generators read configs rather than embedding direct file paths in the browser layer.
PPO commands
npm run preprocess
npm run train:single
npm run train:multi
Forecast commands
npm run predict:baseline
npm run predict:arimax
npm run predict:ridge
npm run predict:lightgbm
npm run predict:lightgbm:direct
npm run predict:gp
npm run predict:lstm
Single-asset PPO
The single-asset PPO module trains one model per commodity CSV under data/training/commodity_outputs/ and emits:
action
greedy action
hold/buy/sell probabilities
entropy
position
reward
net worth
Multi-asset PPO
The multi-asset PPO module trains a shared portfolio policy across the configured commodity set. Output rows contain one action-probability block per commodity plus shared portfolio state.
Forecast outputs
The forecast layer currently exposes:
a baseline trend forecast
Ridge ARX price-only
Ridge ARX price-plus-sentiment
ARIMAX price-only
ARIMAX price-plus-sentiment
LightGBM price-only
LightGBM price-plus-sentiment
Direct multi-horizon LightGBM price-only
Direct multi-horizon LightGBM price-plus-sentiment
Gaussian process price-only
Gaussian process price-plus-sentiment
LSTM price-only
LSTM price-plus-sentiment
Ridge ARX, ARIMAX, one-step LightGBM, Gaussian process, and LSTM emit two evaluation variants:
observed_historyrecursive_path
Direct multi-horizon LightGBM is exposed as:
direct_multi_horizon
Dashboard loading
The browser demo does not retrain models. It discovers generated or committed CSV outputs under:
data/agent_outputs/
data/prediction_outputs/
The app-side loaders normalize those files into a stable UI shape for the charts.