Как создаются механические торговые системы? » Элитный трейдер
Элитный трейдер


Как создаются механические торговые системы?

23 января 2020 Открытие Силаев Александр
Сначала напомню главное: в трейдинге без торговых систем делать нечего. Любая интуитивная торговля обречена. Недоформализованная — это нервно, трудно и, мягко скажем, результат не гарантирован. Строго говоря, МТС вам тоже ничего не гарантирует. Но только здесь даётся хороший шанс.

На всякий случай оговорюсь: речь сейчас про обычную трендовушку для инструмента, на котором она уместна. Паттерны и высокочастотный трейдинг не трогаем.

Торговая система — это вход, выход и сайз. Иногда фильтр. Иногда выход не один. Всё.

Чем меньше параметров в торговой системе, тем лучше.

Чем меньше параметров, тем меньше мест, где может сломаться. Уменьшая число параметров, мы снижаем хрупкость системы и повышаем её устойчивость, или, как говорят, робастность. Робастность — главное в системе.

Есть грубый анекдот про главное. Бывалый танкист подзывает молодых и спрашивает, что главное в танке. Наверное, пушка, говорит один. Нет, броня. Кто-то про гусеницы. Не, говорит бывалый, главное в танке — не обделаться. Заменим слово «танк» словом «система» и получим ту же историю. Один новичок говорит, что главное в системе — доходность. Другой, что просадка. Третий вспомнит про коэффициент Шарпа. Но бывалый системщик знает, главное в системе — не... то есть робастность. Чтобы кораблик, бодро плавающий в тестовой ванночке, не затонул, спущенный на реал.

Работают ли «индикаторы»? Как сказать... По сути, все «индикаторы» — лишь способ формализовать собственное мышление и, если надо, отдать приказ торговому роботу на понятном ему языке. Нельзя же сказать ему «когда ломанёт, влезай», можно сказать «когда быстрая скользящая с периодом Х пересечёт скользящую с периодом Y, отправь ордер на покупку по рынку».

Все индикаторы теханализа показывают почти одно и то же.

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

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

Если развивать метафору с часами, то наши часы всё-таки показывают не одно и тоже: одни немного спешат, другие отстают, третьи немного искажают (в их понимании «улучшают») результат, ориентируясь на лондонское время или слегка корректируют в зависимости от температуры и уровня атмосферных осадков. Если на улице минус двадцать градусов, то между 14:00 и 15:00 проходит не один час, а два. Примерно так же можно считать индикаторы на курс рубля, ориентируясь на объёмы, старший тайм-фрейм, курс нефти, новостной фон и т.д. В некоторых случаях это будет оправдано, в некоторых — наоборот.

Независимо от оправданности в данном конкретном случае, все такие методы отягощены общим грехом: техническая система с их помощью становится менее технической, обилие параметров делает её менее тестируемой, менее робастной, более хрупкой. Умножение сущностей без нужды — едва ли не худшее, что можно предпринять в алготрейдинге. Лучше считать, что между 14:00 и 15:00 проходит один час, независимо от силы ветра и влажности. Нужны очень веские основания, чтобы начать учитывать эту влажность.

Из двух индикаторов обычно лучше тот, что проще.

Исключения бывают, но обычно обусловлены физическим смыслом. При прочих равных — не надо усложнять. Простой канал ничем не хуже усложнённой ленты Боллинджера.

Линия на графике — тоже индикатор. При этом горизонтальная линия проще диагональной. И строже. Диагональный канал даёт простор излишней фантазии, а горизонтальный канал её ограничивает, что хорошо, ибо фантазия на рынке вредит.

Какой бы индикатор мы ни взяли, речь идёт о получения из ряда цен чёткого сигнала.

Из континуальности времени мы должны выбить дискретность как её правдивые показания. Сигнал — это ситуация, когда одно число стало больше или меньше другого. Цена стала больше-меньше, чем индикатор А, полученный усреднением или обобщением, или какой угодно редукцией из ряда прошлых цен, может быть, сравнением с самым выдающимся числом ряда. Или индикатор Б стал больше, чем индикатор В.

Собственно, всё. Далее можно прикрутить фильтр и стоп. Можно не прикручивать. Главный вопрос: какие два числа сравнивать, чтобы получить исходный сигнал? Больше в техническом анализе ничего нет и не появится. Любая трендовая система, таким образом, пробойная. Цена или её производная должны пробить какое-то значение.

Какие возможны вариации? Во-первых, что пробивать. Самое простое — горизонтальный канал. Канал образуется тогда, когда у цены нет причин выходить за пределы диапазона, на неё ничто особо не действует, кроме массового чувства «поддержки» или «сопротивления». Если уровень пройден, значит, что-то стало действовать, нарушив статус-кво. Возможно, оно подействует ещё какое-то время. Возможно, стоит поставить на это деньги. Диагональный канал — сложнее. Обычно это не канал, а наше субъективное представление о том, где он есть. Субъективные представления лучше не активировать лишний раз.

