SenSoR
SenSoR личный блог
23 марта 2015, 15:21

Как я тестирую и оптимизирую свои алгоритмы.

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

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

Работает на настройках оптимизации 12-13 годов. Именно такую выборку сделал для того, что бы в нее влезало достаточное кол-во сделок + что бы Эти года показали разные ситуации на рынке — От классного тренда, до жуткого флета. Желательно что бы флета было побольше — эдакий стресс тест)

Как я тестирую и оптимизирую свои алгоритмы. 

Как видно из периода «слепой» торговли 10,11 и 14 годов, алгоритм показывал хорошую устойчивость. Но что если поэкспериментировать, и сделать оптимизацию на других периодах? Пожалуйста:

Как я тестирую и оптимизирую свои алгоритмы. 

И:

Как я тестирую и оптимизирую свои алгоритмы. 

Как видно из зон «слепой» торговли, результаты уже похуже, но всеравно торговля в плюс с нормальный профит фактором и коэфф. шарпа)

О кей. А что если взять этого же бота, с текщими боевыми настройками для фьючерса Si, и протестировать торговлю на других ликвидных фьючерсах, не меняя эти настройки? Пожалуйста: 

Как я тестирую и оптимизирую свои алгоритмы. 

Конечно, результаты трендовика намного хуже, а на малотрендовом газпроме вообще весь 14й год слив, но это не говорит о том, что система не будет работать на том инструменте, для которого она писалась, так ведь? А Вы как думаете? 

  Что еще можно сделать? А, ну да, поменять местами лонг и шорт) 

Как я тестирую и оптимизирую свои алгоритмы. 
Мда, слив! Ну оно и понятно, логика системы рассчитана на взятие трендовых движений или трендовых импульсов. А этот слив означает, что в системе нет фактора подгонки под историю, а значит системе жить!)

 Ну и покажу некоторые сделки, совершенные данным роботом в первые дни нового контракта Si:

Как я тестирую и оптимизирую свои алгоритмы. 

Видно, что с импульсами нормально справляется. И думаю тянет на 100% годовых.

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

