Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Создание, тестирование и оптимизация торговых систем с использованием программы Metastok и языка R. Учебное пособие

.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего образования
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ
ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
М.E. Семёнов
СОЗДАНИЕ, ТЕСТИРОВАНИЕ И ОПТИМИЗАЦИЯ
ПРОГРАММЫ METASTOK И ЯЗЫКА R
Рекомендовано в качестве учебного пособия
Редакционно-издательским советом
Томского политехнического университета
Издательство
Томского политехнического университета
2019
УДК 339.3:004.42(075.8) ББК У9(2)422я73
С79
Семёнов М.Е.
С79 Создание, тестирование и оптимизация торговых систем с ис-
пользованием программы Metastok и языка R : учебное пособие / М.Е. Семёнов / Томский политехнический университет. – Томск : Изд-во Томского политехнического университета, 2019. – 59 с.
ISBN 978-5-4387-0910-7
В пособии рассмотрены основные настройки интерфейса, особенности экс­порта и импорта данных, специфика выполнения основных операций по созданию, тестированию и оптимизации торговых систем, инвестиционных портфелей. Осо­бое внимание уделено практическим примерам для освоения основных принципов и порядка работы в системе Metastock и языка программирования R.
Предназначено для студентов и аспирантов вузов, специализирующихся на разработке математических моделей и методов исследования операций в эконо­мике, а также для инвесторов и практикующих трейдеров, целью которых явля­ется создание, тестирование и оптимизация торговых систем и инвестиционных портфелей.
УДК 339.3:004.42(075.8) ББК У9(2)422я73
Рецензенты
Доктор технических наук, профессор ТУСУРа
А.А. Мицель
Кандидат физико-математических наук, доцент НИ ТГУ
А.Е. Петелин
ISBN 978-5-4387-0910-7 © ФГАОУ ВО НИ ТПУ, 2019
© Семёнов М.Е., 2019 © Оформление. Издательство Томского
политехнического университета, 2019
Оглавление
Введение .................................................................................................................... 4
Раздел 1. Программа Metastock ............................................................................... 6
1.1. Обзор системы, состав и назначение основных модулей системы
Metastock ........................................................................................................ 6
1.2. Знакомство с графическим интерфейсом программы ................................ 7
1.3. Загрузка данных в программу Metastock ................................................... 11
1.4. Встроенный макроязык. Разработка индикаторов,
фильтров, функций ...................................................................................... 14
1.5. Настройка и использование советников .................................................... 19
1.6. Создание и тестирование торговых систем.
Проведение оптимизации ............................................................................ 22
1.7. Экспорт и импорт функций, индикаторов,
систем, советников и фильтров .................................................................. 30
Задания для самостоятельной работы .................................................................. 33
Раздел 2. Среда программирования R .................................................................. 35
2.1. Обзор возможностей языка R для работы с временными рядами .......... 35
2.2. Знакомство с графическим интерфейсом пользователя RStudio ............ 38
2.3. Загрузка данных в программу R/Rstudio ................................................... 39
2.4. Выгрузка данных из программы R/Rstudio ............................................... 41
2.5. Проведение технического анализа ............................................................. 42
2.6. Создание и тестирование торговых систем ............................................... 48
2.7. Создание и оптимизация модельных портфелей ...................................... 51
Задания для самостоятельной работы .................................................................. 55
Заключение ............................................................................................................. 56
Список литерату
ры ................................................................................................57
3
Введение
Статистическое оценивание торговых стратегий предполагает поиск оптимального поведения кривой капитала (график изменения депозита) с учетом возможных убытков. Без статистически надежных исследова­ний с учетом риска невозможно выбрать лучшую (единственную) среди конкурирующих стратегий, а также оценить, насколько результаты ра­боты стратегии в будущем будут соответствовать историческим (Pardo, 2008). При тестировании торговой стратегии необходимо сматривать множество параметров (эффективность торговых сигналов, текущие и зафиксированные убытки, количество прибыльных и убыточ­ных сделок, волатильность рынка и т. д.), которые могут оказать влияние на принятие решения.
Под торговой стратегией будем понимать сочетание алгоритмов, которое позволяет принимать решения об открытии и закрытии позиции и сопровождении сделки. Для создания механической
(автоматизирован­ной) торговой стратегии можно использовать различные подходы. В по­собии мы будем использовать индикаторы технического анализа.
В предлагаемом пособии авторы не ставили перед собой задачи дать полное описание программы Metastock и языка R, а постарались познако­мить читателя с идеологией работы с программой Metastock и языком R и дать общее описание действий при
решении типичных задач, возника-
ющих при создании и тестирование торговых стратегий.
Недостающие подробности использования функционала программ обычно интуитивно понятны из возможностей, предоставляемых диало­говыми окнами и меню. Изложение материала предполагает, что чита­тель имеет опыт использования индикаторов технического анализа. При необходимости знакомства с техническим анализом можно обра­титься к монографии (Швагер
, 2006), с базовыми определениями рынка
ценных бумаг можно познакомиться в учебнике (Шарп, 2014).
В первом разделе пособия приведены иллюстративные примеры со­здания пользовательских индикаторов технического анализа, советников, фильтров; рассмотрены вопросы подготовки исходных данных, кратко из­ложены алгоритмы построения и тестирования торговых стратегии в про­грамме Metastock (www.equis.com). Приведена пошаговая инструкция под­ключения торгового терминала Quik (quik.ru)
к программе Metastock для
получения данных в режиме реального времени.
Во втором разделе уделяется внимание языку программирования R (http://www.r-project.org), а также кратно изложены возможности интегри­рованной среды разработки RStudio; рассмотрены возможности языка R для проведения технического анализа, создания и тестирования торговых
рас-
4
стратегий, а также рассмотрены вопросы формирования инвестиционных портфелей.
Для более детального изучения вопросов, связанных с алгоритмиче­ским трейдингом, следует обратиться к соответствующей документации или источникам литературы, приведенным в конце пособия.
Данное пособие может быть использовано для организации самостоя­тельной работы студентов в ходе изучения следующих дисциплин: «Ста­тистическое моделирование и прогнозирование
», «Статистический анализ и планирование эксперимента», «Методы финансовой математики», «Цен­ные бумаги и управление портфелем», «Программные средства для прове­дения математических расчётов».
Для контроля полученных теоретических знаний каждый раздел
включает задания для самостоятельной работы.
В результате изучения курса студент (слушатель) должен:
1) иметь представление о современных технологиях создания, те-
стирования и
оптимизации торговых систем и программном обеспечении
для работы на фондовом рынке;
2) знать основные правила создания торговых систем и основные
аппаратные и программные платформы для приложений, обеспечиваю­щих работу на фондовом рынке;
3) уметь использовать приложения на уровне опытного пользова-
теля и применять полученные знания при создании собственной автома­тизированной торговой
системы.
5
Раздел 1. Программа Metastock
1.1. Обзор системы, состав и назначение основных модулей системы Metastock
MetaStock (http://www.equis.com) – это программный пакет, предна­значенный для анализа рынков акций и производных инструментов. В России популярность Metastock приобрел начиная с версии 7. В настоя­щее время вышла очередная, уже 16-я, версия этой программы. Программа существует в следующих версиях: MetaStock End-of-Day и Real-time. End­of-Day предназначена для анализа финансовых рынков торгов, версия Real-time – в режиме реального времени.
В данном издании мы будем приводить примеры с использованием пакета MetaStock 9, который включает в себя следующие компоненты:
Metastock Professional (Offline Mode), The Downloader, OptionsScope.
Metastock Professional (Offline Mode):
обеспечивает построение и использование наиболее известных
типов графиков (линейный, бары, свечи, объемные свечи и т. д.); стан­дартный набор линий для проведения графического анализа (линии под­держки, сопротивления, каналов, регрессий и т. д.);
включает обширную библиотеку стандартных индикаторов для
технического (компьютерного) анализа, а также встроенную систему программирования для создания собственных (пользовательских) инди­каторов, фильтров, систем;
предоставляет возможность исследования финансовых инстру-
ментов за определенный период с использованием системы трейдерских стратегий, а также оценки доходностей этих стратегий.
Общий алгоритм работы с пакетом MetaStock можно представить следующим образом:
загрузка данных;
построение необходимых диаграмм и анализ ценовой тенденции;
автоматизация работы, создание и оптимизация торговых стра-
тегий;
сохранения результатов работы, полученных во время сессии
MetaStock.
Офлайн-режим работы с программой (MetaStock Professional Offline Mode) предназначен для обработки данных, которые хранятся на диске. Файл данных может содержать следующую информацию:
дата (Date);
цена открытия (Open) и закрытия (Close) торгов;
после окончания
6
максимальная (High) и минимальная (Low) цена за данный период;
объем (Volume) торгов и открытый интерес (Open interest).
Компонент The Downloader предназначен:
для добавления и редактирования данных из файлов формата
Metastock с использованием электронной таблицы DownLoader;
обновления этих файлов в режиме онлайн;
конвертирования текстовых файлов в формат Metastock;
проверки целостности файлов данных.
OptionsScope – инструмент, который используется для анализа ин­струментов срочного рынка (опционов на фьючерсы и акции). При его помощи можно:
рассчитать рыночную «теоретическую» цену опционов пут (put) и
колл (call);
рассчитать внутреннюю (implied) волатильность опциона, пока-
затели дельта, вега, гамма и тета;
определить чувствительность опционов на изменение рыночных
состояний.
1.2. Знакомство с графическим интерфейсом программы
В основе интерфейса системы Metastock лежит стандартный графиче­ский интерфейс операционной системы Windows. Доступ к функциям осу­ществляется с помощью главного и контекстного меню, инструментальных панелей, диалоговых окон и т. д. В системе Metastock пользователь может работать с несколькими окнами одновременно
как с одним целым.
Для начала работы с программой MetaStock необходимо:
1. Нажать кнопку Пуск и далее Программы – Equis International –
Metastock Professional Offline Mode или выбрать иконку на рабочем столе.
2. После запуска программы необходимо загрузить в рабочую об-
ласть программы данные, сохраненные на диске, с помощью команды Файл – Открыть (File – Open). На рабочем столе отобразится основное окно (рис. 1).
В верхней части окна расположено основное меню, через которое можно выполнить любую команду, заложенную в программу: Документ (File) – меню команд управления файлами, Вид (View) – меню команд управления интерфейсом основного окна, Сервис (Tools) – меню команд вызова вспомогательных инструментов, Справка (Help) – доступ к справочной системе.
Примечание. Меню Редактирование (Edit), Вставка (Insert), Фор-
матирование (Format), Окно (Window) – отображаются после загрузки
данных.
7
В верхней части рабочего экрана (рис. 1) расположена горизонталь­ная панель инструментов Стандартная (Standard). С ее помощью, напри- мер, можно открыть файл с данными. Слева находится вертикальная па­нель Рисования (Line Studies). На ней расположены кнопки, включаю­щие режимы рисования различных линий для проведения графического анализа. Кроме этого, можно с помощью команды Вид – Панели инстру
-
ментов (View – Toolbars) отобразить и другие панели, например Цвет (Color), Толщина (Weight) и Стиль (Style) графических объектов.
Рис. 1. Главное окно программы MetaStock
Программа предоставляет стандартные возможности правки доку­мента: это операции копирования и удаления объектов с использованием возможностей буфера обмена, удаление объектов по категориям, специаль­ная вставка и др. Для того чтобы воспользоваться этими командами, можно использовать команды меню Правка (Edit) или стандартные «горячие» клавиши операционной системы Windows.
В основной части рабочего экрана отображается
графическое окно, содержащее график цены и объема (рис. 1). Программа Metastock преду­сматривает различные способы представления ценовых графиков: ли-
нейные (Line), столбчатые (Bars), крестики-нолики (Point & Figure), японские свечи (Candlesticks) и др. Для того чтобы выбрать способ пред-
ставления, необходимо вызвать контекстное меню графика цены и вы­брать необходимый вид графика (рис. 2).
8
Рис. 2. Контекстное меню графика цены
Использование инструментов графического анализа. На ценовом графике или графике объемов можно нарисовать линию тренда. Для этого необходимо на панели Рисование выбрать кнопку
или команду системного меню Вставка – Линия тренда (Insert – Trendline). Для ис­следования наклона тренда можно использовать кнопку либо команду системного меню Вставка – Транспортир (Insert – Trendline by Angel).
Если воспользоваться кнопкой или командой меню Вставка – Ли­нейная регрессия (Insert – Linear Regression), то аналитически будет по­строена прямая линия наиболее приближенная к ценовым данным на гра­фике. Лишенная субъективных качеств, эта
линия показывает статисти-
ческий тренд на участке построения.
Используя простейшие линии тренда, можно построить ценовые мо-
дели (фигуры графического анализа):
модели перелома (например, голова и плечи, тройная вершина,
V-образная вершина и т. д.);
модели продолжения (флаг, клин и вымпел и т. д.); модели неопределенности (например, треугольники).
На стандартной панели имеются кнопки, вызывающие инструменты навигации по графику – это Окно данных (Data Window) и Лупа (Zoom) , с помощью которых можно детально рассмотреть интересу-
ющий диапазон графика. Если требуется изменить период агрегирова­ния, то можно воспользоваться списком, который располагается в ниж­ней правой части рабочего окна (рис. 3).
9
Рис. 3. Список для выбора периода агрегирования данных
Для переключения между различными окнами с графиками цен и объ­емов можно воспользоваться кнопками ◄ и ► (при этом файлы с данными должны располагаться в одной директории, например C:\MetaStock Data).
Кроме классического графического анализа программа Metastock предоставляет возможность использовать уровни Фибоначчи, представ­ления Ганна, которые доступны через меню Вставка (Insert).
Использование технических индикаторов. Metastock содержит обширную библиотеку встроенных индикаторов. Кроме этого, суще­ствует возможность сконструировать собственные индикаторы или за­грузить новые индикаторы из Интернета. Все индикаторы в MetaStock
делятся на три группы: – графические индикаторы (строятся на ос­нове любого графика), нового графика),
– индикаторы, созданные пользователем.
– ценовые индикаторы (строятся на основе це-
Построим в окне с графиком цены 21-периодную экспоненциальную скользящую среднюю. Для этого:
1. В выпадающем Списке индикаторов (Indicators QuickList) на
стандартной панели инструментов выбрать необходимый индикатор.
2. Захватить выбранный индикатор левой кнопкой мыши и, не от-
пуская кнопки, перетащить его на рабочее окно.
3. На экране появится диалоговое окно
Свойства скользящей
средней (Moving Average Properties), которое позволяет настраивать па-
раметры индикатора (рис. 4).
10
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]