Multifractal
Multifractal личный блог
01 марта 2021, 18:00

Оценка устойчивости алгоритма на Si

Многих почему-то пугает тестирование алгоритма на Forex, поэтому я решил взять понятный для всех Si. Впрочем, Forex (с его USD/RUB) тоже пригодится.

В своём предыдущем посте я уже говорил, что лучшая (по определённому показателю своей результативности на истории конкретного инструмента) торговая стратегия (т.е. комбинация значений параметров алгоритма) гарантировано не будет лучшей на другом инструменте или на этом же инструменте в будущем. Все алготрейдеры это знают, но лично мне каждый раз в это верится с очень большим трудом. Откуда затруднения? Я объясню.

Если взять результаты бэктеста алгоритма на паре USD/RUB (котировки Forex-брокера Dukascopy с марта 2007 г. по сентябрь 2017 г.) и отсортировать их по коэффициенту линейности (далее — L), то лучшая стратегия (L=0.99811) будет выглядеть так:

Оценка устойчивости алгоритма на Si

Отношение среднегодовой прибыли к среднегодовой max[просадке] (далее — R) — 3.61 (без учёта потери на спреде).

Вот казалось бы, что может пойти не так при использовании этой стратегии в будущем (на этом же инструменте или на смежных)? Чтобы это выяснить, я протестирую эту же стратегию (без изменений) на смежном активе: фьючерсе на USD/RUB (свечной график M1 от Finam с декабря 2008 г. по декабрь 2020 г.):

Оценка устойчивости алгоритма на Si

Основные показатели результативности упали почти в 2 раза (R=1.96), линейность тоже заметно ухудшилась (L=0.98239). Сказываются как другие котировки, так и отсутствие «ночных» сессий. Примечательно, что накапливаемая прибыль всё равно «выходит» на линию своей регрессии, но в целом стратегия уже не является лучшей.

Теперь важно проверить, будет ли ухудшаться оптимальная стратегия или же проявит устойчивость. Оптимальную стратегию для EUR/USD я тщательно подбирал по своей методике и результат демонстрировал в предыдущем посте [ссылка]. Она же (без изменений) на Si:

Оценка устойчивости алгоритма на Si

Линейность — отличная (L=0.99550), основные показатели результативности тоже достойные (R=2.51). Устойчивость считаю доказанным фактом. Осталось только выяснить, какой будет чистая прибыль.

Средняя прибыль на сделку составляет 0.0273%. Для текущей цены Si=75000 это 20.5 рублей (т.е. шагов цены). Визуально роботы держат спред в 2-3 шага, но не всегда им это удаётся, поэтому лучше заложить 5 рублей. Суммарная комиссия (тоже с запасом) составит 2 рубля «на круг» (т.к. биржевая комиссия будет «скальперской»).

Отнимать 7 рублей от результата каждой сделки не считаю корректным (ведь в прошлом менялась как ликвидность, так и комиссия), поэтому для экстраполяции текущих торговых условий в прошлое я буду вычитать 7/75000*100=0.009(3)% из процентной прибыли каждой сделки (не забывая, что для сделок с исполненными лимитными TP достаточно вычесть лишь половину спреда):

Оценка устойчивости алгоритма на Si

L=0.99097, R=1.52, суммарное время в позиции — 8.76% от календарного, количество закрытых сделок — 4257 шт., среднее время в позиции — 2.17 часа, эффективность использования капитала (т.е. средняя процентная прибыль за сутки удержания позиции) — 0.2129% (без плеча), средняя чистая прибыль на сделку — 0.0192% (в текущих ценах — 14.4 руб.), торговля фиксированным депозитом без переноса позиции через любые перерывы дольше часа.

С таким результатом не поучаствуешь в ЛЧИ. А ведь это и есть «грааль», если разобраться. Потому как с плечом 4.4 и среднегодовой max[просадкой] на уровне 20% (которая в полной мере реализуется в первый год только если прийти на рынок в самый неудачный момент) можно рассчитывать на 30% среднегодовой чистой прибыли. Это же результат лучших американских инвесторов за всю историю [ссылка]! И с учётом ежемесячного реинвестирования усреднённой части прибыли этих «легенд» можно будет даже превзойти.

Напомню, что я использовал комбинацию значений параметров, которая оптимальна для EUR/USD. Если же использовать комбинацию оптимальную именно для Si, то результат будет лучше.

Какие ещё варианты улучшения показателей L и R у меня есть?

  • одновременная торговля нескольких стратегий на одном инструменте
  • одновременная торговля разными инструментами
  • вход в сделки не «по рынку», а с помощью ограничительных мер
  • дополнительная фильтрация сигналов алгоритма
