optimiser_functions#
API documentation for tradeexecutor.backtest.optimiser_functions Python module in Trading Strategy.
Module description#
Functions the optimiser would be looking for.
You can also write your own optimiser functions, see
tradeexecutor.backtest.optimiser.SearchFunction
.
Example:
import logging
from tradeexecutor.backtest.optimiser import perform_optimisation
from tradeexecutor.backtest.optimiser import prepare_optimiser_parameters
from tradeexecutor.backtest.optimiser_functions import optimise_profit, optimise_sharpe
from tradeexecutor.backtest.optimiser import MinTradeCountFilter
# How many Gaussian Process iterations we do
iterations = 6
optimised_results = perform_optimisation(
iterations=iterations,
search_func=optimise_profit,
decide_trades=decide_trades,
strategy_universe=strategy_universe,
parameters=prepare_optimiser_parameters(Parameters), # Handle scikit-optimise search space
create_indicators=create_indicators,
result_filter=MinTradeCountFilter(50)
# Uncomment for diagnostics
# log_level=logging.INFO,
# max_workers=1,
)
print(f"Optimise completed, optimiser searched {optimised_results.get_combination_count()} combinations")
Classes#
Try to find a strategy with balanced Sharpe and max drawdown. |
|
Find a rolling sharpe that's stable and high. |
Functions#
|
Search for the lowest max drawdown. |
|
Search for the best CAGR value. |
|
Search for the best Sharpe value. |
Search for the best sharpe / max drawndown ratio. |
|
|
Search for the best trade win rate. |