Блог им. ivanovr

Препарируем процесс торговли с помощью простейшего тервера

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

     Пусть у нас есть торговый алгоритм, который выдает приказ на покупку или продажу. Для выхода используем тупой алгоритм типа таймаут, случайный выход, выхода по стоп-лосс, тейк-профит, трейлинг-стоп и т.п. Комиссию не учитываем.

     Обозначим рекомендацию алгоритма O[i] = -1, 0, 1, где i — номер потенциальной сделки. -1 соответствует рекомендации продать, 1 — купить, 0 — ничего не делать. Объем сделки обозначим V[i] >= 0.

     Результат сделки и при единичном объеме и при условии что только покупаем обозначим R[i]. Будем считать что на рынке на всем периоде торговли нет устойчивого тренда вверх т.е. стратегия “купил и держи” в среднем прибыли/убытка не приносит. Тогда матожидание (M) от произвольной сделки на покупку равно нулю M(R[i])=0.

     Итого, мы разделили торговлю на три независимые составляющие: 

  • O[i] — характеризует направление сделки покупка/продажа (фактически, это наш алгоритм торговли);
  • V[i] — характеризует величину позиции (фактически, это алгоритм MM);
  • R[i] — характериует изменение цены актива за время сделки (характеризует рынок).

     Результат сделки будет равен V[i] * O[i] * R[i]

     Результатом торговли для нас является матожидание прибыли, которое для случая постоянного объема равно:

  • M(V * O[i] * R[i])

     Рассмотрим случай V[i] = V = const

     В соответствии со свойствами матожидания для НЕЗАВИСИМЫХ величин, матожидание произведения равно произведению матожиданий. Также M(V) = V. Так что:

  • M(V * O[i] * R[i]) = V * M(O[i]) * M(R[i])

     Поскольку M(R[i]) = 0, то матожидание прибыли =0

     Тогда где же тут возможность прибыли? Дело в том, что формула M(O[i]*R[i]) = M(O[i])*M(R[i]) верна только для НЕЗАВИСИМЫХ величин. Если есть зависимость (корреляция), то результат будет иной. Очевидно, что если делать сделки в удачном направлении, то есть если O[i] будет определенным образом коррелировать с R[i], то можно получить как положительное, так и отрицательное матожидание прибыли.

     Предположим, что O[i] случайно и не коррелирует с R[i] т.е. торгуем подбрасывая монетку. Тогда M(O[i]*R[i]) = 0. Посмотрим, можно ли исправить дело путем MM. С учетом MM наша прибыль в сделке M(V[i]*O[i]*R[i]). Если V[i] не коррелирует с R[i], то:

  • M(V[i] * O[i] * R[i]) = M(V[i]) * M(O[i]) * M(R[i]) = 0

     Можно ли сделать чтобы V[i] коррелировало с R[i]? Теоретически можно, но это будет означать, что V[i] “предсказывает” значение R[i] т.е. предсказывает результат будущей сделки. Без доказательства скажу достаточно очевидную вещь, что в этом случае максимум матожидания в сделке будет достигнут, если V[i] = V для всех случаев когда O[i]*R[i] ожидается >0 и V[i] = 0 для всех остальных случаев. А значит, V[i] должно фактически войти в O[i] т.е. стать просто дополнительным фильтром в торговом алгоритме.

     Получается, что ММ который не коррелирует с прибылью в будущей сделке не может улучшить случайную торговлю. Если же MM коррелирует, то это скорее часть стратегии, чем MM.

     Конечно, MM может спасти от маржинкола при торговле прибыльной стратегией настолько рискованно, что вероятность маржинколла велика. Но на практике задаются ожидаемой просадкой не больше 30% и в таком случае менять V[i] смысла не имеет.

     При разработке алгоритмов на истории следует улучшать O[i]*R[i], ведь именно эта часть делает нашу стратегию прибыльной. При этом V[i] также лучше зафиксировать, чтобы адекватнее оценивать вклад O[i]*R[i].

     Вывод: активное управление объемом большого смысла не имеет. Возьмите много торговых алгоритмов, дайте каждому торговать некоторой частью полного объема. И тогда управление позицией получится само собой и оно будет диверсифицированным по стратегиям. Активное управление V[i] будет только мешать вам адекватно оценивать ту часть, которая делает вашу торговлю прибыльной.

     Например, я торгую множеством алгоритмов, каждый их которых может купить либо продать на величину, которая примерно соответствует плечу на рынке 0.25 (<1 — это торговля без плеча). В редкие моменты, когда роботы хором голосуют за покупать (либо продавать), реальное плечо может достигать 5-10.

     И вам советую.

