Archive for Ноябрь, 2008

В. Н. Лиховидов. Фундаментальный анализ мировых валютных рынков

Ноябрь 19th, 2008

Самое первое издание на русском языке по фундаментальному анализу рынка форекс (forex). Лиховидов- блестящий специалист в области фундаментального анализа.

В.Н. Лиховидов. Фундаментальный анализ мировых валютных рынков

Лиховидов раскрывает суть экономических индикаторов, влияющих на рынок форекс (forex). Инфляция, процентные ставки, денежные агрегаты, индекс потребительских цен и описание многого другого можно найти в книге, которую написал Лиховидов.
В отличии от книги Стив Нисон. Японские свечи: графический анализ финансовых рынков, Лиховидов исследует саму суть процесса. Как альтернативу книге В. Н. Лиховидов. Фундаментальный анализ мировых валютных рынков, рекомендуют ещё такую книгу по фундаментальному анализу.

Прогнозирование финансовых рынков. Нейросети. Однослойный персептрон.

Ноябрь 19th, 2008

В данной публикации «Прогнозирование финансовых рынков. Нейросети. Однослойный персептрон.» хочу продемонстрировать работу самой простой нейронной сети — однослойный персептрон к прогнозирование финансовых рынков. Что такое однослойный персептрон (есть мнение, что правильнее перцептрон)?
Автор персептрона (F.Rosenblatt, 1957) рассматривал своё изобретение, как некоторую модель работы мозга. Но не будем останавливаться на биологических особенностях нейросетей.
Итак, однослойный персептрон. Схема персептрона представлена ниже.
Схема однослойного персептрона
x[k] — входные элементы (если говорить о теме прогнозирование финансовых рынков ими могут выступать цены, значения индикаторов, макроэкономические показатели и т.д.);
w[k] — веса (это те элементы, которые необходимо определить);
S=x[1]*w[1]+x[2]*w[2]+…+x[n]*w[n];
f — это функция активации (видов функций активации очень много, самый простой пример: если z>0, то f(z)=1, если z<0, то f(z)=0);
Y=f(S), это выход сети (если говорить о теме прогнозирование финансовых рынков, то выходами могут выступать как и в случае входов — цены, значения индикаторов, макроэкономические показатели и т.д.);
b — это сдвиг (во многих случаях его принимают равным 0, сделаем так и мы).
Теперь о том, как использовать эту схему для прогнозирование финансовых рынков. Замечу, что это не совсем статистическое прогнозирование цен. В данной публикации рассматриваются котировки форекс (forex) — дневные цены закрытия EURUSD.
1. Берем данные и нормируем. В нашем случае (с EURUSD) цены закрытия обрабатывались функцией g(Close[j])=1/(1+e^(-Close[j]))=x[j]. Это нужно для того, чтобы данные были в интервале [-1;1].
2. Разбиваем полученные значения на 2 части — обучающую выборку и проверочную (в случае с EURUSD обучающая выборка составила 29 значений). Определяемся с количеством элементов, подаваемых на вход сети, то есть с количеством иксов (в примере выбрано 10 иксов). Количество весов равно количеству иксов.
3. Присваиваем весам случайные значения (по своему скромному опыту — лучше брать сначала 0).
4. Считаем S.
5. Считаем Y. Как писалось выше Y=f(S). Для EURUSD в качестве f выступала уже известная функция g(S)=1/(1+e^(-S)). Получили некоторое значение Y. Так как нас интересует значение Y, которое является нормированной ценой закрытия, на 11-м шаге (наш прогноз), то мы сравниваем полученное Y на 11-м шаге с реальной (известной нам) нормированной ценой закрытия на 11-м шаге. Безусловно, что вначале они не совпадают. Поэтому мы берём и считаем ошибку путём вычитания из реального значения полученного. Дальше с теми же весами «смещаемся вправо» на один шаг и рассчитываем S=x[2]*w[1]+x[3]*w[2]+…+x[11]*w[10], дальше Y. Потом снова считаем ошибку прогноза на 12 шаге. И так продолжаем до конца обучающей выборки (то есть до 30 элемента). Получили 19 ошибок, которые необходимо просуммировать и поделить на 19 (эта «конечная» ошибка запоминается).
6. Дальше, по формуле w[p+1]=w[p]+h*e(p)*x(p) происходит коррекция весов.
e(p) — нам известно (это «конечная» ошибка, посчитанная на предыдущем шаге), w — это веса (нужно отметить, что порядковые номера остаются неизменными, то есть от 1 до 10, тут показано, что p+1 — это значит все 10 значений изменились, то есть p — это счётчик итераций), x[p] — это те же иксы с порядковыми номерами от 1 до 10 в случае если прогноз на 11-м шаге не совпал с реальным значением (если произошло совпадение, то иксы сдвигаются «вправо» на один шаг), h — число, которое влияет на скорость обучения (выбирается произвольно в зависимости от ситуации — в случае с EURUSD h=0,4). Итерация завершена.
7. Переходим на шаг 4. Если на шаге 5, полученная «конечная» ошибка больше чем ошибка на предыдущей итерации, то процесс обучения заканчивается и искомыми весами будут веса, полученные на предыдущей итерации. Таким образом получаем 10 весов и нам известно 10 иксов, считаем S, а потом считаем Y — это и будет наш прогноз на один шаг.
Вернёмся к нашему конкретному примеру прогнозирование финансовых рынков, а в частности — EURUSD. Была написана программка, которая реализует вышеописанное и ниже представлен график из программки с двумя кривыми — красной (прогноз на один шаг) и зелёной (реальные значения).
Прогноз и реальное значение EURUSD
Как видно из графика, нейросеть на основе однослойного персептрона, мягко говоря, не очень хорошо делает прогнозирование финансовых рынков.
Вывод: модель в рассмотренном формате (когда брались только цены закрытия и вышеизложенный метод коррекции весов) непригодна для прогнозирование финансовых рынков.
От себя добавлю. Как вариант, для обучения (подбора весов) однослойного персептрона скорее всего лучше использовать генетические алгоритмы.

