Обсуждение статьи "Выцарапываем профит до последнего пипса" - страница 14

 

Меня спросили (вопрос не озвучиваю). Отвечаю.


Перевод делался по инициативе MetaQuotes в очень короткие сроки. Предполагаю, что из-за мониторинга.

В конце текста есть немаленькое заключение, так что можете прочеть. Сакральности там нет, все только по делу.


Пересказывать статью смысла нет. Кратко.

  • Перед каким-либо исследованием нужно аргументировано подойти к выбору источника исторических данных. Критерий оценки дан, включая исходный код.
  • Работать с тиковыми данными. Поскольку их очень много, можно применять фильтрацию. Один из вариантов предложен с исходным кодом.
  • Исследовать не один символ, а все. Т.е. создавать таски для Оптимизации. Готовый инструмент для этого для MT5 опять же имеется с исходным кодом.
  • Показано, какие подводные камни может содержать Тестер. Предложены шаги по настройке Тестера, чтобы уменьшить вероятность самообмана.
  • Предлагается писать ТС кроссплатформенно. За эталон удобства торгового API взят MT4. Предложена обертка (исходный код) этого API под MT5. По аналогии можно делать подобную обертку под любую платформу.
  • Обсуждается важность мат. ожидания и способы борьбы за его увеличение.
  • Высказаны мысли, почему форвард-оптимизация не желательна.
  • Подчеркивается важность времени суток для рыночных закономерностей. Предложен рабочий с исходным кодом простой способ мгновенного нахождения оптимального суточного интервала. Это ускоряет оптимизацию на порядки.
  • Рассказывается про важность качества исполнения со стороны брокера.
  • Предлагается способ с исходным кодом для решения сложной проблемы расхождений результатов между реалом (реджекты, частичные заливки, обрывы связи и т.д.) и тестером.
  • Объясняется причина сложности прибыльного копирования торговых сигналов ТС с малым мат. ожиданием.
  • Кратко подтверждается, что ММ (мартины, сетки и т.д.) не увеличивают прибыльность.
  • Предлагается создавать портфель из одной и той же ТС. В мониторинге это показано.
  • На примере реальной торговли продемонстрировано влияние положительных проскальзываний лимитных ордеров на общий результат.
  • Доказано, что посредственные торговые условия часто заставляют авторов потенциально-прибыльных ТС выбрасывать их в помойку.
  • Статья является внятным изложением реального случая нахождения одной из прибыльных (пока) ТС с помощью ранее выложенного инструментария с открытым исходным кодом. После такого случая возникла идея написания статьи-рецепта с мониторингом на старте. MetaQuotes полностью поддержала идею и в кратчайшие сроки рецензировала статью, текст и скрины которой были готовы через пару суток с момента обнаружения ТС (была найдена влегкую почти сразу с помощью MultiTester).

Чем выше квалификация в написании автоматических ТС, тем больший интерес представляет статья.


Ответ на вопрос "зачем это нужно автору?"

Мне не хватает силы воли, чтобы делать торговые инструменты только для себя. Когда делюсь ими, то принуждаю себя четко формулировать свои результаты и приводить их в удобное состояние. Это помогает мне.

Также получаю отзывы в виде сообщений об ошибках, новых идей и предложений. Заинтересованные лица связываются со мной и иногда дают полезную информацию.

 

Сентябрь 2019 года: +51%.


 

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


Но за счет ММ в деньгах это выглядит обычной кочергой.


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

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

Почему могла произойти катастрофа? Потому что это один из самых прибыльных сетов в тестере (да и лучший на реале все время был). И если бы классически был поставлен только он, то счет испытал бы рекордную просадку, хоть и профит мог быть значительно круче.

Вот из-за таких, в частности, невезучих ситуаций, когда пункт/два не доходит до закрытия, и резонно запускать портфель из одной и той же ТС.

 

Real VS Tester.

Красная - без скольжения. Синяя - со скольжением.


Поскольку ничего не менялось с момента запуска, то можно сравнить отличие результата в Тестере и на реале для каждой ТС.

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

Синяя линия показывает скольжение. Здесь несколько необычно, т.к. можно видеть скольжение в Тестере и скольжение на реале. Линии снова довольно близки.


Надо учитывать, что на реале были реджекты и обрывы связи (раз 50 в сутки по 10-20 секунд каждый).


ЗЫ Графики построены с помощью Graphics.mqh через Report.mqh.

 

При настройке ТС есть два подхода

  1. Торговля постоянным лотом.
  2. ММ, как часть от свободных средств (или баланса).

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

Например, в пипсах результат может быть одинаков у двух проходов. Но проход с бОльшим количеством сделок может стать предпочтительнее при реинвестировании.


Поэтому хорошо бы иметь критерий оптимизации для реинвестирования.

Взял такой: какая относительная прибыльность достигается при жестко заданной максимальной относительной просадке.

Алгоритм вычисления этой прибыльности можно посмотреть здесь.

sinput double inMaxDD = 0.3; // Для какой максимальной просадки вычислить риск?

double OnTester()
{
  double SumGain, MaxDD, RF;
 
  // https://www.mql5.com/ru/forum/170953/page21#comment_13448682   
  return(GetSumGain(GetRisk(inMaxDD, 0.01, _Symbol), SumGain, MaxDD, RF, _Symbol) ? SumGain : 0);
}

При таком расчете можно не думать о ММ совсем в своей ТС для тестера. Все будет работать, будто ММ есть.


ЗЫ Конечно, в OnTester добавляется доп. условие по наличию отрицательных сделок и их приличном количестве.