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

 
TheXpert:
если взять логарифм годится, ваш ФВ не годится просто всегда хотя бы потому что зависит от места самой большой просадки.

Готов конструктивно подискутировать по этой теме. Не совсем понял про логарифм. Предлагаете логарифмировать цену OrderOpenPrice и OrderClosePrice и по ним классическим образом вычислять ФВ?


Классический ФВ плох тем, что зависит от места старта реинвест-ТС.

ФВ здесь был упомянут в вопросе ко мне. Сам предложил использовать другую характеристику.

 
fxsaber:

Не совсем понял про логарифм.

например log(прирост %/просадка %)

Классический ФВ плох тем, что зависит от места старта реинвест-ТС.

Компостер выше предложил классический ФВ с нормированием по времени.

 
TheXpert:

например log(прирост %/просадка %)

Как критерий оптимизации, это значения равноценно выражению под логарифмом.

Компостер выше предложил классический ФВ с нормированием по времени.

Что-то плохо понимаю. Ведем обсуждение трех сущностей для реинвест-ТС.

  1. Классический ФВ.
  2. Нормированный ФВ по времени.
  3. Мой ФВ.
  4. Мой критерий оптимизации.
Если не лень, хотелось бы увидеть на примере плюсы и минусы.
 

Несколько слов в адрес MT5-Тестера.


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


Как правило, пишется несколько экспериментальных ТС, которые сами по себе являются своего рода исследованиями. Они могут отличаться каким-то блоками друг от друга. Чаще всего, это не сами торговые блоки, а алгоритмы формирования торговых сигналов. Т.е. изменения содержатся в небольших, но определяющих частях.


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


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


Делать это вручную крайне утомительно даже в столь простом и мощном инструменте, как MT5-Тестер. Особенно тяжко, когда нужно это делать часто. А в алготрейдинге это может требоваться хотя бы раз в неделю или чаще, что зависит только от степени лени автора ТС. Хотя с такой задачей могут столкнуться не только авторы ТС, но и обычные пользователи. Например, при желании сравнить несколько готовых советников из Маркета.


У MT5-Тестера есть встроенные механизмы автоматизации, но они требуют хорошей квалификации. Поэтому на помощь может прийти зарекомендовавшая себя с наилучшей стороны в статье (фактически, главный виновник ее написания) надстройка над MT5-Тестером. Она очень простая и почти не требует изучения. Только указываете советники, которые нужно сравнить, настраиваете диапазоны входных параметров и запускаете. На выходе имеете соответствующие кеши Оптимизации. Результаты из которых и сравниваете. Это колоссально помогает при исследованиях, избавляя от рутины и высвобождая время и силы на другие дела.


Почему именно MT5-Тестер?

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Вопрос знатокам ООП.

fxsaber, 2019.10.08 09:33

Что удерживает от переезда на другой Тестер (включая написание своего).

  • Крутой агентный Оптимизатор. На 99% надежный.
  • Отличная генетика.
  • Малое потребление ресурсов.
  • Кеши оптимизатора и одиночных проходов.
  • Точная мультивалютность.
  • Возможность легкой автоматизации (пусть и через WinAPI).
  • Исторический дебагер с визуализацией.
  • Оперативная связь с разработчиками и адекватное взаимодействие. Русский язык для общения.
  • Огромная армия пользователей, которые находят баги. А разработчики их правят.
  • Надежность - не падает, даже когда упираешься в потолок по памяти.
  • Встроенная история.
  • Великолепная портативность и элементарная "установка" с нуля.
  • Дружба со всеми x64 ОС.
  • Шустрый GUI.
  • Возможность воспроизвести действия другого человека.

Заметьте, это не все плюсы, а только те, которые держат.


Ну и пример потенциальной возможности только одной из фишек MT5-Тестера - кеш одиночных прогонов ТС.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Бета-версия платформы MetaTrader 5 build 2155: Области видимости в MQL5, глобальное обновление тестера стратегий и встроенного хостинга

fxsaber, 2019.10.04 07:18

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

  • Выбираешь мышкой нужные - он показывает объединенную статистику.
  • Чистит кеш от ненужных проходов.
  • Вычисляет из проходов оптимальный портфель с соответствующими весовыми коэффициентами.
  • Показывает наилучшие интервалы торговли для каждого из проходов.
  • Предлагает свою интерактивную визуализацию статистики, включая фильтры.
  • Вычисляет оптимальный ММ.
  • Для каждой hedge-позиции в истории показывает OrderOpenPriceBest (лучшая цена открытия за время жизни позиции), OrderClosePriceBest (аналогично), OrderOpenPriceLength (сколько времени цена была не хуже OrderOpenPrice за время жизни позиции), OrderClosePriceLength(аналогично), OrderProfitBest(наибольший возможный профит аналогичной позиции на интервале жизни позиции-оригинала).
  • Показывает КПД каждой hedge-позиции.
  • Вычисляет результат при включении latency.
  • Вычисляет результат при разных настройках исполнения ордеров (скользят ли и т.д.) и комиссии.
  • Показывает результат ТС на другой тиковой истории.
  • ...

Для реализации каждого пункта не нужно запускать Тестер.

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

 

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

Эффективность улавливания прибыли измеряю, например, профитом наилучшего прохода при оптимизации постоянным лотом. Выше профит - выше эффективность. Т.е. чем выше профит, тем точнее накладываются сделки на график цены.


Классика vs НС


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


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

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


Где изъян в моих рассуждениях?


Торговые издержки


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