Стив Нисон. Японские свечи: графический анализ финансовых рынков

Ноябрь 18th, 2008

На мой взгляд Стив Нисон. Японские свечи: графический анализ финансовых рынков — самая полезная книга по техническому анализу.
В книге Стив Нисон подробно описывает японские свечи и правила применения их комбинаций. Наполнена большим числом примеров (в основном на американских рынках).

Стив Нисон. Японские свечи: графический анализ

В первой части книги Стив Нисон описывает более 50 различных свечей и их комбинаций. Во второй части Стив Нисон рассказывает об использовании японских свечей с «западными» аналитическими инструментами.
Купить книгу Стив Нисон. Японские свечи: графический анализ финансовых рынков.
P.S. А самая полезная книга по психологии для трейдеров — это Александр Элдер “Как играть и выигрывать на бирже”

Что такое корреляция, коэффициент корреляции и корреляционная матрица?

Ноябрь 17th, 2008

Во многих публикациях аналитики финансовых рынков пишут что-то типа: «…доллар коррелирует с ценами на нефть…». Что же значит слово «коррелирует»? Это слово является производным от слова корреляция. Если говорить по простому, то корреляция — это взаимосвязь между двумя величинами. То есть можно перефразировать фразу выше: «…доллар взаимосвязан с ценами на нефть…».
По определению, корреляция — это статистическая или вероятностная взаимосвязь двух и более величин. Корреляция имеет некоторую меру, которой служит коэффициент корреляции. Коэффициент корреляции может принимать значения от -1 до 1. Если значение, которое принимает коэффициент корреляции около +1, то говорят, о сильной положительной корреляции между двумя величинами (то есть два графика цен очень похожи и цена на одном движется почти синхронно с ценой на другом). Если значение, которое принимает коэффициент корреляции около -1, то говорят, что корреляция отрицательная между двумя величинами (то есть два графика цен почти полностью противоположны и цены на графиках движутся в противоположных направлениях: на одном — вверх, а на другом — вниз). Если значение, которое принимает коэффициент корреляции около 0, то в таком случае корреляция между двумя величинами отсутствует (то есть заметить хоть какую нибудь взаимосвязь между графиками невозможно). Каким образом рассчитывается коэффициент корреляции?
Коэффициент корреляции получаем следующим образом:
Коэффициент корреляции
где
X, Y — собственно ряды;
то, что в знаменателе — произведение корней дисперсий рядов;
Ковариация
n — длина ряда;
то, что отнимается от X (читается «мю») — среднее значение ряда Х;
то, что отнимается от Y — среднее значение ряда Y.
Так рассчитывается коэффициент корреляции для двух рядов. Что же делать если рядов больше? Каким образом использовать коэффициент корреляции в этом случае? Для этого существует корреляционная матрица, элементами которой являются взаимные корреляции между переменными (т.е. масив, каждый элемент которого — коэффициент корреляции). Для трёх рядов (например X, Y и Z) корреляционная матрица вычисляется следующим образом:
Корреляционная матрица
где
Корреляция
Так как под рукой были только котировки с форекса, то приведу пример корреляционной матрицы, в расчет которой брались дневные значения цен закрытия (каждый ряд — 2059 значений).
Корреляционная матрица для котировок с форекса
По данной корреляционной матрице видно, что, например, между AUDCHF и AUDCAD корреляция практически нулевая (коэффициент корреляции = -0.08), то есть взаимосвязи между дневными графиками нет, несмотря на присутствие австралийского доллара в обоих парах. Между EURCHF и CHFJPY довольно большая отрицательная корреляция (коэффициент корреляции = -0.84), то есть когда EURCHF идёт вверх, CHFJPY — вниз (можно сказать, что с вероятностью 84%). Между AUDUSD и CHFJPY довольно большая положительная корреляция (коэффициент корреляции = 0.76), то есть когда AUDUSD идёт вверх, CHFJPY также идёт вверх (можно сказать, что с вероятностью 76%).
P.S. Корреляция лишь показывает взаимосвязь, а не прогнозирует финансовые рынки.

