Периодически вижу фразу типа: «Вместо того, чтобы давать прибыли течь и резать убытки, человеческая натура склонна к фиксации небольших прибылей и пересиживанию убытков». Сюда можно добавить веру в то, что на рынке объёмы важны для понимания того, кто и где застрял в убыточных позициях. Опираясь на эти два тезиса можно набросать количественную модель такого человеческого поведения. Заинтересованным алготрейдерам добро пожаловать под кат.
Идею изложу, скорее, поверхностно и с некоторыми нестрогостями, поскольку главная цель — дать пищу для размышлений на эту тему.
Рассмотрим бары, откуда будем брать только объёмы 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.
Прочие соображения предлагаю обсуждать в комментариях. А кто не комментирует, тот уже программирует :)
(Пишу «большущий вопрос», хотя для меня это не вопрос) В своих статьях, видео, книге говорю о том, что понятие «бар» или «свеча» не имеют физического смысла, как и понятие «тайм фрейм».
Поэтому и нет смысла в параметрах свеч OHLC, так как разбиение непрерывного и бесконечного времени на отрезки носит условный характер.
«В далеком прошлом», наример, в момент IPO все участники находятся в лонгах, а контрагентом у них является андеррайтер. И все проторговываемые объемы до какого-то момента появятся в результате закрытия начальных лонгов об новые лонги.
Как узнать, когда в торговлю вступили спекулятивные шорты? От какого «бара» вести отсчет? Если мы знаем это наверняка, нам тогда не понадобится математическая модель.
Читается плохо. мысль кривая, молодая, лярд раз опробованная.
Из варианта 50/50 строим модель с вариантами действий 30/30.
Остальное в угадайку выходит.
Нужно проверить просто по опыту — что было в прошлый раз.
Далее технически пройти именно по узлам, отвечающим за топливо/зажигание.
Зачем излишние варианты?
с кучей неизвестных.
Статистически само по себе даст хоть что-то? Хотя бы на выборке в 1000 случаев даст приемлемую достоверность результата? (много чего, хотябы т-стьюдента)