Agents
polars_ts.marl.agents
Specialized agents for multi-agent RL portfolio decisions.
RiskAgent
Assesses per-asset risk from recent return history.
Uses rolling volatility (standard deviation of returns) as the risk metric.
Parameters
window_size Number of recent periods to compute volatility over.
assess(returns)
Return per-asset risk scores (higher = riskier).
Parameters
returns
Array of shape (n_steps, n_assets).
Returns
np.ndarray
Risk scores of shape (n_assets,).
ReturnAgent
Predicts expected per-asset returns from recent history.
Uses exponentially weighted moving average of returns.
Parameters
window_size Number of recent periods to consider. decay Exponential decay factor (higher = more weight on recent data).
predict(returns)
Return expected per-asset returns.
Parameters
returns
Array of shape (n_steps, n_assets).
Returns
np.ndarray
Expected returns of shape (n_assets,).
AllocationAgent
Produces portfolio weights from risk and return estimates.
Uses a risk-adjusted return score (return / risk) to allocate weights proportionally.
Parameters
risk_aversion Higher values penalize risk more.
allocate(risk_scores, expected_returns, n_assets)
Return normalized portfolio weights.
Parameters
risk_scores
Per-asset risk scores from RiskAgent.
expected_returns
Per-asset expected returns from ReturnAgent.
n_assets
Number of assets (must match array lengths).
Returns
np.ndarray
Portfolio weights summing to 1, shape (n_assets,).