Во время Оптимизации с целью лучшего подхватывания самой ТС имеющихся рыночных закономерностей желательно наличие механизма обхода черных/белых лебедей (случайные сильные убытки/прибыли на одну сделку).
Некоторые обходят их через данные о новостях — не торгуют там в Оптимизаторе. Это неплохое решение.
Когда же нет календаря новостей, то пробуют вычислить лебедей через анализ истории котировок. Тут уже нет универсального решения, т.к. нужно подстраиваться под особенности своей ТС.
Наконец, есть еще вариант обхода уток, когда не хочется возиться ни с одним из способов: просто выбросить самые убыточные/прибыльные сделки. А для остальных посчитать прибыльность, просадку и т.д.
Добавил такой фильтр в библиотеку. Его можно применять в качестве критерия Оптимизации ТС подобным образом.
sinput int inMinTrades = 500; // Минимальное количество трейдов (позиций) sinput int inMaxTrades = 2000; // Максимальное количество трейдов (позиций) #include <fxsaber\OnTesterCustom\OnTesterCustom.mqh> // https://www.mql5.com/ru/code/27714 sinput double inMarkup = 20; // Комиссия на миллион (одна сторона) sinput double inRisk = 0.5; // Фиксированный риск sinput double inFilter = 1; // Сколько процентов фильтруем double OnTester() { double Res = 0; if ((TesterStatistics(STAT_TRADES) >= inMinTrades) && (TesterStatistics(STAT_TRADES) <= inMaxTrades)) { ONTESTERCUSTOM OnTesterCustom(_Symbol); OnTesterCustom.Filter(inFilter / 100); // Применили фильтр сделок. Res = NormalizeDouble(OnTesterCustom.TesterStatistics(ONTESTERCUSTOM_GAIN, inRisk, inMarkup), 2); } return(Res); }
Однако, минус такого подхода, что не получается обойти серии мелких сделок, которые в совокупности дают лебедя. Например, случай, когда флетовая ТС попадает на новость, где цена сильно мечется в обе стороны, но при этом далеко не улетает. Так получается несистемная итоговая высокая прибыль из множества сделок. И этот результат может не дать правильно подстроить ТС под рыночные закономерности во время Оптимизации. Соответственно, оценить потенциал торговой логики.
При анализе одиночного прохода можно построить массу стат. характеристик. При Оптимизации же нужна целевая фитнесс-функция, по которой будет проводиться поиск ее экстремума приближенными методами.
fxsaber — это рекламщик компании раннфорекс.
он на этом форуме исключительно для того, чтобы рекламировать эту компанию. чтобы часть трейдеров с биржи на форекс перетянуть.