Блог им. AleksandrBaryshnikov

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

    • 27 августа 2023, 12:31
    • |
    • bascomo
  • Еще
Одна из стержневых вещей моего подхода состоит в том, что я собираю библиотеку торговых систем и ранжирую их по успешности.

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

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

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

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

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

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

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

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

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

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

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

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

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




★3
15 комментариев
У меня вопрос к уважаемому автору и коллегам. Как вы боретесь (и боретесь-ли) с предполагаемо-имеющемся негативным феноменом, заключающемся в том, что конкретная ТС, или набор ТС могут сейчас находится так сказать, в своем правом удачном хвосте по успешности извлечения ДС из рынка, т.е. что система сейчас находится в своей некоей удачной гиперфазе, и через некоторое время как раз набор из именно этих, наиболее удачных ТС будет показывать наименее успешные результаты? Ну т.е. как например недавно показывали коллеги в статьях, что выбор наиболее сильных американских акций за период проигрывает все-же покупке сп500.?
avatar
Socol, немного писал про это тут
Как умирают стратегии (smart-lab.ru)
avatar
bascomo, подскажи пожалуйста, ты на минутках тестируешь сгенерированные системы на последних неделях, и торгуешь топом из них неделю, затем все заново?

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

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

www.youtube.com/watch?v=r4sfr2Dnrjg
avatar

теги блога bascomo

....все тэги



UPDONW
Новый дизайн