ОГЛАВЛЕНИЕ

Система построения стратегий
Задание Перед началом работы откройте данные EESR. Загрузите отрезок данных с которым мы работали при изучении скользящих средних: 01.01.98г. – 01.11.98г. Используйте диалог параметров загрузки при открытии файла или измените свойства оси Х уже после открытия файла.
Система построения стратегий торговли и оценки их доходности предназначена для того, чтобы вы могли увидеть, как работают различные индикаторы на рынке и какую прибыль вы могли бы получить, используя стратегии торговли с тем или иным индикатором. Торговые стратегии, использующие индикаторы технического анализа базируются на определенных правилах, по которым формируются сигналы индикаторов для осуществления операций покупки или продажи активов. Высокий уровень доходности тои или иной стратегии, полученный на этапе тестирования прошлых данных вовсе не означает, что эта стратегия будет столь же доходной и в будущем. Однако мы можем оценить, какие индикаторы наилучшим образом работают на той или иной конкретной ценной бумаге.
Программный пакет MetaStock 7.0 позволяет производить испытания и сравнительный анализ предварительно запрограммированных вами стратегий. Концепция построения стратегий торговли может использовать множество различных факторов, правил и «защитных остановок». Кроме того, MetaStock 7.0 содержит небольшое количество демонстрационных стратегий, которые вы можете использовать с вашими данными. Еще более важно то, что вы можете отредактировать эти системы, и внести в них необходимые вам изменения. Производя тестирование стратегий, вы можете наглядно изучать сигналы на ваших графиках. Таким образом, в ваших руках оказывается мощный инструмент для эффективной оценки и подбора лучших индикаторов.
Торговля на бирже
Трейдер на бирже может осуществлять две торговых операции – покупка и продажа ценных бумаг. Покупая ценные бумаги, трейдер открывает длинную позицию, и находится в ней неограниченный промежуток времени пока не продаст купленные бумаги. В этом случае он играет на повышение. Покупая по низкой цене, он надеется, потом продать по более высокой цене и закрыть длинную позицию.
Продав ценные бумаги, трейдер открывает короткую позицию, и играет на понижение. Теперь он продает ценные бумаги по высокой цене и надеется, потом их выкупить по низкой цене закрыв короткую позицию.
Открытие какой-либо операции обычно сопровождается закрытием противоположной и наоборот. К примеру, открывая короткую позицию, трейдер одновременно закрывает длинную позицию.
Использование инструмента Тестер стратегий
Для того, чтобы начать работу с этим инструментом нужно вызвать диалоговое окно Тестер стратегий. Это можно сделать с помощью выбора пункта [Сервис(Tools) >> Тестер стратегий(System Tester)] из системного меню, или нажатием кнопки с изображением знака «$» на стандартной панели инструментов.
Основное пространство окна занимает список названий различных готовых торговых стратегий. В правой и в нижней части окна расположены управляющие кнопки, назначение которых описывается ниже:
Закрыть(Close) кнопка закрытия диалогового окна Тестер стратегий
Создать(New) кнопка создания новой стратегии
Изменить(Edit) кнопка редактирования стратегии
Копировать(Copy) кнопка копирования стратегии
Удалить(Delete) кнопка удаления стратегии
Тест(Test) кнопка тестирования стратегии
Отчет(Report) кнопка подготовки и просмотра отчета о тестировании
Параметры(Options) кнопка установки дополнительных параметров
Флажок Сравнить(Compare) включает режим сравнения нескольких стратегий.
Редактирование стратегий
Выделите в списке систему Equis - MACD w/Optimization и нажмите кнопку Изменить. Вам будет предложено окно редактирования стратегий.
В текстовом поле Имя вы можете изменить название стратегии.
Поле Заметки содержит текстовое описание принципов действия данной стратегии.
Группа закладок содержит правила формирования сигналов открытия и закрытия позиций, описанные на макроязыке пакета MetaStock 7.0. Каждая закладка имеет свое имя и содержит поле редактирования формулы:
Enter Long – открытие длинной позиции
Close Long – закрытие длинной позиции
Enter Short – открытие короткой позиции
Close Short – закрытие короткой позиции
После переключения на одну из закладок, в поле редактирования формул отображается конструкция операторов и функций макроязыка MetaStock 7.0, описывающая правило открытия или закрытия соответствующей позиции.
Под полем редактирования формул расположен ряд вспомогательных кнопок:
OK кнопка сохранения сделанных изменений и закрытия окна
Отмена(Cancel) кнопка отказа от изменений и закрытия окна
Функции(Functions) кнопка вставки функции в формулу
Стопы(Stops) кнопка для установки параметров «защитных остановок»
Оптимизация(Optimize) кнопка определения переменных оптимизации
Установка дополнительных параметров тестирования стратегий
Для того, чтобы ваша система отражала реальные условия торговли, в программе имеется возможность установки дополнительных параметров. Торговые стратегии, учитывающие реальные параметры позволят вам сделать ваш анализ наиболее эффективным и прибыльным.
Для установки дополнительных параметров нажмите кнопку Параметры(Options) в нижней части диалога Тестер стратегий. Диалог параметров содержит две страницы. Страница Тестирование содержит группы параметров процесса тестирования. Группа параметров Цена торговли(Trade Price) определяет цены, по которым будут совершаться сделки при открытии и закрытии позиций. Параметр Задержка(Delay) заставляет MetaStock 7.0 ждать определенное время после поступления сигнала к совершению сделки до момента совершения сделки. Группа параметров Комиссионные(Commissions) определяет величину комиссионных уплачиваемых брокеру при открытии и закрытии позиции. В группе параметров Капитал(Equity) вы указываете свой начальный капитал(Start Equity), с которым вы выходите торговать на бирже; величину маржинального залога(Margin Req); и годовую ставку процента(Annual Percent).
Задание Договоримся перед началом тестирования всегда устанавливать следующие параметры:
совершать сделки по ценам открытия (open) с задержкой 1 день после поступления сигнала (совершаем сделку на следующий день по цене открытия рынка); сделки по обеим позициям; комиссионные по 2% на открытие и закрытие позиции; стартовый капитал 20000, маржинальный залог 100%, годовая ставка процента 0.
Страница Отчетность позволяет настроить параметры графического отчета о тестировании. Здесь можно поменять цвет сигнальных указателей, разрешить подписи указателей, приказать системе строить график динамики капитала.
Задание Установите все имеющиеся на ней флажки.
Создание новой стратегии
Испытаем торговую стратегию на основе одной скользящей средней.
Для создания новой стратегии нажмите кнопку Создать в правой части окна Тестер стратегий. Вам будет предложено окно, абсолютно идентичное окну редактирования стратегий, которое было описано выше. В текстовое поле Имя необходимо вписать название создаваемой вами стратеги, например, MA Test. В поле Заметки, при желании можно ввести описание принципов действия стратегии. Затем, последовательно устанавливая переключатель в положения Enter Long, Close Long, Enter Short и Close Short, в поле редактирования формальной части опишите при помощи макроязыка следующие условия формирований сигналов для открытия\закрытия соответствующих позиций.
Enter Long: cross(close, mov(close,21,simple))
Close Long: cross(mov(close,21,simple),close)
Enter Short: cross(mov(close,21,simple),close)
Close Short: cross(close,mov(close,21,simple))
Функция cross() возвращает значение истина в моменты пресечения сверху второго аргумента первым.
После того, как вы закончите создание стратегии, нажмите кнопку OK, чтобы сохранить ее в списке стратегий. Нажмите кнопку Тест для того, чтобы начать тестирование.
Отчет теста
После проведения процесса тестирования система предложит вам просмотреть текстовой многоуровневый отчет. Мы ограничимся только первым уровнем. В появившемся после проведения теста диалоге нажмите кнопку Отчеты... таблица отчета содержит следующие сведения:
Номер(Test): порядковый номер проведенного теста (в нашем случае он один).
Статус(Status): исход проведения теста: Ок, испорчен, прерван.
Чистый доход(Net Profit): доход, полученный системой.
Процент дохода(Percent Gain): чистый доход, выраженный в процентах от стартового капитала.
Всего позиций(Total Trades): количество закрытых позиций.
Выигрышных позиций(Winning): количество закрытых выигрышных позиций.
Проигрышных позиций(Losing): количество закрытых позиций с проигрышем.
Средний выигрыш\средний проигрыш(Avg Win/Avg Loss): отношение среднего выигрыша к среднему проигрышу.
Закройте это окно и вернитесь в диалог тестера. Закройте окно тестера и обратите внимание на диаграмму, на ней был создан графический отчет. Стрелками были отмечены моменты совершения сделок. Стрелки снабжены соответствующими надписями. В отдельном окне построен график динамики капитала. Для нашей простейшей системы этот график ведет себя скачкообразно и показывает серьезные убытки на некоторых сделках. Для предотвращения серьезных убытков следует использовать стоп механизмы.
Задание Найдите на графике и запишите себе минимальное значение капитала. Сравните это значение с вашим стартовым капиталом. Конечно не каждый позволит себе просто так потерять 4-5 тысяч. Запишите также значение дохода.
Установка «защитных остановок»
Построение торговых стратегий немыслимо без метода «защитного стопа», предохраняющего ваш капитал от потерь. В программе MetaStock 7.0 предусмотрены пять вариантов формирования стоп сигналов. Вы можете выбрать каждый из вариантов в отдельности или установить любое их сочетание. «Защитные остановки» помогут вам застраховаться от потерь в случае возникновения ложных сигналов к открытию позиций, и представляют собой один из важнейших факторов, определяющих успешность торговли.
Задание Вернитесь в диалог тестера стратегий. Найдите и выделите созданную вами систему MA Test. Нажмите кнопку Изменить(Edit) диалога Тестер стратегий. Затем нажмите кнопку Стопы(Stops) диалога Редактор стратегий.
Перед вами появилось диалоговое окно Остановки(Stops). В этом окне расположены пять закладок «защитных остановок», которые называются: Рентабельность(Breakeven), Пассивность(Inactivity), Потери(Trailing), Убытки(Max Loss), Доходы(Profit Target). На каждой закладке имеются группы элементов Позиции и Метод. В программе вы можете определять защитные стопы, используя процентный или абсолютный (пункты) методы расчета, а также устанавливать позиции, на которые распространяются остановки.
Рассмотрим каждый из видов остановки:
Доходы. Данная остановка закрывает текущую позицию, в случае если ваша позиция принесла вам некоторую прибыль, значение которой вы указали в цифровом поле Доход. Например: если вы установили значение равное 5% и открыли длинную позицию на уровне 5000, то сигнал закрытия будет сформирован, как только цена поднимется до уровня 5250 (+величина комиссионных).
Убытки. Данная остановка закрывает текущую позицию, в случае если цена опустится на указанное значение ниже точки входа в позицию. Например: до 45 при значении на входе 50 и 10% убытках.
Потери. Данная остановка закрывает текущую позицию, в случае если ваши потери на текущей позиции превысят значение, указанное в цифровом поле Риск дохода. Это значение может быть выражено в процентах или в пунктах, что определяется установкой переключателя метод. Например: вы установили 50 (%). Предположим, что была открыта длинная позиция на уровне 50. Затем цена выросла на 10 пунктов, и развернулась вниз. В этом случае MetaStock 7.0 выдаст сигнал закрытия позиции, если цена опустится до уровня 55, т.е. на 50% от предыдущего максимума. Параметр Периоды позволяет отфильтровать случайные колебания цен. Пусть мы установили значение 3. Теперь MetaStock 7.0 будет игнорировать любое движение цен вниз в течение 3 периодов после достижения максимума, а на 4-ый, 5-ый и т.д. периоды он будет действовать согласно правилу.
Пассивность. Эта остановка закрывает текущую позицию, когда на рынке не происходит минимального положительного изменения цен в течение указанного периода времени. (под "Положительным изменением цен" понимается восходящее ценовое движение в длинной позиции и убывающее в короткой позиции.). Пример: Если Вы определите 1% для Минимального изменения и 20 периодов, MetaStock автоматически закроет любые длинные (короткие) позиции, в которых цена не увеличилась (уменьшилась) по крайней мере на 1% в течение 20-ти периодов. Эта остановка анализирует изменения в цене, а не капитала, и поэтому игнорирует комиссионные.
Рентабельность. Эта остановка закрывает текущую позицию в случае, когда текущее значение капитала позиции падает ниже текущего значения капитала (то есть, значения капитала во время открытия текущей позиции). Остановка совершается по той цене, по которой позиция может быть закрыта, и полученный доход будет равняться текущему значению капитала. (торговля с нулевым исходом). Чтобы предотвратить выполнение этой остановки, каждый раз при открытии позиции (потому что комиссионные при открытии позиции всегда приносят убыток), остановка Рентабельность разрешается только после того, как прибыль позиции достигнет или превысит указанный пользователем Уровень пола. Уровень пола использует максимальную цену для длинной позиции и минимальную цену для короткой позиции. Эта остановка требует минимум двух периодов для срабатывания. Один период для достижения уровня пола и другой период для достижения рентабельности. Предупреждение: Если уровень пола установлен на ноль, остановка Рентабельность станет возможной только после ценовых изменений, когда позиция могла бы быть закрыта без несения потерь.
Хотя и некоторые системы и дают высокую конечную прибыль, график динамики капитала часто не является монотонным. Капитал изменяется хаотически, то увеличиваясь, то уменьшаясь. Нужно стремиться подобрать систему и стопы к ней так, чтобы график динамики капитала был “неубывающим”. Значения, показанные в примерах, уже выработаны практикой, и вы можете их всегда использовать.
Задание Попробуем улучшить нашу систему. На странице Убытки укажите максимальные убытки 12% на длинных и коротких позициях. Вернитесь в диалог тестера и протестируйте новую систему. Найдите и запишите себе новое минимальное значение капитала на графике. Посмотрите на сколько вам удалось уменьшить потери. Примерно 1 тысячу мы сохранили. Посмотрите теперь, на сколько увеличилась величина дохода из-за того, что мы начали сохранять деньги.
Задание Попробуем уменьшить убытки, устранив такой недостаток СС, как отказ работать в горизонтальной тенденции. Для этого на странице Пассивность установите 10% изменение в течение 14 дней. Вновь протестируйте систему. Запишите минимальное значение капитала и полученный доход.
Задание Использование других остановок для данной системы не целесообразно. Итак наша система генерирует слишком много остановок, что является показателем неэффективности данной системы.
Задание
Создать и протестировать (без остановок) торговую стратегию 3MA на основе 3-х ЗСС: 21, 13, 5 дней:
EL: mov(c,5,e)>mov(c,13,e) and mov(c,13,e)>mov(c,21,e)
CL: mov(c,21,e)>mov(c,13,e) and mov(c,13,e)>mov(c,5,e)
ES: mov(c,21,e)>mov(c,13,e) and mov(c,13,e)>mov(c,5,e)
CS: mov(c,5,e)>mov(c,13,e) and mov(c,13,e)>mov(c,21,e)
Записать значение дохода.
Изменить параметр долгосрочной СС в этой системе вместо 21 испробовать 28.
Записать значение дохода.
Протестировать данную систему, ограничив доходы 46%.
Записать значение дохода.
Протестировать систему, добавив остановку на Прибыль 10% в течение 41 дней.
Записать значение дохода.
Полученная баснословная прибыль получена путем подгона системы под исторические данные. В реальной торговле систему можно считать хорошей, если она дает от 10 и выше процентов прибыли.
Попробуйте продолжить данную систему в будущее, открыв данные до конца файла.
Заметьте, что система приносит убытки. Потому, что рынок изменился, стал пассивным. Протестируйте систему, убрав все остановки (снять флажки Длинные Короткие на всех страницах окна остановок).
Вопросы
Что такое торговая стратегия.
Чего добиваются аналитики, используя аппарат тестирования торговых стратегий.
Принципы спекулятивной деятельности на бирже. Виды торговых позиций на бирже.
Предназначение отчета о проведенном тестировании. Сведения, которые он содержит.
Предназначение защитных стопов. Виды стопов.
Какая система наиболее выгодна для использования на данных EESR без использования защитных стопов.
Синтаксис функции cross(Data Array 1, Data Array 2), возвращаемые значения



ОГЛАВЛЕНИЕ