Готов сотрудничать с теми, у кого есть ресурс под такой результат (т.е. «длинные» деньги). Наличие своей инфраструктуры при этом только приветствуется.
39 Комментариев
  • Дмитрий Овчинников
    01 марта 2021, 18:33
    Параметр линейности, интересно, как и где он рассчитывается?

  • ves2010
    01 марта 2021, 18:36
    обязательно нужна ось времени...
    в рубле был мегадвижняк в 2014г когда он за 3 месяца удвоился
    я не вижу этого движняка на эквити

    средняя сделка 0.0192% крайне мала… я бы стал торговать от 0.10% но это уже впритык… там дело не в комиссах… а в реальных сделках у которых есть проскальзывание, и частичное исполнение заявок
    • Kot_Begemot
      01 марта 2021, 20:27
      ves2010, какое среднее число спредов по вашему составляет проскальзывание для топ ликвидных фьючерсов?
      • ves2010
        01 марта 2021, 21:09
        Kot_Begemot, на каком обьеме? я обошел эту фигню и набираю позу по-другому...
        это днище кидать заявку по рынку в надежде на узкий спред 
        • Kot_Begemot
          01 марта 2021, 21:16
          ves2010, вы сказали, что меньше 0.1% торговать не готовы. (0.1% это средняя прибыль на сделку без учёта проскальзываний, комиссий и пр.).  Капитал… ну допустим, 100 млн., средний.

          Но ваше сообщение можно прочитать по разному. Проскальзывание может совсем убить систему, может снизить перформанс, а может просто повысить требования к инфраструктуре (например).

          Я поэтому вас и переспросил, какое по вашему мнению среднее проскальзывание? 0.02%, 0.05% или 0.1%?
          • ves2010
            01 марта 2021, 23:33
            Kot_Begemot, проскальзывание сильно зависит от способа набора позы я закладываю примерно 0.06% на круг 

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

            ну и так же в рыночных заявках… сгребаешь 2-3 спреда...

            решается проблема просто

            кстати насчет инфрастуктуры… вот например есть фьюч роснефти например в нем в день 2000 сделок… это примерно одна сделка в минуту в лучшем случае… ты хоть что делай со своей инфрастуктурой… но ни купить ни продать ибо неликвид… можно конечно кинуть маркет и сгрести стакан… прикол в том, что тот же ри уже на 200-300 контрактах неликвид


        • Дмитрий Овчинников
          01 марта 2021, 22:16
          ves2010, 
          рассказывай лучше, как обошел :)
        • Артур
          01 марта 2021, 23:04
          ves2010, как обошли-то? Я устал на сберефуч каждый раз по 10-15 пп отдавать
          • ves2010
            01 марта 2021, 23:34
            Артур, да как и все… но руками это нереально
            • Артур
              02 марта 2021, 10:17
              ves2010, дайте хоть намек — куда копать или где копать… любую наводку, попробую мозгами пораскинуть.
      • ves2010
        02 марта 2021, 11:42
        Fractal, то что время меряется в сделках — крайне нудобно... 
        1 нельзя посмотреть реальную просадку т.е то что было между сделками
        2 нельзя посмотреть длительность боковиков
        3 ты пойми — начнешь реально торговать сам все увидишь… насколько у тя средняя мала
        4 кроме того… надо понимать что есть еще дополна причин по которым бот может оказаться нерабочим — например торгует во время клира, или входит в позу в момент гэпа…
        5 спекулям нужен движняк — что толку в ликвидности, если актив тухлый?
        6 т.к средняя очень мала просто попробуй скачать котировки в другом месте и посмотри как изменилась средняя — либо вместо си возми еуро… или цены денежного рынка на моекс usdrub_tom
        7 обычно бот зарабатывает в 2-3 раза ниже тестов… т.к тесты самый лучший вариант, который увы не повторится
  • Replikant_mih
    01 марта 2021, 19:01

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

     

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

      • bstone
        02 марта 2021, 00:36
        Fractal, если нет подгонки, значит должна быть ошибка в тестировании :)
          • bstone
            02 марта 2021, 00:43
            Fractal, да проходили по сто раз уже — делюсь опытом бесплатно. Ищи ошибку :)
  • Иван Егоров
    01 марта 2021, 20:44
    Вы упомянули в тексте Dukas — торгуете через них? Как впечатления? Как условия ввод/вывод? Счет в швейцарии? Надо декларировать или нет? Спасибо.
  • Simix
    01 марта 2021, 22:56
    Да вы батенька прям миллиардер… на истории ))
  • Владимир Владимиров
    02 марта 2021, 00:23
    Согласен с @ves2010. Слишком ровная эквити в 2008 и в 2014 году. Ни просадок, ни скачков. Подозрительно.
  • ELab
    02 марта 2021, 20:08
    Извините, вы по свечкам алгоритм рассчитывали?.. Как минимум рекомендую тиковые ask/bid данные
      • ELab
        03 марта 2021, 13:42
        Fractal, ММВБ продает эти данные.
          • ELab
            03 марта 2021, 16:05
            Fractal, 15 000 руб за год истории по одному инструменту. Это ask/bid и trade price. Мне кажется, что приемлемо. Тем более учитывая специфику алгоритма.  
              • ELab
                03 марта 2021, 16:22
                Fractal, почему не сократить до года тесты? Если число трейдов относительно велико, то это более или менее приемлимо.
                  • ELab
                    03 марта 2021, 16:31
                    Fractal, понял. по поводу ask/bid в Метатрейдер не уверен. Там тоже close история. 

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

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