ВВЕДЕНИЕ 4
1. ПОСТАНОВКА ЗАДАЧИ 14
2. ТРЕНДОВЫЕ ТОРГОВЫЕ СИСТЕМЫ 17
2.1 ПЕРЕСЕЧЕНИЕ ДВУХ СКОЛЬЗЯЩИХ СРЕДНИХ 18
2.2 ТОРГОВАЯ СИСТЕМА ПРОРЫВА КАНАЛА 19
2.3 ТОРГОВАЯ СИСТЕМА ПРОРЫВА ФРАКТАЛА 21
3. ТОРГОВАЯ ПЛАТФОРМА TRADING VIEW. ЯЗЫК ПРОГРАММИРОВАНИЯ PINE 23
3.1 РАБОЧЕЕ ПРОСТРАНСТВО В TV 23
3.1 ЯЗЫК PINE 27
4. ТЕСТИРОВАНИЕ ТОРГОВЫХ СТРАТЕГИЙ 32
4.1 ПЕРЕСЕЧЕНИЕ ДВУХ СКОЛЬЗЯЩИХ СРЕДНИХ 34
4.2 ТОРГОВАЯ СИСТЕМА ПРОРЫВА КАНАЛА 40
4.3 ТОРГОВАЯ СИСТЕМА ПРОРЫВА ФРАКТАЛА 44
5. Выводы
СПИСОК ЛИТЕРАТУРЫ 51
ПРИЛОЖЕНИЕ 53
Торговля активами на финансовых площадках обладает огромным потенциалом использования анализа данных. Существование огромного количества исторических данных предполагает, что интеллектуальный анализ, использование механических торговых систем может обеспечить конкурентное преимущество одним инвесторам перед другими, торгующими вручную.
Существует множество торговых систем, которых предлагают начинающим инвесторам брокеры в качестве источника принятия решения о покупке или продаже финансового актива. Идея автоматизировать их и исследовать, на возможность применения в условия реального рынка, очень актуальна.
Количество инвесторов, трейдеров, спекулянтов, использующих для биржевой торговли специальных роботов, неуклонно растет. Алгоритмы очень сильно отличаются друг от друга и по работе, и по скорости, и по количеству используемых данных, и по сложности принятия решений.
У торговых роботов масса преимуществ относительно торговли «от руки», то есть самим человеком:
1) Эффект хладнокровия. Трейдер, совершающий операции вручную, зачастую принимает решения не исходя из рыночной ситуации, а исходя из эмоционального фактора. Робот не подвержен эмоциям и всегда четко следует системе.
2) Время. Торговый робот экономит массу времени инвестору, и участие инвестора в торговле активами минимально.
3) Автоматические торговые системы в разы быстрее реагируют на ситуацию на рынке.
4) Торговые роботы дают возможность без траты личного времени совершать операции на бирже.
И самое главная особенность - наличие четкой запрограмированной системы, что зачастую отсутствует у инвестора-человека.
Но конечно помимо очевидных плюсов, присутствуют минусы:
1) Сложность в разработке. Написать работающего робота дело очень сложное и обладающее множеством нюансов.
2) Торговые алгоритмы приходится часто дорабатывать, корректировать, изменять с учетом рыночной ситуации.
3) Для большей части алгоритмов требуются большие вычислительные мощности.
По статистике Московской Биржи, более 55 процентов сделок ежедневно совершаются роботами, и по прогнозам это число будет только увеличиваться, а по самым смелым прогнозам аналитиков рано или поздно на бирже будут торговать только роботы.
В мире, по данным FORBES, общая доля оборота рынка ценных бумаг от алгоритмической торговли составляет 80-90%, что включает в себя также высокочастотные (HFT - High Frequency Trading) стратегии (45-55%), алгоритмические заявки (Program Trading) от крупных инвестиционных фондов (15-25%), характеризующиеся продолжительными периодами исполнения, и алгоритмические заявки от Quantitative и Systematic фондов (10-20%).[2]
Вычислительные мощности позволяют обрабатывать огромный поток информации, поступающих с биржи или СМИ. Поэтому уже сейчас большинство крупнейших хедж-фондов в мире алгоритмизированы и под их управлением находится свыше 400 млрд долларов и эта цифра неуклонно растет.
Так называемые робосоветники(по большей части ETF фонды), с помощью которых можно вложить в рынки разных стран без непосредственного выхода на биржи этих стран, активно развиваются в странах мира.
Например, с Московской Биржи можно купить ETF фонд, который вкладывает в рынок Китая, в индексные бумаги, и фонд управляется алгоритмами. По данным FORBES под управлением робосоветников к 2020 году будет свыше 10 триллионов долларов.[1]
При этом в современных хедж-фондах более 80 процентов сотрудников не экономисты и финансисты, а математики и программисты. Несомненно, алгоритмическая торговля доступна не только для профессиональных участников рынка ценных бумаг, но и для частных инвесторов и мелких трейдеров.
Условно торговых роботов можно поделить на несколько важных групп:
1) Маркетмейкеры - роботы. Создают ликвидность на рынке, либо держат справедливую цену активу на бирже.. Дают возможность купить или продать финансовый инструмент при отсутствии реального спроса и предложения. Для мелких трейдеров не представляют интереса, работу поддерживают профессиональные участники рынка в соглашении с биржей.
2) Арбитражные роботы. Ищут расхождения между ценами актива на разных рынках, с помощью них находят несоответствия и на этом зарабатывают. Большинство таких роботов высокочастотные. Их задача быстрее других заметить расхождения в ценах и максимально быстро эти воспользоваться. Многие хедж-фонды, имея большие ресурсы и возможности, используют таких роботов, стабильно генерирующих 15-20 процентов прибыли каждый год. Особенность в том, что частному инвестору на арбитражном рынке не сгенерировать прибыли, по причине того, что расхождения как правило минимальные, и комиссии за сделки физическим лицам будут больше предполагаемой прибыли.
3) Портфельные роботы. Автоматический составляют и отслеживают портфель, состоящий из множества ценных бумаг с помощью математических моделей. Наибольшее количество научных публикаций именно по портфельным роботам. Для частного трейдера представляют интерес в долгосрочной перспективе, по причине того, что такие портфели сильно диверсифицированы и их задача не заработать, а сохранить средства и опередить в процентах индекс рынка в целом. Минус таких роботов, что они не готовы к кризисам, крахам и так далее. Они работают исключительно на покупки.
4) Роботы спекулянты. Работают не только на повышении актива, то есть «купить дешевле - продать дороже», но и на понижении, то есть «продать дороже, откупить дешевле». Такие роботы более гибкие в применении, процесс принятия решений, как правило, строится на трендовых моделях, волатильности. Мы будем тестировать именно таких торговых роботов, для большего понимания их тоже можно разделить на группы.
1) Высокочастотные роботы - совершают огромное количество операций, вплоть до нескольких тысяч за торговую сессию, ловят малейшие движения финансового актива. Чтобы заниматься высокочастотным трейдингом, нужно иметь огромные вычислительные мощности, высокоскоростной интернет и выделенный канал для доступа на биржу, чтобы заявки исполнялись быстрее. Иначе работа такого робота не несет в себе
смысла и оправдывать себя он не будет. Большую часть оборотов биржи составляют высокочастотные алгоритмы.
2) Низкочастотные роботы - совершают несколько операций в день, в неделю, в месяц, в зависимости от спецификации. Скорость здесь не так важна, поэтому эти алгоритмы наименее затратные для частного трейдера, потому что для них не нужны выделенные линии на биржу, высокоскоростной интернет и производительные мощности. На первый план встают два вопроса:
• Сама торговая стратегия или торговая метода, её математическая модель, её применимость на разных активах, рынках.
• Как робот будет совершать операции на рынке, как это можно контролировать, каким образом будет происходит взаимодействие с брокером.
Сделка, при которой финансовый актив покупается дешевле, с целью продать дороже называется «лонг» или «длинная» позиция. Помимо этого существует сделка «шорт» или «короткая» позиция, при которой финансовый актив изначально занимается у брокера, продается по высокой цене, с расчетом на то, что цена актива понизится, далее актив выкупается с рынка, отдается снова брокеру, а разницу между ценой продажи и покупки инвестор забирает в карман.
Попросту говоря лонг - сделка на повышение, шорт - сделка на понижение.
Для совершения любых операций на финансовых рынках любому физическому лицу нужен посредник (брокер), который в свою очередь предоставляет выход на биржу данному лицу через программное обеспечение (торговую платформу).
Некоторые торговые платформы имеют собственный внутренний язык программирования для написания роботов, индикаторов.
Перед началом работы необходимо объяснить некоторые важные финансовые термины, используемые в работе:
1) Волатильность - стандартное отклонение цены за период времени. В терминах трейдеров это амплитуда колебаний цены за определенный период времени. Вычисляется по формуле где а - волатильность, п - количество значений цены в анализируемом периоде, ш - среднее арифметическое значений цены в периоде, xi - количество изменений цены.
Волатильность по своей логике отражает эмоции людей, торгующий на рынке. Как правило на больших событиях, крахах волатильность многократно увеличивается.
2) Коэффициент Шарпа - показатель дохода на единицу риска. Используется для оценки эффективности стратегии. Вычисляется по формуле:
S _ £[Дд-Дь]
h Jvar[Ra- Rb]
где Ra - средний доход портфеля, Rb - средний доход по безрисковой ставке, Jvar[Ra_ Rb] - стандартное отклонение доходности портфеля. Чем выше соотношение, тем менее рискованный портфель у управляющего.
3) Таймфрейм - длина минимального временного периода на графике. Чаще всего, для любого анализа цены биржевые аналитики, трейдеры, частные инвесторы используют представление цены в виде «японских свеч».
«Японские свечи» также называют совмещением интервального и линейного графика по причине того, что каждый его элемент отображает диапазон изменения цены в течение определённого времени, то есть таймфрейма. Он чаще всего используется при техническом анализе рынка.
Каждая японская свеча - временной период(1 день, неделя, час, месяц, 5 минут и так далее), для создания низкочастотного торгового робота обычно используют период 1 час и более.
«Свеча» состоит из чёрного/белого тела и верхней/нижней тени. Верхняя или нижняя граница тени отображает максимум и минимум цены за соответствующий период, а границы тела отображают цену открытия и закрытия.
Если в целом цены выросли, то тело белое, нижняя граница тела отражает цену открытия, верхняя— цену закрытия. Если цены снизились, то тело чёрное, верхняя граница тела отражает цену открытия, нижняя — цену закрытия.
При совпадении цен открытия/закрытия с максимумом/минимумом, соответствующей тени или даже обеих теней сразу может не быть. При совпадении цен открытия и закрытия тела может не быть.
Свеча не содержит прямой информации о движении цен внутри соответствующего интервала времени. Нет указаний на то, максимум или минимум был достигнут первым, сколько раз происходили рост или снижение цен. Например, при наличии обеих теней нельзя сказать, сперва цена повышалась или понижалась. Чтобы это выяснить, надо изучать граф-существования торговой системы. То есть каждый раз открывая новую сделку можно будет понять по профит фактору предполагаемую прибыль и возможные убытки.
5) Прибыль долгосрочного инвестирования(бенчмарк) - величина, показывающая прибыль от покупки инструмента в начале тестирования торговой системы до текущего момента. Торговую стратегию как правило сравнивают с бенчмарком и делают выводы относительно работы стратегии в реальных рынках, если стратегия «Купи и держи» показала более высокий результат по сравнению со спекулятивным роботом, тогда в роботе нет никакого смысла.
6) Чистая прибыль(%) - один важнейших показателей торговой стратегии. Вычисляется по формуле:
Pn—P—G
ЧП= — --*100%
р
где ЧП - чистая прибыль, G - дополнительные издержки(например комиссии за сделки),
Рп - количество денег на момент времени n, Р - количество денег(капитал), на момент начала работы стратегии.
То есть чистая прибыль показывает изменение капитала с начала стратегии, до текущего момента.
7) Максимальная просадка - максимальное значение, выбираемое из множества разниц между локальным максимальным значением капитала в период тестирования стратегии и локальным минимальным значением капитала.
То есть просадка равная -35% означает, что в момент времени t, где t€T, где Т - период тестирования стратегии, капитал снизился с величины К до величины Ki на 35 процентов и это значение было максимальным локальным убытком за все историю стратегии.
Если говорить языком ещё более простым, то если инвестор начавший торговать по стратегии в момент времени t-1 на момент времени t получил бы убыток 35 процентов. Поэтому показатель важен для общей оценки работы алгоритма.
Помимо создания торговых роботов, основанных на трендовых моделях и многочисленных их тестов, одна из главных задач работы - протестировать торговые системы и понять, насколько они актуальны для аккумулирования денежных средств на бирже в условиях развивающихся технологий и систем автоматической торговли. Торговля активами на организованных площадках с помощью большинства механических торговых систем, основанных на простейших трендовых роботах, в текущих условиях не является прибыльным занятием. Хорошие результаты показала лишь стратегия «Пересечение двух скользящих средних». Интересный момент в том, что стратегия показала себя хорошо только на некоторых активах.
Подводных камней в роботостроении достаточно много. Во-первых само развитие роботостроения, это тоже в какой-то степени подводный камень. То есть чем больше роботов работает, тем сложнее искать новые «лазейки» для зарабатывания прибыли, конкуренция колоссальна. Во-вторых, широких возможностей, представляемых платформой TradingView, не достаточно для полной автоматизации процесса на реальном рынке. Сделки хоть и показываются на графике и тестируются на исторических данных, в реальный счет они не переходят. Конечно, это временная проблема, сервис развивается с каждым годом. Поэтому создание агрегатора между терминалом брокера и терминалом TradingView, где происходит обмен сделками, актуальная задача на будущее, для использования разработок в реальной торговле.
Несмотря на недостатки для тредйера, стоит понимать, что область роботостроения развивается большими темпами, и заниматься исследованиями и создавать разных торговых роботов очень перспективная деятельность.
Были сформулированы математически и запрограммированы одни из самых известных торговых стратегий, популярность которых основана на простых технических индикаторах и тривиальных методах принятия решений.
На основе проведенного исследования и тестирования стратегий на разных активах с различными параметрами можно сделать несколько интересных выводов.
Показатель Н - % прибыльных сделок никаким образом не влияет на итоговый финансовый результат стратегии.
У стратегии «Пересечение скользящих средних» с доходностью за расчетный период в несколько раз выше бенчмарка(свыше 300 процентов доходности за период времени), количество прибыльных сделок чуть более 30 процентов, а у стратегии «Пробой канала» около половины сделок положительные, но общий финансовый результат удручающий.
Очевидно, что итоговый финансовый результат торгового робота - это не оптимизация одного показателя, например Н, а оптимизация множества показателей, в зависимости от нужд трейдера или инвестора. Для консервативного инвестора, скорее всего, в приоритете будет показатель максимальная просадка, у спекулянта - чистая прибыль, у портфельного инвестора - коэффициент шарпа, отношение положительных сделок ко всем.
Как показали тесты, у каждой стратегии для каждого актива разные наиболее близкие к оптимальным значениям параметры. То есть стратегия, работающая на одном временном ряду, при переходе на другой временной ряд не работает. Для трендовых систем это не является помехой для дальнейшего использования робота. Трендовые системы в основе своей используют стандартные отклонения цены, которые на каждом активе разные, соответственно трендовые системы не универсальные.
Торговые роботы показывали более качественные результаты при работе с активами развивающихся рынков, худшие - на развитых. Виной тому может служить большая конкуренция на развитых рынках роботизированных торговых систем.
1. сайт Forbes, http://www.forbes.ru/tehnologii/340153-roboty-na-birzhe- kogda-mashiny-konsultanty-deystvitelno-pridut-v-upravlenie
2. сайт Forbes, http://www.forbes.ru/fmansy-i-investicii/351467-begushchie-po- lezviyu-pochemu-treydery-bolshe-ne-mogut-zarabatyvat-bez
3. Hellstrom T. «Optimization of Trading Rules with a Penalty Term for Increased Risk-Adjusted Performance» M.:, 2000. — 1-15 c.
4. Kuo G. W. «Some exact results for moving-average trading rules with applications to UK indices» M.:, 1998. — 81-102 c.
5. Zakamulin V. «Market Timing with Moving Averages: Anatomy and Performance of Trading Rules» M.:, 2016. — 4-33 c.
6. Zakamulin V. «Market Timing With a Robust Moving Average» M.:, 2015. -4-21 c.
7. Майоров С. Алгоритмическая торговля — за и против, Биржевое обозрение. 2010. № 1 (73). С. 7-18.
8. Майоров С. О современных тенденциях развития торговых технологий, Биржевое обозрение. 2009. № 10 (70). С. 13-18
9. Илющенко К. Биржевые роботы в положении низкого старта,
Рынок ценных бумаг. 2007. № 9(47). С. 21-23.
10. Дьяконова Д.О., Володин С.Н. Применимость технического анализа для акций, различающихся по ликвидности, Фондовый рынок: современное состояние, инструменты и тенденции развития. М.: Бизнес Элайнмент, 2012. С. 71-89.
11. Wong W.-K., Manzur М., Chew В.-К. How rewarding is technical analysis? Evidence from Singapore stock market Applied Financial Economics , Taylor and Francis Journals. 2003. Vol. 13. №7. Pp. 543551.
12. Wyckoff J. Entry and Exit Strategies for Maximum Profitability, The trader's journal. 2008. Vol. 4. Iss.2. Pp. 101-127.
13. Papathanasiou S., Samitas A. Profits from Technical Trading Rules: The Case of Cyprus Stock Exchange, Journal of Money, Investment and Banking.
2010. № 13. Pp. 27-43.
14. Paulos J. A mathematician plays the stock market. New York: Basic Books, 2003.-216 p.
15. сайт Trade like a Pro, http://tradelikeapro.ru/trendovyie-torgovyie-sistemyi/
16. сайт TradingView, https://ru.tradingview.com/study-script-reference/