Николай Флёров
Николай Флёров личный блог
02 апреля 2014, 14:39

Проверка на устойчивость-секретное оружие

Проверка на устойчивость-секретное оружие
Проверка на устойчивость-секретное оружие


Когда трейдер только сталкивается с торговлей алгоритмами, первое за что берется каждый — это создание стратегий и проверка идей. Подогнав кривую под исторические данные можно быстро разочароваться в результатах своего hand-made творения, поставив стратегию на реал.
Для того, чтобы проверить стратегию на устойчивость профессиональные разработчики торговых систем прибегают к разным методикам, при этом и те и другие и третей могут зарабатывать.

Начинающие трейдеры не парятся и просто используют методику ротации. Другими словами, после оптимизации мы не проверяем стратегию на устойчивость, мы просто верим, что стратегия будет торговаться подобным образом и снимем ее в тот момент, когда она подойдет в порогу просадки, которую мы заранее установили!


Опытные трейдеры пользуются более продвинутыми методиками:
  • Некоторые подбирают стратегию таким образом, чтобы она в очень большом диапазоне параметров была в положительной зоне, то есть, чтобы вообще практически не было отрицательных значений, но таких алгоритмов единицы.
  • Некоторые, используют тестирование на случайном временном ряду, такая фишка есть у S#, а также некий рендомный провайдер данных в WLD.
  • Часть разработчиков  просто перемешивают результаты сделок в случайной последовательности, как это сделано в WLD, визуализатор «Monte Carlo». На мой взгляд они используют не верную методику, так как перемешиваются уже прооптимизированные сделки, однако, в этом модуле достаточно настроек-регуляторов, чтобы убить даже стабильную стратегию)).
  • Самые умные ребята генерируют множество временных рядов с теми же характеристиками, что и временной ряд, торгуемого инструмента и проводят оптимизацию на «дочерних» временных рядах.Это самый затратный по времени способ, но самый объективный. И это наиболее близко к тому о чем писал в своих книгах Нассим Талеб.
(Привожу видео Арсена Яковлева из его интервью, многие просили еще раз и без музыки) Продолжение внизу!
 


  • Также, я слышал от коллег, что фонды используют технологию CUDA для того, чтобы переоптимизировать каждую из своих стратегий после каждой сделки, создавая таким образом адаптивные системы. Возможно в меру моего малого опыта, пока не понимаю куда бы я мог применить такой метод в собственной торговле и исследованиях.
  • Американские специалисты любят прогонять все на огромном числе тикеров за длительный период времени, коих там тысячи.
  • Я же использую форвардное тестирование. То самое про которое рассказывал…Роберт  Пардо в обоих изданиях своей книги «Разработка, тестирование, оптимизация торговых систем для биржевого трейдера»
В тот момент, когда у меня запустился проект по автоматизации форвардного оптимизатора, я и не мог себе представить, что Wealth вскоре сделает целое приложение и встроит его в WLD.
И несколько месяцев, я считал его одним из своих секретных орудий, про которые не рассказывал даже ближайшим алго-товарищам.
 
Что он из себя представляет:
1) Полная адаптация с интерфейсом WLD
2) Генетическая оптимизация в основе нахождение оптимальных параметров
 Проверка на устойчивость-секретное оружие
3) Гибкость выбора окон тестирование
4) Гибкость при выводе любых статистик
5) Сохранённые общей кривой эквити
6) Сохранение всех результатов в Excel и Exml, которое можно загрузить в WLD и посмотреть
 Проверка на устойчивость-секретное оружие
Вот так, он выгляди в Wealth наряду с другими оптимизаторами. Назвал я его TestOptimizer, так как — это был первый эксперимент с оптимизаторами вообще, и работы по нему с переменным успехом шли около месяца.
Овалами закрашены другие наработки о которых, я возможно расскажу в будущем, но не сегодня.
Настройки моего форвардного оптимизатора:
Проверка на устойчивость-секретное оружие 
 Проверка на устойчивость-секретное оружие
Вывод результатов:
Проверка на устойчивость-секретное оружие

Сейчас уже  всем известно, что в WLD появился форвардный тестер и я не расстроился тому что он вышел...
1) На мой взгляд он удобен
2)он может использовать либо генетику либо прямой перебор либо Monte-Carlo.
3)Статистические показатели там также можно использовать любые, применяя различные ScoreCards — которые я также считаю своим секретным оружием))
Проверка на устойчивость-секретное оружие
Вывод результатов:
Проверка на устойчивость-секретное оружие
Главным же его минусом конкретно для меня, то что мы не можем ничего поменять, а можем лишь использовать только программу «из коробки».
 
Например, сохранение в Excel формате результатов, либо формирование окна тестирование не на основе временного периода, а на основе репрезентативного количества сделок — что, кстати, очень актуально!
Поэтому мои наработки все также остаются для меня важными, а для общественности секретными, однако Wealth-lab и без моих фитч поможет развеять представления о прибыльности любой торговой идеи быстро и без лишних движений ;)
Выводы:
  • Тестировать стратегии на устойчивость, желательно многими способами
  • не бояться разрабатывать новые фитчи и использовать их!
