_sk_
_sk_ личный блог
06 января 2017, 13:10

Модель позиций и объёмов

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


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

Рассмотрим бары, откуда будем брать только объёмы V_i и типичную цену p_i = (H_i + L_i + C_i) / 3. В нашей модели предполагаем, что отслеживаемые участники рынка осуществляют сделки по цене p_i. Для каждой свечи будем дополнительно помнить 2 числа: количество участников, вошедших в лонг U_i, и количество вошедших в шорт W_i. (Полагаем, что доля моделируемых таким образом участников рынка составляет, скажем, 10% от всех участников, поэтому вместо V_i надо рассматривать 0.1 * V_i, но все пропорции в дальнейших формулах не зависят от масштабного коэффициента 0.1.)

Будем считать, что в далёком прошлом на начальных свечках (p_i, V_i) участники только открывают позиции и являются друг для друга контрагентами. Для таких свечей U_i = W_i = V_i. Потом, с течением времени, это допущение станет несущественным.

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

Закрытие позиций происходит, например, так. Пусть на некоторой свече i из прошлого была цена p_i и имелось U_i участников в лонгах и W_i участников в шортах, а на текущей свече цена равна p. Если p > p_i, то лонги закрываются активнее, чем шорты, поэтому U_i превращается в 0.95 * U_i (закрывается 5% плюсовых позиций), а W_i превращается в 0.99 * W_i (закрывается 1% минусовых позиций). Если p < p_i, то картина будет обратной. Если вы верите в какие-то другие алгоритмы фиксации прибылей/убытков — замените предложенный здесь на ваш собственный.

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

Для примера положим UU = 50, WW = 150, V = 220. Считаем, что 50 закрываемых лонгов сократятся с 50 закрываемыми шортами и дают проторгованный объём 50. Остальные закрываемые 150 — 50 = 100 шортов покупают у новых контрагентов-продавцов, которые шортят по текущей цене p. Это объясняет дополнительный проторгованный объём 100. Оставшийся объём 220 — 50 — 100 = 70 — это новые покупатели и продавцы, которые открывают свои позиции. Итого, на текущей свече по цене p было открыто 70 лонговых позиций U и 100 + 70 шортовых позиций W.

В только что рассмотренном примере всё более-менее гладко, но не всегда так бывает. Пусть, скажем, UU = 50, WW = 150, V = 100. Согласно нашей модели на свече должен пройти объём как минимум 150, чтобы закрыть позиции, а он равен 100. Тут придётся пойти на какие-то компромиссы. Например, считать, что на такой свече новые позиции не открываются (U = W = 0) и вернуть 50 попытавшихся закрыться шортистов обратно: пусть пытаются закрыться на следующей свече.

Если прогнать такую модель по довольно длинной истории, то она покажет, по каким ценам и какие позиции открыты. Теперь надо как-то применить это для торговли.

Возможно, что так можно выделять горизонтальные уровни поддержки сопротивления «на глаз», сделав соответствующую визуализацию.

Можно пытаться количественно выделить более/менее вероятные цены на следующей свече. Для этого перебираем варианты цены p_next, смотрим, будет ли такое направление изменения цены от p до p_next согласованным с количеством закрывающихся лонгистов и шортистов. Скажем, если цена растёт, а при этом больше кроется лонгистов, то это маловероятный сценарий, а если наоборот, то более вероятный.  По идее, должна быть корреляция между относительным изменением цены и разностью WW — UU.

Прочие соображения предлагаю обсуждать в комментариях. А кто не комментирует, тот уже программирует :)
10 Комментариев
  • VadimTrade
    06 января 2017, 13:21
    Слушай тут без иллюстраций очень непросто твою мысль правильно понять…
  • spebe
    06 января 2017, 14:22
    Во всей этой истории большущий вопрос вызывает отправная точка — расчет «типичной цены».

    (Пишу «большущий вопрос», хотя для меня это не вопрос)  В своих статьях, видео, книге говорю о том, что понятие «бар» или «свеча» не имеют физического смысла, как и понятие «тайм фрейм».

    Поэтому и нет смысла в параметрах свеч OHLC, так как разбиение непрерывного и бесконечного времени на отрезки носит условный характер.

    «В далеком прошлом», наример, в момент IPO все участники находятся в лонгах, а контрагентом у них является андеррайтер. И все проторговываемые объемы до какого-то момента появятся в результате закрытия начальных лонгов об новые лонги.
    Как узнать, когда в торговлю вступили спекулятивные шорты? От какого «бара» вести отсчет? Если мы знаем это наверняка, нам тогда не понадобится математическая модель.
      • spebe
        06 января 2017, 15:31
        _sk_, мысль абсолютно правильная. И, я бы сказал, единственно правильная на текущем этапе развития рынка.
  • finstrateg
    06 января 2017, 14:40
    ничего не понял, но + поставил )
  • Roman Ivanov
    07 января 2017, 00:24
    Открытия «на кончике пера» — это фантастика. Так и едва ли можно поморщив лоб придумать работающую торговую систему. Ее можно построить на наблюдениях, либо перебирая варианты и моделируя на истории (что тоже есть способ наблюдения).

  • Зарабатывающий Юзер
    07 января 2017, 00:28
    ужасно.
    Читается плохо. мысль кривая, молодая, лярд раз опробованная.
    Из варианта 50/50 строим модель с вариантами действий 30/30.
    Остальное в угадайку выходит.
  • Зарабатывающий Юзер
    07 января 2017, 00:30
     Если авто не заводится, нужно ли проверять баланс, тормоза, стёкла?
    Нужно проверить просто по опыту — что было в прошлый раз.

    Далее технически пройти именно по узлам, отвечающим за топливо/зажигание.

    Зачем излишние варианты?
  • Зарабатывающий Юзер
    07 января 2017, 00:32
     дикое количество допущений в изложенном.
    с кучей неизвестных.

    Статистически само по себе даст хоть что-то? Хотя бы на выборке в 1000 случаев даст приемлемую достоверность результата? (много чего, хотябы т-стьюдента)

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

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