Блог им. Saro
Приветствую!
В частном примере тухлость рынка имею ввиду последние недели две на фьюче сбера.
Так вот, пока изучаю C# и мозг сильно плавится от кода. Мысль о наставнике, который бы давал ответы на примитивные вопросы, уже не кажется для меня пугающей. Понимаю, что с одной стороны ничего вроде бы сложного нет, но не зная простых законов, можно очень долго блуждать в неведении. Но, при этом есть желание разобраться самому, в общем сложная философская дилема.
Отвлекаюсь от процесса изучения C#? попыткой создать алгоритм по «вертикальному об]ему». Везде это по разному называется, я привык называть кластером, в ТСЛаб это называют торговая статистика, на просторах интернета же, все по разному. Чтобы все понимали про что речь вот картинка.
Картинка с ртс, но она была под рукой просто))
Так вот, как и все в трейдинге, про подобный анализ часто записывая видео, люди рассказывают о постфактумах. Типа вот здесь был крупный обьем потому мы пошли вниз или вверх. Вот здесь сильный уровень проторговки видим, потому стоило шортить (а этот уровень сильным стал намного позже на самом деле, так как его не раз еще после этого «проторговали»)
На стадии разработки в TSLab блоков анализа кластеров, были такие ж проблемы. отрисовка постфактума событий, что для алготрейдинга не приемлемо. То есть в течении часового бара мы видели уже накопленные обьемы и уровни и бектестинг тупо рисовал геометрическую прогрессию профита. Сейчас же мы видим на каждом баре, как менялись объемы в реальном времени. Это конечно выжирает не мало оперативки, но программисты хорошо постарались и теперь пару месяцев кластеров накопленных, видно без существенных проблем с переполнением памяти (во многих софтах где данные не транслируются, а именно считаются и рисуются внутри софта, возникают сложности даже внутри одного дня переварить данные не выжрав всю оперативку.) Так ну это мой личный опыт, и немного отошел от темы.
Так вот алгоритмов постфактумных — много, в реальном же времени, легко алгоритмизируемых — не так много.
Первая мысль алгоритма была простая, мы боковим локально, после этого идет выход из боковика, который можно отловить. Обьяснить роботу к примеру что выход за границу боковика на чуть чуть — это возможно шум, не сложно. А вот научить робота отличать где шум, а где окончательно состоялся выход — реальная проблема. Либо мы часто будем входить в ложные «пробития» либо мы их вовсе будем упускать, либо входить с опозданием. Кроме этого, сами локальные боковики определить алгоритму не легко. Роботу нужны четкие правила, а рынок все же хаотичен. Даже, когда гуру рынка рассказывают и рисуют уровни руками, они ссылаются всегда по разному, в одном примере шпиль это уровень/подтверждение уровня, в другом же это ложное пробитие, в третьем шпиль не считают и рисуют по закрытию линии. То есть никогда не быват 100%четкого алгоритма о том что есть условный уровень 100 и через три дня 101 подтверждение этого уровня а 102 пробитие или же 98 так же подтверждает уровень а может и нет. В общем много условностей.
В своем примере, на данный момент, сделал только первые шаги. За «локальный» уровень, использую просто результат открытия первого часового бара. В дальнейшем постараюсь уровни сделать более гибким, этот уровень мне больше нужен для примера был.
И проторговку боковика, решил использовать уровни проторговки. то есть, если 70% обьема торгуется в пределах определенных границ — у нас боковик, если же 70% граница заступает за локальные уровни — то это не наш случай.
Данный метод позволяет понять, движение это некий шум, или все же направленность присутствует. Если это шум, то цена может проскакивать ниже определнных уровней (на примере это чуть жирные линии) но быстро возвращается в границы боковика. Если же цена закрепится ниже, то и зона проторговки выйдет за границу, это и будет для меня точка входа. И естественно начало движения всегда зарождается куда раньше выхода, и я уже буду входить в движение, и будут ситуации когда захожу в движение которое закончилось или развернулось. Канал сам получить не сложно — для этого используются кубики Верхний и нижний уровень торговой статистики. Параметр отсечки выбирает сколько процентов сделок отсеивать. то есть в моем примере в кубиках указанно 15% снизу и 15% сверху «отсеивать». Оставшее количество сделок (объем сделок опционально) и есть зоны проторговки 70% объема.
Повторяюсь — это не полноценный алгоритм в данный момент, а лишь набросок конкретно описанного случая.
В данном примере сделка так же просто закрывается, в случае для лонга, от нижней границы проторгованного канала. Сами гистограммы с графика отключил иначе было б не разобрать изображение.
Этот боковик только внутридневной. Так же буду экспериментировать с тем, чтобы попытаться глобальные уровни боковика использовать. (на примере двух неделя у сбера ооооочень сильная проторговка зоны от 20300 до 21000. Теоретически это предвесник сильного движения — а по факту будем посмотреть, возможно после глобальных изменений цены, она просто остановилась.
Следующая цель, научить алгоритм входить исходя из глобального боковика, то есть если к нижней границе прижаты, то возможно шорт будет ложный (шорт именно краткосрочный внутридневной) и наоборот с лонгом от верхней границы.
Итого получается, необходимо сделать более смартовым определение локального боковика, учитывать глобальные уровни (одна или двух недельные в смысле, а не годовые). Выход, пока что, не так важен, и если ничего не поменяется, то и определение выхода из боковика, меня так же устраивает. После этого уже буду пытаться ловить среднесрочные движения, но пока что даже мыслей нет, как.)
1) перестаньте рассматривать побарный (квантованный) график и смотрите ленту. И объемы по ней строить проще (а дельту вообще без ленты не посчитать), и голова не засирается несуществующими картинками. Сделайте в C# трансляцию ленты в какой-нибудь условный SQLite и потом вытаскивайте оттуда данные, стройте любые срезы и т. п. Побарный график привычен, но в плане алгоритмизации сильно связывает руки, на мой взгляд, так как это, не устаю повторять, довольно неудобная агрегация.
2) смотрите дельту вместе с объемом, сам объем мало что даст, он на любой крупной проторговке будет выглядеть тупо колоколом (пример тут, хоть там и не совсем по теме этого треда)
Вот, к примеру, дельта и объем fRTS с 20 февраля по сегодня
MVVM поначалу кажется какой-то малопонятной вундервафлей — это надо перетерпеть :)
Может здесь найдешь для себя немного олезного. Удачи)