Столь же просто скользящее среднее. Что лучше — прямая линия канала или кривая мувинга? Прямая лучше тем, что её все видят. То есть «пробой» — точно пробой, а не наша о нём фантазия. Кривая лучше тем, что её не все видят. Эффект толпы создаёт большое проскальзывание в моменте, вынос толпы на стопы и прочее. Если все видят, что входить надо в точке Икс, каким образом все, делая одно и тоже, могут зарабатывать в точке Икс? Мувинг у каждого свой, а пробой дневного максимума или минимума един для всех разумных существ Вселенной. Мы не верим, что все разумные существа Вселенной смогут зарабатывать дружно и вместе, но это не смертельный довод против линии. Зарабатывали и с ними.

Но в случае пробоя канала, во-первых, реальное проскальзывание может быть больше того, чем кажется. Во-вторых, чем больше очевидности, тем хуже. Если точка входа самая явная точка дня, мы просто не верим, что такая система при прочих равных переживёт конкурентов. Если трендовость исчезнет, умрут все. Но, если она сохранится, менее очевидная точка входа имеет лучшие шансы на выживание.

А как же сотни других индикаторов? Это вариации. Стохастик — тот же пробой канала, но до того, как канал пробит. Сигнал менее однозначный и, может быть, преждевременный, что плохо, но менее очевидный, что хорошо. Там, где работает пробой канала, работает и стохастик.

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

Вообще, какой бы индикатор ни был взят, новое всегда можно свести к старому. Так или иначе, это будет число — либо некое усреднённое, либо некий привилегированный экстремум. Возможно, это число будет как-то немного изменено или дополнено («при измерении времени учтите осадки»). Дополнения на каком-то периоде будут оправданы, на каком-то нет, но бритва Оккама против умножения сущностей без нужды.

Правила будут всегда сводиться к «растёт — покупай» и «падает — продавай». Сложная трендовая система, если ей дать достаточно времени, покажет тот же результат, что и простая. В худшем случае умрёт под тяжестью своих переоптимизаций раньше.

Это не значит, что нельзя получить лучшие точки входа. Можно, если при этом подключить соображения о физике рынка, составе участников, их правилах и привычках. Это и будет паттерновая торговля. Но это не «теханализ», даже если он говорит, что тут начали покупать, ведь он не говорит, кто именно начал, почему и до каких пор будет это делать. Пока мы на территории теханализа, мы имеем самую простую биржевую математику, слабо отягощённую знанием биржевой физики. И она не даст нам больше, чем может дать. Иными словами: из всех алгоритмов выбираем самый простой, усложнение оправдано лишь, если за «математикой» стоит «физика». Иначе мы тратим время на оптимизацию, которая ничего не оптимизирует.

Что отсюда следует? Допустим, мы провели тесты на прошлых данных. И обнаружили, что в некоем году на некой фишке индикатор SMA дал нам 30% годовых с просадкой 30%, а параболик дал 40% прибыли и просадку 20%. Значит ли это, что параболик в два раза лучше, надо играть его? Нет, это значит, что нам померещилось. Странное утверждение, но оно согласуется как с теорией вероятностей, так и с реальной практикой торгов. Не верите — проверьте.

Уже сказано, что чем больше параметров — тем хуже. Если параметр ничего не добавляет в улучшение риск/доходности, он лишний. Если добавляет, но немного, то, скорее всего, тоже лишний. Но параметров не только должно быть мало, они должны свободно «дышать».

Если система работает с узким набором значений параметров, она, скорее всего, не работает.

Допустим, период вашего индикатора 50. Если он станет 100, система может ухудшиться, но не стать убыточной. А если ваше лучшее значение параметра 60, а при 80 всё ломается, вы гений переподгона. Обычно перед торговлей советуют проводить оптимизацию для поиска «лучших» параметров. Но это путь в никуда. Ценовой ряд не обладает свойством периодичности, поэтому если кто-то скажет, что цифры 78 и 1567 лучше, чем 100 и 1000, давая в два раза лучшее соотношение прибыли и просадки — наше сочувствие: всё это бессмысленный подгон на истории.

В идеале всё можно умножить или разделить на полтора, и система останется рабочей. Если вы умножили-разделили, а система сломалась, не жалейте её: она уже родилась сломанной.

http://open-broker.ru/ (C)
Не является индивидуальной инвестиционной рекомендацией
При копировании ссылка обязательна Нашли ошибку: выделить и нажать Ctrl+Enter