Skip to content

Commit c2120db

Browse files
fix: fixed su
Co-authored-by: Copilot <[email protected]>
1 parent b72899e commit c2120db

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

src/quant_research_starter/tuning/optuna_runner.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -212,12 +212,21 @@ def objective(trial: Trial) -> float:
212212
)
213213
results = backtest.run(weight_scheme="rank")
214214

215-
metrics_calc = RiskMetrics(results["returns"])
215+
returns = results["returns"]
216+
n_steps = 5 # Number of intermediate steps for reporting
217+
step_size = max(1, len(returns) // n_steps)
218+
for step in range(step_size, len(returns) + 1, step_size):
219+
partial_returns = returns.iloc[:step]
220+
metrics_calc = RiskMetrics(partial_returns)
221+
metrics = metrics_calc.calculate_all()
222+
metric_value = metrics.get(metric, 0.0)
223+
trial.report(metric_value, step)
224+
if trial.should_prune():
225+
raise optuna.TrialPruned()
226+
227+
# Final metric on all returns
228+
metrics_calc = RiskMetrics(returns)
216229
metrics = metrics_calc.calculate_all()
217-
218-
if trial.should_prune():
219-
raise optuna.TrialPruned()
220-
221230
metric_value = metrics.get(metric, 0.0)
222231
return float(metric_value)
223232

0 commit comments

Comments
 (0)