Программка Sectors

Ноябрь 16th, 2008

Программка для тех, кто торгует интрадэй (и не только) на NYSE (Нью-Йоркской Фондовой Бирже). Будет особо полезна новичкам, кто еще не выучил все сектора и акции, которые в них входят. Программка Sectors предназначена для быстрого поиска акций NYSE по сектору и наоборот (т.е. акций, которые между собой по теории коррелируют). Ниже приведён скриншот интерфейса))
Программка Sectors
Теперь небольшое описание.
Программа состоит из 3-х блоков. Самый верхний — название секторов, нижний — название акций, которые входят в сектор. Блок, расположенный левее кнопки «Run» — для пользователя (дальше будем называть его «основной»). Выделю два основных способа использования программы.
1) Если необходимо найти акции, которые входят в определенный сектор, то выбираем в верхнем блоке интересующий сектор и нажимаем «Run» (при этом основной блок должен быть пустым). В нижнем получим список акций (буквы со знаком доллара — это аббревиатура сектора).
2) Если необходимо найти сектор по акции, то вбиваем в основной блок название акции и получаем в верхнем блоке название сектора, в который входит акция, а в нижнем — список акций этого сектора. Важно: вбивать в основной блок акции нужно только большими буквами!
Скачать программу можно тут. В программе возможны мелкие ошибки. При нахождении ошибок или необходимости дополнения пишите.

Индикатор Параболик (Parabolic Sar)

Ноябрь 13th, 2008

Индикатор Parabolic SAR (Параболик Sar) был разработан в 1976 году Уэллесом Уилдером. Индикатор параболик Sar предназначен для работы на трендовых рынках. При восходящем тренде индикатор параболик Sar располагается ниже цен, при нисходящем — выше. Когда цена пересекает линии параболик SAR, то индикатор разворачивается и уже следующие значения параболик Sar будут находиться по другую сторону от цены. Это событие считают сигналом как минимум к окончанию, а то и к развороту тренда.
Ниже приведён дневной график EURJPY (форекс) и индикатор параболик Sar.
Индикатор параболик Sar
Расчёт индикатора параболик Sar происходит для длинных и для коротких позиций.
Длинная позиция: SAR (i) = ACCELERATION * (HIGH (i — 1) — SAR (i — 1)) + SAR (i — 1)
Короткая позиция: SAR (i) = ACCELERATION * (LOW (i — 1) — SAR (i — 1)) — SAR (i — 1)
где:
SAR (i — 1) — значение индикатора параболик SAR за предыдущий период;
ACCELERATION — фактор ускорения;
HIGH (i — 1) — максимальная цена за предыдущий период;
LOW (i — 1) — минимальная цена за предыдущий период.
Основное предназначение индикатора параболик Sar в трейдинге — это определения уровня Stop Loss. Во многих торговых системах индикатор используют в качестве трейлинг стопа.
P.S. Не менее популярным индикатором является индикатор Pivot Point, который можно скачать на блоге.

Торговые каналы в трейдинге. Часть 1.

Ноябрь 12th, 2008

Одним из самых известных способов торговли является торговля в каналах. В данном выпуске рассмотрим самые простые, с точки зрения построения, виды торговых каналов. В зависимости от тренда, существуют следующие виды и способы построения торговых каналов.
1. При бычьем тренде торговый канал строится следующим образом — через два локальных минимума проводится прямая вверх (её же можно назвать линией тренда и линией поддержки) и параллельно ей прямая, соединяющая локальные максимумы. Ниже приведён график золота с изображением торгового канала при бычьем тренде.
Торговый канал при бычьем тренде
2. При медвежьем тренде торговый канал строится следующим образом — через два локальных максимума проводится прямая вниз (её же можно назвать линией тренда и линией поддержки) и параллельно ей прямая, соединяющая локальные минимумы.
3. При флэте канал можно строить как первым так и вторым способом. Ниже приведён график золота с изображением торгового канала при флэте.
Торговый канал при флэте
Выделяют два основных способа проведения каналов — через цены закрытия и через минимумы/максимумы.
При торговле в каналах, Stop Loss размещают за линией канала на расстоянии, равном 10% от ширины канала (при бычьем тренде — под нижней линией, при медвежьем под верхней). Существует два варианта размещения Take Profit. Первый — в средине канала (так как средина канала считается уровнем сопротивления) второй — возле противоположной линии (при бычьем тренде — под верхней линией, при медвежьем под нижней).