Глава 2. Механизм проверки и способ нахождения графических моделей. Область поиска. Программные и аппаратные средства. Результаты
Самостоятельно принимая решения о покупке/продаже с 1997 года, я могу сказать, что иметь основу для принятия решений просто необходимо. Совершенно неприемлемы доводы что вот «чувствую повышение», «в газете советуют» или «другие сейчас покупают». Помню, что, только получив деньги на бирже (на фьючерсной площадке Российская товарно-сырьевая биржи) в своё полное распоряжение, я был несколько озадачен, а что же предпринять сейчас в данной, конкретной и очень быстро меняющейся ситуации. Надо сказать, что я уже к этому времени два года просидел перед монитором РТС (тогда ПОРТАЛ) и мне казалось, что рынок предсказуем, но лишь иногда и на короткий срок. Применением классического ТА в работе я никогда не увлекался. Однако, всегда оставался вопрос — можно ли доказать существование ГМ не декларативно, а математически. При этом ставится задача подойти к поиску ГМ формально. То есть, описать при каких условиях цепочка цен будет считаться ГМ и затем полностью поручить поиск ГМ компьютеру. Описывая ГМ, я естественно опирался на накопленный опыт, но при этом не стремился «подогнать» результат, собственно, я и не знал, что же получится в результате: существуют ли ГМ вообще? Важно было исключить влияние «человеческого фактора». В этом и заключается отличие моего подхода к ТА от классического.
Итак, определение: Графическая модель — это повторяющаяся кривая цен с высокой вероятностью приводящая только к понижению или только повышению цен. Определённый интерес представляют и ГМ, приводящие к стабильным, не изменяющимся ценам, но практическое применение таких ГМ затруднительно и не слишком важно в целом для теории. Важно определить и длительность ГМ.
В нашем случае мы будем искать ГМ внутри дня, причём по ежеминутным данным. Почему? Во-первых, российский РЦБ имеет не очень большую историю, и получить биржевые цены на период больше полутора лет не представляется возможным. Во-вторых, даже по наиболее ликвидным российским акциям в минуты затишья на торгах сделки проходят реже, чем раз в полминуты. А для статистической оценки изменения цен на торгах важно иметь как можно больше значений и эти значения должны быть реальными. В третьих, игра на бирже внутри дня (так называемый «дэйтрейдинг») приобретает всё большую популярность и отвечает моему собственному предположению — «рынок предсказуем, но редко и на короткий промежуток времени».
По предположению ГМ должна иметь время на формирование, но при этом не должна быть слишком «длинной» (длительной) для торгового дня продолжающегося с 11-00 до 18-00, то есть всего семь часов. Я определил длительность искомых ГМ в этом эксперименте в 90 минут. Отрезок такой длины должен позволить увидеть не случайное движение рынка, а развитие пусть не основной, но тенденции. Впрочем, поиск ГМ только в одном отрезке это ещё и вынужденная мера — большой срок расчётов и огромное количество получаемых данных заставляет ограничиться разбором лишь одного отрезка.
Теперь об алгоритме поиска ГМ. Посмотрим ещё раз на определение. Графическая модель — повторяющаяся кривая цен. Значит, в данных, в которых мы ищем подтверждение теории, необходимо выделить повторяющиеся отрезки. Эти отрезки не должны совпадать по значению цен, они должны быть «похожи».
Как это можно определить и найти такие отрезки? Можно, например, описать каждую кривую системой уравнений и затем попытаться сравнить коэффициенты этих уравнений. Это достаточно трудоёмкий способ. Я выбрал более простой, но, тем не менее, корректный способ сравнения — посчитать значение коэффициента корреляции этих двух отрезков. Если его значение больше, например 0.9 — это говорит о значительном сходстве кривых. Но где взять тот самый «образец» для сравнения? Ту самую кривую (вектор значений цен) по которой мы и будем искать схожие кривые? Ответ таков — этот образец уже должен содержаться в самих данных и нам не нужно «конструировать» его. Нам не нужно «придумывать» и предполагать, как он будет выглядеть. Мы проверим все возможные отрезки данных перебором. Теперь ясно, откуда берётся «образец». А вот уже сам «образец» по очереди сравнивается со всеми возможными комбинациями данных. То есть происходит перебор образцов и по каждому образцу перебор всех вариантов. Таким образом, обеспечивается независимое от человека предположение «вида образца» и такая же независимая его проверка. Способ поиска ГМ показан на рис.7. На приведённом примере показана произвольная кривая «образца», в реальности он выбирается строго по порядку. Разбивка кривых дня на отрезки производится тоже по порядку следования дней. Сам день разбивается на отрезки с шагом один (в нашем случае с шагом одна минута). То есть торговый день длительностью 420 минут в идеале даёт 330 отрезков. Первые 90 минут дня, затем этот отрезок сдвигается на минуту дальше, причём в начале одно значение выбывает, а в конце одно значение добавляется. Таким образом, длинна отрезка всегда 90 минут.
Как видим, этот алгоритм уже позволяет выделить часто повторяющиеся «кривые цен». Теперь необходимо определить приводят ли они к росту или падению цен. Для этого мы должны для каждого отрезка, оказавшегося очень «похожим» (коэффициент корреляции больше 0.9), посмотреть «будущую цену». Эта цена акции через одну треть длительности проверяемого отрезка. Для 90 минутного отрезка она будет взята из времени соответствующего времени конца отрезка плюс 30 минут. Значение цены из этой точки сравнивается с последним значением цены в «похожем отрезке». Если она больше — значит, засчитываем как «ведёт к повышению», если ниже как «ведёт к понижению». Если цена осталась в пределах двойной комиссии брокера значит «цена существенно не изменилась».
Для каждого «образца» могут быть найдены как сотни «похожих кривых» так и ни одного. При этом каждый «образец» характеризуется количеством «похожих кривых», ведущих к повышению, понижению или «существенно не изменившейся цене». В соответствии с ранее данным определением ГМ нас могут заинтересовать только те «образцы», для которых будет найдено относительно много «похожих кривых» и количество «ведущих к повышению» будет значительно больше «ведущих к понижению» — или наоборот. Отнеся количество событий каждого вида к общему числу событий, мы получим вероятность каждого события. И чем больше общее количество событий, тем больше надёжность статистических данных.
Для проверки теории ГМ были использованы цены акций РАО ЕЭС торгуемые на ММВБ. Цены РТС здесь не подходят, так как спрэды на этом рынке значительно выше. Акции РАО ЕЭС на ММВБ наиболее ликвидны и не подвержены манипуляциям со стороны инсайдеров (как акции Газпрома).
Данные по торгам были взяты (часть бесплатно из интернета, а часть куплена у ММВБ) начиная с апреля 1999 по июнь 2000 года. Это были таблицы со всеми сделками за весь торговый день. Там каждая сделка характеризуется: видом ЦБ, временем сделки, ценой, объёмом сделки. Для начала эти «сырые данные» были обработаны отдельной программой. Из них были выделены цены открытия, максимума, минимума, закрытия и объёма для каждой минуты торговой сессии (с 11-00 до 18-00). Таким образом, каждый рабочий день представляет собой 420 значений каждого вида цены. Всего таких видов четыре. И ещё 420 значений объёмов торгов для каждой минуты торговой сессии. Всего было взято 327 рабочих дней. Однако, учитывая большой объём вычислительной работы, а так же то, что отрезок в минуту хорошо учитывает (в применении к акциям торгуемым на ММВБ) изменение цен в нем, то есть максимум и минимум не будут сильно отличатся друг от друга. И поэтому достаточно проводить поиск ГМ только по одной цене — закрытия для каждой минуты. А значения объёмов торгов для каждой минуты не использовались. Они могут понадобиться, только чтобы уточнить обнаруженные ГМ.
Все данные были преобразованы в текстовые файлы, содержащие виды цен по отдельности. При этом все нулевые значения (то есть когда сделок не было) делились на две группы:
1. Торговый день открыт и в эту минут просто не произошло ни одной сделки. В этом случае вместо нулевого значения цены ставилось значение цены из предыдущей минуты.
2. Торговый день ещё не открылся по техническим или каким-то другим причинам. Тогда начало поиска ГМ сдвигалось до появления первых сделок.
Далее была написана основная программа (листинг программы приведён в Приложении) нахождения ГМ в этом временном отрезке. Производилось это сплошным перебором всех возможных отрезков длинной в 90 минут (значений). Всего значений цен было 137340 (420 минут в 327 днях, 420*327=137340). Однако «образцов» было меньше чем отдельных значений цены, так как должны были выполняться следующие условия:
1. В торговом дне из которого брался «образец» уже не проводился поиск «похожих кривых», чтобы исключить влияние «образца».
2. Для определения к чему приводит данная «похожая кривая» не брались за «образец» все отрезки, от конца которых до конца торгового дня было меньше 30 минут.
Таких вычислений корреляции для каждой определенной длины отрезка производилось около 15 миллиардов. И занимало около 7-10 дней непрерывной работы компьютера.
Таким образом, были сформированы два файла (формат Microsoft Access), где в строках находились все возможные варианты «образцов» и соответствующее им вычислялось количество «похожих отрезков» разделённых на три группы:
1. Цена в этой группе увеличилась.
2. Цена в этой группе уменьшилась.
3. Цена в группе существенно не изменилась.
Очевидно, что если будут найдены такие фигуры («проверяемые отрезки»), у которых одна из этих групп будет существенно больше других, то это будет означать, что действительно существуют фигуры, которые приводят к одному и тому же результату.
В результате расчётов были получены результаты по 97741 варианту «образца». Они были обработаны в Microsoft Excel. Цель обработки была — выделить «образцы», соответствующие следующим условиям:
1. Общее количество, найденных «похожих кривых» больше 50ти. Предпочтительно больше 100.
2. Соотношение для «образца» между группой, где «цена увеличилась» и группой, где «цена уменьшилась» (или обратное соотношение) должно быть как минимум 3:1.
3. Большая, из этих двух групп так же должна быть больше чем группа, где «цена существенно не изменилась».
Я не преследовал цель отобразить на графиках все, удовлетворяющие выше приведённым условиям, найденные ГМ. Приведены лишь наиболее характерные из них. Почему, я объясню в конце этой главы.
Обнаружено, что делить ГМ на «модели продолжения» и «модели разворота» здесь совершенно излишне. ГМ говорит о том что «будет», а спекулянту не так важно, что «было и будет». Ведь при применении ГМ на практике трейдер вместе с изменением цены открывает или закрывает позиции, и к моменту возникновения ГМ уже были отыграны другие ГМ и уже открыты или закрыты позиции. Впрочем, фраза «продолжение повышательной тенденции» синонимична фразе «цены повысятся».
Важно и другое — не было найдено ГМ ведущих к повышению (понижению), которые при зеркальном отражении относительно оси абсцисс давали бы ГМ понижения (повышения).
Итак, рассмотрим ГМ по порядку. Кривые цен обозначены, синим и бирюзовым цветом. Красными точками отмечено начало и конец ГМ, когда она достигает максимального значения вероятности повышения (понижения). Так как длинна найденной ГМ постоянна, то производя одновременное и равномерное смещение начала и конца ГМ влево и вправо по графику, можно увидеть как соответственно изменяется и вероятность повышения (понижения). Для примера на графике «Графическая модель повышения № 1» обозначены группы точек 1 и точек 2. Точки 2. показывают, какие значение вероятности «повышения», «понижения» предшествовали максимальному значению «вероятности повышения цены». Кроме того, на график нанесены значения тренда для кривой цены — это полиномиальная кривая 6-й степени. Все приведённые ниже кривые цен — образцы, являются графиками реальных кривых, а не обобщенным результатом. Надо помнить, что найденные «похожие» кривые имеют коэффициент корреляции равный либо больший 0.9.
Для начала рассмотрим пять ГМ приводящих повышению цен.
Графическая модель повышения № 1.
Как мы видим, эта модель на удивление проста. Цены на акции в ней поднялись до максимума, постояли рядом с ним и затем медленно понизились. Никаких явных «двойных максимумов» как на рис.3. Всё очень похоже на рост с последовавшей за ним коррекцией. ГМ модель как бы показывает, что уж повторить-то максимум рынку вполне по силам.
Пока цены не отошли от максимума, вероятности развития ситуации были приблизительно равны для всех трёх сценариев. И лишь, когда цена начала снижаться, вероятность повышения начала нарастать, быстро достигнув максимума в 70%. Причём эта вероятность росла за счёт вероятности понижения. А вероятность того, что цена существенно не изменится осталась постоянна. И лишь, по прошествии ещё нескольких минут, резко упала и она. В свою очередь выросла вероятность понижения, что говорит о том, что рынок находится в неустойчивом положении — в критической точке, но вероятность повышения по-прежнему больше, причём здесь в два раза.
Это график демонстрирует значительный максимум вероятности повышения, но в то же время эта вероятность не очень стабильна. И, кроме того, отношение вероятностей едва больше 3-х. Это не так уж и много. Впрочем, здесь приведены вероятности для конкретной кривой цены. ГМ модель, как очевидно, состоялась.
Графическая модель повышения № 2.
Здесь ситуация развивалась совершенно по-другому и ГМ не похожа ни на одну из показанных выше ГМ классического ТА. Сначала цены снижались. Затем, достигнув минимума, развернулись и поднялись выше начальных значений, — достигли нового максимума. От этого максимума цены быстро отошли, но не далеко. И здесь, когда все трейдеры на этом рынке могли бы задать себе вопрос, что же будет дальше, компьютер отвечает — наиболее вероятен рост цен. Причём чем дальше отходили цены от максимума, тем меньше было уверенности в том, что цены действительно вырастут. Эта ГМ, на мой взгляд, показывает, что очень важно, чтобы начавшаяся на максимуме коррекция осталась коррекцией и не переросла в понижение цены. Вообще определение и толкование термина коррекции весьма расплывчато и, кроме того, употребляется участниками рынка по делу и без дела. Да и величину коррекции определить всегда трудно. Некоторые считают, что она должна составить от половины до одной трети величины подъёма. Однако никто не может объяснить, почему именно столько. Думаю, что наиболее точным будет определение коррекции как движение цены обратное основному на относительно небольшую величину, не приводящее к изменению сложившейся тенденции.
Глядя на этот график, нужно понимать, что повышение цен здесь прогнозируется через 30 минут, что составляет треть общей длины приведённого графика. И стремительное снижение вероятности повышения, зафиксированное на этой конкретной кривой, характерно для кривой, с увеличивающейся величиной коррекции. Одним словом, надо видеть, что эти ГМ — не застывшие кривые как в классическом ТА, а кривые с вероятностным исходом. Можно сказать, что ГМ видна в каждой конкретной кривой возникающей на графике, причём одной крайне левой точке на графике соответствует практически безграничное количество ГМ.
Графическая модель повышения № 3. На этом графике представлена очень интересная ГМ. Для начала цены колебались на одном уровне, затем после ряда скачков на месте они резко снизились и показали новый минимум. От этого минимума последовал быстрый отскок, а затем повторение его. Потом опять подскок — уже меньше предыдущего и опять уже третье повторение минимума. Движения цен на рынке вполне очевидно затухают. Складывается уровень поддержки, и цены всё плотней, прижимаются к нему. Как видим эта ГМ уже не похожа на ГМ классического ТА — двойной минимум. Этот минимум повторен ещё и в четвёртый раз и мало того, что повторен — он преодолевается. Опять же по классической теории (и даже по билетам ФКЦБ на получение квалификационного минимума) цены могут вернуться обратно к пробитой линии поддержки. Но нет, по данным компьютера это доказательство того, что цены должны вырасти или хотя бы пока оставаться на линии поддержки. Величина вероятности того, что цены понизятся, совершенно ничтожны. Можно сказать, что цены не провалившись резко вниз с линии поддержки, показали свою готовность к росту. Впрочем, важно отметить, что эта ГМ, как и прочие, не говорит насколько вырастут цены. И будет ли это начало нового подъёма или начало бокового тренда. Эта ГМ предостерегает от продолжения продаж и практически отбрасывает саму вероятность дальнейшего понижения в ближайшее время и фактически предлагает закрыть короткие позиции. Впрочем, конкретные действия зависят от тактики и стратегии выбранной трейдером.
Графическая модель повышения № 4.
Здесь мы видим ГМ в целом сильно напоминающую ГМ классического ТА. Как видно, на графике представлена фигура похожая на модель «двойной максимум». Однако прогноз по этому графику прямо противоположен тому, о чём должен был бы говорить такой двойной максимум.
Мало того, рассматриваемая ниже Графическая модель понижения № 1 весьма сильно напоминает эту же модель.