turtle_quant_1.backtesting.hyperparameters¶
turtle_quant_1.backtesting.hyperparameters
¶
Hyperparameter tuning script for trading strategies using Optuna.
get_config
¶
Create a strategy engine configuration for the given trial.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
trial
|
Trial
|
Optuna trial object for hyperparameter suggestions |
required |
Returns:
| Type | Description |
|---|---|
Dict[str, Any]
|
Dictionary containing strategy engine configuration |
Source code in src/turtle_quant_1/backtesting/hyperparameters.py
get_objective_metric
¶
get_objective_metric(
results: TestCaseResults,
metric_name: str = "sharpe_ratio",
) -> float
Extract the objective metric from backtest results.
NOTE: This is currently a wrapper around the quantstats metrics in the results. NOTE: Ensure that metric_name is a valid quantstats metric. TODO: Implement our own metrics.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
results
|
TestCaseResults
|
BacktestingResults object |
required |
metric_name
|
str
|
Name of the metric to optimize |
'sharpe_ratio'
|
Returns:
| Type | Description |
|---|---|
float
|
Metric value (returns large negative value if error occurred) |
Source code in src/turtle_quant_1/backtesting/hyperparameters.py
objective
¶
Optuna objective function for hyperparameter optimization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
trial
|
Trial
|
Optuna trial object |
required |
Returns:
| Type | Description |
|---|---|
float
|
Objective metric value to maximize |
Source code in src/turtle_quant_1/backtesting/hyperparameters.py
run_backtest
¶
run_backtest(
config: Dict[str, Any], initial_capital: float = 10000.0
) -> TestCaseResults
Run a backtest with the given strategy engine configuration.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config
|
Dict[str, Any]
|
Strategy engine configuration dictionary |
required |
initial_capital
|
float
|
Starting capital for the backtest |
10000.0
|
Returns:
| Type | Description |
|---|---|
TestCaseResults
|
BacktestingResults object |
Source code in src/turtle_quant_1/backtesting/hyperparameters.py
run_hyperparameter_tuning
¶
run_hyperparameter_tuning(
n_trials: int,
n_jobs: int = -1,
study_name: str = "strategy_engine_optimization",
direction: str = "maximize",
) -> Study
Run hyperparameter optimization using Optuna.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
n_trials
|
int
|
Number of optimization trials |
required |
study_name
|
str
|
Name for the study |
'strategy_engine_optimization'
|
direction
|
str
|
Optimization direction ("maximize" or "minimize") |
'maximize'
|
Returns:
| Type | Description |
|---|---|
Study
|
Completed Optuna study object |