Блог им. rfynututkm

Как делать торговую систему?



     Еще одна памятка новичкам. Рядом с ней последние посты smart-lab.ru/blog/531726.php (трейдинг должен быть дедуктивным), smart-lab.ru/blog/532375.php (гипотезы надо не щадить), smart-lab.ru/blog/533056.php (за математикой желательна физика).

     На всякий случай оговорюсь: речь сейчас про обычную трендовушку для инструмента, на котором она уместна. Уместность легко видится на простейших тестах (например, если в Si простой вход на мувингах с выходом по таймингу дает плюс — все, это наш инструмент, можно рыть дальше). В паттерны и хфт сейчас не лезем. Еще одна оговорка: у вас есть тестер, ряд исторических цен и желание с этим работать. Без этого не получится. И я бы сказал, наблюдается парадокс: ручная торговля может получиться, но… скорее всего у того, что перебрал в уме десятки МТС. То есть это то, чем можно заняться при желании — ради опыта, забавы, диверсификации — после алго, а не до и не вместо. 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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




***

         На всякий случай, группа в ВК: vk.com/dengi_bez_durakov

         вторая группа, не про биржу: vk.com/filosofia_bez_durakov

         и блог на Comon: www.comon.ru/user/voldemort/blog/



★37
24 комментария
На некоторых активах надо торговать контртренд. Зря Вы от этого открещиваетесь. 
Какое максимальное количество индикаторов Вы допускаете в своей торговле? 
avatar
SergeyJu, я пробовал контртренд несколько лет назад. Может, я ленивый или бездарный, но вот как-то плохо получается… :) Лучше, что нашел по тестам — парный трейдинг. То есть Лукойл, Роснефть, золото — уже сами по себе скорее контртрендовые. Но еще лучше спред между фишками нефтегаза, например, через фьючерсы. По тестам, угу. И в реале — несколько месяцев капала прибыль. Потом за неделю отдал все, что накапало за несколько месяцев. Ну его, решил. Самое забавное, что парный трейдинг наоборот — на разрыв и расхождение спреда — отлично пошло! только там немного другие спреды, как раз между нефтегазом лучше не брать, а вот Сбер-Газпром уже работает. В среднем это было 30-40% без плеч в 2014-2015 гг., макс. просадка в районе 10-15%, в 2016 около нуля прибыль, а потом как-то забросил (ленивый же). Но вот смотрите, канонический пример, где по учебнику торгуется конттренд, а по жизни все наоборот было!

Я специально еще напишу, почему в тренд верую, а в контртренд — не очень. Но позвольте спрошу — а НА КАКИХ активах все-таки надо торговать контртренд?

Касательно параметров — смотря что считать параметром… Вот таймфрейм, тот или иной — это параметр? А параметры как считаем? только на вход, или все вообще? все, что может быть переменными? вот любимая системка — четыре получается параметра на все и про все… Каждый год плюс с 2014 на реале (по тестам еще 2010-2013). Но если там один параметр выкинуть, например, ничего не изменится. Он так, для разнообразия. То есть всегда предметный разговор — что считать параметром, насколько он обязателен и т.д.


Александр Силаев, про контртренд. Если говорить о примитивных системах на одном активе, то на наших акциях я работающего контртренда не нашел. Но это не значит, что его нет на других активах. Тем не менее, контртренд применим и на нашем рынке. Хотя бы тривиальная ребалансировка долей акций и облигаций в портфеле. Примерно это делает Баффет, но это работает и у нас. Например, возьмем портфель на 50% из сбера и на 50% из короткой ОФЗ. Если портфель перекашивает, например, на 10%, продадим то, чего больше и купим то, чего меньше, чтобы вернуться к паритету. Система енд-оф-дей, число сделок крайне невелико, вполне подходит ленивому спекулянту. Легко модифицируется на случай регулярных пополнений счета. 