★14
12 комментариев
тема гуд
завтра смотри мой пост
avatar
Вы правы: если мы максимизируем доходность, то надо либо входить «на все», либо не входить вовсе.  ММ появляется там, где мы ограничиваем риск
http://www.howtotrade.ru/forum3/posts/189.html


avatar
я согласен с тем что когда речь идёт о торговле одной стратегией то ей не нужен ММ, и даже вреден.  
Но как быть когда много стратегий и на многих инструментах?
Неужели у вас нет соблазна ограничить им пиковый сайз если они вместе открываются и благодаря этому увеличить общее плечо и улучшить доходность к риску? 
avatar
Artemunak, не уверен, что такой прием улучшит доходность к риску. Думаю не улучшит.
Я иногда уменьшал размер плеча например при переходе на след. день, закрывая позиции принудительно. Из опыта в среднем получается что лучше бы так не делал. Ибо тренд имеет тенденцию продолжаться.
Все равно как бы там ни было риск оценен на истории, а событие которое наблюдаю сейчас наверняка уже повторялось на истории на несколько лет в прошлом.
Когда на рынке паника (типа как когда рубль падал), я торговлю вобще прекращаю на несколько дней. Если будет что-то подбное 2008, точно выду и подожду.
avatar
Artemunak, и еще, было время когда на счету было меньше расчетного и некоторые запоздавшие роботы в момент сильного тренда не могли поставить ордер из-за нехватки денег. Т.е. срезало ГО биржи. Но ничего страшного. Пробовал такое ограничение вводить на моделировании — это не приводило к росту соотношения прибыль/риск. Хотя конечно риск меряется как макс. просадка, а это одна точка на графике т.е. статистики мало, а значит точность проверки не велика. Но я сделал вывод что только ухудшает.
avatar
про ограничение я начал изучать
smart-lab.ru/blog/264482.php
в том тесте мало данных для вывода и курвфитинг, но имхо ограничение совокупного пикового сайза имеет смысл и цифры это показали.
(а увеличение суммарного сайза после определённого порога имеет ещё больший смысл)

про панику — неожиданный ответ.  Стесняюсь спросить, а почему так? Мне казалось наоборот надо )
И вы ведь не считаете что исторические данные 2008-9 годов стоит полностью исключить из истории?
avatar
Artemunak, как ни будь дойдут руки — попробую еще раз потестить ограничение на своем пакете стратегий. Но как я уже говорил, тут есть проблема, что риск как величина просадки — есть не большой участок графика. И возможно, что ограничением мы его по началу здорово срезаем.

Мнение по поводу паники на рынках:
1) в критические моменты рынок ведет себя иначе. Даже если не верить в хаос в такие периоды, то уж точно начитают роялить другие паттерны, нежели чем в обычное время (иначе откуда скачки на эквити).
2) Кроме того, в такие моменты можно нарваться на дополнительные непредвиденные риски типа ограничения биржи типа запрет коротких и подобного. Возможно с гепом при снятии ограничений.
3) При переносе позиций можно словить непредвиденный геп. Когда когда колбасило рубль-доллар, то принудительно закрывал позиции чтобы рисковать при переносе.

