Решил не откладывать в долгий ящик и, пока есть время, продолжить начатую вчера тему о проверке торговой идеи в Excel (см. Часть I: выгрузка ценовых данных из МТ).
Сегодня познакомимся с принципами построения торговой системы в таблицах и с основными формулами. Этого будет достаточно, чтобы реализовать простую торговую стратегию. Пример такой стратегии будет представлен на выходе. Любопытно, что стратегия эта на истории в 10 лет оказалась в целом даже профитной
Итак, приступим!
Первое, что нам понадобится, — идея. Простая торговая идея, которую мы и хотим проверить. Уверен, что многим из нас в самом начале приходили в голову одни и те же незамысловатые идеи навроде «если 2 подряд бара бычьих, то открываем покупку» Примерно такую идею мы и будем проверять. Даже более простую, но флетовую:
Простейшая торговая идея:
Если последняя свеча бычья — продаем; если медвежья — покупаем. Закрываем позицию на закрытии свечи.
Немного поясню. Нам важно, чтобы стратегия не зависела ни в коем случае от движений внутри бара. Это сводит вероятность ошибки тестирования к 0. Плюс в данном случае нам удасться обойтись без усложнений в виде выставления стопов и тейков, т.к. все стопы и тейки по времени. Хотя в экселе можно задавать и уровни стопов, но пока это запутает новичков.
Заметьте, система флетовая, а не трендовая! График трендовой сильно проигрывает, посмотреть можно здесь
Таймфрейм выберем D1. Я всегда стараюсь в экселе работать с дневками. Это очень удобный ТФ (при условии, конечно, что стратегия не требует учета движения внутри баров).
В 1-ой части мы как раз экспортировали именно дневные данные EURUSD. С ними и будем работать. Приведите исходную табличку в соответсвии с картинкой ниже (добавьте строчки и столбцы, где необходимо), если желаете, чтобы адреса ячеек в формулах оставались справедливыми для вашей таблицы.
Наша торговая идея подразумевает определение характера дневной свечи: бычья или медвежья. Этим и займемся первым делом.
Озаглавим новый столбец H как «Nature» (или «Свеча»; как вам удобнее). Помещаем курсор внутрь ячейки H6 (первая ячейка нового стобца) и пишем первую нашу формулу для определения типа свечи. Логика проста: если Close > Open, то White (бычья свеча), если Close < Open, то Black (медвежья свеча). Соответсвенно в нашей таблице в ячейке H6 формула будет иметь следующий вид:
=ЕСЛИ(F6>C6;"W";ЕСЛИ(F6<C6;"B";"WB"))
Останется протянуть формулу на столбец. Получаем такую таблицу:
Тип свечи вычислили. Переходим к следующему шагу — вычисляем результат каждой сделки, совершенной согласно торговой идеи. Напоминаю, что мы собрались покупать, если последняя свеча медвежья, и продавать — если бычья. Если у свечи нет тела (Close = Open), то сделку не совершаем (записываем в этот день результат «0»).
Заведем новый столбец I «Profit». Т.к. мы руководствуемся характером «вчерашней» свечи, то формулу пишем со второй строки столбца.
Логика формулы: если свеча вчера W (бычья), то для вычисления профита Open — Close; если свеча вчера B (медвежья), то Close — Open; если WB (без тела), то 0, т.е. не торгуем.
Т.о. в ячейке I7 имеем формулу:
=ЕСЛИ(H6="W";(C7-F7);ЕСЛИ(H6="B";(F7-C7);0))
Тогда результат у меня для I7 (у вас другой, в зависимости от того, с какого дня история загружена) получается 1,0737 — 1,0714 = -0,0023
Т.е. =-23 пункта. Но как получить результат именно в таком привычном виде, а не в долях? Конечно, умножить на постоянный множитель. Для четырехзнака EURUSD множитель = 10 000. Тогда формула принимает вид:
Теперь результат у меня для 4.10.99 = -23 пункта. Чего не хватает? Конечно, спреда!
Т.к. спред в разных ДЦ для разных ВП может различаться, то предлагаю вынести его в отдельную ячейку, чтобы мы могли удобно спредом управлять. Пусть это будет ячейка над заголовком стоблца профита «I4» (по привычке я выношу вспомогательные коэфиценты и параметры над заголовками соответсвующих столбцов, а в примечании к ячейке делаю пояснения). Укажем в ячейке I4 величину спреда. Сейчас для многих ДЦ спред EURUSD можно смело принять за 2 пункта. Осталось вычесть значение этой ячейки из результатов по сделке. Формула в I7 изменяется так:
Обратите внимание, мы вычитаем не просто I4, а I$4. Знак $ заставляет при протягивании формулы оставаться неизменным номер строки. В противном случае после протягивания в следующей строке у нас вычиталась бы ячейка I5, затем I6, I7 и т.д.
Протягиваем формулу на весь столбец I и получаем следующую таблицу:
Ну вот и выходим на финишную прямую! Размер прибыли по каждой сделке есть, осталось подвести баланс. Для этого создаем новый столбец J «Balance».
Баланс на заданный день, как вы понимаете, вычисляется просто — суммированием всех значений столбца «Profit» до текущего дня. Формула суммирования, которую нам надо написать в ячейку J7, очень простая и короткая:
=СУММ(I$6:I7)
Эта запись обозначает суммирование диапазона с одной указанной ячейки до другой. Опять же использован значок $ для закрепления в формуле точки отсчета (первого дня). Так после протягивания в ячейке, например, J1000 формула будет иметь вид "=СУММ(I$6:I1000)"
С балансом разобрались. Для пущей наглядности осталось построить график изменения баланса по дням. Для этого, удерживая Shift, нажмите на столбцы B и J, затем кликните на иконку созданию Диаграммы. В открывшемся окне выберите тип «График», вид оставьте первый. Разъяснения на картинке ниже.
Нажмите «Готово» и вы увидите график. Таблица целиком вместе с графиком будет иметь в итоге вид:
Как видите, буквально играючи, вооружившись самой простейшей идеей, нам удалось даже выйти в плюс по итогам торговли за 10 лет и заработать +2700 пунктов. Конечно, график далек от идеала, но теперь можно заняться и совершенствованием системы… Пожалуй, в следующий раз Спасибо за внимание! Удачи и профитов!
Обновление 12 мая 2010: В статье представлена система флэтовая. График трендовой гораздо хуже. Увидеть его можно в комментарии
Обновление 18 мая 2010: Система из статьи выделена в отдельную торговую систему под названием AntiTrend Dayli (ATD). В частности, после оптимизации получен такой график:
Разрабатываешь системы разрабатываешь, читаешь аналитику всякую, а простые системы самые из нашего детства прибыльные! Зачот
Хотя я не любителя Эксэля. Даешь торговую систему на счетах! ))))))
Svetik, когда по ссылке Тора разберетесь и поймете, где находится маркер, то советую использовать его так — делаете двойной клик по маркеру и формула автоматически протягивается до самого низа. Условие для этого — слева должен вплотную примыкать столбец с данными; именно до окончания этого столбца и будет происходить автозаполнение по двойному щелчку.
Просто в нашем деле протягивать руками формулу может быть весьма неудобно. Например, в моем случае таблица имеет свыше 3000 строк, тянуть всякий раз и при каждом исправлении формулу процесс малопривлекательный ;) Потому освойте двойной клик.
Поигрался вдоволь с таблицами и сделал для себя интересный вывод. При тестировании появляется очень хорошее чувство от полного контроля над ситуацией. Хотя не все системы можно в Excel протестировать.
Идея супер, но по графику видно, что система не стабильна, и требует дополнительных фильтров, это значит что данную систему можно принимать за фильтр изначально.
скорее всего данная стратегия покажет хороший результат на глобальных дневных трендах, и только вдоль тренда.
а так респект.
Вообще, система приведена для иллюстрации темы статьи. Прибыльность — просто приятный побочный эффект. Если бы еще при всей своей подкупающей простоте она оказалась стабильной, то я бы очень удивился ))
Т.е. надо, чтобы сделки заключались на 3 дня, а не на 1?
Если да, то для данной системы довольно просто (далее подразумевается, что в вашей таблице и в таблице из статьи расположение ячеек совпадает):
1) очищаем ячейки I7, J7, I8, J8
2) в ячейке I9 заменяем формулу на
Отличие в том, что теперь для вычисления результата мы используем цены открытия и закрытия не одного и того же дня, а цену открытия свечи первого дня и цену закрытия третьей свечи.
Также при желании можно создать параметр «кол-во дней удержания сделки» и тогда без дальнейшего изменения формулы можно будет изменять кол-во дней. Но для этого придется ввести новые столбцы и немного усложнить формулу. Кроме того, при увеличении кол-ва дней акутальным становится вопрос стоп-лоссов, которые не реализованы в данном примере.
я думаю это будет интресно многим на примере продолжить эту ветку
-в третй части рассмотреть удержание позиции по времени и установка стпов.
-в червертой можно рассмотреть управление капиталом.
-ну пятой прикручивание фильтра к системе.
не хочу быть навязчивым, но эти вопросы возникли при сравнении могих программ. excel очень гибкий и понятный инструмент.
реализация торговли для на этой базе очень востребована.
Отвечая на последний вопрос, обнаружил ошибку в статье. Торговая идея была описана для трендовой системы (после бычьей свечи покупаем), а формулы даны для флетовой (после бычьей — продаем). Сейчас в текст внес необходимые правки.
Почему я оставновился на флетовой? Чтобы понять это, достаточно изменить формулы и посмотреть на график трендовой:
Неудвительно, что увидев такую антиутопию, я изменил формулу на обратную, но совсем забыл отразить это в тексте статьи. Сейчас в тексте все поправлено (формулы прежние, поравлено только описание торговой идеи).
Комментарии (23)
Хотя я не любителя Эксэля. Даешь торговую систему на счетах! ))))))
12 BetMaster Сообщений: 433
4 hinin Сообщений: 88
0 Svetik Сообщений: 20 - Светик
Читайте абзац --Абсолютные и относительные ссылки-- про маркер автозаполнения
13 Tor Сообщений: 447 - Роберт
Просто в нашем деле протягивать руками формулу может быть весьма неудобно. Например, в моем случае таблица имеет свыше 3000 строк, тянуть всякий раз и при каждом исправлении формулу процесс малопривлекательный ;) Потому освойте двойной клик.
47 Kaur Автор Сообщений: 1331 - Руслан Каюмов
4 hinin Сообщений: 88
4 hinin Сообщений: 88
4 baksozavr Сообщений: 236
3 Chernomor Сообщений: 76 - Черномор
скорее всего данная стратегия покажет хороший результат на глобальных дневных трендах, и только вдоль тренда.
а так респект.
17 Vacoin Сообщений: 965 - Vacoin
Вообще, система приведена для иллюстрации темы статьи. Прибыльность — просто приятный побочный эффект. Если бы еще при всей своей подкупающей простоте она оказалась стабильной, то я бы очень удивился ))
47 Kaur Автор Сообщений: 1331 - Руслан Каюмов
17 Vacoin Сообщений: 965 - Vacoin
0 deletant Сообщений: 20
Если да, то для данной системы довольно просто (далее подразумевается, что в вашей таблице и в таблице из статьи расположение ячеек совпадает):
1) очищаем ячейки I7, J7, I8, J8
2) в ячейке I9 заменяем формулу на
3) протягиваем формулу
Отличие в том, что теперь для вычисления результата мы используем цены открытия и закрытия не одного и того же дня, а цену открытия свечи первого дня и цену закрытия третьей свечи.
Также при желании можно создать параметр «кол-во дней удержания сделки» и тогда без дальнейшего изменения формулы можно будет изменять кол-во дней. Но для этого придется ввести новые столбцы и немного усложнить формулу. Кроме того, при увеличении кол-ва дней акутальным становится вопрос стоп-лоссов, которые не реализованы в данном примере.
47 Kaur Автор Сообщений: 1331 - Руслан Каюмов
-в третй части рассмотреть удержание позиции по времени и установка стпов.
-в червертой можно рассмотреть управление капиталом.
-ну пятой прикручивание фильтра к системе.
не хочу быть навязчивым, но эти вопросы возникли при сравнении могих программ. excel очень гибкий и понятный инструмент.
реализация торговли для на этой базе очень востребована.
0 deletant Сообщений: 20
47 Kaur Автор Сообщений: 1331 - Руслан Каюмов
0 deletant Сообщений: 20
Почему я оставновился на флетовой? Чтобы понять это, достаточно изменить формулы и посмотреть на график трендовой:
Неудвительно, что увидев такую антиутопию, я изменил формулу на обратную, но совсем забыл отразить это в тексте статьи. Сейчас в тексте все поправлено (формулы прежние, поравлено только описание торговой идеи).
47 Kaur Автор Сообщений: 1331 - Руслан Каюмов
47 Kaur Автор Сообщений: 1331 - Руслан Каюмов
1 dzhini Сообщений: 2
и вот мой первый грааль
Редактирован: 22 марта 2015, 21:12
27 alterego Сообщений: 2088 - Елена
47 Kaur Автор Сообщений: 1331 - Руслан Каюмов
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий