Продолжаю цикл статей по практике применения Excel в работе трейдера Forex. Напомню, в предыдущих статьях мы рассматривали
экспорт из MT и простой
пример стратегии в Excel. В этот раз мы пойдем дальше, а именно создадим структурированный файл, вынесем настройки и статистические показатели на отдельную страницу, научимся оптимизировать систему по дням недели и характеру сделки (buy/sell).
Как и прежде для обучения будет использована простая торговая система AntiTrend Daily. Т.к. в ходе тестирования этой системы я
пришел к выводу, что у нее есть вполне себе хороший потенциал, то развитие системы пошло по двум направлениям —
ATD Student Edition (используется в текущем обучающем цикле статей) и
ATD Trade Edition (более сложные версии для исследования самой стратегии).
В итоге, файл системы был значительно переделан со времени своего первого появления; об этих изменениях и новых функциях и пойдет речь в этой статье. Сам файл выложен в конце статьи.
(нажмите на изображение для увеличения)
На скрине показана страница настроек ATD Student Ed. v1.03
Итак, какие проведены изменения. Тот, кто не понимает, что за изменения, читайте
предыдущую статью.
- Страница с настройками. Разделяем настройки и ценовые данные. Для этого страницу с ценовыми данными назовем Data, а также создаем новую страницу с настройками и называем ее Settings. Переносим ячейку со значением спрэда (если ячейку вырезать, а затем вставить на новое место, то в формулах, использующих значение ячейки, автоматически произойдут нужные изменения). На странице Data я убрал все пустые строки вверху; это необходимо в дальнейшем для корректной работы формул.
- Размещение графика. В первой версии график размещался на странице с данными. Рекомендую держать графики на странице с настройками, чтобы было удобнее мониторить изменения при изменении параметров системы. Итак, помещаем график на страницу Settings (правой кнопкой на графике, пункт «Размещение»)
В то же время я рекомендую помещать лишь миниатюры графиков и так, чтобы их не пересекали строки и столбцы рабочего пространства, т.е. фактически в шапку. Дело в том, что при добавлении новых строк в параметры график будет искажаться и смещаться. А в шапке останется нетронутым. В случае, если понадобиться посмотреть в увеличенном варианте — просто щелкаем правой кнопкой и выбираем пункт «Окно графика».
- Кириллические названия. В Excel нас интересует именно простота использования. Поэтому в цикле статей все формулы будут простые, поэтапные, с примечаниями и примерами, в кириллическом варианте. В соответствии с этим я переименовал столбцы также на русский язык за исключением распространенных Open-Close-High-Low.
- Закрепление областей. Советую пользоваться функцией «Закрепление областей» («Окно -> Закрепить области»). Закрепление делает использование таблиц более удобным — вы всегда видите заголовки таблицы.
- День недели. Добавляем новый столбец «День недели» на странице с ценовым данными сразу после столбца дат. Здесь будем, как вы уже догадались, вычислять день недели для соответствующей даты. Понадобится это для сбора статистики по дням недели и использования этой статистики при оптимизации. Тех, кто ставит под сомнение действенность подобных мер, отсылаю к книге «Долгосрочные секреты краткосрочной торговли» за авторством Ларри Вильямса. Я лично статистику очень уважаю, поговорить об этом подробнее можно в отдельной статье.
Итак, формула для расчета дня недели очень проста:
=ДЕНЬНЕД(XXX;2)
Вместо XXX подставьте адрес соответствующей ячейки. Второй параметр 2 обозначает, что неделя начинается с ПН (если подставить 1, то неделя будет начинаться с ВСК).
Эта формула будет возвращать день недели указанной даты в числовом формате (1=ПН, 2=ВТ, 3=СР и т.д.). Протягиваем формулу на весь столбец.
- Удаление суббот из истории. Тот, кто скачивал историю дневок с лохматого 99 года, может обнаружить, что в котировках до определённого года встречается суббота. Обычно это дни с очень маленьким объемом и маленьким диапазоном изменения цены, однако лишние дни могут привести к искажению сигнала. Лучше субботы удалить из истории, что становится возможным благодаря введению столбца с днями недели.
Выделяем первую строку и выбираем в меню «Данные -> Фильтр -> Автофильтр». Появится фильтр сортировки на всех заголовках таблицы. Выбираем в фильтре столбца «Дни недели» число 6 — теперь в таблице у нас отобразятся только субботы.
Осталось выделить все строки и удалить их. Удаление может занять некоторое время после удаления выберите в фильтре столбца «Все». фильтр можете удалить. Возможно, после удаления нарушаться формулы. Просто протяните их заново.
- Именование констант и переменных. Для лучшего понимания формул воспользуемся такой удобной функцией Excel, как присвоение имен ячейкам. Мы будем задавать имена константам и переменным, находящимся на листе Settings. Чтобы присвоить имя ячейке, нужно поставить на нее курсор и выбрать в меню пункт «Вставка -> Имя -> Присовить» Какие имена и каким ячейкам присвоены Вы можете увидеть на скрине ниже:

Заодно я предлагаю сразу привести вид страницы настроек в соответствии со структурой. показанной на картинке. Некоторые пояснения:
Множитель — это то число, на которое нам нужно умножать результат арифметических действий с ценами, дабы получить привычные пункты, а не 0,0025. В настройках пользователю предлагается указывать только кол-во знаков после запятой для данной ВП, а множитель будет рассчитываться автоматически по простейшей формуле:
=10^H14
В ячейке H14 располагается в моем случае заданное вручную кол-во знаков после запятой. Т.е. для вычисления множителя надо возвести 10 в степень количества знаков.
Дальше в блоке настроек все должно быть понятно:
«день недели» — какой день недели требуется выбрать или исключить (принимает значения от 1 до 5, что соответствует от ПН до ПТ);
«выбрать/исключить» — выбрать(1) или исключить(0) выбранный день недели;
«разрешить BUY» и «разрешить SELL» — разрешить(1) или запретить(0) сделки соответственно на покупку и на продажу.
- Получение сигнала. В предыдущей статье для совершения сделки мы сразу делали арифметическое действие в столбце вычисления прибыли, но по мере усложнения системы такой подход приведет к усложнению восприятия формулы и сделает ее менее гибкой для модификаций. Поэтому предлагаю ввести сигнальный принцип. Это обозначает, что мы добавляем отдельный столбец «СИГНАЛ», где 1=BUY, а -1=SELL. главная формула будет именно в этом столбце. В начале формулы всегда стоят исключения. Я думаю, что с учетом предыдущего пункта, Вы можете попробовать понять эту формулу:
=ЕСЛИ(ИЛИ(И(День_нед<>B3;Выбрать_дн=1);И(День_нед=B3;Выбрать_дн=0));0;ЕСЛИ(И(H2="B";Buy=1);1;ЕСЛИ(И(H2="W";Sell=1);-1;0)))
В столбце «B» у нас дата, в столбце «H» — тип свечи. В начале в скобках «ИЛИ» идут исключения, которые не зависят от характера сигнала (бай или селл), т.е. выполнение этих условий ведет к отмене сигнала. Далее уже идут условия, которые зависят от характера сигнала.
Вычисление прибыли. В столбце «Прибыль» мы теперь только вычисляем прибыль, при условии, если был сигнал:
=ЕСЛИ(I3=0;0;(F3-C3)*I3*Множитель-Спрэд)
В начале идет проверка на условие наличия сигнала, затем вычисляется прибыль. Столбцы: I — сигнал, F — Close, C — Open.
- Результаты торговли. Формула нахождения последнего значения столбца. Здесь у нас располагается пока только результат в пунктах, т.е. последнее значение из столбца «Баланс (пп)». Часто новички, чтобы отразить подобную характеристику просто делают ссылку-формулу на последнюю ячейку нужного столбца, например, =Data!K2816, но это неправильно, т.к. в случае добавления новых ценовых данных придется подставлять в формулу новый актуальный адрес последней ячейки. Проблему решает использование специальной формулы. Допустим, что требуется найти последнее значение в столбце K. Тогда формулы будет иметь такой вид:
=ИНДЕКС(Data!K:K;СЧЁТЗ(Data!K:K))
Формула не будет работать правильно, если над таблицей у нас есть пустые строки.
- Статистические показатели.
Количество дней торговли получаем простым вычитанием максимальной даты из минимальной даты. Если дата хранится в столбце A, то формула примет вид:
=МАКС(Data!A:A)-МИН(Data!A:A)
Количество сделок. Можно подсчитать отдельно кол-во сделок BUY и SELL, а затем сложить. Согласно логике работы нашей таблице с данными, все сигналы на покупку в столбце I отмечаются как «1», а на продажу "-1". Формула для подсчета количества сделок на покупку сводится к подсчету числа единиц в соответствующем столбце:
=СЧЁТЕСЛИ(Data!I:I;"1")
То же самое для продаж, но считаем уже "-1"
На этом статья завершается. Файл готов к дальнейшему усложнению системы, чем мы обязательно и займемся в будущем.
Скачать итоговый файл, актуальный для данной статьи, можно по ссылке ниже. Файл сохранен в MS Excel 2003.
opentraders.ru_atd-student-01-03.zip (374 Kb)
Вступайте в группу «Excel на службе трейдеров Forex» и вы будете получать уведомления о появлении новых тем по Excel!
Комментарии (15)
[ 1 ] hininЗарегистрирован: 22 декабря 2009 | Сообщений: 48
[ 2 ] PagukЗарегистрирован: 26 июля 2010 | Сообщений: 139 - суровый трейдер
[ 1 ] deletantЗарегистрирован: 5 мая 2010 | Сообщений: 20
[ 7 ] KaurЗарегистрирован: 28 сентября 2009 | Сообщений: 329 - Руслан Каюмов
[ 1 ] hininЗарегистрирован: 22 декабря 2009 | Сообщений: 48
[ 7 ] KaurЗарегистрирован: 28 сентября 2009 | Сообщений: 329 - Руслан Каюмов
Давайте и про стоп-лоссы.
А где скачать ATD Trade Edition? Если не жалко.
[ 0 ] wowa78Зарегистрирован: 5 января 2011 | Сообщений: 1
Над ATD Trade Edition тоже еще надо работать.
[ 7 ] KaurЗарегистрирован: 28 сентября 2009 | Сообщений: 329 - Руслан Каюмов
[ 1 ] deletantЗарегистрирован: 5 мая 2010 | Сообщений: 20
К сожалению, приоритеты статей по Excel не на первом месте, т.к. лишь небольшое число пользователей заинтересованы в этих материалах.
[ 7 ] KaurЗарегистрирован: 28 сентября 2009 | Сообщений: 329 - Руслан Каюмов
[ 1 ] deletantЗарегистрирован: 5 мая 2010 | Сообщений: 20
Я Вам всего лишь пояснил, почему Ваш тон неуместен.
Речь не о конкретных ресурсах, а о востребованности вопроса как такового. На ютубе у роликов калиты по экселю с начала года по 3000 просмотров. Это совершенно не подпадает под определение «шкалит». У этой темы, например, просмотров больше, поэтому не нужно пытаться свалить на ресурс.
Но востребованность в описании обычной торговой стратегии или урока по MQL выше. Речь была об этом. Поэтому и приоритеты соответствующие.
[ 7 ] KaurЗарегистрирован: 28 сентября 2009 | Сообщений: 329 - Руслан Каюмов
[ 1 ] deletantЗарегистрирован: 5 мая 2010 | Сообщений: 20
[ 2 ] AndrewXЗарегистрирован: 20 августа 2010 | Сообщений: 37
[ 1 ] deletantЗарегистрирован: 5 мая 2010 | Сообщений: 20
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий