Иван Коваль-зайцев

Простой системный трейдинг в Excel

Как стать алготрейдером без установки каких либо специальных программ.
Что такое Системный трейдинг? Нет, это не программирование. И не талмуды кодов. Не статистика, не математика. Это не умные программы, у которых и название-то страшно прочитать. Системный трейдинг – это, прежде всего, логика! Читая про возможности той или иной программы вы вряд ли проникнитесь духом алготрейдинга! Ведь это не просто формулы – это подход, парадигма, это стиль, это особый взгляд. Любую идею системный трейдер проверяет на истории, потому что без проверки – это всего лишь слова. А, как мы знаем, ещё В.И. Ленин сказал: «Главная проблема цитат в Интернете в том, что люди сразу верят в их подлинность»
В этой статье я хочу показать вам, что алготрейдером можно стать даже без установки каких либо специальных программ.

Я взял элементарную идею, и с помощью программы MS Excel выяснил, что за 2012 год можно было заработать более 40 тысяч пунктов! И вот эту идею я вам и расскажу:

Многие боятся алготрейдинга. Боятся, потому что не умеют программировать. Поэтому придумывают всякие нелепые отмазы, вроде тех, что восхваляют интуитив и порицают роботизированный подход к трейдингу.

Меж тем, ничего сложного в программировании нет. Необязательно знать специальные языки, «объявлять классы», «разрабатывать библиотеки» и т.д. Достаточно простой логики. Сегодня я хочу показать, как с помощью обыкновенного ЭКСЕЛЯ можно проверить торговую идею.
1 этап. Подготовка данных.
В принципе, этот раздел можно пропустить. Заходим на всеми любимый финам, скачиваем часовые данные нашего обожаемого фьючерса на индекс РТС. На этот раз будем пользоваться Обычной склейкой финама.

Переносим данные в эксель: открываем блокнот, «Выделить всё» -> «Копировать», в первой же ячейке «Вставить». Получаем несколько тысяч строк с данными в первом столбце. Их надо разделить по нескольким. Выделяем столбец с данными, меню «Данные»-> «Текст по столбцам» -> «Далее» ->ставим флажок «запятая» -> «Готово». Теперь вставляем после ценовых данных по пустому столбцу и проделываем то же самое, добавив разделитель «Другой: точка».

Иллюстрация:
2 этап. Идея.
Проверить в экселе можно очень многое. Но для примера я взял элементарную идею: если 2 часа подряд рынок растет – покупаем. Если 2 часа подряд падает – продаем.

Таким образом, мы всегда «в рынке». Стопов нет, тейков нет. Сделки будем проводить в конце часа, в последние секунды, когда уже с высокой долей вероятности можно сказать, исполнилось условие или нет (в противном случае при исполнении по OPEN мы получим неправдоподобные данные при открытии позиции в 10:00, т.к. в момент открытия рынка совершить сделку могут только «избранные»)

Когда ЛОГИКА ясна, можно приступать к проверке идеи.
3 этап. Проверка.
Я делаю первое, что приходит в голову. Возможно, можно делать проще, или наоборот более поэтапно. Можно сразу подставлять данные так, чтобы была возможность проверять разные условия (оптимизировать стратегию). Я же для примера делаю всё, что называется, в лоб:

Создаем столбец «Условие для входа». В каждый час будем проверять, соблюдаются ли условия.

Для лонга: Если закрытие больше открытия (рост свечи) и закрытие предыдущей свечи больше открытия, то условие выполнено. Присвоим этому событию число 1. Обратное для шорта, присваиваем число -1. Если сигнала нет, ставим 0.

Таким образом, формула эксель выглядит так: =ЕСЛИ(И(F4>C4;F5>C5);1; ЕСЛИ(И(C4>F4;C5>F5);-1;0))

Здесь и далее для удобства все формулы даны для пятой строки книги.

Логика формулы «если»:
Если
(
1. условие, в нашем случае: и в этот час рост, и предыдущий час тоже рост, то
2. Ставим в ячейку число 1. В противном случае
3. проверяем, нет ли условия на шорт:

1. если (условие №2: оба часа падение, то
2. ставим -1, в противном случае
3. ставим 0
)
)

