Блог им. fxsaber

Обход несистемных убытков/прибылей при Оптимизации ТС

    • 03 февраля 2020, 01:11
    • |
    • fxsaber
  • Еще

Во время Оптимизации с целью лучшего подхватывания самой ТС имеющихся рыночных закономерностей желательно наличие механизма обхода черных/белых лебедей (случайные сильные убытки/прибыли на одну сделку).

Некоторые обходят их через данные о новостях — не торгуют там в Оптимизаторе. Это неплохое решение.

Когда же нет календаря новостей, то пробуют вычислить лебедей через анализ истории котировок. Тут уже нет универсального решения, т.к. нужно подстраиваться под особенности своей ТС.

Наконец, есть еще вариант обхода уток, когда не хочется возиться ни с одним из способов: просто выбросить самые убыточные/прибыльные сделки. А для остальных посчитать прибыльность, просадку и т.д.

Добавил такой фильтр в библиотеку. Его можно применять в качестве критерия Оптимизации ТС подобным образом.

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);
}

Можно посмотреть, как меняется прибыльность ТС от размера фильтра.
Обход несистемных убытков/прибылей при Оптимизации ТС

Однако, минус такого подхода, что не получается обойти серии мелких сделок, которые в совокупности дают лебедя. Например, случай, когда флетовая ТС попадает на новость, где цена сильно мечется в обе стороны, но при этом далеко не улетает. Так получается несистемная итоговая высокая прибыль из множества сделок. И этот результат может не дать правильно подстроить ТС под рыночные закономерности во время Оптимизации. Соответственно, оценить потенциал торговой логики.




★3
7 комментариев
Нужно анализировать случайные выборки из сделок.
Пафос Респектыч, здесь вопрос в автоматическом критерии Оптимизации.

При анализе одиночного прохода можно построить массу стат. характеристик. При Оптимизации же нужна целевая фитнесс-функция, по которой будет проводиться поиск ее экстремума приближенными методами.
avatar
fxsaber, ну так если немного вдуматься, то эта самая фитнесс-функция, как бы её значения ни рассчитывались — они случайные. То есть это не одна чиселка в каждом конкретном случае, а некоторое распределение, с матожиданием и дисперсией. Вы паритесь, что оценка этого распределения по всего одному значению может быть далековата от истины, особенно если известно, что дисперсия может быть не пренебрежимо мала ))
Пафос Респектыч, у меня задача оценки потенциала подстройки ТС под рыночные закономерности. А не анализ робастности ТС в будущем.
avatar
fxsaber, да какая в общем разница? Что так случайные числа, что эдак.
Пафос Респектыч, нулевая аргументация.
avatar

fxsaber — это рекламщик компании раннфорекс.

он на этом форуме исключительно для того, чтобы рекламировать эту компанию. чтобы часть трейдеров с биржи на форекс перетянуть.

avatar

теги блога fxsaber

....все тэги



UPDONW
Новый дизайн