Торговля от уровней: стратегии торговли на Форексе. Алгоритмы торговли на бирже
Торговля от уровней - проверенная стратегия заработка на Форекс
Сейчас в интернете, можно найти очень много различных стратегий торговли на Форекс, фондовом рынке, на любых торговых активах — от валют и биржевых акций до бинарных опционов. Большинство торговых стратегий использует в своей основе торговлю от уровней, но с комбинированием дополнительных параметров. Ими могут быть трендовые линии, каналы, индикаторы, объемы открытых позиций трейдеров, периоды торговых сессий и многие другие.Профессиональные трейдеры на финансовых рынках используют торговлю от уровней без каких-либо дополнительных индикаторов, объемов, каналов, трендовых линий и других элементов. Ниже предоставляется простой, и в то же время действенный алгоритм по торговле от уровней.
Алгоритм торговли от уровней
Каждая торговая стратегия состоит из многих параметров, таких как — каким лотом торговать на 1000$, какой стоп-лосс и тейк-профит выставлять, в какое время я торгую, что делать когда позиция в прибыли, переношу ли безубыток, запись сделок и другую информацию при ведении торговли.
Углубленный алгоритм писать не станем, а приведем лишь базовые критерии для его составления. Со временем, его можно расширять, корректировать и «подгонять» под рынок.
Основные критерии составления торгового алгоритма и плана:
- Для торговли и анализа использую только один таймфрейм — Д1.
- Ищу уровни по закрытиям/открытиям рядом стоящих бычьей и медвежьей свечах.
- Определяю направление тренда на графика Д1 (остальные не смотрю).
- Жду когда цена подойдет к одному из определенных уровней.
- Ожидаю закрепление цены над, под уровнем. При закреплении цены над уровнем — цена пойдет вверх, под уровнем — вниз.
- Определяю разворотную свечную модель после закрепления. Является дополнительным сигнал для входа.
- Если разворотной свечной модели нет — пропускаю данную сделку.
- Открываю позицию при условии, что стоп-лосс находится за уровнем и за хвостами разворотной свечной модели.
- Стоп-лосс равен 1% от депозита или меньше. Если стоп-лосс больше 1% — не вхожу в позицию.
- Тейк-профит выставлять на определенных ранее уровнях.
- Тейк-профит должен быть равен не менее суммы двух или трех стоп-лоссов. Чем больше, тем лучше.
- После установки ордера, закрываю терминал и ожидаю когда он отработает.
Вот и все! Простой и понятный алгоритм для ведения торговли на бирже, который поможет Вам зарабатывать на Форекс. Следуйте его правилам, ведите дневник трейдера, анализируйте свои сделки и тогда, сразу же начнется успешная торговля.
Важно понимать, что точное и более правильное определение уровней и вход в сделку, придет только с практикой.
Рекомендуем начинать торговлю на бирже сбездепозитных бонусов, которые раздают брокеры своим новым клиентам для старта их торговой деятельности.
1. Правильный поиск уровней для прибыльных входов
Как правильно находить торговые уровни на графике:
Поиск торговых уровней на графикеИщем торговые уровни по закрытиям/открытиям по одинаковой цене, тел рядом стоящих бычьей и медвежьей свечах.
Наглядно смотрите на рисунке:
2. Определение разворотной свечной модели
Подробно узнать обо всех свечных моделях, можно в стратегии Прайс Экшн. Ниже приведены наиболее часто встречающиеся на финансовых рынках основные разворотные свечные модели, или как многие трейдеры называют их — паттерны.
Разворотные торговые графические модели3. Использование дополнительных элементов при торговле от уровней
Дополнительные сигналы для точек входа, профессиональные трейдеры практически не используют. Начинающие трейдеры, могут дополнять сигналы точек входа найденных на графике, с помощью индикаторов, объемов и других торговых инструментов доступных в Метатрейдере.
Рекомендуется комбинировать торговлю от уровней с фундаментальным анализом, особенно с важными экономическими новостями.
На каких финансовых инструментах работают торговые уровни?
Торговля от уровней работает на всех финансовых рынках — на валютных парах Forex, на акциях, фьючерсах, облигациях и опционах фондового рынка. Поэтому, торговля от уровней, является универсальной стратегией трейдинга для всех финансовых рынков.
Если все будут торговать уровни, стратегия перестанет работать?
Торговля от уровней всегда работала, работает и будет работать. Но при условии, что трейдер придерживается манименедмента и риск менеджмента. То есть риск в каждой сделке не превышает 1% (стоп-лосс=1% от депозита), а тейк-профит больше стоп-лосса минимум в два раза. При таких условиях, торговля от уровней будет приносить прибыль.
Всем, кто решит торговать по данной торговой системе, рекомендую начинать вести торговлю сразу на реальном торговом счете на бездепозитные бонусы от брокерских компаний!
Торговля на демо-счете, предназначена для знакомства с торговым терминалом, но не для «обкатки» торговых стратегий, так как котировки на демо и реальном счете сильно отличаются и не соответствуют друг другу. Для отработки своих торговых навыков, нужно использовать только реальные счета, к примеру центовые торговые счета (торговать можно даже из 1$ в таких брокерах —Alpari,InstaForex,RoboForex) или начать торговлю вообще без средств на без депозитные бонусы брокеров.
Видео как торговать уровни от Александра Герчика
Контроль своих торговых рисков в трейдинге — самая прибыльная формула успеха на Форекс!Не превышайте риск в каждой сделке более чем на 1% от своего депозита.
В трейдинге успех достигается только на длинной дистанции. Каждый успешный трейдер — марафонец, а не спринтер! Разрабатывайте свою стратегию, уменьшайте риски и придерживайтесь дисциплины на всем промежутке своего трейдинга. Только таким образом сможет сформироваться личность профессионального трейдера. Желаю успехов!
ТОП-3 лучших Форекс брокеров
invest4net.ru
Торговая стратегия Форекс | Алгоритм торговли
В основном свое время в трейдинге я уделяю менеджменту портфеля акций, но частенько бывают дни когда на валютном рынке Форекс появляются классные возможности. Алгоритм торговли именно в такие дни будем разбирать ниже. И я сейчас говорю не про те ситуации, в которых что-то где-то пересеклось))) а про реальное движение денег в валюте.
Основная масса так называемых торговых стратегий форекс, представленных в интернете, основывается на чьих-то субъективных домыслах и индикаторах тех анализа. Эти основания ничего общего с рынком не имеют, и результаты по таким стратегиям всегда будут иметь случайный характер, а люди всегда будут удивляться: почему это вдруг их стратегия перестала работать? Наверное рынок поменялся и ее нужно оптимизировать. Обращаюсь к таким людям, извините, что немного с издевкой: «А вы хоть знаете, что конкретно в рынке поменялось?»
Есть абсолютно конкретные параметры торговых инструментов:
- ликвидность
- волатильность
- шаг цены
- гарантийное обеспечение (срочный рынок)
- и т.п.
Все эти параметры должны учитываться абсолютно каждый раз при совершении очередной сделки. При этом основной алгоритм рассуждений и собственно сама стратегия интрадей трейдинга на Форекс НЕ МЕНЯЮТСЯ. Ниже я расписал весь этот алгоритм. Ссылки на результаты торговли по этой стратегии приведу в конце статьи.
Алгоритм торговли на Форекс
В силу своей неповоротливости крупный капитал оставляет очень яркие следы. Но обо всем по порядку…
1. Волатильность валютной пары
Первый и самый важный момент заключается в оценке волатильности валютной пары. Не смотря на важность, процесс достаточно прост — достаточно будет сравнить волатильность текущего дня со средней волатильностью за предыдущие 10 — 20 дней.
Торговлю целесообразно вести в день когда вола ниже средней. Во-первых, в такой день мы имеем хорошее соотношение риск/прибыль, а во-вторых, проф участники формируют позицию именно на низкой волатильности. Если вола будет выше среднего значения, все прибыли и убытки будут иметь случайный характер, и ни одна стратегия не поможет в этом случае.
См. статью «Расчет волатильности»
2. Определение уровня лимитного покупателя/продавца
Следующим этапом необходимо обозначить уровень, на котором стоит заявка с большим объемом (определяется на 5-10 минутном графике). Напоминаю, что речь идет не о биржевом стакане, а о графике, именно на графике «печатается» уровень лимитного покупателя/продавца (см. статью «Структура рынка»). Если этот уровень определить невозможно, то и делать в рынке тогда нечего!
Против лимитной заявки входить в рынок НЕЛЬЗЯ! Это равносильно спору трейдера и ФРС по поводу будущего американского Доллара. По сему ОЧЕНЬ не рекомендую торговать пробой лимитной заявки на Форексе. Поверьте, у того кто эту заявку поставил денег больше чем у всех частных трейдеров вместе взятых, и он не позволит кому-то безнаказанно их отобрать. Другими словами: если вы видите крупную лимитную заявку на продажу, то покупать в этот день нельзя. Заметьте, ПОКУПАТЬ НЕЛЬЗЯ. Но это не значит, что продавать можно!
Так же определить уровень лимитной заявки помогает анализ объемов с фьючерсных рынков, представленных в горизонтальном срезе (профиль объема/профиль рынка). Используя эти данные, можно наблюдать конкретные ценовые уровни где происходит так называемая загрузка/разгрузка дня или же более крупного периода. Помимо этого, определив фазу рыночного инструмента мы можем определить не только уровень загрузки, но и вероятные цели движения. Рынок движется от объема к объему, или же немного перефразируя: к месту с большой потенциальной ликвидностью, пролетая участки с низкой ликвидностью.
С определением «лимитки» могут возникнуть некоторые сложности у трейдеров, не имеющих знаний по ценообразованию на рынке и навыков торговли каким-либо из биржевых инструментов (акции, фьючерсы, опционы). Однако, при правильном развитии эти сложности будут временными.
3. Входит или выходит?
После нахождения крупной лимитной заявки нужно определить: входит проф участник при помощи этой заявки или выходит из рынка.
Самой распространенной стратегией крупнейших банков является Арбитраж между валютой и фьючерсом на эту валюту. По этому существует очень жесткая корреляция межу количеством открытых позиций по фьючерсу и количеством открытых позиций по базовому активу (валютной паре). А данные по количеству отрытых позиций (открытому интересу, open interest) публикуются на чикагской товарной бирже СМЕ.
Если вы наблюдаете рост открытого интереса за день формирования лимитной заявки, значит вероятнее всего это заявка на вход в позицию. Открытый интерес должен не просто расти, показатель Change должен быть больше среднего положительного дневного изменения открытого интереса за последний квартал. Если же этот показатель и вовсе отрицательный, значит капитал выходит из позиций.
Важно!!! Если капитал выходит из рынка, то и трейдеру в нем делать НЕЧЕГО! Все движения будут корявыми и иметь случайный характер.
4. Направленные позиции по опционам
Я подробно раскрывал эту тему в статье «Опционы. Направленная торговля». Применимо же к направленной внутридневной торговле на форекс нужно быть внимательным к возможным разногласиям мнения опционных трейдеров и ваших рассуждений, сформированных до сего момента. Я имею в виду следующее: если при низкой волатильности вы нашли действительно хорошую лимитку, формирующую позицию крупного игрока (предположим на покупку), НО при анализе опционных позиций видите сильную активность на Put-ах, то открывать позицию не следует вообще (ни Лонг, ни Шорт)!
Конечно же другой разговор когда опционные трейдеры солидарны с вашими рассуждениями. В таком случае правильное определение направления движения цены практически гарантировано. Более того появляется возможность достаточно точно прикинуть уровень, на котором целесообразно поставить профит, или частично выйти из позиции.
5. Расчет потенциала
В сети полно выражений типа: «главное короткий Стоп», «вести расчеты от Стопа» и т.п. Это не совсем верно. Главное не то, чем вы рискуете, а то, ради чего вы этим рискуете! Прежде чем соваться в сделку нужно определиться где вы будите из нее выходить. Оправдан ли риск? Реально ли ждать движение цены до обозначенного уровня? Иначе придется получать Стопы, хоть и короткие, но за то на постоянной основе.
Для расчета потенциала в интрадей трейдинге используется все та же Волатильность, но на сей раз не Историческая а Подразумеваемая. Очень подробно расписан процесс расчета Подразумеваемой волатильности в статье «Расчет волатильности». Выйти из позиции нужно будет при 80-90% от значения подразумеваемой волы. Этого достаточно, чтобы закрывать трейды с соотношением от 1 : 2 до 1 : 10.
6. Точка входа и размер объема в позиции
И вот только после проделанной в первых пяти пунктах работы можно произносить вслух слова «Точка входа». До этого момента вы уже должны четко понимать текущее состояние торгового инструмента и направление движения, в котором хотите принять участие. Остается только ответить на вопросы: Когда? и Сколько?
Сразу отсекайте торговлю в «тухлое» время (до открытия Европы). Крупные капиталы, которые мы ищем приходят в рынок где-то за час до открытия европейской сессии, раньше в рынке ДЕЛАТЬ НЕЧЕГО (конечно если у вас нет еще вчера открытых позиций, перенесенных на сегодня). Самые классные условия для входа возникают в момент перестановки лимитной заявки на более высокий (в случае покупки) или более низкий (в случае продажи) уровень. В трейдерском жаргоне это действие называется Стэп.
Лучше когда Стэп виден на 5-минутном графике, но бывают случаи, когда приходится опускаться на минутный и даже тиковый (настраивается в ТОСе).
Непосредственно перед тем как нажать кнопку в терминале нужно рассчитать объем, которым вы будите входить в позицию. Помните, при системном трейдинге риск в каждой сделке должен быть одинаковым (см. статью «Стабильная торговля»). Подготовьте заранее табличку, в которой укажите валютные пары и объем позиции в зависимости от количества пунктов до стопа (у меня есть Excel-файл для подобных расчетов). Со Стопом тут все просто — его нужно спрятать за лимитную заявку. Думаю при изучении примеров трейдов будет более понятно.
Немного подытожим
Реально правильный и взвешенный трейд на Форексе можно совершить только последовательно ответив на следующие вопросы:
- присутствуют ли условия для работы проф участника?
- по какой цене стоит его лимитная заявка?
- входит он в рынок или выходи из него?
- как действуют участники срочного рынка?
- какой потенциал у ожидаемого движения?
- когда и каким объемом войти в позицию и когда из нее выйти?
Собственно ответы на эти вопросы и перечислены в представленном выше алгоритме торговли. По другому ответить на них не получится, как и оставить хоть один из вопросов без ответа. Поэтому я не понимаю, что делает в рынке трейдер с разрисованными графиками, и что показывают ежедневно появляющиеся новые «сверхточные» индикаторы)))
И так… к нашим баранам… Если тема реально интересна, могу предложить помощь в изучении. Есть более 20 часов видео в моем исполнении (детально по каждому пункту, со всеми нюансами и пошаговыми действиями), а так же просто бешеное количество доп материалов включая готовые Excel-файлы со всеми расчетами (нужно только подставить текущие данные). При усердном подходе изучить материал и отработать необходимые навыки реально за 1 — 2 месяца даже для человека вообще без опыта в рынке.
Несколько занятий по данному алгоритму торговли есть в открытом доступе ЗДЕСЬ.
Результаты торговли по изложенной выше торговой стратегии форекс можно найти в следующих статьях:
tradersblog.ru
насколько эффективно машинное обучение / Блог компании ITI Capital / Хабр
В нашем блоге на Хабре мы публиковали адаптированные переводы материалов из блога The Financial Hacker, посвященные вопросам создания стратегий для торговли на бирже. Ранее мы обсудили поиск рыночных неэффективностей, создание моделей торговых стратегий, и принципы их программирования. Сегодня речь пойдет об использовании подходов машинного обучения для повышения эффективности торговых систем.
Первым компьютером, выигравшим мировое первенство по шахматам стал Deep Blue. Это было в 1996 году, и прошло еще двадцать лет, прежде чем другая программа, Alpha Go, сумела победить лучшего игрока в Го. Deep Blue был модель-ориентированной системой с вшитыми правилами игры в шахматы. AplhaGo — это дата-майнинговая система, глубокая нейронная сеть, натренированная с помощью тысяч партий в Го. То есть для того, чтобы сделать шаг от побед над людьми-чемпионами в шахматах, к доминированию над топовыми игроками в Го понадобилась не улучшенная железка, а прорыв в области программного обеспечения.
В текущей статье мы рассмотрим применение подхода дата-майнинга к созданию торговых стратегий. Этот метод не учитывает рыночные механизмы, он просто сканирует ценовые кривые и другие источники данных для поиска предиктивных паттернов. Машинное обучение или «искусственный интеллект» нужны для этого не всегда. Напротив, очень часто, наиболее популярные и прибыльные методы дата-майнинга работают без всяких рюшечек в виде нейронных сетей или поддержки векторных методов.
Принципы машинного обучения
Обучаемому алгоритму «скармливают» образцы данных, обычно каким-то образом выделенных из исторических биржевых цен. Каждый семпл состоит из n переменных x1… xn, которые обычно называют предикторами, функциями, сигналами или, проще, входными данными. Эти предикторы могут быть ценами последних n баров на графике цен или набором значений классических индикаторов, да любыми другими функциями от ценовой кривой (бывают даже случаи, когда в качестве предикторов для нейронной сети используют отдельные пиксели графика цен!). В каждом семпле также обычно содержится некая целевая переменная y, например, результат следующей сделки после анализа семпла или следующее движение цены.В литературе y часто называют ярлыком или целью (objective). В процессе обучения, алгоритм учится предсказывать целевую y на основе предикторов x1… xn. То, что система «запоминает» в процессе, хранится в структуре данных под названием модель, которая специфична для конкретного алгоритма (тут важно не путать это понятие с финансовой моделью или модель-ориентированной стратегией). Модель машинного обучения может быть функций с правилами предсказаний, записанной с помощью кода на C, сгенерированном процессом обучения. Или это может быть набор связанных весов нейросети:
Обучение: x1… xn, y => модельПредсказание: x1… xn, модель => y
Предикторы, функции или как вы хотите их назвать, должны содержать информацию, достаточную для генерации предсказаний о значении целевого y с определенной точностью. Также они должны соответствовать двум формальным критериям. Во-первых, все значения предикторов должны находиться в одном диапазоне, например -1… +1 (для большинства алгоритмов на R) или -100… +100 (для алгоритмов на скриптовых языках Zorro или TSSB). Так что перед отправкой данных в систему понадобится их нормализация. Во-вторых, семплы должны быть отбалансированы, то есть равномерно распределены по значениями целевой переменной. То есть у вас должно быть одинаковое число семплов, приводящих к положительному исходу, и проигрышных наборов. Если этим двум требованиям не следовать, то получить хорошие результаты не удастся.Алгоритмы регрессии генерируют прогнозы о численных значениях, вроде магнитуды или знака следующего ценового движения. Алгоритмы классификации предсказывают количественные классы семплов, например, предшествуют ли они получению прибыли или потере средств. Некоторые алгоритмы, вроде нейронных сетей, деревьев принятия решений или метода опорных векторов могут быть запущены в обоих режимах.
Существуют также алгоритмы, которые могут научиться выделять из семплов класса без необходимости наличия целевого y. Это называется неконтролируемым обучением, в отличие от контролируемого с использованием цели. Где-то между этими двумя методами располагается «подкрепляемое обучение» (reinforcement learning), при котором система тренируется с помощью запуска симуляций с заданными функциями и использует результат в качестве цели. Последователь AlphaGo, система под названием AlphaZero использовала подкрепляемое обучение, играя миллион партий Го сама с собой. В финансах же крайне редко встречаются подобные системы или продукты, использующие неконтролируемое обучение. 99% систем используют контролируемое обучение.
Какие сигналы бы мы не использовали для предикторов в финансах, в большинстве случаев они будут содержать много шума и мало информации, да вдобавок будут нестационарными. Так что предсказания в финансах — одна из сложнейших задач машинного обучения. Более сложные алгоритмы здесь достигают лучших результатов. Выбор предикторов критически важен для успеха. Не обязательно их должно быть много, поскольку это приводит к переобучению и сбоям в работе. Поэтому стратегии дата-майнинга часто применяют заранее отобранный алгоритм, который выделяет небольшое количество предикторов из более широкого пула. Такой предварительный отбор может быть основан на корреляции между предикторами, их значимости, информационной насыщенности или просто успешности/неуспешности использования тестового набора. Практические эксперименты с отбором целей можно найти, например, в блоге Robot Wealth.
Ниже — список самых популярных методов дата-майнинга, используемых в сфере финансов.
1. Суп из индикаторов
Большинство торговых систем не основаны на финансовых моделях. Часто трейдерам нужны лишь торговые сигналы, генерируемые определенными техническими индикаторами, которые фильтруются другими индикаторами в комбинации с дополнительными техническими индикаторами. Когда такого трейдера спросить о том, как такая мешанина из индикаторов может приводить к какой-то прибыли, он обычно отвечает что-то вроде: «Поверьте мне, я так руками торгую, и все работает».И это правда. По крайней мере иногда. Хотя большинство этих систем не пройдут WFA-тест (а некоторые и простое тестирование на исторических данных), удивительно большое количество таких систем в итоге работает и приносит прибыль. Автор блога Financial Hacker занимается в том числе разработкой торговых систем на заказ, и рассказывает историю одного из клиентов, который систематически экспериментировал с техническими индикаторами до тех пор, пока не нашел их комбинацию, работающую для определенных типов активов. Такой метод проб и ошибок — это классический подход к дата-майнингу, для успеха нужен лишь он, удача и много денег на тесты. В результате иногда можно рассчитывать на получение прибыльной системы.
2. Свечные паттерны
Не путать с паттернами японских свечей, которые существуют сотни лет. Современный эквивалент этому подходу — это торговля на основе движений цен. Вы точно также анализируете показатели open, high, low и close для каждой свечи графика. Но теперь вы используете дата-майнинг для анализа свечей ценовой кривой для выделения паттернов, которые могут быть использованы для генерирования прогнозов о направлении движения цены в будущем.Существуют целые программные пакеты для этой цели. Они ищут паттерны, которые прибыльны с точки зрения заданных пользователем критериев, и используют их для построения функции детектирования паттернов. Выглядеть все это может примерно так:
int detect(double* sig) { if(sig[1]<sig[2] && sig[4]<sig[0] && sig[0]<sig[5] && sig[5]<sig[3] && sig[10]<sig[11] && sig[11]<sig[7] && sig[7]<sig[8] && sig[8]<sig[9] && sig[9]<sig[6]) return 1; if(sig[4]<sig[1] && sig[1]<sig[2] && sig[2]<sig[5] && sig[5]<sig[3] && sig[3]<sig[0] && sig[7]<sig[8] && sig[10]<sig[6] && sig[6]<sig[11] && sig[11]<sig[9]) return 1; if(sig[1]<sig[4] && eqF(sig[4]-sig[5]) && sig[5]<sig[2] && sig[2]<sig[3] && sig[3]<sig[0] && sig[10]<sig[7] && sig[8]<sig[6] && sig[6]<sig[11] && sig[11]<sig[9]) return 1; if(sig[1]<sig[4] && sig[4]<sig[5] && sig[5]<sig[2] && sig[2]<sig[0] && sig[0]<sig[3] && sig[7]<sig[8] && sig[10]<sig[11] && sig[11]<sig[9] && sig[9]<sig[6]) return 1; if(sig[1]<sig[2] && sig[4]<sig[5] && sig[5]<sig[3] && sig[3]<sig[0] && sig[10]<sig[7] && sig[7]<sig[8] && sig[8]<sig[6] && sig[6]<sig[11] && sig[11]<sig[9]) return 1; .... return 0; } Эта функция на C возвращает 1, когда сигнал подходит одному из паттернов, в противном случае возвращается 0. Длинный код как бы намекает на то, что это не самый быстрый способ поиска паттернов. Лучше использовать подход, при котором функция детектирования не нуждается в экспорте, а может сортировать сигналы по их важности и проводить сортировку. Пример такой системы можно найти по ссылке.Может ли работать «торговля по цене»? Как и в предыдущем случае, этот метод не основан на какой-либо рациональной финансовой модели. При этом, все понимают, что действительно определенные события на рынке, могут влиять на его участников, в результате чего возникают краткосрочные предиктивные паттерны. Но число таких паттернов не может быть большим, если вы изучаете лишь последовательность нескольких последовательных свечей на графике. Затем нужно будет сравнивать результат с данными свечей, которые не находятся рядом, а напротив, случайно выбраны на более длинном временном отрезке. В таком случае вы получите почти неограниченное количество паттернов — и успешно оторветесь от понятий реальности и рациональности. Сложно представить, как можно предсказать будущую цену, на основе каких-то ее значений на прошлой неделе. Несмотря на это, многие трейдеры работают именно в этом направлением.
3. Линейная регрессия
Простой базис множества сложных алгоритмов машинного обучения: предсказать целевую переменную y с помощью линейной комбинации предикторов x1… xn.Коэффициенты — это и есть модель. Они вычисляются для минимизации суммы квадратичных отклонений между реальными значениями y, тренировочными значениями и предсказанными y по формуле:
Для нормально распределенных семплов, минимизация возможна с помощью матричных операций, так что итерации не требуются. В случае когда n = 1 — с всего одним предикторов x, формула регрессии сокращается до:
— то есть до простой линейной регрессии, а когда n > 1 линейная регрессия будет мультивариантной. Простая линейная регрессия доступна в большинстве торговых платформ, например, индикатор LinReg в TA-Lib. Когда y = цена, а x = время, его можно использовать в качестве альтернативы скользящим средним. В платформе R такая регрессия реализована функцией стандартной поставки lm(..). Также она может быть представлена полиномиальной регрессией. Как и в простейшем случае, здесь используется одна предиктивная переменная x, но также ее квадрат и последующие степени, так что xn == xn:
Если n = 2 или n = 3, полиномиальная регрессия часто используется для предсказания следующего среднего значения цены от сглаженных цен последних баров. Для полиномиальной регрессии может быть использована функция polyfit фреймворков MatLab, R, Zorro и многих других платформ.
4. Перцептрон
Часто его называют нейросетью с всего одним нейроном. По факту же перцептрон — это функция регрессии, как описанные выше, но с двоичным результатом, в результате чего его называют логистической регрессией. Хотя вообще-то это не регрессия, а алгоритм классификации. К примеру, функция advise(PERCEPTRON, …) фреймворка Zorro генерирует код на C, которые возвращает 100 или -100 в зависимости от того, является ли предсказанный результат пороговым или нет:int predict(double* sig) { if(-27.99*sig[0] + 1.24*sig[1] - 3.54*sig[2] > -21.50) return 100; else return -100; } Как нетрудно заметить, массив sig эквивалентен функциям xn в формуле регрессии, а цифровыми факторами являются коэффициенты an.5. Нейронные сети
Линейная или логистическия регрессия могут решать только линейные проблемы. При этом задачи трейдинга часто в эту категорию не укладываются. Знаменитый пример — предсказание вывода простой функции XOR. Сюда же попадает и предсказание прибыли от сделок. Искусственная нейросеть (artificial neural network, ANN) может решать нелинейные проблемы. Это набор перцептронов, которые соединены в массив различных уровней. Каждый перцептрон — это нейрон сети. Его выходные данные становятся входными для других нейронов следующего уровня:Как и перцептрон, нейросеть обучается, определяя коэффициенты, которые минимизируют ошибку между предсказанием и целью в семпле. Для этого требуется процесс аппроксимации, обычно с обратным распространением ошибки от выходных данных к входным с попутной оптимизацией весов. Этот процесс накладывает два ограничения. Во-первых, вывод нейронов должен представлять собой постоянно дифференцируемую функцию вместо простого порога для перцептрона. Во-вторых, сеть должна быть не очень глубокой — наличие большого количества скрытых уровней нейронов между входными и выходными данными только вредит. Это второе ограничение лимитирует сложность проблем, которую может решить стандартная нейронная сеть.
При использовании нейронных сетей для предсказания сделок, у вас будет множество параметров, с которыми можно манипулировать, что при неаккуратной работе может вылиться в появление предубеждений выбора (selection bias):
- число скрытых уровней;
- число нейронов в каждом скрытом уровне;
- количество циклов обратного распространения — эпох;
- степень обучения, ширина шага эпохи;
- моментум, фактор инерции для адаптации весов;
- функция активации.
Нейросети входят в стандартную поставку пакета R (например, nnet — сеть с одним скрытым уровнем), а также во многие другие пакеты (вроде RSNNS и FCNN4R).
6. Глубокое обучение
Методы глубокого обучения используют нейросети с большим количеством скрытых уровней и тысячами нейронов, которые невозможно эффективно обучить с помощью простого обратного распространения. В последние годы для обучения таких больших сетей приобрели популярность несколько методов. Они обычно подразумевают предварительное обучение скрытых уровней нейронов для повышения эффективности основного обучения.Ограниченная машина Больцмана (Restricted Boltzmann Machine, RBM) — это неконтролируемый алгоритм классификации со специальной сетевой структурой, в которой нет связей между скрытыми нейронами. Автокодировщик Sparse (SAE) использует обычную сетевую структуру, но предварительно обучает скрытые уровни определенным способом, воспроизводя входные сигналы на выходных уровня с как можно меньшим количеством активных соединений. Эти методы позволяют реализовывать очень сложные сети для решения очень сложных задач обучения. Например, задачу победить лучшего человека, играющего в Го.
Сети глубокого обучения входят в пакеты deepnet и darch для R. В deepnet входит автокодировщик, а в darch — машина Больцмана. Ниже — пример кода, использующего deepnet с тремя скрытыми уровнями для обработки торговых сигналов через функцию neural() фреймворка Zorro:
library('deepnet', quietly = T) library('caret', quietly = T) # called by Zorro for training neural.train = function(model,XY) { XY <- as.matrix(XY) X <- XY[,-ncol(XY)] # predictors Y <- XY[,ncol(XY)] # target Y <- ifelse(Y > 0,1,0) # convert -1..1 to 0..1 Models[[model]] <<- sae.dnn.train(X,Y, hidden = c(50,100,50), activationfun = "tanh", learningrate = 0.5, momentum = 0.5, learningrate_scale = 1.0, output = "sigm", sae_output = "linear", numepochs = 100, batchsize = 100, hidden_dropout = 0, visible_dropout = 0) } # called by Zorro for prediction neural.predict = function(model,X) { if(is.vector(X)) X <- t(X) # transpose horizontal vector return(nn.predict(Models[[model]],X)) } # called by Zorro for saving the models neural.save = function(name) { save(Models,file=name) # save trained models } # called by Zorro for initialization neural.init = function() { set.seed(365) Models <<- vector("list") } # quick OOS test for experimenting with the settings Test = function() { neural.init() XY <<- read.csv('C:/Project/Zorro/Data/signals0.csv',header = F) splits <- nrow(XY)*0.8 XY.tr <<- head(XY,splits) # training set XY.ts <<- tail(XY,-splits) # test set neural.train(1,XY.tr) X <<- XY.ts[,-ncol(XY.ts)] Y <<- XY.ts[,ncol(XY.ts)] Y.ob <<- ifelse(Y > 0,1,0) Y <<- neural.predict(1,X) Y.pr <<- ifelse(Y > 0.5,1,0) confusionMatrix(Y.pr,Y.ob) # display prediction accuracy }7. Опорные векторы
Как и в случае нейросетей, метод опорных векторов — еще одно расширение линейной регрессии. Если взглянуть на формулу регрессии еще раз:То можно интерпретировать функции xn в качестве координат n-размерного пространства. Установка целевой переменной y в фиксированное значение определит плоскость в этом пространстве – оно будет называться гиперплоскостью, поскольку по факту в ней будет два (даже n-1) размера. Гиперплоскость отделяет семплы с y > 0 от тех, где y < 0. Коэффициенты an можно вычислить как путь, разделяющий плоскость от ближайших семплов — ее опорных векторов, отсюда и название алгоритма. Таким образом мы получаем бинарный классификатор с оптимальным разделением выигрышных и проигрышных семплов.
Проблема: обычно эти семплы нельзя разделить линейно – они случайно группируются в пространстве функций. Между выигрышными и проигрышными вариантами нельзя провести гладкую плоскость, если бы это можно было сделать, то для ее вычисления можно было бы использовать более простые методы вроде линейного анализа дискриминанта. Но в общем случае можно использовать трюк: добавить больше размеров в пространство. В таком случае алгоритм опорных векторов сможет сгенерировать больше параметров с ядерной функцией, комбинирующей два любых предиктора — по аналогии перехода от простой регрессии к полиномиальной. Чем больше размеров вы добавляете, тем проще разделить семплы гиперплоскостью. Затем ее можно преобразовать обратно к оригинальному n-размерному пространству.
Как и нейросети, опорные векторы могут быть использованы не только для классификации, но и для регрессии. Также они предлагают ряд параметров для оптимизации и возможного переобучения:
- Функция ядра — обычно используется RBF-ядро (радиальная базисная функция, симметричное ядро), но можно выбрать и другие ядра, например сигмоид, полиномиальное и линейное.
- Гамма — ширина ядра RBF.
- Параметр стоимости C, «штраф» за неверные классификации обучающих семплов.
8. Алгоритм k-ближайших соседей
В сравнении с тяжелыми ANN и SVM, это простой и приятный алгоритм с уникальным свойством: его не нужно обучать. Семплы и будут моделью. Этот алгоритм можно использовать для торговой системы, которая постоянно обучается с помощью добавления новых семплов. Этот алгоритм вычисляет дистанции в пространстве функций от текущего значения к k-ближайшим семплам. Дистанция в n-размерном пространстве между двумя наборами (x1… xn) и (y1… yn) вычисляется по формуле:Алгоритм просто предсказывает цель от среднего k целевых переменных ближайших семплов, взвешенных по их обратным расстояниям. Его можно использовать как для классификации, так и для регрессии. Для предсказания ближайших соседей можно вызвать функцию knn в R или самостоятельно написать код на C для этой цели.
9. K-средние
Это алгоритм аппроксимации для неконтролируемой классификации. Он чем-то похож на предыдущий алгоритм. Для классификации семплов алгоритм сначала размещает в пространстве функций k случайных точек. Затем он присваивает какой-то из этих точек все семплы с наименьшим расстоянием до нее. Затем точка сдвигает к среднему от этих ближайших значений. Это генерирует новые привязки семплов, поскольку какие-то из них теперь окажутся ближе к другим точкам. Процесс повторяется до тех пор, пока перепривязка в результате сдвига точек не прекратится, то есть до тех пор, пока каждая точка не окажется средней для ближайших семплов. Теперь у нас есть k классов семплов, каждый расположенный по соседству от какой-то k-точки.Этот простой алгоритм может приносить удивительно хорошие результаты. В R для его реализации используется функция kmeans, пример алгоритма можно найти по ссылке.
10. Наивный Байес
Этот алгоритм использует Байесовскую теорему классификации семплов нечисловых функций (событий), вроде упомянутых выше свечных паттернов. Предположим, что событие X (например, параметр Open предыдущего бара ниже параметра Open текущего бара) появляется в 80% выигрышных семплов. Тогда какова будет вероятность выигрышности семпла при наличии в нем события X? Это не 0,8 как можно подумать. Эта вероятность вычисляется по формуле:P(Y|X) — это вероятность того, что событие Y (получение прибыли) возникнет во всех семплах, содержащих событие X (в нашем примере Open(1) < Open(0)). В соответствии с формулой, она равняется вероятности возникновении события X во всех выигрышных семплах (в нашем случае 0,8), умноженной на вероятность Y во всех семплах (примерно 0,5 если следовать советам по балансированию семплам) и разделенной на вероятность появления X во всех семплах.
Если мы наивны и предполагаем, что все события X независимы друг от друга, то можно подсчитать общую вероятность того, что семпл окажется выигрышным с помощью простого перемножения вероятностей P(X|winning) для каждого события X. Тогда мы придем к следующей формуле:
С фактором масштабирования s. Чтобы формула заработала, функции должны быть выбраны таким образом, чтобы они были максимально независимыми. Это будет препятствием для использования наивного Байеса для трейдинга. К примеру, два события Close(1) < Close(0) и Open(1) < Open(0) с большой вероятностью не независимы друг от друга. Числовые предикторы можно конвертировать в события, разделив число на отдельные диапазоны. Наивный Байес доступен в пакете e1071 для R.
11. Деревья решений и регрессий
Такие деревья предсказывают результат численных значений, основанных на цепочке принятия решений в формате да/нет в структуре ветвей дерева. Каждое решение представляет собой наличие или отсутствие событий (в случае не-числовых значений) или сравнения значений с фиксированным порогом. Типичная древесная функция, сгенерированная, например, фреймворком Zorro, выглядит так:int tree(double* sig) { if(sig[1] <= 12.938) { if(sig[0] <= 0.953) return -70; else { if(sig[2] <= 43) return 25; else { if(sig[3] <= 0.962) return -67; else return 15; } } } else { if(sig[3] <= 0.732) return -71; else { if(sig[1] > 30.61) return 27; else { if(sig[2] > 46) return 80; else return -62; } } } } Как такое дерево получается из набора семплов? Для этого может быть несколько методов, включая информационную энтропию Шеннона.Деревья принятия решений могут довольно широко применяться. Например, они подходят для генерирования предсказаний, более точных, чем удается достичь с помощью нейросетей или опорных векторов. Однако это не универсальное решение. Наиболее известный алгоритм такого типа это C5.0, доступный в пакете C50 для R.
Для еще большего повышения качества предсказаний, можно использовать наборы деревьев — они называются случайным лесом. Этот алгоритм доступен в пакетах R под названием randomForest, ranger и Rborist.
Заключение
Существует множество методов дата-майнинга и машинного обучения. Критичный вопрос здесь заключается в следующем: что лучше, стратегии, основанные на моделях или на машинном обучении? Нет сомнений в том, что у машинного обучения есть ряд плюсов. Например, вам не нужно заботиться микроструктуре рынка, экономике, учитывать философию участников рынка или другие подобные вещи. Можно сконцентрироваться на чистой математике. Машинное обучение куда более элегантный и привлекательный способ создания торговых систем. На его стороне все плюсы, кроме одного — помимо рассказов на форумов трейдеров, успехи этого метода в реальной торговле отследить проблематично.Чуть ли не каждую неделю публикуются новые статьи о трейдинге с помощью машинного обучения. Такие материалы следует воспринимать с изрядной долей скепсиса. Авторы некоторых работ заявляют о фантастических показателях выигрышности в 70%, 80% или даже 85%. При этом мало кто говорит, что потерять деньги можно даже в случае выигрышности предсказаний. Точность в 85% обычно транслируется в показатель прибыльности выше 5 — если бы все было так просто, то создатели такой системы уже бы стали миллиардерами. Однако, почему-то, воспроизвести такие же результаты, просто повторяя описанные в статьях методы, не получается.
По сравнению с системами, основанными на моделях, реальных успешных систем машинного обучения очень мало. Например, их редко используют успешные хедж-фонды. Возможно в будущем, когда вычислительные мощности станут еще более доступны, что-то и поменяется, но пока алгоритмы глубокого обучения остаются больше интересным хобби для гиков, нежели реальным инструментом заработка на бирже.
Другие материалы по теме финансов и фондового рынка от ITI Capital:
habr.com
Алгоритмическая торговля. Обзор ЦБ РФ MarketLab: Financial Innovations
Алгоритмическая торговля. Обзор ЦБ РФ
время публикации: 24.11.2016 11:14последняя редакция: 24.11.2016 12:12
Инвестирование на рынке ценных бумаг сопряжено с множеством рисков, основным из которых является ценовой. На решение о покупке или продаже того или иного финансового инструмента влияет множество факторов, что увеличивает степень неопределенности результата инвестиционных действий. Некоторые участники рынка, получив определенный опыт, стремятся переложить все или часть из своих задач на автоматизированную торговую систему.
Алгоритмическая торговля – это строго формализованный механизм принятия решений о совершении торговых операций на финансовых рынках и их исполнении по заранее определенному алгоритму с использованием специализированных компьютерных программ. Алгоритмическая торговля позволяет многократно увеличить скорость и производительность обработки биржевой информации и совершения сделок, использовать сложные математические модели, требующие расчетов, которые человек не способен производить моментально, а также минимизировать влияние человеческого фактора на принятие торговых решений.
В современном виде алготрейдинг стал формироваться в 1980-х годах. В то время он был доступен исключительно крупным институциональным инвесторам, обладавшим большими вычислительными мощностями, финансовыми и интеллектуальными ресурсами. В основном это были маркет-нейтральные субститутные и статистические арбитражные , а также опционные стратегии . Со временем доступность высокопроизводительной вычислительной техники повышалась, и сейчас для построения алгоритмической стратегии достаточно обычного персонального компьютера. Программу, осуществляющую торговлю в автономном режиме, принято называть алгоритмом или роботом.
При классификации участников биржевой торговли по критерию продолжительности горизонта инвестирования выделяют, как правило, четыре основные группы. У каждой группы разные подходы к достижению одной цели – получить доход от своей деятельности. Классификация такого рода условна, поскольку каждый участник может применять стратегии, работающие на разных временных горизонтах.
К первой группе можно отнести участников рынка с длинным сроком инвестирования (месяцы и годы), которые формируют инвестиционные портфели и производят их ребалансировку с определенной периодичностью или в связи с изменениями рыночной конъюнктуры. К таким участникам относится большинство пенсионных и инвестиционных фондов, а также крупных институциональных инвесторов. Поскольку они являются держателями крупных позиций, набор позиций этими участниками и их закрытие не могут остаться незамеченными для других участников рынка. Такие участники рынка используют роботы с целью обеспечения оптимально быстрого набора позиции по удовлетворительной цене с минимальным влиянием собственных поручений на рыночную цену, при этом решения об инвестировании в тот или иной актив принимаются, как правило, управляющим или коллегиальным органом. В то же время в условиях повышенной неопределенности и недостатка ликвидности эффективность использования алгоритмов для оптимального исполнения крупной заявки снижается. Неэффективности, возникающие на рынке в моменты ребалансировки портфелей крупных участников, активно эксплуатируются другими группами участников рынка. Спектр возможностей для применения средств алгоритмической торговли на меньших временных интервалах (часы, дни, недели) возрастает.
Для участников, составляющих вторую группу, актуальной становится задача поиска трендов, долгосрочных и среднесрочных неэффективностей, оптимальных условий и цен для входа на определенный рынок и выхода из него. Таким образом, алгоритмическая торговля приобретает спекулятивную составляющую, а принятие решений, связанных с управлением позициями, может быть полностью передано торговому роботу. Инвесторы из этой группы могут использовать как направленные, так и нейтральные торговые стратегии. Алгоритмы при торговле на таких интервалах могут применяться очень широко: это могут быть краткосрочные и среднесрочные позиционные и рыночно-нейтральные стратегии, которые зачастую представляют собой модификации широко известных стратегий. Могут использоваться также стратегии, построенные на оригинальных математических моделях.
Третья группа участников характеризуется еще более коротким горизонтом инвестирования (секунды, минуты, часы). По мере уменьшения времени удержания позиции увеличивается количество данных, при обработке которых может быть обнаружена неэффективность. Срок существования этой неэффективности также снижается. Однако с количеством данных, подлежащих анализу, растет число стратегий, которые могут быть использованы. Участники, находящиеся в третьей группе, эксплуатируют краткосрочные состояния дисбаланса спроса и предложения на рынке, зарабатывая небольшие суммы на каждой сделке, но совершая большое количество операций. Такие участники используют роботы (часто это бывают полуавтоматические приводы), как правило, в нужные моменты для быстрого входа в рынок.
Современные технические возможности позволяют генерировать с одного счета 10 000 заявок в секунду. Временной горизонт, на котором работают такие системы, измеряется микросекундами.
Четвертая группа состоит из высокочастотных участников рынка. Высокочастотная торговля характеризуется использованием сложных вычислительных систем, автоматически генерирующих большое количество заявок в течение торговой сессии. Такие участники используют дорогостоящую инфраструктуру и прямое подключение к бирже для получения преимущества в скорости. Современные технические возможности позволяют генерировать с одного счета 10 000 заявок в секунду. Временной горизонт, на котором работают такие системы, измеряется микросекундами. В последнее время обсуждаются перспективы выхода на уровень наносекунд, однако такие скорости на данный момент все еще недостижимы ввиду ограниченности тактовой частоты процессора компьютера. Такая скорость обработки рыночной информации и выставления заявок дает возможность зарабатывать на минимальных колебаниях цен. Важно понимать, что высокочастотная торговля по определению является алгоритмической, в то же время высокочастотная торговля – более узкое понятие. Сложность оценки общемировой доли роботов в биржевых торгах состоит в методологии их идентификации. Существует несколько методологий идентификации высокочастотных алгоритмов по таким признакам, как использование колокации, малые временные рамки для открытия/закрытия позиций, генерация значительного объема заявок в течение торговой сессии, близкая к нулевой позиция на конец торговой сессии, высокие показатели отношения количества выставленных на биржу заявок к количеству заключенных на их основании сделок. Однако помимо высокочастотных торговых систем существует большое множество других алгоритмов, идентификация которых является более сложной задачей. Кроме того, нет единого мнения относительно того, можно ли считать заявки, выставленные с частичным использованием средств автоматизации, алгоритмическими.
Существует большое количество классов стратегий, применяемых в алгоритмической торговле. Некоторые из них можно найти в открытых источниках, однако подробная информация о конкретной стратегии может являться интеллектуальной собственностью и обычно не раскрывается авторами в деталях. Кроме того, успешность работы алгоритма зачастую зависит от текущего состояния рынка. Алгоритмические стратегии можно классифицировать по частоте совершения сделок и по характеру формализованных идей, используемых в целях получения прибыли. Классификация условна, поскольку всегда есть возможность создать алгоритм, использующий преимущества разных классов стратегий. Критерии частоты пересекаются с инвестиционным горизонтом инвестора и описаны выше. По характеру идей, лежащих в основе алгоритмических стратегий, допустима следующая условная классификация (рис. 1).
Парный и баскет-трейдинг (англ. Pair-trading, basket trading), или корреляционный трейдинг. Этот класс стратегий основан на существовании таких инструментов, ценовые ряды которых высоко скоррелированны. Динамика цен таких активов схожа и однонаправленна. В случае с парным трейдингом торговля всегда ведется двумя инструментами одновременно. Если инструментов становится больше, такую стратегию принято называть баскет-трейдингом. Для применения стратегии строится показатель отношения или разницы цен базовых инструментов. Полученное значение называют спредом. В большинстве случаев значение спреда колеблется в обозримом и прогнозируемом диапазоне, позволяя трейдеру относительно легко находить рыночные неэффективности. Для формирования парной позиции инвестор покупает один актив и продает другой, формируя таким образом позицию по синтетическому инструменту. На российском рынке примерами таких синтетических инструментов могут быть разнонаправленные позиции по фьючерсу на индекс РТС и корзину составляющих его акций, противоположные позиции по одной из ликвидных акций и фьючерсу на нее. Участник рынка рассчитывает получить прибыль от общей позиции по синтетическому инструменту, которая чаще всего сопряжена с получением убытка по одной составляющей синтетического инструмента и прибыли, превышающей убыток, по другой составляющей. Такая позиция считается маркет-нейтральной, поскольку результат общей позиции будет зависеть не от абсолютного изменения цен составляющих синтетического инструмента, а от их изменений друг относительно друга. Рыночные риски в такой стратегии ненулевые, но значительно ниже, чем при позиционном инвестировании. При этом доходность, соответственно, невысока.
Арбитражные стратегии (англ. Arbitrage). Суть таких стратегий заключается в получении небольшой безрисковой или почти безрисковой доходности за счет временной рыночной неэффективности (рис. 2).
При этом под неэффективностью могут пониматься разница цен на один и тот же инструмент на разных биржах, разница цен на опционы, разница цен фьючерсов на один базовый инструмент с разными датами экспирации. Такое различие возникает ввиду разной скорости распространения информации среди участников рынка, разностей во времени работы бирж, ликвидности рынков, объемов торговли. В текущих рыночных условиях из-за широкого распространения высокочастотных алгоритмов продолжительность существования таких неэффективностей крайне низка и в отдельных случаях может измеряться микросекундами. В отдельных аспектах такие стратегии пересекаются с корреляционными, поскольку арбитраж также подразумевает одновременную покупку одного и продажу другого инструмента.
Трендследящие стратегии (англ. Trend following) основаны на выявлении тренда в динамике ценовых значений инструмента с помощью различных математических индикаторов или технического и фундаментального анализа и дальнейшем следовании этому тренду. Важной особенностью таких стратегий является возможность их применения практически на любом временном горизонте. Единственным ограничением является наличие исторических значений цен на достаточно длинной дистанции. Такие стратегии лучше всего работают в период выраженного тренда на рынке.
Стратегии маркет-мейкинга (англ. Market making) предполагают выставление и постоянное поддержание котировочных заявок одновременно на покупку и продажу инструмента. В данном случае эксплуатируется принцип случайного блуждания цены на коротких временных промежутках. Другими словами, несмотря на наличие глобального тренда в ту или иную сторону, всегда будет иметь место некая дисперсия ценовых значений относительно общего вектора ценового движения. Использование таких колебаний и является задачей маркет-мейкера.
Стратегии на основе возврата к среднему (англ. Mean reversion) строятся на концепции, предполагающей регулярный возврат цены к некоему среднему уровню при условии рассмотрения достаточно продолжительной временной дистанции. Главной задачей таких стратегий является определение ожидаемого уровня возвращения цены. Процесс возвращения значений к среднему уровню в любых временных рядах обусловлен влиянием положительной или отрицательной обратной связи. Таким образом, важнейшим шагом становится анализ финансового инструмента на наличие или отсутствие реверсии. В случае ее наличия можно ожидать, что при приближении цены к верхнему или нижнему пределу увеличивается вероятность ее разворота. В таких стратегиях в качестве среднего значения зачастую используются понятия взвешенной по времени (англ. Time weighted) и по объему (англ. Volume weighted) средней цены (англ. Average price). Эти же индикаторы могут применяться в стратегиях корреляционного трейдинга и маркет-мейкинга. Стратегии, основанные на возврате к среднему, показывают самые хорошие результаты в периоды консолидации на рынке, когда нет однозначно идентифицируемого однонаправленного тренда.
Одной из самых распространенных высокочастотных стратегий является стратегия фронтраннинга (англ. Front running, дословно – забегание вперед). Она основывается на анализе ликвидности инструмента, текущих заявок на покупку и продажу, а также средних объемов сделок.
Высокочастотная торговля (англ. High frequency trading – HFT) – отдельный способ осуществления торговли, который позволяет реализовать и использовать любую из стратегий, перечисленных выше, но исполняемую на скоростях, находящихся за пределами человеческих возможностей. Низкие временные задержки в исполнении дают высокочастотным трейдерам преимущество в получении идеальной цены. Такое минимальное преимущество масштабируется за счет большого количества сделок. Одной из самых распространенных высокочастотных стратегий является стратегия фронтраннинга (англ. Front running, дословно – забегание вперед). Она основывается на анализе ликвидности инструмента, текущих заявок на покупку и продажу, а также средних объемов сделок. Концепция заключается в том, что большие заявки на покупку или продажу, как правило, не исполняются одномоментно, а за время их исполнения состоится еще несколько сделок между другими участниками по ценам, близким к цене крупной заявки. При этом велика вероятность, что цена некоторое время будет колебаться на уровне, близком к цене крупной заявки, формируя минимальные колебания, на которых может заработать HFT-алгоритм. В случае обнаружения большой заявки на покупку такой алгоритм выставляет свою небольшую заявку на покупку по цене немного выше, чем цена крупной заявки. После исполнения собственной покупки алгоритм сразу выставляет заявку на продажу по более высокой цене. При этом крупная заявка становится своеобразной защитой от резкого снижения цены. Для торговли, согласно такой стратегии, важным является анализ мгновенных состояний книги заявок на покупку и продажу, а не только значений ценовых рядов и индикаторов, построенных на их основе.
Важным элементом высокочастотного трейдера является его техническая инфраструктура. Для достижения такой скорости исполнения, которая даст ощутимое преимущество при исполнении заявок, необходимо дорогостоящее техническое обеспечение, основными компонентами которого являются центр обработки информации и принятия решений и каналы связи. Для достижения конкурентоспособной скорости и надежности передачи данных обычного интернет-подключения недостаточно. В таком случае к бирже можно подключиться путем прямого доступа к рынку (англ. Direct market access – DMA) и спонсируемого доступа (англ. Sponsored access – SA).
Преимущества прямого подключения перед обычным:
- получение высокоскоростного доступа к биржевой информации;
- снижение зависимости от технической инфраструктуры брокера, его стандартного программного обеспечения и, как следствие, снижение рисков возникновения технических сбоев;
- возможность индивидуальной настройки схемы подключения под нужды торгуемой стратегии.
В случае с DMA участник рынка получает доступ к торгам с использованием промежуточных серверов и инфраструктуры брокера или публичных биржевых серверов, которые подключены напрямую к ядру биржи. Такой способ подключения сохраняет техническую зависимость от инфраструктуры брокера, хотя и значительно повышает скорость передачи данных. В свою очередь, SA позволяет напрямую подключаться к бирже с помощью выделенных каналов связи, полностью минуя инфраструктуру брокера. Такая модель дает трейдеру возможность контролировать подключение, а исключение посредника и других участников рынка из схемы позволяет увеличить скорость передачи данных (рис. 3).
Вариант 1 – самый простой и экономичный способ подключения. Он не требует затрат на инфраструктуру со стороны инвестора. Расходы связаны только с оплатой права на подключение. Такой способ обладает значительными недостатками, поскольку интернет-подключение не может обеспечить необходимой скорости и надежности получения и передачи данных. Это связано с большим количеством промежуточных маршрутизаторов и других звеньев инфраструктуры интернет-оператора, стоящих между торговым роботом и ядром биржи. Кроме того, появляется зависимость от инфраструктуры брокера, бесперебойность работы которой инвестор контролировать не может.
Вариант 2 позволяет практически полностью устранить риски, связанные с нестабильностью и низкой скоростью интернет-соединения, путем передачи данных через выделенный канал. Для этого торговый алгоритм должен быть размещен непосредственно в инфраструктуре брокера, что влечет за собой дополнительные операционные расходы по покупке сервера, на котором алгоритм будет размещаться, и на аренду места в дата-центре брокера (колокация). Недостатки данного способа связаны с использованием сервера и выделенного канала связи всеми клиентами брокера.
Вариант 3 – самый простой и дешевый вариант реализации DMA. Все операционные расходы инвестора – это плата за доступ к публичному промежуточному серверу. Значительным минусом такого подключения является ненадежная интернет-связь между торговым алгоритмом и публичным сервером биржи.
Вариант 4 позволяет исключить риск, связанный с интернет-соединением, поскольку торговый алгоритм размещается в биржевом дата-центре. Такой способ, по аналогии со способом 1, включает в себя расходы на покупку и размещение сервера, однако он дороже, поскольку позволяет инвестору миновать в схеме подключения лишнее звено – брокерскую инфраструктуру.
Вариант 5 – самый дорогой и надежный способ подключения (SA), при котором инвестор получает выделенный промежуточный сервер для размещения своего алгоритма и выделенный канал, напрямую подключенный к ядру биржи.
Компания Knight Capital в 2012 году понесла убытки, составившие, по собственной оценке, $440 млн долл. Убытки были связаны с техническим сбоем в работе программного обеспечения, которое автоматически рассылало многочисленные ошибочные приказы. По некоторым данным, алгоритм компании должен был набрать позиции по нескольким акциям в течение пяти дней, однако в результате сбоя выполнил свою задачу в течение получаса.
Высокочастотная торговля несет в себе как явные, так и скрытые риски. Одним из основных можно назвать операционный риск, под которым подразумевается опасность технических сбоев, в случае возникновения которых алгоритм может значительно увеличить количество заявок или общий объем их потока. Ввиду технической возможности генерировать крайне высокое количество заявок ежесекундно, такой сбой в работе алгоритма может спровоцировать сбой в работе биржи, что может привести к приостановке торгов; при этом инвесторы не смогут своевременно исполнить свои заявки и понесут убытки. Кроме того, большие объемы заявок могут ощутимо повлиять на рыночные цены инструментов. Дополнительным аспектом операционного риска могут стать ошибки, допущенные при создании алгоритма, неучтенные особенности функционирования рынка, которые при определенных условиях могут привести к некорректному потоку заявок.
Одним из наиболее распространенных примеров операционного сбоя является случай, произошедший со специализирующейся на высокочастотной торговле компанией Knight Capital. Данная компания в 2012 году понесла убытки, составившие, по собственной оценке, $440 млн долл. Убытки были связаны с техническим сбоем в работе программного обеспечения, которое автоматически рассылало многочисленные ошибочные приказы. По некоторым данным, алгоритм компании должен был набрать позиции по нескольким акциям в течение пяти дней, однако в результате сбоя выполнил свою задачу в течение получаса. За этот период Knight Capital по некоторым акциям сгенерировала объем сделок, превышающий средневзвешенный в 5–20 раз. Сама компания после случившегося потеряла треть своей капитализации менее чем за три дня.
Другим известным случаем реализации операционного риска HFT считается произошедший 6 мая 2010 года «Flash crash» (англ. – быстрое падение). Цена индекса Dow Jones, формирующегося на основании стоимости акций 30 крупнейших компаний, торгующихся на NYSE (НьюЙоркская фондовая биржа, англ. – New York Stock Exchange), в течение 30 минут снизилась на 9% и вернулась к исходным значениям. В официальном совместном отчете SEC и CFTC сказано, что событие началось с крупной заявки на продажу, выставленной инвестиционным фондом Waddell & Reed, к которой агрессивно присоединились HFT-алгоритмы, спровоцировав столь быстрое падение.
К другим рискам высокочастотных систем можно отнести рост операционных издержек, мгновенное снижение рыночной ликвидности и намеренное манипулирование ценами. Для реализации последнего риска у HFT есть множество различных техник, идентифицированными и самыми распространенными из которых являются следующие.
«Спуфинг» (англ. – Spoofing) заключается в введении в заблуждение других участников рынка путем отправки и моментальной отмены большого количества заявок в одном направлении. Другие инвесторы, видя такой объем заявок, полагают, что на рынке появился крупный участник с намерением купить или продать крупный пакет. Однако в реальности такой интерес фиктивен, а поток заявок создается с резервированием крайне ограниченной суммы денег. Использование такой стратегии на финансовом рынке США стало незаконным в 2010 году согласно акту Додда –Франка [1]
«Наслаивание» (англ. – Layering) используется высокочастотными алгоритмами для искусственного смещения биржевых котировок внутри спреда с целью вынудить других участников рынка совершить сделку по выгодной для HFT цене. Выставляя реальную заявку на покупку, HFT-алгоритм в это же время последовательно выставляет множество заявок на продажу, заведомо не имея цели их исполнения. Заявки на продажу выставляются с постепенным снижением цен с целью сужения спреда и создания у других участников торгов впечатления присутствия на рынке игрока с крупной заявкой на продажу, провоцируя их продавать свои бумаги до того, как, по их мнению, цена не опустилась еще ниже. После исполнения первоначальной заявки на покупку алгоритм отменяет все неисполненные заявки на продажу и выставляет новую заявку с целью продать купленный только что пакет бумаг. Следующим шагом HFT выставляет множество заявок на покупку с повышающейся ценой, заставляя других участников покупать до тех пор, пока один из них не исполнит его заявку на продажу. Таким образом алгоритм может заработать внутри спреда несколько базисных пунктов. На весь цикл, как правило, уходит менее одной секунды. Такая деятельность преследуется Комиссией США по ценным бумагам и биржам (англ. – U.S. Securities and Exchange Commission) и Комиссией США по торговле товарными фьючерсами (англ. – U.S. Commodity Futures Trading Commission), а первые штрафы за «наслаивание» были выписаны еще в 2011 году в Великобритании.
В последние годы отмечена тенденция к организации глобального регулирования участников финансового рынка, деятельность которых связана с алгоритмической торговлей либо предоставлением услуг и сервисов для осуществления алгоритмической торговли. Законодательными актами отдельных государств введены или заявлены определенные требования к таким лицам. При этом особое внимание зачастую уделяется именно высокочастотной торговле. Введение специальных требований к деятельности такого рода обусловлено преимущественно наличием особых рисков, связанных с тем, что сбой в работе торгового алгоритма может привести как к неконтролируемым действиям самого алгоритмического участника рынка, так и к нарушению нормального хода торгов. При этом обязанности по контролю и мониторингу активности алгоритмических и высокочастотных участников рынка, устанавливаемые специальными требованиями, распределяются между самими алгоритмическими участниками рынка, лицензированными инвестиционными компаниями, предоставляющими доступ к торгам, организаторами торгов и регуляторами финансовых рынков.
Нормативные документы, связанные с регулированием деятельности агентов на организованных торгах, как правило, не устанавливают строгих требований к алгоритмическим участникам рынка, однако могут содержать некоторые методические рекомендации по контролю ими собственной торговой активности. Например, в мае 2013 года в Германии был утвержден законодательный акт «High Frequency Trading Act», устанавливающий требования к деятельности HFT на финансовых рынках Германии.
Данный акт содержит в том числе следующие требования к HFTучастникам рынка:
- обязательное лицензирование всех HFT алгоритмов у регулятора;
- каждая заявка HFT должна содержать идентификатор конкретного алгоритма, с использованием которого она была выставлена;
- HFT должны самостоятельно контролировать показатели Orders-to-Trades Ratio (соотношение объема заявок к объему сделок) для снижения нагрузки на биржи и регулировать HFT алгоритмы на основе данных показателей.
Правила торгов на биржах Германии соответствуют требованиям национального законодательства и вводят собственные нормативы контроля за HFT. Федеральный закон определяет только общие принципы регулирования и обязанности бирж по контролю за базовыми показателями НFT и микроструктуры рынка, однако определение конкретных количественных параметров и лимитов, которые нельзя превышать, а также пороговых значений, при превышении которых налагаются штрафы, является прерогативой бирж. Требования к лицензированным инвестиционным компаниям (участникам торгов) Требования к компаниям, предоставляющим клиентам доступ к организованным торгам, в основном направлены как на принятие мер особого контроля активности собственных клиентов, осуществляющих алгоритмическую высокочастотную торговлю, так и на поддержание ими актуальных сведений в отношении таких клиентов и их действий. В частности, в соответствии с Директивой MiFID II, действие которой распространяется на финансовые рынки Европейского союза, инвестиционные компании, предоставляющие прямой электронный доступ на биржу либо торговую площадку, нормативно обязаны иметь определенные эффективные системы контроля. Данные системы обязаны обеспечивать возможность контролировать деятельность клиентов, использующих прямой доступ на биржу / электронную площадку, на предмет нарушений каких-либо торговых лимитов и ограничений, а также содержание действий, которые могли бы нарушать нормальный ход торгов либо установленные организаторами правила торгов, в том числе в режиме реального времени. Кроме того, инвестиционные компании, предоставляющие прямой электронный доступ на биржу/торговую площадку, должны уведомлять о данном факте соответствующий регулирующий орган и компетентный орган данной биржи/площадки.
Биржи и торговые площадки сталкиваются с необходимостью обеспечивать корректность хода торгов при больших потоках информации, возникающих вследствие обмена сообщениями между биржевыми системами организаторов торгов и торговыми системами участников рынка, в первую очередь высокочастотными и алгоритмическими. В целях минимизации рисков нарушения корректности хода торгов организаторами торгов проводятся разнообразные виды стресстестирования, посредством которых в том числе производится оценка влияния повышенных нагрузок на механизмы их функционирования и производительность. В 2014 году американскими биржами CME, CBOT, NYMEX и COMEX был принят регулятивный документ Rule 575, который определил ряд торговых практик как нарушающие справедливый ход торгов. В приложении к данному документу приведены примеры отдельных схем выставления заявок и торговых практик, которые негативно влияют на справедливый ход проведения организованных торгов. Специфика определенных примеров предполагает использование HFT при реализации указанных схем. Некоторые биржи принимают собственные технологические и экономические меры для борьбы с недобросовестными практиками HFT. Такими мерами могут быть дополнительные комиссионные сборы за большое количество заявок, разница комиссии при добавлении/ изъятии ликвидности, ограничения по количеству торговых действий за определенный период, регулирование шага цены и установление минимального времени активности заявок, до истечения которого они не могут быть отменены. Последняя мера активно применятся в целях противодействия описанной выше стратегии «спуфинга» и связанных с ней моделями.
В российском законодательстве понятие HFT на данный момент не закреплено, деятельность HFT на финансовых рынках регулируется на общих основаниях: Федеральный закон от 22.04.1996 № 39-ФЗ «О рынке ценных бумаг» устанавливает в том числе требование о приоритетном осуществлении сделок по поручению клиента при совмещении организацией деятельности брокера и дилера; Федеральный закон от 27.07.2010 № 224-ФЗ «О противодействии неправомерному использованию инсайдерской информации и манипулированию рынком и о внесении изменений в отдельные законодательные акты Российской Федерации» устанавливает запреты на деятельность, признаваемую манипулированием рынком, а также на неправомерное использование инсайдерской информации. При этом в регламентах ПАО Московская Биржа и ЗАО «ФБ ММВБ» утверждены определенные меры, предусматривающие дополнительные комиссионные сборы и возможность приостановки подачи заявок HFT-участниками рынка, демонстрирующими чрезмерно высокую торговую активность.
[1] Dodd-Frank Wall Street Reform and Consumer Protection Act, PUBLIC LAW 111–203—JULY 21, 2010
Источник: Обзор регулирования финансового сектора, Выпуск 3, Банк России, 2016 год.
Обязательно подпишитесь на наш канал Telegram
market-lab.org
Построение торгового алгоритма на примере валютной пары EUR/USD – Dan Tigrov
Здравствуйте, уважаемые читатели блога DanTigrov.com. Сегодня мы не будем ходить вокруг, да около, а сразу приступим к практическому материалу, пользуясь, которым, как шаблоном, вполне можно освоить некоторые навыки «чтения рынка» и получать прибыль со своих сделок каждый месяц. Руководство написано для начинающих трейдеров, ищущих ответ на вопрос: «Как заработать на Форекс?».
Итак, составляем алгоритм для краткосрочной торговли валютной парой EURUSD. Таймфреймы графиков: дневной и пятиминутный.
Дано: ценовые графики, финансовый календарь
Цель: прибыльный торговый алгоритм для работы внутри дня
Сначала нам нужно изучить рынок, «снять» показания приборов, так сказать. Затем определяем ключевые точки и выставляем ордера. Наш алгоритм будет состоять из следующих пунктов:
- определяем фазу рынка: тренд-флэт
- определяем направление тренда
- определяем уровни (поддержки, сопротивления, целевые)
- определяем среднюю волатильность
- определяем наиболее активные часы
- ищем графические формации
- выставляем ордера
Далее рассмотрим каждый пункт подробно.
1. Определяем фазу рынка
У рынка существует только два состояния или фазы: направленное движение (тренд) и горизонтальный диапазон (флэт). Техники торговли в разных фазах рынка отличаются, поэтому важно знать какой сейчас рынок.
Трендовый рынок характеризуется сильными однонаправленными движениями, с незначительными коррекциями (не более 30-50%).
Флэтовый рынок – это, прежде всего ценовой диапазон, ложные пробои, неопределенность. Внутри флэта могут образовываться микро тренды от одной границы ценового диапазона до противоположной.
Для того, чтобы определить текущую фазу рынка достаточно посмотреть на дневной график. Если невооруженным 🙂 взглядом видно направление (вверх или вниз), то это тренд. В остальных случаях – флэт.
По графику валютной пары Евро/Доллар видно, что последние несколько недель рынок находится во флэте:
2. Определяем направление тренда
Этот показатель рынка нам нужен для того, чтобы знать в какую сторону совершать сделки: покупать или продавать.
По тренду рынок идет легко и на значительные расстояния. Коррекции при этом небольшие, на них удобно добавлять объём к своим прибыльным сделкам.
Для внутридневной торговли нам достаточно знать в каком направлении рынок движется последние 5-10 дней. Кроме того, чтобы видеть картину целиком, также важно знать более долгосрочный тренд, например, за последние 3 месяца.
Смотрим на график EUR/USD. На нем видно, что последний значительный тренд – восходящий, соответственно, приоритетными для нас будут сделки на покупку.
3. Определяем уровни
Для практического применения нам нужны три уровня, а именно: уровень ограничения потерь, уровень для входа в сделку (точка входа) и целевой уровень (точка выхода). Как их найти на графиках я объясню чуть позже в конце статьи.
Все эти уровни совпадают с различными уровнями поддержки и сопротивления, которые легко увидеть на графике. Для работы внутри дня нам необходимо определить значимые уровни последних нескольких дней.
На пятиминутном графике пары EUR/USD мы можем увидеть все уровни за пять дней. Этого вполне достаточно для краткосрочного трейдинга:
Если котировки выходят за пределы видимых на пятиминутном графике уровней, тогда используем часовой таймфрейм:
4. Определяем среднюю волатильность
Волатильность – статистический финансовый показатель, характеризующий изменчивость цены.
Средняя волатильность дает некоторый ориентир о величине изменения цены за день. Скажем, если мы знаем, что за последние 10 дней котировки выбранного инструмента изменялись не более чем на 0.5%, то не стоит ждать изменения цены на 1%.
Есть несколько способов для получения данных о средней волатильности: ручной – данные собираем сами и применяем простейшую математику, полуавтоматический – используем веб-сервисы, и автоматический – ставим индикатор на график.
Ручной способ. Чтобы узнать величину изменения цены инструмента за 10 дней берем разницу между максимумом и минимумом за каждый день, складываем между собой и, полученный результат, делим на 10 (десять – это количество дней). Считаем для Евро/Доллара:
(68 + 124 + 77 + 96 + 74 + 58 + 98 + 74 + 58 + 130) / 10 = 86 пунктов
Полуавтоматический способ. На финансово-информационных ресурсах в интернете можно найти различные удобные сервисы: котировки, графики, процентные ставки и другие. Есть и калькулятор волатильности валютных пар. В поле «Подсчет по предыдущим данным» нужно ввести цифру количества недель, за которые вы хотите получить значения по волатильности. В нашем примере рассчитываем показатели за две последних недели. По паре EURUSD получим значение 77 пунктов (округляем):
Автоматический способ. Есть несколько индикаторов волатильности для Метатрейдера, но они показывают много лишнего, поэтому лучше их не использовать.
5. Определяем наиболее активные часы
Это нужно для того, чтобы достигать максимальной эффективности за наименьшее количество времени.
Наибольшую активность рынок проявляет с 7 до 15 часов по GMT или с 11 до 19 часов по Московскому времени. Это связано с тем, что в этом интервале времени совершают сделки максимальное количество участников из разных часовых поясов.
Время активных торгов может изменяться в некоторые дни. Это зависит от различных событий, влияющих на финансовый мир: публикация экономических данных, выступления чиновников, саммиты, отчеты компаний, стихийные бедствия, военные действия и т.д. Вносим корректировки, пользуясь календарем экономических событий и сводками новостей. Однако по опыту скажу: большой необходимости в этом, для прибыльной торговли внутри дня, нет.
Теперь расскажу, как определить лучшее время для торговли. Во-первых, посмотрите на пятиминутный график с разделением периодов по дням, полистайте историю и вы визуально увидите, в какой интервал времени, рынок делает значительные движения, а когда «лежит» в узком диапазоне. Во-вторых, можно воспользоваться калькулятором волатильности, который мы применяли ранее. Для более весомых результатов в поле «Подсчет по предыдущим данным» вводим: 52 недели. Получится такая картинка:
6. Ищем графические формации
На ценовом графике можно увидеть повторяющиеся фрагменты (встречаются и другие названия: формации, паттерны, фигуры). Каждый трейдер знает такие фигуры, как «голова и плечи», «треугольник», «флаг». Такие графические образования далеко не догма, поэтому не могут служить 100%-м сигналом к действию, тем не менее, их можно использовать при определении ключевых точек (вход в сделку, выход с фиксацией прибыли, выход по ограничению убытка) и возможного развития событий.
Рекомендую самостоятельно просмотреть пятиминутные графики пары Евро/Доллар с целью выявления похожих графических формирований. Для примера я приведу несколько фигур. Каждый день на графике проявляется какой-то из этих рисунков.
Формация 1. Эта формация начинается во время азиатской сессии. Сначала график рисует горизонтальный и довольно узкий диапазон 20-30 пунктов по EURUSD. Затем следует резкий импульс, уверенно пробивающий границу диапазона. После чего рынок разворачивается и делает сильное трендовое движение в обратную сторону.
Формация 2. Разворотная фигура, известная как «двойная вершина» или «1-2-3 модель». Такой рисунок нужно ждать после крупного движения и около сильных уровней. В случае, когда такая фигура отрабатывается, можно получить хорошую прибыль при минимальном риске.
Формация 3. На трендовом рынке, после консолидации в достаточно узком диапазоне, рынок идет в направлении предыдущего импульса.
Формация 4. Еще одна разворотная модель. Три последовательно снижающихся максимума или три последовательно повышающихся минимума (в зависимости от направления последней тенденции). Эта формация очень похожа на «две вершины» и может быть ее продолжением.
Формация 5. Классическая трендовая формация, характеризуется выраженным направлением, симметричными коррекциями (на них, кстати, можно добавляться) и устойчивым движением. Обычно, при такой фигуре, по EURUSD, бывает 3-4 импульса и 2-3 коррекции в течение дня.
Формация 6. Это в чистом виде флэт. На таком графике у верхней границы диапазона продаем, а у нижней – покупаем. Это в идеале, конечно. Чаще рисуется график с «ложными» пробоями в разные стороны. Кроме того, любой уровень обязательно пробивается. Поэтому более безопасно совершать сделки от границы диапазона в направлении преобладающего тренда. Например, если по дневному графику тренд восходящий, то нужно только покупать, и делать это от минимумов диапазона. В общем, есть своя специфика, но, в целом, во флэте лучше не работать.
7. Выставляем ордера
Итак, все, что мы проделали в предыдущих 6-ти пунктах, нужно свести воедино и на основании нашего исследования выставить торговые ордера.
В соответствии с торговым алгоритмом резюме нашего исследования пары Евро/Доллар таково:
- Текущая фаза рынка – флэт
- Последний сильный тренд был направлен – вверх
- Сильные уровни вверху 1.29 и 1.2950, сильные уровни внизу 1.28 и 1.2650.
- Среднедневная волатильность – 80 пунктов
- Активные часы торговли – с 11 до 19 часов по Московскому времени
- Формация 5.
Рассуждаем так: текущая фаза рынка – флэт, предыдущий тренд был восходящим, поэтому предпочтительнее совершать сделки на покупку из нижней области диапазона 1.28-1.31. Волатильность низкая всего 80 пунктов, значит, при покупке от 1.28 цель для возможной фиксации прибыли 1.2850-1.2870, а возможный минимум будет в диапазоне 1.2750-1.2730. Если пара закрепится ниже 1.28 – продаем при коррекции от 1.28-1.2850. Цель внизу 1.2750-1.2650. Подтверждающие формации будем смотреть по мере их формирования в течение дня, и, если понадобится, скорректируем наши отложенные ордера.
Ордера ставим такие:
Buy Limit покупка от 1.2790
Stop Loss – ограничение убытка – на 1.2740
Take Profit – фиксация прибыли – на 1.2860
На этом можно было бы и закончить, но есть еще парочка важных элементов, без которых любой, даже самый прибыльный, алгоритм вас разорит. Чаще всего новички не уделяют должного внимания двум очень важным аспектам трейдинга – управлению собой и управлению риском. А мы-то с вами не такие, поэтому продолжим разговор.
Психологические установки и управление риском
Углубляться не буду, т.к. это тема для отдельного рассмотрения. Сейчас же я дам лишь несколько тезисов, которых будет достаточно для начала.
Торгуйте без эмоций.
Думайте, как совершать правильные сделки, а не как заработать много денег.
Не пытайтесь понять, почему цена пошла так, а не иначе, старайтесь понять кто сильнее: продавец или покупатель.
Используйте в ваших сделках не более 1/10 от доступного капитала.
Что вы будете делать, если рынок пойдет против вас – это нужно знать до того, как вы откроете позицию.
Ведите дневник трейдера, собирайте статистику по всем своим сделкам.
Заключение
Описанный торговый алгоритм – не догма, не грааль и не панацея. Он, скорее, некий пример, один из тысячи способов забирать деньги с рынка. Простой, незамысловатый, и, где-то даже очевидный, но вполне доступный даже новичку, который с помощью следования этому алгоритму, сможет получать прибыль каждый месяц.
На этом все. Желаю счастья и успехов!
Приложение: торговый алгоритм в слайдах
dantigrov.com
Торговый алгоритм А.М.Герчика |ForexLabor
Торговый алгоритм трейдера — записанная пошагово схема ведения торговли в течении рабочего дня. Важный инструмент для каждого успешного трейдера, благодаря которому удается соблюдать торговую дисциплину и следовать четко проработанной торговой стратегии. На сайте forexlabor.info уже были опубликованы готовые алгоритмы трейдеров:
но в этот раз публикуется алгоритм, который ищут многие трейдеры, как фондового рынка так и рынка FOREX — это
алгоритм Герчика :
Расписание рабочего дня:
- 07:00 – Начало рабочего дня.
- 07:00 – 07:15 Повторный анализ вчерашних сделок, свежим взглядом.
- 07:15 – 07:30 Новости. Их анализ и состояние мировых индексов.
- 07:30 – 09:20 Подготовка домашнего задания.
- 09:30 – 09:55 Open. Наблюдаю за акциями из домашнего задания.
- 09:55 – 11:45 Торгую акции с отбора.
- 11:45 – 01:30 Обед. Наблюдаю за акциями с домашнего задания. Провожу повторный research.
- 01:30 – 03:45 Торгую акции с отбора и нового research.
- 03:45 – 04:00 Смотрю за выходом imbalances.
- 04:00 – 04:15 Статистика и итоги дня.
- 07:00 – 07:15 Повторный анализ вчерашних сделок, свежим взглядом.
- Просмотр как отрицательных, так и положительных сделок с предыдущего дня.
- Оценка «свежим взглядом» точки входа, стопа и потенциала.
- Анализ моментов, которые не учел, а следовало обратить внимание.
- Все недочеты и ошибки выписываю в блокнот, с целью в дальнейшем их избежать.
07:15 – 07:30 Новости. Их анализ и состояние мировых индексов.
- Просмотр, какие макроэкономические показатели и новости выходят сегодня в США.
- Какие сектора могут проявлять активность при выходе того или иного показателя.
- На ресурсе www.bloomberg.com смотрю, как закрылись европейские и азиатские площадки, если нахожу общие тенденции падения/роста, определяю новость, глобально повлиявшую на рынки. Анализирую и пытаюсь предположить, какую тенденцию эта новость придаст американскому рынку.
07:30 – 09:20 Подготовка домашнего задания.
Лучший, на мой взгляд, брокер — для дейтрейдинга, для скальпинга.
1) Анализ post- и premarket SPY. Фьючерсы и валюты.
- Смотрю, как рынок торговался после основного закрытия (04:00), а также как он торгуется на premarket. Если уже вышли, какие-либо важные новости, оцениваю реакцию на них рынка. Отчерчиваю уровень закрытия предыдущего дня и важные уровни поддержки/сопротивления SPY. Определяю общее настроение рынка.
- Смотрю значение основных фьючерсов на золото и нефть, а также соотношения пары EUR/USD. Если там замечены сильные движения в ту или иную сторону, определяю причину и возможную реакцию на них Market.
2) Отталкиваясь от всех собранных данных, составляю алгоритм отбора акций конкретно на сегодняшнюю торговую сессию.
Основные требования:
- Акция торгуется на NYSE и NASDAQ и это являются её основными торговыми площадками (не ADR)
- Цена акции варьируется в диапазоне от 5 до 50 долларов.
- Средний торгуемый объём в день составляет от 300К и до 15М
- Акция имеет хорошую ликвидность, отсутствие gap на 5’, а также больших теней свечей на мелких timeframe.
Дополнительные требования исходя из анализа «настроения market»
Вспомогательные инструменты и метод:
- В программе TOS в watchlist загружены акции, попадающие под вышеперечисленные требования и в свою очередь разбитые для удобства на отдельные группы:
- NYSE разбит на 12 основных секторов, таких как: Basic Materials, Capital Goods, Conglomerates, Consumer Cyclical, Consumer Non-Cyclical, Energy, Financial, Healthcare, Services, Technology, Transportation, Utilities. Это позволяет быстро сориентироваться, если какой либо из секторов проявляет повышенную активность и обратить на него внимание.
- «research», куда я скидываю акции для торговли на сегодняшнею сорговую сессию.
- «penny stocks, список дешевых акций до 10$
- «earnings», список акций, у которых вчера сегодня или завтра выходит квартальный отчет. Список становиться более актуальным в earnings season.
- «NASDAQ», сюда входят все акции торгуемые на Nasdaq подходящие под основные требования.
- «Pump’n’Dump», в этот список я добавляю акции, которые в процессе research показали явные признаки этой торговой стратегии. Список составляется исключительно для наблюдения и возможно в дальнейшем использования приобретенных навыков.
- «Russell 2000», список, состоящий и 2000 компаний с низкой капитализацией. Применяется во время внутридневного research.
Основная идея отбора состоит в том, что бы найти акции, которые ведут себя иначе, чем остальные. Все акции ходят с рынком, но в случае если на акцию нету общеизвестных новостей, и в какой то момент она пытаться не слушаться (сопротивляется) рынку или вовсе идет в противоположном направлении , то возможно в ней есть сильный игрок. И при малейшем сигнале рынка в сторону тренда акции она с легкостью может усилить свое движение. Идея, основанная на жадности и панике, а это свойственно любому человеку, в особенности трейдеру.
Нужно формировать свою стратегию исходя из корреляции, потенциала, оценки риска и точки как можно ближе к support/resistance
Учитывая график рынка за последние пару дней, я отбираю акции которые, имея повышенный объем, сопротивлялись направлению движения SPY или (что ещё лучше) шли в противоположную сторону. На дневке я должен видеть, что данная корреляция скорее исключение и акция, как правило «слушается» рынка.
Что касается волатильности и потенциала, то на графике 5’ в TOS, при нормальном масштабе деление сетки должно быть как минимум 0,25-0,50с, в противном случае акция мне не подходит ввиду малого, скорее всего канального движения.
Основной research делаю среди 12 списков секторов NYSE и одного списка NASDAQ. Просматривая все акции, в общей сложности около 1000 штук. Нанесенный на основной дополнительный линейный график SPY, визуально облегчает и ускоряет процесс отбора.
При отборе также же учитываю, на каких объемах акция подходит к не пробивному уровню поддержки/сопротивления и что в это время делал market.
Больше внимание уделяю акциям, которые, к примеру, на +SPY не идут вверх, стоят или медленно, но уверенно сползают вниз.
Также важную роль играет gap при открытии, если он в противоположную сторону от gap SPY, и в процессе дня не отыгрался, то акция вызывает у меня повышенное внимание.
На дневке должен быть виден потенциал движения. Так как стратегия торговли заключается в торговле от уровня. При отборе обращать внимание на сильные уровни поддержки/сопротивления, у которых торгуется акция.
Отобрав определенное количество акций, я ещё раз их просматриваю. Стараюсь сократить список до 15-20 штук. Так же просматриваю акции со вчерашнего отбора, и оставляю подходящие мне по алгоритму отбора.
Составив окончательный список, отчерчиваю сильные уровни на дневке, а также open/close и hi/low предыдущего дня.
09:30 – 09:55 Open. Наблюдаю за акциями из домашнего задания.
- Смотрю, как открылись акции из моего отбора. Особое внимание обращаю на те, которые сделали gap в противоположную сторону от рынка или открылись на сильном уровне.
- Оцениваю силу и направление SPY, а так же силу сопротивления и движения акции. Выявляю акции, которые движутся в противоположную сторону от движения рынка или формируют полку на определенном уровне.
09:55 – 11:45 Торгую акции с отбора.
- Искать нужно support и resistance. То есть, то куда упирается акция и откуда может быть движение.
- Выбираю пару акций, которые лучше остальных соблюдают идею моей торговли. Загружаю в Time&Sales и некоторое время наблюдаю за распринтовкой в акции.
- В ленте и на графике я должен видеть, что когда акция приближается к сформировавшемуся, уровню её начинают активно отталкивать от него, в это время, как правило, на 1’ выходит объем в разы больше среднего.
- Важным сигналом является практически полное отсутствие продавцов (при настрое на длинную позицию)в акции, или по крайней мере не значительное их количество по сравнению с покупателями. То есть возврат акции к уровню должен происходить не за счёт активных продаж market, а вследствие нежелания на данный момент покупателя бить в оффер по завышенной цене.
- Акция должна сформировать определенную базу, с четко выраженным уровнем, как правило, не в одну цену, а в диапазоне нескольких центов, в зависимости от ситуации.
- У акции должен быть потенциал. Это одно из первых, на что я обращаю внимание перед заходом в позицию. Обращаю внимание на сильные уровни, фигуры, а также направление тренда рынка и даст ли он этой акции движение.
- При торговле от уровня следует оценивать риски, а по принтам нужно видеть большого игрока который готов очень долго накапливать позицию (держать уровень) иначе не заходить!
- Если акция сильная, мой заход не на Hi, а по максимально низкой цене, куда она уперлась. Если акция слабая, мне нужно найти максимальную точку для шорта.
Важно!
- направление акции (тренд)
- где кто покупает и как агрессивно
- где кто продает и как агрессивно
- что происходит, когда якобы кажется что всё, разворот
Цель – (к примеру, для long) увидеть, что акцию некому продавать, а покупатель есть или начинают очень агрессивно покупать, значит, много ещё нужно купить.
Брать от уровня следует, когда страшнее всего, когда акция максимально прижимается к уровню, тогда и риск минимальный.
Как потенциальную позицию рассматриваю акции, где можно поставить только технически правильный stop в приделах 5-8 с.
Выбрав акцию для торговли и определив уровень поддержки/сопротивления, стоп, потенциал и получив в все вышеперечисленные сигналы, готовлюсь зайти в позицию.
Ставлю limit на (максимально низкую для long и максимально высокую для short) цену, по которой проходили принты в сформировавшейся базе. Сразу же готовлю stop market order на выбранную для стопа цену.
При получение позиции, отправляю stop market order и начинаю наблюдать дальнейшем поведением акции.
Если акция начинает идти не по заранее намеченному плану или перестала соблюдать вышеперечисленные сигналы, то, не дожидаясь СтопЛосс, закрываю позицию по market.
Если продолжительно время позиция не даётся и ситуация в акции изменилась, следует снять order и продолжить наблюдать за акцией. Позицию брать только по заранее намеченной цене, некогда не догонять акцию.
Удержание позиции сопровождается следующими действиями:
- наблюдение по time&sales за распринтовкой в акции, соотношением сил и размером заявок выставляемых на покупку/продажу.
- по графику следить за приближением к уровням и ценовым фигурам. Смотреть как там изменяется ситуация при подходе к нему.
- смотреть на каких объемах и в какую сторону движется SPY.
- следить на каких объёмах и свечах движется акция. Сохраняется ли импульс в акции, отбивать уровни отката на мелких timeframe.
Анализируя все эти моменты и делая определенные выводы, позиция может быть покрыта маркетом или вплотную подтянутый stop.
Управление рисками при открытой позиции.
Изначально риск даётся не более 8с и минимальным соотношением к потенциальной прибыли ¼. В зависимости от волатильности, объема, импульса и других частных факторов, stop в акции двигается по-разному. Но имея единый смысл постановки за уровень отката или новую сформированную базу. Первое передвижение stop делается на уровень без убытка (то есть +2...3с от точки входа). В медленных акциях — это делается при отходе на 10-12с от точки входа, в быстрых, первоначальный правильный технический стоп держится до того момента пока акция не выйдет из базы накопления и станет закрепляться на уровень выше.
Выход из позиции:
Осуществляется при достижении заранее намеченного потенциала и получении сигнала о развороте или остановки движения вследствие ухода активного игрока из акции.
Выполняется различными способами в зависимости от волатильности акции и сложившейся ситуации. В быстрой акции для выхода используется быстрые ордера, такие как market и stop market. В более медленных акциях выход можно осуществить limit order, выставляя его на цену, которая стала новым уровнем поддержки/сопротивления находящегося в зоне достигнутого потенциала.
11:45 – 01:30 Обед. Наблюдаю за акциями с домашнего задания. Провожу повторный research.
- Продолжаю наблюдать за акциями с отбора, которые идут по намеченному плану, но ввиду различных причин пока ещё не давали точки входа. Обращаю внимание на то, снизились ли объемы и тенденция в акции, во время обеда, или большой игрок в акции всё ещё продолжает активничать. Выделяю особо активные акции и наблюдаю за ними.
- Список watchlist в TOS сортирую акции по критерии Net Change. Соответственно акции которые больше всего прошли вверх находятся в начале списка, а те, которые больше прошли вниз в конце списка. Отталкиваясь от внутридневной тенденции SPY, просматриваю и отбираю top gainers и top losers в каждом секторе отдельно и в списке акций торгуемых на NASDAQ. Всё также при выборе уделяю внимание сильным и слабым акциям.
- В наблюдаемых акциях провожу всё те же уровни открытия/закрытия, а так же сильные уровни поддержки/сопротивления, сформировавшиеся внутри текущего дня. Определяю новые потенциальные точки входа, исходя их поведения акции и тенденций её движения.
01:30 – 03:45 Торгую акции с отбора и нового research.
- Соблюдая туже формацию, продолжаю торговать акции с домашнего задания и нового внутридневного отбора.
03:45 – 04:00 Смотрю за выходом imbalances.
- Смотрю список акций, у которых в конце дня образовался imbalances MOC orders.
- Фильтрую акции по ценовому диапазону от 10$ до 50$ и объемом выше 500K.
- Обращаю внимание только нате акции, у которых imbalances составляет > 15% от общего проторгованного объема.
- На графике я должен видеть, что акция имеет нормальную волатильность и средний внутридневной range. И желательно знать об этой акции минимальную информацию.
- Определившись с несколькими акциями, загружаю их в ленту и смотрю график.
- Последние 15 минут слежу за тем как меняется imbalances. Делаю определенные наблюдения и веду их записи.
- Сравниваю полученные в итоге результаты с предполагаемыми. Ищу определённые закономерности поведения акции, учитывая разные факторы такие как (цена, средний объем, сектор, силу market и т.п.)
04:00 – 04:15 Статистика и итоги дня.
- Подвожу итоги дня. Заполняю всю статистику по сделкам за прошедшую торговую сессию с краткими объяснениями точек входа.
- Все наблюдения за день записываю в блокнот.
- Заполняю психологический и технический дневники.
Смотрите также:
forexlabor.info
Алготрейдинг
Содержание статьи:
1. Понятие алготрейдинга
2. Количественный трейдинг (quantitative trading)
- Кто такие кванты.
- На какие категории они делятся
3. Классификация стратегий алгоритмического трейдинга
- Стратегии маркетмейкинга
- Трендследящие стратегии
- Статистический арбитраж (StatArb)
- Стратегии баскет трейдинга
- Арбитражные стратегии
- Стратегии торговли волатильностью
- Фронт-раннинг
4. История Long Term Capital Management
5. Обзор программ
- WealthLab
- TSLab
- R Studio
- Bloomberg
6. Заключение
Понятие алготрейдинга
Что такое алготредйинг или алгоритмический трейдинг? Я думаю этот термин говорит сам за себя, но мы дадим более развёрнутое определение. Алготрейдинг - это стиль торговли на финансовых рынках, при котором некий торговый алгоритм, который включает в себя правила об открытии позиции (торговый сигнал), ведении позиции, закрытии позиции, риск менеджменте и тд., реализуется программным путём, коннектиться к торговой платформе или напрямую к бирже, активизируется и строго выполняет предписанные ему правила. Это конечно идеальный торговый алгоритм. Обычно, у многих, алгоритмы проще, в них описаны правила входа, выхода, ну и ограничители риска, которые порой не ограничивают риск, а убивают капитал вовсе. На просторах рунета можно встретить огромное множество советников форекс. Они, в принципе, включают в себя некий торговый алгоритм, написанный для легендарного терминала Meta Trader, но часто алгоритмы этих советников основаны на подгонке истории, путём подбора неких индикаторов с определёнными параметрами, которые по результатам бектеста показывали красивую кривую эквити. Моё мнение: это путь в никуда. Рынок - непредсказуемый поток информации и котировок, и один период случайного процесса, почти никогда не будет похож на другой период случайного блуждания. Поэтому искренне советую не заниматься подгонкой набора индикаторов и их параметров на истории. На сегодняшний день доля алгоритмического объёма в котировках финансовых инструментов очень увеличилась в сравнении с началом двухтысячных годов. Это объясняется прогрессом информационных технологий в мире, но стоит ли этого боятся? Я думаю что искателям “крупного игрока”, “кукла”, а точнее базочек, которые они создают - да, боятся стоит. Ведь из-за высокочастотных алгоритмов мелкие таймфремы становятся всё менее предсказуемыми, дисперсия движения финансового инструмента на мелких таймфремах увеличивается, и все короткие стопы, которые так любят ставить торговцы базочек, перестают выполнять свою роль ограничителя убытков, но успешно выполняют роль генератора убытков! И вообще я за то, что бы все думали головой, а не были суеверными. В наше время институционалы набирают крупный объём специальными алгоритмами: TWAP, VWAP и прочими, а не выставляют крупные завки на круглой цифре и, закинув ноги, ждут. Если кто то так просто “палиться”, создавая ровные уровни, то данного игрока скорее всего не интересует будущее направление инструмента. Ладно, тут много можно говорить, но это не тема данной статьи. Что касается стреднесрочных и долгосрочный трейдеров, то им не страшна доля алгоритмов на рынке, т.к. на больших тайм фреймах уже совсем другая игра.
Количественный трейдинг (quantitative trading)
В странах СНГ понятие “количественный трейдинг” является чем то новым и модным. Но что это такое? И как это связано с алготрейдингом? Количественные трейдеры, обычно, это математики, программисты, экономисты. Они занимаются постоянным поиском неэффективностей того или иного рыночного инструмента, и созданием математической модели, которая поможет, на основе исследований о неэффективности, зарабатывайть деньги. В свою очередь, есть наука, которая занимается анализом и прогнозированием временных рядов. Её название - эконометрика. Все методы и модели, которые учат студенты в университетах, понятно, не будут работать на современных рынках, но нельзя изобрести велосипед, не зная что такое колесо, машину, не зная что такое двигатель. Квант, как называют количественных трейдеров, обязан знать основы эконометрики и математической статистики, хотя бы для того, что бы не изобретать то, что давно создано и быть конкурентноспособным. Количественный трейдинг - это направление, которое пытается создать некую рыночную модель, которая может описать движения того или иного финансового инструмента. На основе такой модели сделать верный прогноз. Далее необходимо организовать квантов в хедж-фонд. Зачем это делается? Без команды составить конкуренцию крупным банкам и другим фондам невозможно. Как говорится “Один в поле не воин”. Целями количественного фонда обычно является создание очень капиталоёмкой, стабильной, диверсифицированной и достойной модели управления активами. Как правило, такие фонды пытаются как можно в большей степени стать независимыми от рыночных циклов (стать рыночно-нейтральными). Теперь давайте рассмотри на какие группы подразделяются кванты в количественных хедж-фондах.
Кванты: должности
Должности сотрудников, которые имеют дело с количественной торговлей, в различных финансовых сообществах делятся на 4 основных группы: количественный трейдер, количественный исследователь, инженер по финансам и количественный разработчик. И все они представляют собой основные позиции в финансовых кругах, но имеют свои особенности, что касается осознаваемой важности, степени оплаты и продвижения по карьерной лестнице.
Количественный трейдер. Это специалист, который обычно является «верхушкой айсберга» в количественных финансовых кругах, так как аккумулирует торговый доход для своей компании – для банковской организации или количественного (систематического) хедж – фонда. Также количественный трейдер занимается проектированием алгоритмов, ищущих альфу, то есть минимальные изменения, которые находятся выше стандартных (обычных) колебаний фондового рынка. Данные алгоритмы зачастую имеют много эконометрики, статистических данных и машинного обучения, и поэтому такие трейдеры очень часто имеют ученую степень в области прикладной математики или искусственного интеллекта. Повышение по карьерной лестнице количественного трейдера может идти очень быстро и прибыльно, если компания имеет в своем штате специалиста с хорошим стажем в торговле.
Количественный исследователь. Зачастую количественный исследователь является хорошим математиком или доктором наук в сфере стохатического вычисления, решивший работать в области прикладной математики, а не заниматься научно-педагогической деятельностью. Также очень часто они работают в альтернативных исследовательских компаниях или в крупных хедж – фондах, осуществляя более абстрактные подходы к исследованию рыночных изменений. Но между тем количественные исследователи работают и в инвестиционных банках в организационно – контрольных отделах, так как данные исследователи не обычно не тратят слишком много своего времени на реализацию различных моделей, а отдают эту работу финансовым инженерам или количественным разработчикам.
Финансовый инженер. Финансовыми инженерами являются люди, которых еще называют «количественными аналитиками». Они обычно оценивают продукт, который продается группой сбыта клиентам в больших банках. И для этого они должны иметь знания в области стохастического исчисления и иметь знания риск – нейтральных оценок. Также они должны уметь внедрять модель в библиотеку, которая уже существует и которая написана на популярных языках программирования. Финансовые инженеры обычно работают в сферах фиксированного дохода и на финансовых биржах, где присутствуют производные продукты. Они разбираются часто в физике или в технических науках, что помогает им в моделировании для реализации новейших финансовых продуктов.
Количественный разработчик. Обычно в финансовой сфере существует две категории количественных разработчиков. В первой категории работают люди которые тесно связаны с другими количественными аналитиками для того чтобы реализовать и оптимизировать финансовые модели. Фактически это означает, что можно взять первоначальный код из системы MATLAB, R или даже Python и просто переписать его на других языках, таких как С++ или Java. Такие люди часто приближены к большим деньгам и обычно работают в главном отделе, например, инвестиционного банка. Специалисты второй категории обычно работают с финансовыми данными о ценовых категориях и архитектурой различных торговых систем. Количественные разработчики кодируют сырую инфраструктуру, что дает возможность количественными аналитикам или трейдерам работать с их моделями и тем самым делать деньги. Более проще – это означает подключение базы данных к «бизнес – логике» и различным брокерским API. В инвестиционных банках обычно это может быть работа над обслуживанием крупных унаследованных Legacy систем. А если данный специалист служит в фонде, то он работает над «сырыми» проектами, которые связаны с новыми торговыми алгоритмами. Обычно в банках они работают в организационно – контрольных отделах. Самая высокооплачиваемая роль, которая существует в сфере количественной разработки – это роль разработчика программы С/С++, разбирающегося в сетевом программировании Unix, в системах с небольшой задержкой (Low-Latency) и разбираются в ядре Linux. Такие специалисты обычно работают скрытной сфере сверхвысокочастотной торговли типа Ultra-high frequency trading ( UHFT), где торговые заявки выполняются в течение микросекунд.
Классификация стратегий алгоритмического трейдинга
Далее мы рассмотрим некоторые, самые популярные, направления в алгоритмическом и количественном трейдинге.
Стратегии маркетмейкинга Я считаю, что маркетмейкинг, это один из самых простых способов зарабатывать деньги на финансовых рынках. Многие “гуру” говорят: “Мой секрет в том, что я покупаю дёшево, а продаю дорого”, ага, только как определить где дорого, а где дёшево? Маркетмейкеры так и делают, покупают дёшево, а продают дороже, только их абсолютно не волнует место, где нужно покупать, а где продавать. Они просто выставляют заявки по бидам и оферам, если цена идёт против них - добавляются в позицию большим объёмом. Наверное многие замечали, что если какой то ликвидный актив показывает безоткатное резкое экспоненциальное движение, то чем дальше уходит цена, тем больше возрастает объём сделок. Да, господа, это маркетмейкеры, они усредняются до тех пор, пока не удовлетворят толпу, при этом стараясь не сильно портить среднюю цену позиции, как только ажиотаж проходит, игроки начинают фиксировать прибыли или убытки, и цена откатывает в нужную сторону, а маркетмейкер кроется о всех “тонущих”. Конечно маркетмейкеры тоже не глупые и большие риски стараются не брать на себя. Перед важными новостными событиями, ликвидность актива может снизиться, т.к. реакция на новость может создать огромную волатильность инструмента, соответственно и большие риски для маркетмейкеров. В чём же подвох? Да, он действительно есть. Как долго вы сможете “пирамидить” вашу позицию, если цена будет идти против вас, имея на счету 10000$? Скажу вам, что ОЧЕНЬ не долго. И в случае сильного движения, вы просто станете инвестором, дожидаясь или маржин кола или возврата инструмента к вашей средней цене позиции. Соответственно, для того, что бы легко зарабатывать деньги, нужно иметь ОЧЕНЬ много денег, для осуществления такого рода стратегии. В качестве маркетмейкеров обычно выступают крупные банки и фонды, которых зачастую даже просят создавать ликвидность на определённом инструменте за определённую плату. Путём сильной диверсификации, крупный маркетмейкер страхует себя от форс-мажорных событий на конкретном инструменте, тем самым сглаживая дисперсию своей эквити. Подробнее о диверсификации.
Трендследящие стратегии Любимые стратегии многих начинающих и опытных тоже. Многие из вас слышали такие советы как : “Тренд - твой друг”, “Не стоит идти против поезда” и тд. Да, это всё относится к трендследящим стратегиям. Многие опытные трейдеры, обучая своих “детей трейдинга”, рассказывают о важности тренда на дневном графике актива и не только на дневном. Это может быть и правда, тренд показывает нам настроение актива, но он показывает какое оно было вчера и не понятно каким оно будет завтра или послезавтра. Но больше всего мне нравится когда трейдеры анализируют тренд на дневке, а совершают сделки по тренду на минутке, ставя стоп в 3-5 центов ЗА БАЗОЧКУ. Моё мнение: все мы торгуем волатильность инструмента, кто то этого не понимает, кто-то понимает и торгует опционы, но почти все стратегии, которые используют дейтрейдеры в своём арсенале, являются неким подобием опциона. Дак вот, те, кто правильно оценивают волатильность - зарабатывают, те кто не оценивают её вообще - кормят. Если вы и ставите стопы, то они должны быть такими, что бы хотя бы стандартная волатильность инструмента в спокойном состоянии не цепляла ваши “ограничители убытка”. Конечно я не принимаю во внимание великие поиски “крупных игроков” и “лимитных покупателей/продавцов”, т.к. считаю, что их намерения вы не узнаете до тех пор, пока им это будет выгодно. В алготрейдинге трендследящие стратегии могут создаваться из самых простых комбинаций известных индикаторов технического анализа: скользящих средних, MACD и тд., до самых навороченных эконометрических разработок, занимающихся предсказанием дрейфа и волатильности базового актива, рассчитывая десятки и сотни переменных, основанных на десятках и сотнях факторах.
Стратегии торговли волатильностью Я уже затронул тему торговли волатильностью, попробуем рассмотреть её немножко подробней. Торговать волатильностью удобнее всего через такой инструмент как опцион. Цена опциона состоит из двух составляющих: внутренняя цена опциона и временная. Внутренняя цена 1го контракта опциона на акцию - это прибыль от одного купленного или проданного лота акции (100 shares) по цене страйка опциона, но если прибыли нет, или получается убыток, то внутренняя цена опциона равна нулю. Это и есть один из главных плюсов опциона. Углубляться не будем, т.к. это не тема статьи. А вот временная стоимость опциона и делает его таким интересным, загадочным и непонятным. Именно для временной стоимости придумывают различные модели расчёта цен опционов и ведут постоянную борьбу. Временная стоимость опциона зависит от множества факторов и вторым по значимости фактором является Implite Volatility (подразумеваемая волатильность). Поэтому, торгуя опционы, мы можем не торговать направление базового актива, а вообще в моменет избавится от влияния цены базового актива на стоимость опциона, добившись этого, мы может торговать подразумеваемой волатильностью, покупать и продавать её. Кванты, создав свою опционную модель, котируют её, как маркетмейкеры котируют базовый актив, только у каждого свои особенности.
Фронт-раннинг Для стратегий фронт-раннинга обычно используют HFT (высокоскоростные алгоритмы), т.к. именно от скорости выставления заявок и зависит конечный результат. Сами стратегии фронт-раннинга вполне понятные, но для их осуществления нужен некий эдж, что бы быть конкурентоспособным. Смысл стратегии в выставлении заявок перед большим объёмом в стакане, либо некие другие методы оценки активности в стакане. Выставляя заявки в даркпулах перед “котлетой”, алгоритм намерен получить исполнение первым, затем выставить встречную заявку чуть дальше и ждать её исполнения. Логика в том, что пока “плита” на своём месте, есть время на поимку небольшого “шума” перед сайзом. Сложность стратегии в том, что в наше время отображаемая ликвидность актива может мало о чём сказать, т.к. большие пакеты желают скрытого исполнения в даркпулах, да и сайзы, отображаемые в стакане, могут быть лишь небольшой манипуляцией, после чего мгновенно исчезнуть.
Арбитражные стратегии Это второй просто способ зарабатывать на финансовых рынках деньги. Есть огромное множество направлений арбитража. Сейчас я расскажу о самом простом и примитивном: пространственный арбитраж. Пространственный он потому, что по сути мы торгуем один продукт в разных местах, например ETF на индекс S&P 500 одной компании, против ETF’a другой компании, или же ETF против фьючерса. В наше время на развитых рынках данный арбитраж полностью усеян HFT машинками. И составить им конкуренцию можно только создав лучшую инфраструктуру, получив более высокую скорость отправки ордеров, а это, как вы уже догадались, невозможно. Т.к. тот, кто может предоставить хорошую инфраструктуру нам, себе предоставит лучше)) НО, как ни странно, на российском рынке данный арбитраж жив, я писал статью на эту тему, подробнее тут: Арбитраж на российской бирже. Преимущества данного направления в том, что пространственный арбитраж полностью исключает рыночные риски, мы всегда рыночно-нейтральны и стабильно зарабатываем некий небольшой доход.
Статистический арбитраж (StatArb) В профессиональной среде финансистов термин «статистический арбитраж» может употребляться в различных контекстах. Если при классическом арбитраже, рассмотренном выше, риск в сделке сводится практически к нулю, так как покупка и продажа одного финансового инструмента производятся одновременно, только по разным ценам, то в статистическом арбитраже торгуется два разных инструмента. Статистический арбитраж можно рассматривать как торговую стратегию, включающую в себя торговые автоматизированные системы, методы обработки статистики и datamining. Прародителем СтатАрба считается простой парный трейдинг. При этом из всех акций составлялись похожие по рыночной обоснованности пары. В тот момент, когда одна из парных акций начинает существенной двигаться, а вторая не успевает, то совершается покупка или продажа спреда пары. Эта система позволяет свести риски к минимуму, то есть хеджировать. Другими словами используется контртрендовая торговля или mean reversion. Для создания высокой диверсификации, набирается огромное количество пар, получая портфель из сотен ценных бумаг. Причём определённая их часть находится в лонге, а другая — в шорте. За этим ведётся строгий контроль и учёт, чтобы устранить различные факторы риска. Процесс конструирования пакета может быть разный, например путём выставления рейтинга акциям. Этот процесс называется «оценка» или scoring. Высоким рейтингом отмечают акции, удерживающиеся в лонге, а низким — те акции, которые претендуют на шорт. Но так как рейтинговые формулы выражают принцип возврата к среднему, то акции, заявившие себя хорошо в течение недели, могут попасть в низкий рейтинг. Это справедливо и в обратном значении. Понятие StarArb может включать в себя любую стратегию, при которой используется бета–нейтральный подход, ориентированный на различные инструменты, а также статистические техники, создающиеся для поставки сигналов на исполнение. Пары ценных бумаг могут оцениваться и в изоляции, путём оценки статистических показателей синтетического инструмента:
Статистический арбитраж имеет и свои риски, связанные с маловероятными, но возможными событиями. В любой конечный промежуток времени может произойти определённый факт, вызвавший краткосрочные потери. Если они превышают ликвидность, которая на данный момент доступна трейдеру, то может произойти дефолт, что и произошло с фондом LTCM. Также имеются недостатки в самих моделях статистического арбитража. Существуют определённые факторы, которые модель не учитывает, считая их несущественными. Но в отдельных случаях они могут иметь большое значение для движения цен на рынке. Ещё одним моментом риска является ложное статистическое взаимоотношение, на основании которого построена модель. Риски увеличиваются в тот момент, когда большое количество участников начинают в одно и то же время инвестировать по схожим принципам, что порождает нарушение прошлых статистических показателей спреда.
Стратегии баскет трейдинга Стратегии баскет трейдинга, в принципе, схожи со стартегиями статистического арбитража, но в случае баскет трейдинга торгуются не пары акций, а портфели акций, т.е. по неким моделям составляются портфели акций, который далее торгуются друг против друга. Также можно торговать корзину акций против одного финансового инструмента, например корзину компонент S&P 500 против ETF’a на S&P. Данные методы автоматически подразумевают под собой диверсификацию, т.к. ведётся торговля сразу множеством инструментов. На основе своих математических моделей, хедж-фонды создают торговые алгоритмы, которые автоматизируют всё рутинную работу оценки корзин инструментов.
История Long Term Capital Management
Те кто читает статью, и думает “Блин, вот это я ящик, надо было учится в универе, стать профессором наук, придумал бы смою математическую модель и заработал бы миллионы” хочу вас расслабить. Рынок поставит всех на свои места, вот вам наглядная история нашумевшего в своё время фонда. Long Term Capital Management (далее LTCM) являлся одним из самых успешных (ключевое слово являлся) хедж-фондов. Основан в 1993 году Джоном Мэрриуэзером, бывшим главой отдела торговли облигациями и бондами Salomon Brothers. Половина штата - доктора наук, двое - лауреаты Нобеля, все без исключения - трейдеры экстра-класса.. Казалось бы, что может пойти не так? ...После ухода из Саломон в 1991 году со скандалом, Мэрриуэзер решил уйти в “свободное плавание”. Организационно-правовая форма хедж-фонда была выбрана из-за отсутствия по сравнению с другими формами инвестиционных организаций (например, взаимными фондами) жестких ограничений на количество вкладчиков (во взаимных фондах - не более 100), размер их вклада (там же - от миллиона долларов), а также относительной свободы от регуляторов и аудиторов.
Немного о первоначальной стратегии фонда - её можно назвать “арбитраж инструментов с фиксированной доходностью”. Вкратце - с помощью сложных математических моделей (с Робертом Мертоном и Майроном Шоулзом по другому и быть не могло!) отслеживались неэффективности в ценообразовании облигаций (скажем, разница между 30-летней облигацией и облигацией со сроком погашения в 29 лет и 9 месяцев) и проторговывались - чаще всего это были т.н. convergence trades - торговля на схождении, т.е. фонд ждал серьезного расхождения инструментов и входил в позицию, надеясь на схождение цен. Доходность была для фонда просто отличной - 43% в 1995 году, 41% в 1996 году - инвесторы плясали от радости, прыгали до потолка и несли еще больше денег в LTCM! Размер фонда рос, ликвидности стало не хватать... В 1997-ом фонд сделал уже 17%, что все равно весьма неплохо и значительно превышало банковскую ставку.
Когда размер фонда перевалил за пару миллиардов, в дело были введены дополнительные стратегии - продажа волатильности на индексе S&P500, а также рисковый арбитраж на сделках поглощения (merger arbitrage).. Также стоит отметить одну особенность фонда - из-за того, что доходность каждой торговой операции была невелика (все-таки это арбитраж, а не ловля тренда!), компания использовала кредитное плечо, причем не просто плечо, а целое плечище! В начале 1998 года размер фонда составлял 4.72 миллиарда долларов, а размер позиций - около 129 миллиардов, т.е. кредитное плечо составляло около 26.4 к 1… В середине 1998 года началось… Отголоски Восточно-Азиатского финансового кризиса конца 1997 года начали “бить” по позициям фонда, принеся убытки в мае и июне 1998 года в размере 6.4% и 10.1% соответственно..
Российский кризис и дефолт 1998 года лишь ухудшил ситуацию - инвесторы в панике продавали японские и европейские облигации для покупки облигаций в США, вызвав огромные движения против позиций фонда на схождение, вызвав огромные расхождения цен на бонды, вызвав потерю фондом 1.85 миллиардов капитала. Для того, чтобы “отыграться”, фонд занял арбитражную позицию в компании Шелл (Royal Dutch Shell - Shell, компания торговалась на двух разных биржах, расхождение составляло около 10%) в надежде на схождение цен. Возможно, в длительной перспективе аналитики фонда оказались бы правы, но из-за огромного кредитного плеча и текущих убытков им пришлось закрыть и эту позицию с убытком! В итоге, за три недели сентября капитал фонда рухнул с солидных 2.3 миллиардов к 400 миллионам на 25 сентября 1998 года - и это при кредитных обязательствах, превышающих 100 миллиардов! На данный момент кредитное плечо фонда превысило 250 к 1 - не каждый форекс-брокер предоставит такое)) Фонду удалось выбраться из полной ж*** благодаря займу, собранному по инициативе ФедРезерва 16ю банками, на следующий год он даже оказался в прибыли на 10% и расплатился с заемщиками. В начале 2000х фонд был ликвидирован вместе с несколькими тысячами пачек сигарет, выкуренных сотрудниками, которые, к слову, стали богаче на несколько миллионов...седых волос)) Вот так, товарищи, зазнались доктора, не хватило ликвидности и огромные накаченные ПЛЕЧИ культуриста снесли весь фонд одним махом.)) Эквити фонда LTCM:
Обзор программ
Давайте кратко пробежимся по обзорам некоторых полезных программ для алготрейдеров и начинающих квантов.
WealthLab Данный софт отлично подойдёт для начинающих алготрейдеров. Он может использоваться и в качестве торгового терминала, бектестера стратегий и в качестве платформы для написания торговых алгоритмов с последующим запуском на финансовых рынках. Программа позволяет описывать ваши торговые идеи на популярном языке C# с использованием библиотеки Wealth Script, которая значительно облегчает описание различных стандартных для трейдера функции. Платформа позволяет подключать множество различных источников котировок, а так же закачивать котировки из текстовых файлов. Официальный сайт: http://www.wealth-lab.com/
TSLab Тоже очень неплохой отечественный софт, позволяющий описывать различные простые и сложные торговые алгоритмы с последующим бектестом, оптимизацией и запуском алгоритма для торговли на финансовых рынках. Для описания сценарием в данной платформе используется популярный язык C#. Чем радует данная разработка, дак это наличием блок-схем, с помощью которых даже абсолютный “ноль” в программировании сможет описать свою торговую систему, путём составления дерева из блоков. Официальный сайт: http://www.tslab.ru/
R Studio Данный софт уже больше подходит для квантов, нежели для начинающих алготрейдеров. Студия является оболочкой нескольких языков программирования, одним из которых является R. R - программный язык, предназначенный для работы с данными, временными рядами. В его возможно входят: оптимизации, тестирования и создания математических моделей и веб интерфейсов к ним, оценки статистических характеристик временных рядов и многое другое. Особенностью языка является его открытость и доступность. Он абсолютно бесплатен, очень гибок и универсален. Многие сложные матетматические и эконометрические модели и тесты описываются в нём буквально несколькими строками. И всё это благодаря огромной базе библиотек, в которых реализовано огромнейшее число всевозможных эконометрических тестов, исследований, моделий и много ещё всего. Официальный сайт языка R: http://www.r-project.org/ Официальный сайт R Studio: http://www.rstudio.com/
Bloomberg Один из самый популярных аналитических терминалов в мире. Он содержит целый склад информации о всём, что связано с финансами и не только. Исторические котировки, фундаментальные показатели, рейтинги, оценки и ещё кучу всего содержит в себе данный терминал. Он является просто необходимым инструментов для профессиональных квантов и хедж-фондов, т.к. кванты без него, как спецназ без оружия))
Заключение
В заключении хочу сказать: мир эконометрики и алготрейдинга очень насыщен и интересен, но и это не является неким граалем и панацеей, т.к. знайте, создавай алгоритм или модель, вы всегда будите ломать чью то модель. В мире количественного трейдинга не выжить одному, т.к. вы будите всегда стоять на пути огромнейших фондов и банков, которые знают что делают и будут пытаться сломать вас вдоль и поперек.
Будьте в курсе всех важных событий United Traders — подписывайтесь на наш телеграм-канал
utmagazine.ru