Единый показатель качества стратегии - страница 7

 
Youri Tarshecki:

Для сравнения  двух стратегий даже 60% соответствия рынку будет достаточно, чтобы сделать выбор в пользу той либо другой. Просто надо будет повысить выборку.

Для реальной работы с кодом доступные 95% точности моделирования среды при 1м - это очень хорошо . А тиковая исторя даст все 99% .Многие научные и практические модели сред не могут похвастаться такой точностью. 

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

Если история плохая, то она плохая для всех советников.

Другими словами вопрос выбора среды напрямую не связан с критериями оценки системы.

"Оснований же считать, что автоматический способ создания стратегий каким-то чудесным образом отличается от ручного в плане зависимости от качества истории я не вижу." - автоматический поиск может найти "стратегию", которая эксплуатирует технические особенности(дефекты) самого тестера в сочетании с качеством исторических данных. Видимо вы не сталкивались с такой проблемой)). Вот наглядный пример: 

Предположим, что используются исторические данные формата OHLC , тики не моделируются, более мелкие периоды не используются, вычисляются условия входа/выхода с рынка при каждом поступлении значения O, H, L или С.

 

На рисунке: 

Т.к.  (O-L) + (H - C) < (H - O ) + (C-L) тестер симулирует движение рынка используя значения в последовательности указанной на рисунке, что вполне логично. 

В итоге, получается, что в момент времени указанный красной линией, в двух значениях Open и Low(для стратегии это будет Close) будет содержаться информация о "будущем".

Вот правило получения "прибыли":

если (Open[0] - Close[0])> X  и (High[0] == Open[0]), то покупаем, где X некоторое значение перекрывающее спред.

Обращаю внимание, что в указанный момент времени значения OHLC для стратегии будут соответствовать значениям OOLL исторических данных!!

Показан дефект тестера и низкое качество истории.

 
Aliaksandr Hryshyn:


Показан дефект тестера и низкое качество истории.

Вот вы про какое будущее. Этот феномен давно известен. Я помню, года три назад на основе советника с такой фишкой даже была статья об изучении последствий для работы от изъятия прибыли. Прибыль там как раз без остановки генерировал такой вот советник. 

Только вот какова вероятность, что стратегия самостоятельно научится отлавливать эту фишку, да еще с учетом спреда, если вы ее специально не научите? Мне кажется, ничтожно маленькая.

Конечно, внутри свечи цена  в реальности может ходить туда-сюда как угодно. Именно это и создает те 5-10% погрешностей теста от реала. Я про то, что это не критично для сравнения стратегий на тесте, поскольку все они все равно будут в одинаковых условиях.

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

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

 
Вы точно не поняли суть)). В тестере стратегий, в моём примере с дефектом, советник будет давать только положительные сделки, грааль)). При автопоиске стратегий, который и сделан для поиска "граалей", может натыкаться на эти дефекты.
Поверьте, это серьёзная проблема для генератора стратегий, он уже есть, конечно лучше, чем в примере. Хороший эквити для неоптимизированного участка может выдать за минуту, пока работаю над увеличением "интеллектуальности". У аналогичных программ, которые нашёл в инете, многих проблем нету и быть не может, это связано с определённым шаблоном генерации правил, пример сгенерированного правила:  (A<B) & (A>C) & if(D>C;true;A>B).
 
Было такое, что система находила "стратегию", которая за примерно 150 сделок имела около 15 убыточных из них, и это на неоптимизированном участке. Как-то мало доверия этим результатам.
 
Aliaksandr Hryshyn:
Было такое, что система находила "стратегию", которая за примерно 150 сделок имела около 15 убыточных из них, и это на неоптимизированном участке. Как-то мало доверия этим результатам.
Сами застрелитесь? 
 
Есть и другие дефекты... Кстати, они могут давать самые лучшие результаты и на неоптимизированном участке, т.к. использую не закономерности поведения цены.
 
Алексей Тарабанов:
Сами застрелитесь? 
))
 