По поводу других методов тестирование на устойчивость  скажу только что они все нормальные, до некоторых из них нужно дорасти.) Пока же можно пользоваться тем, что есть)
 
PS. Да, я проводил исследование, хоть и не глубокое, на тему какие именно сочетания форвардного тестирования работают лучше. Оказалось, что  результаты сильно будут варьироваться скорее  в зависимости от стратегии, а не от подбора периодов In Sample и Out of Sample. Лично мне больше всего нравится 6 месяцев оптимизации и 3-6 месяцев Out of Sample.
PS.2 Про WFO (Форвардный тестер Wealth-lab) не рассказываю, так как про него информации и так в избытке
PS.3 Людей знающих другие интересные методики тестирования стратегий на устойчивость прошу писать комменты!
 
Если Вам интересен трейдинг ставьте пожалуйста плюс!
 
Убрать боль от эмоциональных трейдов, тестировать свои и чужие идеи, автоматизировать рутину:  __Сюда__


19 Комментариев
  • anatolyutkin
    02 апреля 2014, 14:25
    «Некоторые, используют тестирование на случайном временном ряду, такая фишка есть у S#, а также некий рендомный провайдер данных в WLD.»

    Зачем тестировать на случайном временном ряду?
    • anatolyutkin
      02 апреля 2014, 14:40
      Николай Флёров, Если ГСЧ нормальный, то результат любой стратегии (не заглядывающей в будущее) на броуновском движении--ноль в среднем. Поэтому такое тестирование--это скорей тест на хорошесть ГСЧ, нежели на хорошесть стратегии.

      Если же процесс делать не броуновским, а с памятью--то зарабатывать на нем будут заточенные под такую память системы. Например, трендовые системы для трендового процесса. Но какое все это имеет отношение к зарабатыванию реальных денег на реальном рынке--не понятно.
        • anatolyutkin
          02 апреля 2014, 15:00
          Николай Флёров, «Вы делите тикеры только на тренд и флет»--С чего вы это взяли? :)

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

          По опыту, когда система хороша, то ей даже ООС не нужен особо, не говоря уж про более изощренные методы. Просто ты понимаешь, откуда и что, причем зачастую еще до написания кода. Пишешь код и видишь, что оно работает везде, где должно работать--вот и вся устойчивость. Примеры: smart-lab.ru/blog/142195.php, smart-lab.ru/blog/153193.php
            • anatolyutkin
              02 апреля 2014, 17:55
              Николай Флёров, Ирония али нет? :)
          • anatolyutkin, ну почему же Вы не подскажете А.Г., как сооружать такие стратегии?
            Кстати, Чечету тот же вопрос — генерирует стратегии десятками — почему бы не делиться с Горчаковым?
            Со мной делиться бесполезно — я ленив и женат на своей ТС.
            • anatolyutkin
              02 апреля 2014, 17:41
              Вестников, Что-то вы сегодня активны :)

              1) Общее. Зачем мне что-то кому-то подсказывать или делиться? Как говорится, офер есть, а дальше уж дело людей--брать этот офер или нет. Это рынок--тут все добровольно.

              2) А. Г.--человек очень высокого уровня, думаю, он сам знает, что и как ему делать. Он один из немногих публичных людей в биржевом сообществе, с кем можно общаться на нормальном уровне. Отлично знает математику и успешно торговал уже тогда, когда я еще изучал, что такое стакан. Мы с ним общались, думаю, мои подходы ему известны.
              • anatolyutkin, спасибо. И за пояснение позиции и за то, что внимательно следите за моей активностью. :-)
  • А. Г.
    02 апреля 2014, 15:04
    Тестирование на случайном ряду по логике должно в среднем нуль давать. Если дает плюс, то это подгонка.
      • Si#
        02 апреля 2014, 16:06
        Николай Флёров, мне нравится ваше стремление к развитию, но…
        Честно говоря различного рода тестирования — это полная чушь.

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

        В этом вся проблема — вы не понимаете <механику рынка>! Это первичное, а вторичное написание стратегии!

        Если понимаете механику рынка, то заниматься подгонкой стратегии будет стыдно!

        Всякого рода бэктестеры — это лишь возможность монетизировать разработку автора и не более. И еще возможность пыль в глаза пустить непонимающим людям.

        Конечно же вы напишите, что это не так.
        Пусть каждый останется при своем мнении.

        В свою же очередь могу сказать, что до конца года я постараюсь предоставить публике робота у которого из всех изменяемых параметров будет только настройка риск-менеджмента и все (1-2 параметра)! Больше ничего не надо менять когда понимаешь <механику рынка>!

        Только без обид!
  • ves2010
    11 апреля 2014, 19:49
    1 80-90 % прибыльных параметров при полном переборе… а 60% маловато…
    2 интервал тестирования = 1000-10000 сделок
  • Павел Дуков
    18 июня 2014, 11:58
    спасибо
  • Ви Олег
    27 августа 2015, 12:35
    хм, довольно интересна идея бэктестинга по псевдослучайным рядам монте-карло, однако насколько я понимаю данная стратегия нереальна в велсе из-за скорости оптимизации, а следовательно надо собирать что то свое + генерирующее ряды с распределением и мат ожиданием инструмента

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн