Введение 5
1. Постановка задачи 7
2. Обзор технологий создания торговых роботов 8
2.1. Программный комплекс StockSharp (S#) 8
2.2. Программный комплекс Quik 10
2.3. Торговый комплекс Metatrader 5 11
2.4. Платформа TSLab 13
2.5. Выводы 14
3. Требования к инструментарию 16
4. Архитектура 17
5. Реализация 20
5.1. Особенности реализации 20
5.2. Блоки оценки эффективности торговых стратегий 20
5.3. Блоки условия открытия позиций 21
5.3.1. Блоки ’’Молот”, ’’Перевёрнутый молот” 22
5.3.2. Блоки ’Бычье поглощение”, ’Бычья Харами” 23
5.3.3. Блоки условия совершения продажи 24
5.4. Блоки условия закрытия позиций 25
5.4.1. Блоки ”Стоп-лосс по ATR”, ”Тейк-профит по ATR” 26
5.4.2. Блок ”Тейк-профит с коэф. стоп-лосса” 26
5.4.3. Блоки ’Фиксированный стоп-лосс”, ’Фиксированный тейк-профит” 27
5.5. Вспомогательные блоки 27
5.5.1. Управление торговой позицией 27
5.5.2. Использование объёма при построении торговых систем 28
5.6. Блоки управления капиталом 29
5.7. Блоки классических алгоритмов 30
5.7.1. Блок ”SMA” 30
5.7.2. Блок ”EMA” 31
5.7.3. Блок ”ParabolicSAR” 32
5.7.4. Блок ”MACD” 33
5.7.5. Блоки ’’Выбор алгоритма для входа в позицию на покупку”, ’Выбор алгоритма для входа в позицию на продажу” 34
6. Апробация инструментария 36
6.1. Торговая стратегия №1: пересечение двух EMA 36
6.2. Торговая стратегия №2: свечные модели технического анализа 38
6.3. Сравнение торговых стратегий 40
Заключение 41
Список литературы 42
Задача прогнозирования финансовых рынков является достаточно сложной и актуальной на сегодняшний день задачей, так как осуществление правильного прогноза динамики цен - основной элемент успеха любой инвестиционной деятельности.
Процесс перераспределения финансовых активов между участниками рынка проходит на организованных торговых площадках - биржах [9]. Инвесторы, имея свободный денежный капитал, могут вложить его в какой-либо финансовый инструмент, например в акции, тем самым передавая свои денежные средства тем участникам торгов, которые в них нуждаются. Торгуя на финансовом рынке, покупая или продавая финансовые активы, инвестор (трейдер, спекулянт) имеет возможность получить прибыль за счёт разницы в цене (изменения котировок) данного актива за определённый промежуток времени.
Наиболее популярным способом торговли на бирже на сегодняшний день является способ торговли на бирже через Интернет, так называемый Интернет-трейдинг [8]. В этом случае существенно упрощается процедура покупки и продажи активов. Для совершения торговых операций требуется определённое программное обеспечение, поставляемое, как правило, брокером или биржей.
С поялением Интернет-трейдинга не только увеличилась скорость осуществления торговых операций. Появились механические торговые системы (автоматические системы, торговые роботы) - программы, предназначенные для полной или частичной автоматизации деятельности трейдеров.
Для того чтобы иметь положительный результат, торгуя на финансовом рынке, трейдеру необходимо придерживаться определённой торговой системы (торговой стратегии), которая понимается как чёткий свод правил и условий совершения трейдером тех или иных операций на бирже. Зачастую в процессе торгов трейдер, теряет контроль над своими эмоциями, попадает в азарт и бесконтрольное поведение и, как следствие, не следует правилам своей торговой системы и несёт убытки. Чтобы избегать подобных явлений, торговцу финансовых активов могут прийти на помощь торговые роботы, которые лишены эмоций и чётко следуют заложенным в них правилам открытия, сопровождения и закрытия сделок при торговле на бирже.
Нередко бывает, что трейдер, поставивший себе цель создать торгового робота, сталкивается с некоторыми трудносятми. Например, у него есть хорошая торговая стратегия, но он не владеет языком программирования, и поэтому процесс написания и запуска торгового робота представляется им затруднительным. Напротив, человек, имеющий опыт разработки, может не иметь опыта работы с финансовыми инструментами, и, соответственно, также сталкивается с определёнными трудностями при реализации робота.
В рамках данной выпускной квалификационной работы были достигнуты следующие результаты:
• выполнен обзор технологий создания торговых роботов: программных комплексов StockSharp, Quik, торгового комплекса Metatrader, а также платформы TSLab;
• разработаны требования к инструментарию;
• описана архитектура предлагаемого инструментария;
• реализован инструментарий, упрощающий процесс создания торговых роботов на языке C# в среде программирования SharpDevelop на базе платформы TSLab;
• произведена апробация инструментария:
1) разработан ряд торговых стратегий;
2) произведено тестирование стратегий на реальных данных, получены оценки эффективности и произведено их сравнение друг с другом средствами предложенного инструментария.