Всем спасибо за внимание. Ставьте лайк, выводите на главную, думаю данный пост поможет начинающим алготрейдерам правильно тестировать ТС) Буду писать еще. Удачных торгов!)
130 Комментариев
  • undefined
    23 марта 2015, 15:31
    лайк!
  • Mr_Noname
    23 марта 2015, 15:32
    Лишь бы в будущее не заглядывал.В какой программе тестируете?
      • Mr_Noname
        23 марта 2015, 17:33
        SenSoR, тогда круто. Амиброкер платный или бесплатный?
          • Mr_Noname
            23 марта 2015, 22:10
            SenSoR, понял вас. Спасибо за ответ.
  • silentbob
    23 марта 2015, 15:43
    обычная канальная пробойка с реверсом
  • SMA
    23 марта 2015, 15:55
    успехов, Вам.
      • Press
        23 марта 2015, 16:03
        SenSoR, идея с клонированием вполне рабочая, диапазон приемлемых параметров оптимизации возьмите и засуньте в портфель стратегий каждую из них и посмотрите на разницу эквити ( 10 лотов для одной системы или по 1 лоту для каждой из 10)
  • Press
    23 марта 2015, 15:55
    так и не осилил нормально тестирование в Ami((
    WL оказался роднее что ли ))
  • silentbob
    23 марта 2015, 15:55
    и кстати тестировать надо одним лотом. или это одним лотом просадки по 10 (десять) ГО — 25тыс пунктов?
      • silentbob
        23 марта 2015, 16:14
        SenSoR, сколько контрактов использовалось в момент просадки 25тыс пунктов?
  • bstone
    23 марта 2015, 15:59
    одной замены шорта на лонг недостаточно, нужно поменять и выполнить оптимизацию, потом прогнать.
      • bstone
        23 марта 2015, 21:03
        SenSoR, нормуль, внушает оптимизм
        • Сергей cms
          24 марта 2015, 06:40
          bstone, вы считаете, что риск в сделке почти 100% внушает оптимизм?
          Max trade % drawdown 99,50%
            • Сергей cms
              26 марта 2015, 10:03
              SenSoR, Параметр Max. trade % drawdown — The largest peak to valley percentage decline experienced in any single trade. The lower the better.
              В Ваших отчетах Max. trade % drawdown под 100%.
              Странно как-то...

  • Murad Sh.
    23 марта 2015, 16:12
    Как Вы Решаете вопрос с роллированием контрактов в бэк-тесте? Имеются в виду спреды, связанные с контанго/бэквордацией фьючерсов (просто новичок в этом деле).
      • Murad Sh.
        23 марта 2015, 16:18
        SenSoR, а Вы переносите Ваши позиции черезь ночь или только интрадей?
          • Murad Sh.
            23 марта 2015, 16:26
            SenSoR, так как Вы решаете вопрос, когда Ваши позиции приходятся на даты роллирования контрактов? Si например всегда в контанго.
            • Aero
              23 марта 2015, 17:42
              Murik, не всегда, бывает контанго бывает бэквордация, на длительных промежутках эти влияния могут быть как положительные, так и отрицательные, поэтому это влияние можно приравнять 0 и все)
    • ves2010
      23 марта 2015, 16:18
      Murik, есть склеенные контракты…
      • Murad Sh.
        23 марта 2015, 16:24
        ves2010, но склеенные контракты не решают вопрос с гэпами, связанными с контанго/бэквордацией (насколько я знаю). И если автор торгует только интрадей, тогда проблем нет, а если переносит овернайт, вот тут хотелось бы узнать.
        • ves2010
          23 марта 2015, 16:29
          Murik, есть разные типы склейки… даже если и будет гэп, то некоторая зашумленность данных только на пользу боту
            • Murad Sh.
              23 марта 2015, 16:34
              SenSoR, согласен. А Можно узнать, Вы объемы используете в Вашей торговой ситеме? Или только все, что связано с ценой.
                • Murad Sh.
                  23 марта 2015, 16:40
                  SenSoR, ясно, спасибо. А вот с пользучей оптимизацией не пробовали? То есть, скажем за последние N месяцев, а по прошествии недели, этот оптимизационный период смещается на неделю вперед.
        • Aero
          23 марта 2015, 17:44
          Murik, когда переносишь позу, нужно закрывать позу в текущем контракте, и смотреть когда у робота закроется сделка, и только тогда запускать его вновь уже на новом контракте, опять же эти влияния могут быть как положительные так и отрицательные.
      • Artemunak
        23 марта 2015, 18:09
        ves2010, интересует ваше мнение, а насколько хорошо Финам их склеивает? Слышал нарекания. Где-то написано вкратце как они это делают?
  • Cheshirscy
    23 марта 2015, 16:17
    Тебе макс просадка в 25% жить не мешает? я не подкалываю, а просто спрашиваю, ибо для каждого своя «болевая точка». Ну и попробуй поиграйся с тем, что количество контрактов в каждой сделке будет зависеть от волатильности — кривая доходности по-красивее должна стать
    • Cheshirscy
      23 марта 2015, 16:19
      Cheshirscy, ой, извиняюсь, не прочитал коммент, о том, что и так есть динамическое определение количества контрактов.
      • Cheshirscy
        23 марта 2015, 16:22
        SenSoR, а ты ее на 14 году прогони:) вот где КОЦМАСС :)
      • day0markets.ru
        23 марта 2015, 19:01
        SenSoR, зависит от системы. От цикличности серий плюсов и минусов. Иногда, лучше наоборот сайз уменьшать.
    • iuiu
      23 марта 2015, 17:51
      Cheshirscy, Подскажите, а как рассчитывать текущую волатильность для Бота, кто как ее считает?
      • Aero
        23 марта 2015, 20:20
        iuiu, по волатильности инструмента, но это нужно стопы делать от волы, и на них уже завязывать рм.
      • Aero
        23 марта 2015, 20:20
        iuiu, ATR
        • iuiu
          24 марта 2015, 13:03
          Андрей Ерохин, т.е. просто берете индикатор ATR, как я только не выкручивался. сейчас сделал, что в 12:00 дня рассчитываю волатильность, но это как-то кривова-то получается и очень тупо. Попробую с ATR поработать, спасибо.
            • iuiu
              24 марта 2015, 15:09
              SenSoR, да, спасибо. у меня от волатильности уровни просчитываются и все остальное, стопы, профиты и тд. такой важный показатель, робот же, тупой же.
  • ves2010
    23 марта 2015, 16:17
    и чо?
    1 ты б написал в каком режиме тестишь… было бы понятнее...
    2 начальную сумму увеличь до 1мио не жлобься… а то 100к как то маловато для контракта в стоимостью в 70к
    3 си настолько трендовый что можно торговать скользящими средними… вот еслиб этот же бот показал достойный результат в ри то я был бы удивлен
    • Cheshirscy
      23 марта 2015, 16:20
      ves2010, а чего для того, что бы слыть реальным трейдером обязательно на ri торговать? если на других инструментах — то получается игрушечный трейдер? :)
        • Cheshirscy
          23 марта 2015, 16:30
          SenSoR, да я не волнуюсь, у самого примерно такая же :)
      • ves2010
        23 марта 2015, 16:30
        Cheshirscy, идея в диверсификации… си очень легок для алготрейдинга… но торговать только си — весьма безрассудно
        • Cheshirscy
          23 марта 2015, 16:33
          ves2010, согласен, просто диверсификация может и без Ри быть, тем более, что он с Си «одной крови»
      • ves2010
        23 марта 2015, 16:32
        SenSoR, кароче ты уже ответил, что меняешь размер лота динамически… давай бота в ри… нама интереснее в разы
      • Aero
        23 марта 2015, 17:48
        SenSoR, Идея с клонированием конечно же хороша, но тут есть свои подводные камни, такие как корреляция доходности этих роботов, и ни кто не застрахован от одновременного распила этими роботами, как в пример приведу тебе страховой бизнес который цветет и пахнет, хотя шанс того что твой дом сгорит ограбят или машина не очень то и высок)
          • Aero
            23 марта 2015, 18:00
            SenSoR, нужно смотреть как они ведут себя на не трендовых участках все вместе.
    • Aero
      23 марта 2015, 17:49
      ves2010, там пробойка лучше отрабатывает чем средние)
  • Андрей
    23 марта 2015, 18:01
    Здравствуйте, так как тут много спецов по торговым роботам, расскажите пожалуйста с чего начать обучение а главное на каких платформах и программах пишутся алгоритмы? Торгую руками в данный момент и хотелось бы освоить это ремесло.Спасибо! (и если можно то поподробнее)
    • Aero
      23 марта 2015, 20:18
      Андрей, на велсе тоже можно строить системы и при этом не писать код)
  • astray
    23 марта 2015, 18:40
    высылайте мне ваш скрипт… прогоню на инструментах..
    и только тогда смогу ответить на ваши вопросы )
    в слепую сложно что то советовать
  • Здрасте
    23 марта 2015, 20:15
    Молодец! Уважаю алгоритмистов!
  • AlexD
    23 марта 2015, 21:02
    Автору респект… ты на правильном пути!
  • Ivor
    23 марта 2015, 21:13
    а каков размер позиции или % от депозита при тестировании?
      • Ivor
        23 марта 2015, 21:24
        SenSoR, а мат ожидание как вычисляете? чем сильнее сигнал, тем больше мо?
          • Ivor
            23 марта 2015, 21:53
            SenSoR, а много параметров у системы?
              • ves2010
                24 марта 2015, 15:50
                SenSoR, это многа очень…
  • SoftAlgoTrade
    23 марта 2015, 21:52
    SenSoR, спасибо за интересный пост!
    Меньше 1000 сделок за 5 лет со статистической точки зрения маловато… И, мне кажется, или на последнем скриншоте трейды сильно не в рынке?
    SenSoR, Вы не хотите поучавствовать в закрытом тестировании нового ПО? Наша специализация это как раз бектест и оптимизация. Присутствуют мощные инструменты для анализа, высокая скорость тестов как на тиках так и на свечках и т.д. Перенести стратегию на наше API мы Вам поможем.
    Картины оптимизации примерно такие:
    www.softalgotrade.com/wp-content/uploads/2015/01/Selection.png
    • Ivor
      23 марта 2015, 22:02
      SoftAlgoTrade, я могу поучаствовать. Что нужно делать?
      • SoftAlgoTrade
        23 марта 2015, 22:15
        Ivor, нужен реальный опыт алготорговли, владение C#, так как стратегии пишутся на нем и непреодолимое желание ломать программное обеспечение)
        Работа не простая как может показаться на первый взгляд, но в итоге вы получите мощный пакет программ со значительной скидкой, который уделает велс и амиброкер вместе взятых.
        • Ivor
          23 марта 2015, 22:18
          SoftAlgoTrade, c# как раз то, что нужно, я на нем и работаю. А есть возможность связки с квиком?
          • SoftAlgoTrade
            23 марта 2015, 22:42
            Ivor, проторговщик через Квик еще в разработке, сам коннектор через lua уже имеется, допиливаем.
            Сейчас нужно протестировать готовый софт.
            Напишите на info@softalgotrade.com. Обсудим сотрудничество.
    • Press
      23 марта 2015, 22:03
      SoftAlgoTrade, отличный сайт с картинками животных и цветов!
      • SoftAlgoTrade
        23 марта 2015, 22:19
        Press, мне тоже нравится) Мы еще не начали, сайт еще в разработке) Одноко 3 из 4 программ уже готовы! Сейчас занялись Проторговщиком.
        Как доведем до ума, так заменим зверюшек и цветочки на соответствующий контент)
          • SoftAlgoTrade
            23 марта 2015, 22:37
            SenSoR, с амиброкер по скорости еще не сравнивали, но уверен, что точно сможем конкурировать! Проведена колосальная оптимизация процессов — многопоточное тестирование(процессор загружен на 90%-95%), низкое потребление оперативной памяти. Например, исторические данные подгружаются только один раз.
            Так что даже на тиках очень хорошие показатели.
              • SoftAlgoTrade
                23 марта 2015, 22:50
                SenSoR, имеет на то полное право!) Время покажет) Надеюсь, мы скоро закончим и сможет открыть для общего доступа. Тогда уже пользователи сами скажут чего она стоит.
      • SoftAlgoTrade
        23 марта 2015, 22:29
        SenSoR, Нет генетики, нет монте карло, нет методов отжига и прочих. Есть нелинейная стохастическая оптимизация. Все эти алгоритмы близкие родственники и бессмысленно говорить кто из них лучше, а кто хуже. Вопоос в том как их правильно применить к конкретной задаче...
        Наш алгоритм это гибрид генетики и монте карло с высокой степенью гибкости.
        Вот описание настройки:
        www.softalgotrade.com/settings-discoverer/
        Может показаться сложным, но это только кажется)
        • SergeyJu
          24 марта 2015, 14:53
          SoftAlgoTrade, прочитал инфу по Вашей ссылке.
          Не понятно, какую целевую функцию Вы максимизируете. Она одна или их несколько. Есть ли несколькокритериальная оптимизация. Также не увидел анализа устойчивости найденных экстремумов.
          Такое ощущение, что Ваш метод недостаточно проторгован, и Вы решаете задачу скорее абстрактную, чем реальную.
          • SoftAlgoTrade
            24 марта 2015, 22:00
            SergeyJu, По вышеуказанной ссылке инструкция по настройке параметров оптимизации. Я ее выложил для коллег участвующих в тестировании. Она, конечно, не дает никакого представления об оптимизаторе в целом.
            Есть старенькая статья, там описывается концепция оптимизатора:
            softalgotrade.com/kak-ya-sdelal-tester-optimizator-dlya-naxozhdeniya-pribylnyx-strategij-na-birzhe/

            Сейчас оптимизатор совсем другой, он уже «матерый зверь»)))

            Целевых функций на выбор 7:
            — PnL,
            — Maximun DrawDown,
            — Expected Value,
            — Winning Trades,
            — Profit Factor,
            — Sharpe Ratio,
            — Sortino Ratio.

            До 8 оптимизируемых параметров одновременно + можно сразу на нескольких таймфреймах оптимизировать. Итого 9 параметров.

            На устойчивость проверяется методом Walk Forward на исторических данных не участвующих в оптимизации(OutOfSample).

            Все процессы полностью автоматизированы с высокой глубиной настройки.

            Подробное описание, примеры и инструкции появятся после завершения тестирования.
            • SergeyJu
              25 марта 2015, 12:29
              SoftAlgoTrade, прочитал. Интересно.
  • usertrader
    23 марта 2015, 22:15
    SenSoR просколзь какой заложен на тестинге? можно узнать?
      • Ivor
        23 марта 2015, 22:44
        SenSoR, кстати, робот у вас луа/купайл, или со стороны подключается?
          • Ivor
            23 марта 2015, 23:00
            SenSoR, и как, надежно работает? не тупит?
              • Ivor
                23 марта 2015, 23:09
                SenSoR, ок. огромное спасибо за ответы! попробую такой вариант.
                  • Ivor
                    24 марта 2015, 14:32
                    SenSoR, Вы можете посоветовать какую нибудь справку на русском языке для амиброкера, что никак не найду, либо все на английском, либо туториалы на старые версии.
                    Вчера все таки установил ами, первое что бросается в глаза по сравнению с велс лабом — высокая скорость работы и великое множество настроек.
                    • iuiu
                      24 марта 2015, 15:10
                      Ivor, сейчас Мультичартс.нет от АМП бесплатно www.ampfutures.com/platforms/
                      • Ivor
                        24 марта 2015, 15:41
                        iuiu, то что там с# это здорово.
                        а к квику можно сразу коннектиться через него?
                        • iuiu
                          24 марта 2015, 20:46
                          Ivor, если честно, хз, еще не разбирался, пока только поставил. Вроде привод какой-то есть
  • MrDrJOKER
    25 марта 2015, 00:18
    я чёт не понял. зачем нам картинки?
    где грааль?
  • usertrader
    26 марта 2015, 13:55
    SenSoR, как-то вы не правы насчет проскольза — он реально есть. Я не знаю как с фьючами, а в акциях скажем сбер 0,06% иное уже до 0,1% не в пользу робота. Да он может быть как + так и — но он есть! И его надо учитывать — тем более если его учесть система станет более устойчевой к доходу.
  • usertrader
    26 марта 2015, 14:59
    SenSoR, системы были как раз на закрытие(открытие) свечки и причем разные — статистика очень бОгатая — разных системы разных авторов — причем сбер весьма ликвиден — большая часть систем была именно по нему в работе, опыт 2-х лет работы с роботами у меня между прочим — на реальных счетах. Так что проскольз есть и будет и считать его надо обязательно! И в целом получается в минус. Вот с фьючами сильно не давелось работать поэтому статистику не имею. Возьмите посчитайте системы с проскользом и без — результат может разительно отличаться!
  • Артур Сотников
    08 июня 2016, 21:56
    Саш, а обычный рабочий таймфрейм у тебя какой?

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

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