Aliaksandr Hryshyn:
Вы точно не поняли суть)). В тестере стратегий, в моём примере с дефектом, советник будет давать только положительные сделки, грааль)). При автопоиске стратегий, который и сделан для поиска "граалей", может натыкаться на эти дефекты.
Поверьте, это серьёзная проблема для генератора стратегий, он уже есть, конечно лучше, чем в примере. Хороший эквити для неоптимизированного участка может выдать за минуту, пока работаю над увеличением "интеллектуальности". У аналогичных программ, которые нашёл в инете, многих проблем нету и быть не может, это связано с определённым шаблоном генерации правил, пример сгенерированного правила:  (A<B) & (A>C) & if(D>C;true;A>B).

 Мы говорим о двух разных вещах.

1.Про ваш пример я давно в курсе. Мое мнение- вероятность случайного создания такого в ходе "эволюции" - ничтожна. Если же вы все-таки боитесь таких и подобных "неценовых" фокусов - просто делайте контрольную проверку на тиковой истории с правдоподобным спредом -и все тут же вскроется. Просто иногда меняйте тип тестирования в ини-файле.

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

 2. Если генератор содержит отбор стратегий на основе тестирования-то волкинг-форвард просто ОБЯЗАТЕЛЕН. Кроме того, он резко упростит критерий отбора.

 
Youri Tarshecki:

 Мы говорим о двух разных вещах.

1.Про ваш пример я давно в курсе. Мое мнение- вероятность случайного создания такого в ходе "эволюции" - ничтожна. Если же вы все-таки боитесь таких и подобных "неценовых" фокусов - просто делайте контрольную проверку на тиковой истории с правдоподобным спредом -и все тут же вскроется. Просто иногда меняйте тип тестирования в ини-файле.

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

 2. Если генератор содержит отбор стратегий на основе тестирования-то волкинг-форвард просто ОБЯЗАТЕЛЕН. Кроме того, он резко упростит критерий отбора.

Наверное так и будет).

Как вы считаете, какие правила должны быть? Просто интересно, как вы видите проблему. 

 

Предлагаю такой вариант.  

Данная оценка подходит для стратегий, которые имеют следующие особенности/ограничения:

  • наличие стоп лосса
  • риск каждой сделки фиксированный и измеряется в валюте. лот рассчитывается исходя из размера стоп лосса чтобы при его срабатывании мы теряли только сумму определённую риском
  • можно считать несколько сделок как одну если они являются частью некоторой схемы торговли и общий риск фиксированный

Прибыль и просадка представлены как отношение соответствующих значений к фиксированному риску/стоп лоссу. 

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

На графике присутствует ещё сложность стратегии, можно не использовать, это мне было нужно.

Неустойчивость показывает сумму максимальных отклонений от значений эквити от линии регрессии в соответствующих значений, графически это так:

 

Неустойчивость является суммой абсолютных значений A B, т.е A+|B| 

 Ещё есть немного изменённое значение прибыльности, которое высчитывается следующим образом:

прибыльность=(общая прибыль + 1)/(общий убыток + 1) 

Она трансформируется следующим образом:

Т.к. от прибыльности при маленьком количестве сделок толку маловато, то  делаем так:

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

Далее ещё раз меняем прибыльность(исходя из её значимости в зависимости от количества сделок) по следующей формуле: 

прибыльность = 1 +прибыльность * значимости - значимость

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

Значения коэффициента: 

0 - беспощадно ужасно)

0.3  - плохо

~0.8   - хорошо

>1  - очень хороший результат

Вот результаты оценки именно таким способом:

Тут этот коэффициент представлен как Коэффициент Z, можно оценить тренировочный(зелёная линия) и проверочный(фиолетовая линия) наборы.

 

Хороший результат для зелёной линии эквити(0.993) и уступающей ей фиолетовой(0.5714)

 

 

 Для фиолетовой немного выше чем плохо, прибыльность 1.447

 

Примеры плохих результатов.