bascomo
bascomo личный блог
27 августа 2023, 12:31

Составляем библиотеку торговых систем

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

Подход до безобразия примитивен и потому эффективен.

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

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

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

В первом случае — это WFT (кстати, понятие WFO очень странно для меня звучит).
По сути, я беру ТС и торгую ей на истории с дискретизацией в 1 месяц. И получаю % её эффективности по времени:
  • число месяцев, когда ТС отработала в "+" / общее число месяцев, за которые доступна история цен
Вот что имеем на выходе:
Составляем библиотеку торговых систем

Это означает, что алгоритмы, найденные на каком-то одном месяце, показали на остальных месяцах "+", и доля таких месяцев из всей истории = %.
В данном случае, таблица отсортирована по этому значению в убывающем порядке.

Чтобы не возникло иллюзий, что идеальны все алгоритмы, покажу картинку без сортировки:
Составляем библиотеку торговых систем

Во втором случае я делаю то же самое, только использую не тот инструмент, на котором была найдена ТС, а все остальные, которые выбрал для торговли на тех или иных рынках. Обращаю внимание, что тип инструмента значения не имеет. Алгоритм, найденный на Сбере, могу проверять на криптовалютном фьючерсе, и наоборот. Эффективность считаю так (для каждого периода):
  • Число инструментов, на которых ТС показала "+" / общее число инструментов для тестирования
Вот что получается:
Составляем библиотеку торговых систем

И без сортировки:
Составляем библиотеку торговых систем

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

Получаю библиотеку ТС, из которой уже можно набирать портфель.

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

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




15 Комментариев
  • Socol
    27 августа 2023, 12:38
    У меня вопрос к уважаемому автору и коллегам. Как вы боретесь (и боретесь-ли) с предполагаемо-имеющемся негативным феноменом, заключающемся в том, что конкретная ТС, или набор ТС могут сейчас находится так сказать, в своем правом удачном хвосте по успешности извлечения ДС из рынка, т.е. что система сейчас находится в своей некоей удачной гиперфазе, и через некоторое время как раз набор из именно этих, наиболее удачных ТС будет показывать наименее успешные результаты? Ну т.е. как например недавно показывали коллеги в статьях, что выбор наиболее сильных американских акций за период проигрывает все-же покупке сп500.?
      • T-800
        27 августа 2023, 21:23
        bascomo, подскажи пожалуйста, ты на минутках тестируешь сгенерированные системы на последних неделях, и торгуешь топом из них неделю, затем все заново?

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

        Я искал стабильность на более коротких периодах, как у тебя, но я там не смог ничего найти.
          • T-800
            27 августа 2023, 21:48
            bascomo, логично… Но еще два вопроса:
            1. Закрываешь ли ты всем системам в пятницу вечером все позы, невзирая, что у системы позиция уходит на понедельник, и в тестах будет работать след неделю.
            2. Твой тестер на минутках может переваривать тысячи систем не за 2 нед, а может за 3-5 лет… (тут у меня узкое место, т.к. для прошивки систем я продублировал язык Метастока, что бы не зашивать их в код. Теперь я просто в тектовом файле пишу МА(20)>МА(200) и бот меня понимает) Но переход на язык мне дал существенное сокращение производительности тестов.
          • Sprite
            27 августа 2023, 21:55
            bascomo, почему-то подумалось что вы изобрели какую-то свою специфическую машку с периодом 14 дней.
          • T-800
            27 августа 2023, 21:59
            bascomo, на самом деле, есть чем обменяться мнениями. Т.к. я делал долго копал в генетике (если это сейчас так называется) несколько лет назад. Я далеко продвинулся, но интересных результатов тогда не достиг. У меня были примерно 70*70 систем из разных таймфреймов с тестами не менее 3х лет. Много полезного получил, ни что-то красивого там не получил. Возможно из своей тупости, перешел на простые зарабатывающие стратегии, там у меня все норм. Но твоя идея красивая, предлагаю обменяться опытом?)
              • ezomm
                28 августа 2023, 00:03
                bascomo, ты упрямый исследователь.Я тоже был таким.Собирал системы и на выходе имел 1 сигнал.Потом мне попалась прога Нирвана.Там из 400 систем с разными таймами тоже выходил один сигнал. Доктор Элдер верно сказал, что зависимые перебирают любимые
                предметы  ( индикаторы). Им трудно измениться к лучшему, тк они в зоне комфорта. Ломать себя очень трудно. Я сделал это в 2010 г. Я ушел от усреднения цены ( я читаю график глазами), тк это болезнь инд-в с периодом. Ищи — индикаторы без периода, типа с SIN угла или с перекрытием уровней или шагами объема, форму свечей толкающих цену… еще много — или…
    • ezomm
      27 августа 2023, 23:46
      Socol, смотри в корень! Типа в период системы.В системе не должно быть периода .2- стоп лосс зависит от тайма и размера фрактала .3 — стоп профит зависит от жадности( глупости = не знания )… и это самое трудное решение для трейдера.
  • Ho_Chu
    27 августа 2023, 12:53
    позже прочитаю, пока занят библиотеками ))

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

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