Меню сайта
Наш опрос
Оцените мой сайт
Всего ответов: 10
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Поиск
Календарь
«  Апрель 2014  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
282930
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Вторник, 26.11.2024, 13:28ГлавнаяРегистрацияВход
    Мой сайт
    Приветствую Вас Гость | RSS
    Главная » 2014 » Апрель » 17 » Взгляд на технический анализ с точки зрения САУ (�
    11:03
     

    Взгляд на технический анализ с точки зрения САУ (�


    Введение

    Чтобы заработать на жизнь, надо работать.
    Но чтобы разбогатеть, надо придумать что-то другое.
    Альфонс Карр

    Если что-то не получается, значит надо стать лучше, увеличить поле своего зрения, посмотреть на вещи по-другому. Иногда это приводит к очень интересным и необычным результатам. Некоторые идеи на первый взгляд кажутся абсурдными… просто “по определению”. К счастью, только на первый взгляд. Действительно, неподготовленному человеку трудно представить, что происходит, к примеру, на околосветовых скоростях. Масштаб, конечно, совершенно другой, но иногда речь пойдет именно о крайностях, имеющих свое практическое применение. Наиболее интересные и необычные результаты обычно и получаются при использовании “необычного”. Речь как раз о том “чем-то другом”.

    Технический анализ успешно развивается на протяжении многих лет. Углубляется понимание протекающих процессов, используются все более сложные свойства и законы. И, что более примечательно, некоторое время назад начали говорить о полностью автоматизированных системах (механических торговых системах). Одновременно развивается теория и практика автоматического управления в технике как предмет научной и инженерной деятельности.

    Логично, что образование и опыт в этих двух областях наводят на идею об их согласовании. Никогда не покидающее чувство поверхностности, желание углубиться в суть процессов – это хорошие дополнительные стимулы. Большинство известных методов, какими бы сложными они ни были, используют достаточно простые свойства.

    Ниже приведено совсем краткое изложение более чем 1,5 лет развития в этом направлении. По большей части теория и некоторые интересные практические методы. Все указанное далее проверено на практике. Целью было показать альтернативный взгляд. Подробнее могу написать позже, если будет интересно.

    Любопытно, что кое-где получилось обобщение существующих законов, но иногда и “взгляд наоборот”. Конечно, можно сказать, что тут дело в том, что техника и финансы – это абсолютно разные вещи. Мне кажется, что у них намного больше общего. Тем более с технической стороны сама теория разработана намного более фундаментально, т.е. не применительно к определенной области и глубже. А эти законы всегда более надежны. Конечно, высокоуровневые принципы здесь редко находят применение. По техническим масштабам огромная дискретность, спрэд – вещи не самые приятные. Основной принцип управления довольно необычный. Но речь именно о фундаментальных законах.

    На мой взгляд, получилось обобщение некоторых всем известных принципов на более широкий класс систем и углубление в ту часть, которая традиционно не затрагивалась (по крайней мере, в моей практике). Это, конечно, никак не уменьшает значимости классических методов.

    Основные положения

    Никто никому не должен верить, как Господу Богу или Его пророку.
    Достаточно просто слушать человека, который заставляет думать.
    Питер Оппенгеймер

    В классике анализ решает задачу предсказания и определения точек входа и выхода. В то время когда позиция открыта, осуществляется ее сопровождение (хеджирование и т.д.). Даже в самой такой формулировке подразумевается высокая дискретность и существование “хороших” и “плохих” движений. Основным предметом анализа является прошлое и присутствует некоторая инерционность в принятии решений.

    Что станет с рынком, если будет создан и получит широкое распространение “Святой Грааль” - вопрос отдельный.

    Движения рынка и польза от них обычно связаны довольно просто. К примеру, в пятницу, 8 августа 2008г., на российском фондовом рынке произошло падение цен большинства ликвидных бумаг на негативном внешнем фоне. Инвесторы чувствуют себя неспокойно.

    Более того, анализ и принятие решений часто представляют две отдельные системы. Аналитик оценивает состояние рынка и предлагает свои рекомендации. Управление сводится к сравнению аналитики из разных источников (в том числе и из собственных), принятие решения открывать или закрывать и сопровождение позиции на основе дальнейшей информации. Обратная связь не предусмотрена или реализована слабо в силу кажущейся абсурдности сведений о состоянии дел трейдера для аналитика. Более того, аналитическая часть распределена и может изменяться.

    Создаваемые конструкции (индикаторы, фигуры и т.д.) как правило, тесно связаны с фундаментальными законами рынка. Как правило, только законами рынка (психология, макроэкономика и т.д.). Встречаются и более общие подходы на подобии Фибоначчи или Эллиота. Но в работе САУ (системы автоматического управления) участвует и множество других фундаментальных законов.

    Все вышеперечисленное – это исторически сложившийся частный случай. Может быть все наоборот.

    Технический анализ сам по себе является совсем не простой областью, эта же часть (управление) – еще сложнее. Отчасти потому, что требует глубоких знаний и опыта как во многих технических областях: нелинейная динамика, вычислительная математика, системный анализ, теория вероятностей и математическая статистика, программирование и пр, так и в области финансовых рынков, инвестиционного анализа и др. Но и награда за это может быть существенно выше.

    Таким образом, управление может быть почти непрерывным (дискретным, конечно, но “всегда в рынке”). Другое дело, что большую часть времени активность может быть низкой. Связь между движениями рынка и пользой от них может оказаться сложной, существенно нелинейной. И совсем не обязательно, что “хорошие” и “плохие” движения рынка для системы связаны с психологией или макроэкономическими процессами (пример будет далее). И может существовать сильная обратная связь, когда идентификация состояния включает рассмотрение данных о достигнутом результате.

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

    Поэтому, с такой точки зрения, анализ непрерывно связан с управлением. И правильней будет говорить именно об управлении, включающем в себя анализ. Далее под системой понимается в совокупности: объект управления, система управления и связи. Под объектом, конечно, подразумевается счет, но происходит это через рынок изменением размеров позиций. Управление курсами и ценами (например, курсов валют одной страны или нескольких, ценами акций одной компании или ее конкурентов и т.д.) – вопрос отдельный.

    Роль анализа, заключающаяся в предсказании, в таком контексте, уменьшается. В крайних случаях - полностью исчезает, и основной задачей становится ответ на вопрос: что делать при любых вариантах развития и к чему это может привести.
    Таким образом, такое абстрагирование приводит к использованию других свойств рынка.

    Обобщение и углубление

    You create your own Universe
    as you go along
    Winston Churchill

    Основное уравнение для системы можно записать так:

    y(i+1)=y(i) + (x(i+1) – x(i))*k(i),


    где y – результат, х – исходный график, i – шаг.

    Оно достаточно очевидно. В момент i позиция открыта с количеством лотов k(i). Следовательно, результат изменяется пропорционально ему. Спрэд пока не трогаю. Можно записать и так:

    dy(i)=dx(i)*k(i)

    k(i) имеет еще и смысл скорости. Вариантов выбора k(i) возможно очень много.

    Казалось бы, что тут можно придумать? Например, это уравнение – всего лишь преобразование одного графика в другой. Результирующий график обычно принимается за equity (без учета спрэда опять же). Это не обязательно так. При открытой позиции результирующий график взвешенно повторяет исходный, т.е. их свойства могут почти соответствовать друг другу. Можно результирующий взять за исходный и обработать его еще раз. Таким образом, эта система может быть многоуровневая. Спрэд при этом учитывается только на последнем уровне. С каждым уровнем нужно оставлять и добавлять нужные свойства и убирать лишние.

    Если тестируется какая-то идея или торговая система и результат получается неудовлетворительным (просадки большие, прибыль очень нестабильна и т.д.), то можно, конечно, пытаться усовершенствовать систему. Но, возможно, этот график чем-то лучше исходного и стоит поработать над ним уровнем выше? Не факт, конечно, но часто получается.

    Недавно посетила идея, что аналогично можно работать над графиками чужих equity. Это открывает множество интересных возможностей. Но этот вопрос тесно связан с развитием рынка инвестиций, доверительного управления и т.д. И это уже другая история.

    Это было вертикальное усложнение или рассмотрение вглубь. Возможно так же и горизонтальное, если использовать несколько параллельных систем. В простейшем варианте одна система компенсирует недостатки другой. Идея далеко не новая. Другое дело, если они взаимозависимы. Кроме всего прочего, такие системы необходимо синхронизировать из-за существования дискретности и спрэда. Об этом ближе к концу.
    В общем случае основное уравнение преобразуется в систему:

    dy1(i)=dx(i)*k10(i)+dy1(i)*k11(i)+dy2(i)*k12(i)+…
    dy2(i)=dx(i)*k20(i)+dy1(i)*k21(i)+dy2(i)*k22(i)+…
    ...

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

    В глубину (вертикально) реальная система только последняя (размер позиции или скорость умножается по всем уровням). Горизонтально реальными могут быть любые. Т.е. некоторые системы можно держать как внутренние, вспомогательные или fake-системы. Свобода действий с ними намного выше. Полезные свойства проявляются, например, когда такая система действует по законам реальной, но с небольшим отклонением и при этом активно присутствует в работе других систем. Например, если есть следящая за ней реальная система.

    Параллельные системы в конечном итоге складываются (или вычитаются) и все можно привести к первому основному уравнению.

    Если две системы складываются и если из результата первой вычесть часть и добавить ее к результату другой, то сумма не изменится и такое действие вполне правомерно. На первый взгляд, делать это совершенно не за чем. Только если нет обратной связи. Когда дальнейшее поведение системы зависит от ее текущего положения, то этот способ может оказаться очень даже кстати (пример далее).

    Теперь несколько слов о преобразовании графиков. Если график идет вверх – хорошо. Если вниз, то всегда можно сделать наоборот и он пойдет вверх. Легко уменьшить депозит можно только используя спрэд или ограниченность депозита, хотя может, есть и еще способы. Или задача сводится к той же, что и увеличить депозит.

    Если график колеблется, то часто его можно развернуть в направленное движение. Зависит от свойства движения. Мне больше нравится приводить сначала именно к такому виду, а затем уже работать с ним.

    Это всем известные тренд и почти флэт. На практике, естественно, все гораздо сложнее: присутствуют много частот, включая низкие.

    Полезное качество: любой график можно привести к любому из двух видов. Другое дело, что свойства получатся не очень привлекательные: трендовое движение с короткими, но большими просадками, колебательное – иногда со слишком большой случайной амплитудой. Но это, если действовать “в лоб”. Полезен уже сам факт такой возможности.

    Еще одно полезное замечание: в промежуточных, внутренних графиках не действуют ограничения, связанные со спрэдом или ограниченностью депозита.
    Рынок несет в себе большую долю неопределенности. Обычно эта неопределенность так же проходит в ваш equity благодаря используемым методам и близости исходного и результирующего графика (один уровень). Смысл всех этих преобразований заключается в том, чтобы всеми способами последовательно с каждым уровнем менять свойства графика с целью уменьшить неопределенность.

    Некоторые приемы


    Кто знает, сколько слов перепробовал Бог,
    прежде чем нашел то, которое сотворило мир.
    Станислав Ежи Лец

    Все описанные здесь приемы – это лишь возможные инструменты, которые не могут работать самостоятельно, но в разных вариациях находят свое применение в сложных системах. Написаны они в качестве примеров, которые представляют скорее крайние случаи. Посередине возможно много больше.

    Следящие системы.

    К слову о жесткой обратной связи. Простейший пример (решение не зависит от движения исходного графика):

    dy(i)=dx(i)*(y - g)*m,

    где m – коэффициент, в данном примере константа; g – задание, может быть константой, может и не быть. С другой стороны, g – это аттрактор (простой, сложные тоже встречаются), т.е. то состояние, к которому система притягивается трендом вниз и флэтом. Она же – точка возможной бифуркации, т.е. размножения дальнейших траекторий движения, если не давать системе задерживаться в этой точке. При движении исходного графика вверх система стремится отойти от свого устойчивого состояния в сторону, на которой находился результирующий график в начале движения.

    Вариаций здесь может быть очень много.

    Если g – константа, то система притягивается к этому положению и только отдельные меры могут ее вывести оттуда. Например, обмен с другими системами (вот пример зачем он нужен), задание в виде синуса с маленькой амплитудой или так:

    dy(i)=dx(i)*|y – g|*m + c,

    где с – какая-то константа. Если с – положительное, то состояний равновесия нет, если отрицательное, то их два: выше и ниже нуля. Отрицательным “c” напрямую не получится сделать колебательную систему с ограниченной амплитудой, проблема – застревание на границах. Когда с - положительное число, то амплитуда не ограничена и часто оказывается слишком большой. Хотя конечно зависит от того, над чем работает такая система и какие дополнительные приемы используются. Но в целом ситуация все равно такая.

    Все это относится к широкому классу следящих систем. К колебательной его части. Стандартный вид примерно такой:


    Другой пример, когда задание не является константой и, к примеру, идет линейно вверх. Тогда большую часть времени система следует за заданием, никогда его не превышает, но имеет огромные просадки. Если поставить take profit и stop loss, то, куда пойдет результат в долгосрочной перспективе, зависит от волатильности и трендов. Во всяком случае, если перевернуть наоборот, то получается один из способов ограничения просадок. Стандартный вид:


    Задание можно выбирать и более сложным образом. Можно брать, например, сам исходный график или график другой системы. Тогда результат достаточно неплохо следует за заданием. Если исходный график и результат вычесть друг из друга, то получится еще одна колебательная система. Вариантов здесь тоже очень много.

    Хорошее направление для работы: пусть задание идет линейно. Далее разными способами (например, путем обмена между исходным графиком и следящими за ним) пытаться увеличить вероятность движения от задания. Большую часть времени система ограничено идет в одну сторону, но редкие сильные противоположные движения это компенсируют. Проблема в том, что они редкие. Тогда можно попытаться сделать несколько таких параллельных систем на основе разных исходных графиков (разные валютные пары, разная предобработка или путем, описанным далее на основе случайных процессов). И добавить сюда синхронизацию для компенсации просадок и спрэда.

    Ограничение просадок может быть крайне полезным свойством.

    Еще одно направление – это две или несколько почти одинаковых систем. Все работают по одним законам, но с небольшими отклонениями в виде вводимого случайного сигнала, например, через скорость. Системы должны стремиться к одному и тому же значению. Тогда в области задания отклонения между ними стремятся к нулю. Вычитая одну из другой можно получить результат от введения случайного сигнала. Не совсем он получается случайным, но идея в целом неплохая.

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

    Обмен информацией

    Вернемся к простому варианту. Если в него добавить минус:

    dy(i)=-dx(i)*(y - g)*m,

    то противоположного графика не получится. Просто действие трендов поменяется местами. Когда первая система (с плюсом) будет отходить от нуля, другая будет к нему приближаться и наоборот. Флэт будет действовать так же.

    Можно немного усложнить. Добавим такой обмен информацией:

    dy1(i)=dx(i)*(k1*y1 + k2*y2 – g)*m,
    dy(i)=-dx(i)*(k2*y1 + k1*y2 – g)*m,

    Если k1 = 1 и k2 = 0, то получаем две отдельные рассмотренные системы.

    Если k1 > 0.5 и k2 < 0.5, то системы так же сходятся, но более медленно (амплитуда колебаний соответственно меньше).

    Если k1 = 0.5 и k2 = 0.5, то получается аналог автоколебаний. Скорость зависит от g. Если g – синус, то и скорость будет синусом. Не обязана колебаться около нуля.

    Если k1 < 0.5 и k2 > 0.5, то система расходится. Колеблется по-прежнему около нуля, но амплитуда возрастает. Причем с ускорением (скорее всего и с производными более высоких порядков). Т.е. если в начале отношение амплитуд соседних колебаний может быть чуть больше единицы, то позднее оно становится сотнями и более. Типичный вид (система состоит из двух подсистем как указано в формуле):


    Для “пуска” можно использовать синус в качестве задания, хотя смысл от него есть только в самом начале. Можно просто задать начальное значение результата одной из систем, отличное от нуля. Она уже никогда не сойдется: положение (y1=0, y2=0) избегается автоматически.
    В самом движении есть и другие полезные свойства.

    Основные плюсы: колебание вокруг нуля и расходимость.

    Сам факт неустойчивости (отношение амплитуд больше чем единица) может быть очень полезным. Кроме того, посмотрите на первое основное уравнение. Вообще интересно, что такое простое преобразование (с k1 и k2) так меняет график.

    Конечно, такое движение – очень сложное и трудно контролируемое. Наверное, здесь можно уже говорить об искусстве управления. Я достиг определенного прогресса в таких процессах, но до реальных систем дело здесь пока не дошло.

    Обратное преобразование

    Если возможно прямое преобразование, то возможно и обратное (в этих условиях):

    dy(i)=dx(i)*k(i),
    dx(i)=dy(i)/k(i).

    Можно сначала сделать прямое (например, к колебательному варианту), подправить его еще одним преобразованием и применить обратное преобразование к новому графику как к предыдущему. Тогда получим модифицированный исходный график в нужную нам сторону.

    Повторюсь, что большая часть этих преобразований - внутренние. Это значит, что ни большие просадки, ни бешеные скорости не пройдут, в конечном счете. Расходящийся график можно ограничить двумя уровнями над нулем и под нулем. Поколеблется и прижмется к одному из них. В таком виде смысла в этом мало, но как пример ограничения подходит. Внутри могут происходить очень странные и непривычные на первый взгляд процессы, но не снаружи. Это как баллистическая ракета: с Земли взлетела, на Землю и вернулась, а по дороге попользовалась преимуществами удаленности от этой самой Земли.

    Случайные процессы

    Кстати, о космосе. Можно еще больше абстрагироваться от рынка, при этом не теряя с ним связь, используя случайные процессы. Первое преобразование будет выглядеть следующим образом:

    dy(i)=dx(i)*k(i),

    где k(i) – случайное (псевдо) число. Например, от -1 до 1. Я предпочитаю использовать дискретный вариант: либо 1, либо -1.

    В результат проходит только волатильность. Остальное – случайно. Почти. Некоторые свойства исходного графика в периоды между принятиями решений тоже проходят. Можно, конечно, случайность добавлять в меньших масштабах, тогда ситуация смешанная.

    Понятия о “хороших” и “плохих” движениях исходного графика здесь сильно меняются.

    Конечно, свойства графика меняются. Например, система, которая продает при движении вверх на 20 пунктов (скорость -1) и покупает при движении вниз, обычно выигрывает примерно столько же на длительном периоде, сколько тратит на спрэд. С таким же графиком этого не будет.

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

    И вообще вполне логично возникает вопрос: а возможно ли в принципе успешно управлять таким процессом, не получиться ли, что на большом интервале вероятности выиграть или проиграть одно количество пунктов будут 50 на 50? Возможно, не получится. Для примера, есть такая функция как модуль. Чисто математически случайный график всегда выше нуля. Работать, как хочется, не будет, но это определяется далеко не только графиком. Т.е. проблемы здесь связаны со случайностью не жестко. Хотя это накладывает массу ограничений, которые, на мой взгляд, оказываются вполне окупаемыми.

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

    Во-вторых, возможность сделать столько исходных графиков сколько надо. Пример был выше: пусть у вас есть система, которая потихоньку ограничено идет вниз и редкое, но сильное движение вверх компенсирует просадку. Тогда имея большое количество таких систем и правильно их синхронизируя можно привести суммарный результат к более нормальному виду. Возможна и успешная параллельная работа систем с другими свойствами.

    В-третьих, намного меньше риска. Промоделировать можно работу хоть на 1000 лет вперед.

    Постоянные переключения, т.е. спрэд – это только кажущаяся проблема. Для этого нужна синхронизация большого количества систем. Всегда можно часть систем “заморозить” на период-два, так чтобы скорость после суммирования не слишком сильно отличалась от предыдущей. Главное, не перестараться. Можно сделать так, что скорость всегда будет равна единице или нулю. Смысла в этом нет. Дополнительные условия в виде приоритета “замороженным” системам и других приемов сделают скорость менее колебательной, но почти не повлияют на работоспособность системы.

    Минусов два, но серьезных. Первый - про волатильность и дискретность - описан выше. Второй - это вероятности движений результирующих графиков. Сложно их сместить в те значения, когда можно работать. Ситуацию улучшает то, что существуют методы, позволяющие существенно увеличить прибыль, если система хоть чуть-чуть оказывается прибыльной. Хотя те критические значения, наверное, в большой степени определяются развитием методов.

    Пару слов о дискретности принятия решений. Иногда она, кстати, даже помогает. Я часто проверяю все системы на жестком периоде в 1,5 часа. Потом уже корректирую под свойства системы, делаю его изменяющимся в зависимости от ситуации. Лучше моменты для возможных изменений скорости привязывать к какой-то дискретности, кроме исключительных случаев. Это поможет уменьшить потери на спрэд, потому что если параллельных систем работает много, то в итоге их скорости суммируются и суммарные потери оказывается намного меньше, чем сумма потерь отдельных систем.

    Такие приемы как take profit и stop loss, как правило, лучше использовать на последних уровнях. На первых этапах лучше использовать непрерывные преобразования.

    Ну и, наконец, наблюдая за действиями таких систем "снаружи" крайне сложно понять логику их работы. Особенно со случайными процессами внутри.

    Заключение

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

    П.Л. Капица

    Здесь я показал некоторые крайние случаи (использование исключительно обратной связи, использование псевдослучайных графиков и т.д.), которые оказываются вполне жизнеспособными. Если существует столько возможностей даже в них, то промежуточных вариантов еще больше. Свобода действий при этом огромна, разных вариантов возможно большое количество. То, что я показал – это лишь очень маленькая часть из всего возможного.

    Я не писал о разных небольших особенностях, без которых не обойтись в таких крайностях. Например, если не очень аккуратно задать параметры или не предусмотреть отдельных мер, то дискретность может привести к тому, что следящая система перейдет через задание (чего не предусматривалась) и уйдет на большое расстояние от него. А такая граница, возможно, определяла просадку. Особенно хорошо это проявляется при работе с расходящимися процессами.

    На фоне развития информационных технологий, увеличения ликвидности, снижения спрэдов и комиссий такие методы могут только увеличивать свое значение.

    Конечно, работать с такими вещами очень не просто, но и перспективы неплохие. Много раз мне казалось, что все это невозможно. В результате изменялись точки зрения, находились новые возможности, принципы, приемы. И к счастью все складывается довольно благополучно. Хотя не могу сказать, что успел достигнуть большого успеха. 1,5 года - все-таки не очень большой срок для таких вещей (сложных на первый взгляд) и для меня это было большую часть времени хобби, которое после появления все новых результатов давно уже стремится к профессиональной деятельности. Кстати, с удовольствием поработал бы в команде. Но это уже другая история. Работать и работать, творить и творить, становиться лучше и лучше.

    С наилучшими пожеланиями.

    Просмотров: 178 | Добавил: bridented | Рейтинг: 0.0/0
    Всего комментариев: 0

    Бесплатный конструктор сайтов - uCozCopyright MyCorp © 2024