По сему придерживаюсь мнения что кризисные участки следует точно исключать во время оптимизации. Как я уже сказал, в такие моменты если и работают, то «не обычные» паттерны, но случайным образом результат может дать существенный вклад в оценку качества. Если включить эти участки в оптимизацию, то скорее всего в их области мы получим тупой курвефиттинг т.к. участков очень мало, а вклад большой. Даже если включать этот участок в оптимизацию, а потом руками смотреть результат в этой области то все равно скоррее получим подгонку т.к. таких участков 1-2 и они короткие. Так что то что мы получим будет далеко от правды и мы просто создадим себе иллюзию что «и тут все гладно». А в следующий раз будет иначе. Лучше не рисковать.
Для меня это особо важно т.к. я разрабатываю стратегии тупой оптимизацией генетическими алгоритмами стратегии целиком. Если я включу в оптимизируемый пакет доллар-рубль и участок где он круто рос, то по резултьтатам оптимизации я получу стратегию которая круто растет на этом промежутке в ущерб всем остальным областям. Потому я выкидывать эти участки при поисковой оптимизации, но когда разглядываю результат, то учитываю все участки. И в данном случае как правило вижу, что то что работало на доллар-рубле все время кроме кризисного, не плохо работало и в кризис, но не так здорово как если бы оптимизировал и на кризисном участке. Но это был бы курвифиттинг из-за узкости (не репрезентативности) участка.
avatar
ivanovr, спасибо за развёрнутый ответ.
Так вы ещё и переносы на ночь и на выхи не любите?

Я читал исследования и придерживаюсь мнения что нужно переносить. Как раз ночью и в выхи все направленные движения и происходят. Как раз потому что многие их боятся и их специально запугивают )
В интрадей почти не верю, но было бы интересно прочитать про что-то работающее в интрадее.

Кризисные участки — думаю тут как с овернайтами — как раз в них и происходит сильное движение которое возможно накапливалось годами. И пропустить его это пропустить большую часть прибыли. Согласен что в них работают другие патерны и что такие участки очень искажают оптимизацию и соответственно наши параметры. Курвфитинг и всё такое. Но имхо нам ведь нужен профит а не то чтобы было легче оптимизировать и тестировать. У меня нет пока рецептов как правильно учитывать кризисные периоды и что в них делать, но в целом я думаю их нужно учитывать и придавать им веса поменьше например. И в них нужно торговать, возможно меньшим сайзом.
Про риски — плечи могут здорово порезать при шухере, доллар может скакнуть рублей на 10 в день. Всё это было. Да даже и биржа может на недельку закрыться — вроде и такое было )
Конечно надо это учитывать, и снижать плечи, но это не говорит о том что наши патерны не работают. Да, возможно они подсольются в это время, но значит это фиговые патерны тогда и фигово тестировали ) и что стоило поуменьшить оптимизм и плечи для них.
avatar
1) В обычное время переносами не парюсь. Во время паники вполне разумно прикрыться в конце дня. Существенная часть прибыли действительно делается именно на переносах. При нормальном режиме работы рынка гепы усредняются. Когда исследовал чисто интрадейное, добавлял условие что закрываем все позы за X времени до закрытия рынка. Не скажу что совсем все плохо получалось, но явно хуже. 
2) А вот со сравнением гепов при панике с гепами в обычном режиме не согласен.
3) Про паттерны во время паники: мы не может проверить работают они или нет. Нет значимой статистики. И может они даже работают, но перекрываются более мощным шумом. Периоды паники слишком коротки, чтобы не пренебречь ими. Риск то на них возрастает точно, а вот прибыль — не очевидно. А если используются стопы, то вероятно срывание стопов на шуме.
avatar
ivanovr, написал статью про переносы, а коммент последний только сейчас увидел почему-то.
tradetrade.ru/Market_mechanics/2015/12/16/pro-perenosy-na-noch-i-vyhi.html
avatar
Artemunak, выходит, что стопы нашем рынке особенно бесполезны ибо они мешают усреднять гепы.
avatar

теги блога Roman Ivanov

....все тэги



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