Skip to content

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,).