Roman Ivanov
Roman Ivanov личный блог
13 декабря 2015, 16:49

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

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

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

     Обозначим рекомендацию алгоритма 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.

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

12 Комментариев
  • ves2010
    13 декабря 2015, 21:39
    тема гуд
    завтра смотри мой пост
  • А. Г.
    13 декабря 2015, 23:25
    Вы правы: если мы максимизируем доходность, то надо либо входить «на все», либо не входить вовсе.  ММ появляется там, где мы ограничиваем риск
    http://www.howtotrade.ru/forum3/posts/189.html


  • Artemunak
    14 декабря 2015, 18:43
    я согласен с тем что когда речь идёт о торговле одной стратегией то ей не нужен ММ, и даже вреден.  
    Но как быть когда много стратегий и на многих инструментах?
    Неужели у вас нет соблазна ограничить им пиковый сайз если они вместе открываются и благодаря этому увеличить общее плечо и улучшить доходность к риску? 
  • Artemunak
    14 декабря 2015, 19:04
    про ограничение я начал изучать
    smart-lab.ru/blog/264482.php
    в том тесте мало данных для вывода и курвфитинг, но имхо ограничение совокупного пикового сайза имеет смысл и цифры это показали.
    (а увеличение суммарного сайза после определённого порога имеет ещё больший смысл)

    про панику — неожиданный ответ.  Стесняюсь спросить, а почему так? Мне казалось наоборот надо )
    И вы ведь не считаете что исторические данные 2008-9 годов стоит полностью исключить из истории?
      • Artemunak
        14 декабря 2015, 22:51
        ivanovr, спасибо за развёрнутый ответ.
        Так вы ещё и переносы на ночь и на выхи не любите?

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

        Кризисные участки — думаю тут как с овернайтами — как раз в них и происходит сильное движение которое возможно накапливалось годами. И пропустить его это пропустить большую часть прибыли. Согласен что в них работают другие патерны и что такие участки очень искажают оптимизацию и соответственно наши параметры. Курвфитинг и всё такое. Но имхо нам ведь нужен профит а не то чтобы было легче оптимизировать и тестировать. У меня нет пока рецептов как правильно учитывать кризисные периоды и что в них делать, но в целом я думаю их нужно учитывать и придавать им веса поменьше например. И в них нужно торговать, возможно меньшим сайзом.
        Про риски — плечи могут здорово порезать при шухере, доллар может скакнуть рублей на 10 в день. Всё это было. Да даже и биржа может на недельку закрыться — вроде и такое было )
        Конечно надо это учитывать, и снижать плечи, но это не говорит о том что наши патерны не работают. Да, возможно они подсольются в это время, но значит это фиговые патерны тогда и фигово тестировали ) и что стоило поуменьшить оптимизм и плечи для них.

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

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