Всё, условие записали. Теперь, поскольку мы всегда в рынке, нам нужно, чтобы появился некий «выключатель», который предотвратит повторные входы, и будет изменять направление позиции только при появлении условия на противоположный вход. Таким образом мы избавляемся от нолей и число -1 появляется каждый раз, пока не появится 1, после этого в каждой следующей строчке будет 1 до тех пор, пока не выполнится условие на шорт. Для этого

Пишем формулу: если предыдущее значение условия для входа изменило свой знак, то ставим новое значение в столбец «выключатель», в противном случае оставляем то, что было. =ЕСЛИ(И(I4<0;H5>0);H5; ЕСЛИ(И(I4>0;H5<0);H5;I4))

Логика формулы: Если (число поменялось с -1 на 1, то ставим новое число, 1. В противном случае, если (число поменялось с 1 на -1 ставим новое: -1. В противном случае оставляем то, что было))

Следующий столбец – «точка входа». Если значение выключателя поменялось, то значит на этом часе появился сигнал на переворот, значит ставим сюда значение закрытия текущего часа. При чем для шорта ставим со знаком плюс, а для лонга со знаком минус (потому что когда мы покупаем, мы тратим деньги, а когда продаем – получаем).

Формула: =ЕСЛИ(I5<>I4;I5*F5;0)*-1

Следующая ячейка: баланс. В начале у нас 0 денег (в данном случае одна деньга = 1 пункт РТС). Как только мы вошли в шорт, у нас появилось денег, полученных в результате продажи одного контракта. Как только появится условие на лонг, мы потратим деньги на закрытие позиции+ ещё столько же на открытие новой, лонговой, и наш баланс станет отрицательным. Когда на последней свечке мы принудительно закроем позицию по цене закрытия, мы получим итоговый результат нашей стратегии.Формула: =J5*2+K4 «Точка входа» умноженная на два + предыдущее значение баланса.

И последний, самый важный столбец: «Результат».

Сделаем его по состоянию на каждый час. Для этого представим, что мы закрываем позицию в конце каждого часа. Если «выключатель» = -1, то мы тратим деньги на покупку контракта, т.е. из баланса вычитаем цену закрытия. Если «выключатель» = 1, то нам надо продать контракт, и к балансу прибавится стоимость закрытия.Формула: =ЕСЛИ(I5<0;K5-F5;F5+K5)
4 этап. Оценка результатов.
Строим график по столбцу «результаты». («Вставка»-> «Диаграмма»->и далее по желанию). Смотрим:
При желании, в экселе можно посчитать и всякие там коэффициенты шарпа, и % прибыльных сделок, и профит-фактор – всё, что угодно. Для этого нужно понимать логику каждого показателя. Берите идею, добавляйте свои формулы, проверяйте показатели, оптимизируёте по дню недели, времени входа, придумайте, как добавить стопы — это всё реализуемо! Ведь так я работал до тех пор, пока однажды не скачал Мультичартс!
5 этап. Тонкости.
Естественно, при таком тестировании, как и при любом другом, будут возникать ошибки.

Ставить стопы и тейк профиты на часовиках сложно – если в одно часе могло исполниться и то, и другое, то неизвестно, что исполнилось бы раньше. Для этого надо лезть в минутные данные, а это уже в экселе делать не очень удобно, по крайней мере за длительный период. А разница цен контрактов при экспирации, о которой я писал в другой статье, отнимает у этого результата именно этой стратегии около 3500 пунктов… Поэтому всегда проверяйте свою работу!
Выводы.
Лично я такую систему торговать не буду. Но, в целом, 2012 год оказался бы намного лучше для тех, кто её использовал бы вместо своих интуитивных догадок.

Поводя итоги, скажу, что проверять стратегии, как видите, может каждый, кто хоть немного знаком с экселем. А системный подход к трейдингу позволяет избавиться от многих психологических ошибок, а также избавит трейдера от иллюзий относительно прибыльности того или иного метода…

Честно скажу, в экселе я решаю те задачи, которые я не умею решать с помощью Мультичартс (например, вывод числовых данных в таблицу по массивам данных без открытия позиций – среднее изменение от open до close по каждому часу гораздо быстрее и проще узнать именно в экселе с помощью сводных таблиц!). Но всё-таки проверить простую идею намного удобнее именно с помощью easy language – логика та же, что и в экселе, просто язык английский и все показатели считаются автоматически!

Всем профитов!
Подписывайтесь на нас в Instagram и добавляйтесь в группу Вконтакте