Тестирование и оптимизация торговых стратегий в Excel

test58Здравствуйте уважаемые трейдеры! Недавно столкнулся с непростой проблемой: как протестировать торговую систему пришедшую мне в голову. Тестирование в Forex Tester  на длительном периоде времени — далеко не быстрое и не простое занятие. Конечно, наилучшим способом было бы написать советник и затем пропустить его через жернова тестера стратегий Метатрейдер, но так как программист из меня никудышный, этот вариант тоже отпал.  На бескрайних просторах интернета натолкнулся на еще один, наиболее приемлемый для меня, способ тестирования торговых систем в программе Excel, с основами которого и хочу вас познакомить.

Немаловажно, что тестировать систему будем на реальных котировках Dukaskopy за период с начала 2010 года по настоящее время.

Для начала познакомлю вас с простейшей торговой системой которая родилась в недрах моего воспаленного мозга :). Наблюдая за движением пары GBPUSD и глядя на историю, я заметил, что наиболее сильные движения по тренду происходят в одно и тоже время на протяжении многих лет.  Построив в Excel гистограмму зависимости волатильности этой пары от времени суток выяснил, что наиболее сильные движения пары приходятся на 8 ÷ 12 и 13 ÷ 17 часов по GMT.  На часовой график пары установим простую скользящую среднюю (SMA) с периодом 50, которая будет индикатором направления тренда в нашей системе. Правила входа и выхода системы по детски просты: в 8.00 по GMT смотрим на график, если цена выше SMA — открываем сделку на покупки, если наоборот — продажи. Закрываем сделку в 12.00 GMT. Повторяем то же самое после обеда трейдеров в Лондоне и  начале торгов Нью-Йоркской сессии.  В системе минимум переменных, что уменьшает вероятность подгонки на истории.  В дальнейшем, для увеличения доходности и агрессивности системы можно прикрутить к ней элементы мартингейла в случае получения убытка или их серии, но это перспективы. На данном этапе необходимо выяснить: прибыльна ли система, положительно ли у нее математическое ожидание, ведь в противном случае выжать что — либо из системы представляется мне маловероятным.

Итак, приступим. Для получения котировок заходим на сайт Dukascopy  и во вкладке «Рынки и инфо» нажимаем «Исторический Data Feed«.

1

В появившемся окне выбираем нужный нам торговый инструмент, таймфрейм и период времени за который мы будем скачивать котировки. Жмем: «Скачать«.

2

Перед началом закачки котировок нас попросят авторизоваться, что можно быстро сделать нажав одну из кнопок социальных сетей. Сохраняем файл в формате .csv, который прекрасно распознается в Excel.

3

Запустив Excel импортируем скачанные котировки в нашу программу. Для этого во вкладе «Данные» нажимаем кнопку «Из текста«.

4

На первой вкладке запустившегося мастера импорта текстов нажимаем далее.

5

На второй вкладке ставим галочки напротив «запятая» и «пробел»

6

На последней вкладке ставим формат для первого столбца — «Дата» и жмем «Готово«.

7

Импортируем данные в ячейку А1.

8

Теперь приведем котировки в божеский вид. Удалим колонку Volume за ненадобностью. Выделив четыре последние колонки нажмем Ctrl+F и заменим точки в этих колонках на запятые, Excel распознает в числовых данных только запятые.

9

В скачанных котировках присутствую все дни недели. Уберем ненужные нам субботы и воскресенья. Для этого в свободной колонке выполним функцию «ДЕНЬНЕД«. Выбрав первую дату нашей таблицы. Тип по которому определяется день недели ставим 2. Жмем «Enter».

10

В ячейке А2 получим цифру обозначающую день недели. Применим небольшую хитрость: если навести курсор на правый нижний угол полученной нами ячейки с данными до появления крестика и кликнуть в этот момент ЛКМ то получим данные рассчитанные по нашей формуле на всей таблице.

Выделяем первую строку таблицы и устанавливаем на нее фильтрацию. С помощью фильтра оставляем в таблице только шестые и седьмые дни которые соответствуют субботам и воскресеньям. Выделив их удаляем.

11

Затем также, с помощью фильтрации колонки «Time» удаляем неиспользуемые временные периоды от 0.00 часов до 7.00, с 12.00 до 13.00 и с 17.00 до 23.00.

12

Следующим шагом будет вычисление значений нашей скользящей средней. Можно пользоваться функциями СУММ и СРЗНАЧ.

13

Кликнув два раза на правый нижний угол ячейки рассчитаем значение SMA для всех используемых котировок. Следующим шагом вычислим направление входа в рынок с помощью полученных значений SMA. Используем для этого функцию ЕСЛИ. Продажам у нас будет присвоено числовое значение «0», покупкам «1». Проводим расчет для всех котировок.

14

И вот наконец, настало время получения прибыли. В следующей свободной колонке рассчитываем прибыль в зависимости от направления нашей позиции с использованием функции ЕСЛИ.

15

Суммируя значения полученные в колонке прибыль функцией СУММ получаем положительное число! Ура, наша система прибыльна!

Для построения графика доходности рассчитаем накопительную прибыль по нашим сделкам.

16

По полученным данным строим график доходности торговой системы:

17

Таким образом в течении нескольких минут мы получили данные о доходности нашей торговой системы за период с января 2010 года по настоящее время и построили график доходности.  Как видно, человеку имеющему минимальные знания Excel будет совсем не сложно подбирая функции тестировать любые свои торговые идеи.

Меняя параметры переменных мы можем оптимизировать любые торговые системы с целью повышения их доходности.

P.S. Прошу учесть, что это мой первый опыт в тестировании систем в Excel и все расчеты я проводил так, как я это вижу и понимаю, поэтому в случае обнаружения ошибок или погрешностей прошу не бить цветочные горшки о мою голову). Файл с расчетами прилагаю. В случае написания советника по этой системе с большой радостью возьмусь его тестировать на реальном рынке и оптимизировать для торговли на других парах).

Всем профита!

Скачать Тест:


Автор: Pythoha.
30.06.2015

Метки: , , ,
Опубликовано в Публикации

Советники ARGOLab
Последние статьи
.
.
Комментарии
E-Mail:
Форекс рейтинг . Форекс каталог