Ну и, соответственно, если боевая ТС менее эффективно описывает рыночную закономерность, то и вероятность слиться у нее выше, чем у той, что показывает замечательный профит без комиссии (мат. ожидание выше комиссии).


Сравнение ТС


Допустим, ТС1 имеет такое же количество явных входных параметров, как и ТС2. Но при этом лучший проход ТС1 получает на 10% больше прибыли, чем ТС2. Пусть это будут тысячи переворотных сделок, чтобы сильно не отвлекаться на стат. значимость.

10% — это много или мало, чтобы сказать, что ТС1 лучше описывает рыночную закономерность, чем ТС2? Как понять, где идет речь о стат. погрешности профита, а где о, действительно, более точном алгоритме описания рынка?

В общем, сумбурно довольно написал. Если кто увидел логику в этом наборе косноязычия и есть мысли по теме, интересно было бы послушать.

 
fxsaber:

Сравнение ТС



Допустим, ТС1 имеет такое же количество явных входных параметров, как и ТС2. Но при этом лучший проход ТС1 получает на 10% больше прибыли, чем ТС2. Пусть это будут тысячи переворотных сделок, чтобы сильно не отвлекаться на стат. значимость.

10% — это много или мало, чтобы сказать, что ТС1 лучше описывает рыночную закономерность, чем ТС2? Как понять, где идет речь о стат. погрешности профита, а где о, действительно, более точном алгоритме описания рынка? 

Вроде бы, стандартный базовый метод - сравнение их "annualized Sharpe ratios". Или речь о чём-то другом?

Sharpe Ratio and Its Applications in Algorithmic Trading
Sharpe Ratio and Its Applications in Algorithmic Trading
  • 2016.05.03
  • blog.quantinsti.com
To measure the performance of a trading strategy, annualized returns are often a common metric. However comparing two strategies based on annualised returns may not always be a logical way due to several reasons. Some strategies might be directional, some market neutral and some might be leveraged which makes annualized return alone a futile...
 
fxsaber:


В общем, сумбурно довольно написал. Если кто увидел логику в этом наборе косноязычия и есть мысли по теме, интересно было бы послушать.

Условной подгонкой под данные может быть любой вариант полученной стратегии - тут совсем не важно сами придумали или получили при помощи МО.

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

Другая особенность МО в том, что хорошо коррелирующие предикторы на временном участке для обучения могут быть раскареллированы при применении модели, т.е. корреляция была ложной. Я подобное наблюдаю на деревьях, когда часть схожих по структуре листов перестает зарабатывать. Т.е. часть сплитов ближе к листьям может оказаться случайным значением за счет случайной корреляции "отфильтрованных" для лучшего сплита предикторов, в итоге схожие листья будут прибыльными и убыточными хотя их структура крайне похожа. Это проблема как нестационарности, так и недостаточности данных, и, с учетом особенностей этих обстоятельств требуется вносить правки в сам процесс МО, у меня есть идеи, но к сожалению я программист никакой, что б их реализовать.

 
fxsaber:

Эффективность улавливания прибыли измеряю, например, профитом наилучшего прохода при оптимизации постоянным лотом. Выше профит - выше эффективность. Т.е. чем выше профит, тем точнее накладываются сделки на график цены.

Следующие выводы зависят от выбранного здесь критерия. Поэтому брать здесь просто профит, как по мне, неправильно.


fxsaber:

Классика vs НС


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


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

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


Где изъян в моих рассуждениях?

Все логично.

Наверное, разница заключается как раз в "небольшом кол-ве входных" у классического варианта и грамотных и логичных входах для нейросети.


fxsaber:

Торговые издержки

Для скальпирующих ТС большую роль играют комиссии. При этом цене ровно до нее. Т.е. рыночные закономерности практически не зависят от этого показателя.

Не согласен. Что такое "цена"? Она везде одна, или есть эталон?

Я к тому, что, возможно, от размера комиссии конкретного брокера могут зависеть и его котировки (кол-во и методы агрегации ЛП, фильтры, и т.д.).

Не говоря уже о прямом марк-апе, добавляемом в цены.


fxsaber:

Соответственно, логично при сравнении ТС использовать профит без комиссии.

В корне не согласен.

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

Зачем нам "идеальное описание" сферических котировок в вакууме, которые невозможно торговать?

 
Andrey Khatimlianskii:

Не согласен. Что такое "цена"? Она везде одна, или есть эталон?

Я к тому, что, возможно, от размера комиссии конкретного брокера могут зависеть и его котировки (кол-во и методы агрегации ЛП, фильтры, и т.д.).

Не говоря уже о прямом марк-апе, добавляемом в цены.

Цена - это лучшие доступные торговые условия без накидывания сверху чего-либо.

В корне не согласен.

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

Зачем нам "идеальное описание" сферических котировок в вакууме, которые невозможно торговать?

Чем лучше ТС описывает цену, тем ближе ее логика соответствует рыночной закономерности. Цена не включает комиссию. Уже потом, определившись с логикой такой ТС, имеет смысл дальше плясать от нее в сторону боевого применения. Т.е. сначала нужно найти не ТС, которая будет давать прибыль с комиссиями. А ТС (логику), которая будет давать наибольшую прибыль без комиссии.

 
Aleksey Nikolayev:

Вроде бы, стандартный базовый метод - сравнение их "annualized Sharpe ratios". Или речь о чём-то другом?

Хорошо знаком с шарпом. У меня нет уверенности в сторону какого-либо критерия оптимизации, чтобы по нему говорить о качестве логики описания рыночных закономерностей.