Беда генетического оптимизатора в Ами в том, что он находит лучшие наборы параметров, не учитывая количество сделок. Приходится либо колдовать с границами параметров, либо увеличивать сроки оптимизации.
Для себя я нашел такое решение — посчитал новую метрику modified Recovery Factor (я обычно по нему оптимизирую): если количество трейдов меньше 50, то приравнял его -1, иначе он равен Recovery Factor по расчетам ами. Теперь, если этот modified Recovery Factor использовать в качестве цели оптимизации, то получим наборы параметров, которые дают не менее определенного количества сделок за период оптимизации.
Код, показанный ниже, надо просто добавить в конце afl скрипта стратегии:
TotalTrades = 0;
SetCustomBacktestProc("");
if (Status(«action») == actionPortfolio)
{
bo = GetBacktesterObject(); // Get backtester object
bo.Backtest(); // Run backtests
(
Читать дальше )