avatar
SergeyJu, если так, то да. Если ассет алокейшн рассматривать как МТС, играющую контртренд на годовом фрейме — получается, тут я контртрендовик. 
Александр Силаев, о параметрах. Возьмем для простоты очевидный пример. Берем скользяшку (я всегда беру ЭСС, когда-то много экспериментировал с разными скользяшками, чужими и своими, пустое это), у неё 1 параметр сглаживания. Что с ней можно сделать? Сравним с ценой, цена выше или не выше. Получился один бинарный параметр. Возьмем второй бинарный параметр — цвет дневной свечи (формально, цена на момент принятия решения выше цены открытия или нет). 
2 бинарных параметра дают пространство принятия решения из 4 вариантов. Например, 11 (цена выше скользяшки и выше открытия) покупаем 00 — продаем, 01 и 10 ничего не делаем. Или при 01 закрываем шорт, а при 10 закрываем лонг. 
Итого, у нас 1 непрерывный параметр и 2 бинарных.
Таймфрейм я обычно параметром не считаю, потому что не варьирую. К тому же готовые системы часто легко переносятся с минуток на 15-минутки, например. 
avatar
Александр Силаев, ликвидные валютные пары контртрендовы по своей физике.
avatar
robomakerr, не уверен, по грубым тестам — там ничего не работает, а делать не грубые — это мне вера не велит. Рубль-доллар, правда, образец трендовости, но понятно, вы не о ней. В основном там скорее эффективный рынок.
Александр Силаев, после того, как меня побило последним сберовским боковиком и я отключил по нему всех роботов, я вобще не знаю, что можно торговать еще, кроме рубль-доллара(имею ввиду, трендследящие системы). По нефти и РТС просадки большие. Все, больше ничего нет! И от этого грустно…
avatar
Андрей Ш., а знаете, мне хватает рубля-доллара. Я много чего пробовал, мол, диверсификация. Но это ложное. Если один инструмент сильно лучше, чем остальные, ну их, остальных. Лучше пустить три системы по 100% капитала на Сишку, чем поделить лимиты на сишку, нефть, евро и РТС. будет лучше — в том числе по просадке. Такое ощущение, что это все ухудшенные варианты Сишки… Единственное, что еще сейчас оставил — Сбер. Но только через фьюч и от лонга.

Александр Силаев, да, форекс копать надо чуть глубже чем рубль-доллар :)
avatar
robomakerr, моя философия в том, что если можно не копать — лучше не копать. :)
Александр Силаев, Сбер-Газ это не спред вообще, ноги должны быть из одного сектора (по теории).
avatar
robomakerr, да рано или поздно растащит любой спред, неважно. Парный трейдинг — вообще ни разу не арбитраж. Если играть это, то лишь НА РАСХОЖДЕНИЕ. А там, конечно, лучше разные сектора. 
Александр Силаев, не, суть в том что Сбер-Газ это не спред и не пара вообще, у них нет физического основания быть связанными.
Связанными могут быть активы одного сектора, например Сбер-ВТБ, Газ-Лук.
avatar
robomakerr, хотя с похожим успехом, полагаю, можно было играть Сбер сам по себе… Но все пара Сбер-Лукойл рождало какое-то ощущение большей безопасности, что ли… По крайней мере — в 2014 году.
robomakerr, там теория сама по себе ложная. Нет никакой устойчивой корреляции, или коинтеграции, как они это называют — уже забыл. Один сектор, или не один — рано или поздно все растащит. А если на пробой, то лучше то, что вернее растащат. То есть пара Лукойл-Роснефть вообще никуда не годное, а Сбер-Газ, или Норникель-ВТБ, или Лукойл-Сбер — годится на трендовуху. 
SergeyJu, на каких активах надо торговать контртренд?
Евгений Ворончихин, я ни на каких отдельно взятых  активах не торгую контртренд. Но в американских акциях вшит кусок контртренда, если судить по моим исследованиям. Похоже, надо сочетать и тренд, и контртренд, вероятно, с разными временными горизонтами. Подробнее не напишу, извините. 
avatar
SergeyJu, мне не удалось найти устойчивые контртрендовые активы, даже пары.
Если бы я прочитал это лет 10 назад, эти знания сэкономили бы мне несколько лет жизни)
p.s. по стохастику обычно берут возвратный сигнал, для пробоя думаю он бесполезен.
avatar
robomakerr, не, все что считается осцилляторами — лучше работает на пробой, как индикаторы тренды. Перекуплено — покупай, перепродано — продавай. Или не работает вообще (что чаще).
Александр Силаев, ну я за 10 лет алготестирования ни разу не встречал чтобы стохастик работал на пробой)
Разумеется, это больше от типа актива зависит — возвратный или трендовый, индикаторы — всего лишь инструмент.
avatar
robomakerr, попробуйте на рубль-долларе. Это как бы ставка на пробой канала — до того, как канал пробит. Лучше, конечно, подождать. Но можно и так.
хороший текст, особенно по полезность индикаторов-)
Добавил бы, что в любой работоспособной торговой системе, к собственно алгоритму, должна быть система ограничений, позволяющая или запрещающая совершать сделки.
avatar

теги блога Александр Силаев

....все тэги



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