Укрепляем дисциплину при помощи роботов.

Моя работа над персональным граалем вышла на финишную прямую, но  вдруг случился конкрус. Как истинный смартлабовец, я тут же все бросил и вознамерился поучаствовать в соревновании. Решил развить тему, которую озвучивал вот тут: http://smart-lab.ru/blog/115469.php, в этой коротенькой заметке я делал умозрительный вывод о несостоятельности горизонтальных уровней. Но такой маленькой статьей на iPad не заработаешь, поэтому идея заключалась в том, чтобы при помощи робота показать, что горизонтальные уровни не работают. Было даже придумано громкое название «Алгоритмическое доказательство несостоятельности горизонтальных уровней с последующим сеансом одновременной игры на 160 досках». Очень быстро был написан простенький робот, но человек предполагает, а Бог располагает. Робот вдруг начал показывать хорошие результаты, которые никак не укладывались в концепцию несостоятельности уровней. Тогда я решил хотя бы написать статью о состоятельности горизонтальных уровней и даже начал готовить материал, но тут я обнаружил, что все не так однозначно, как хотелось бы. Истина оказалась, как и всегда это бывает на рынке и в трейдинге, в полной неопределенности.

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

Робот, отрабатывающий пробой поддержки.

Параметры робота:

BarsRange — ширина диапазона экстремума в барах. Это минимальное расстояние между касаниями уровня. Если делать слишком маленьким, то за уровень будет приниматься простой боковик из нескольких баров.

PriceRange — размер зоны уровня. Чем она уже, тем жестче отбор, тем горизонтальней уровень. Другими словами погрешность, которая допускается при проведении горизонтального уровня.

Confirm — количество подтверждений уровня, т.е. сколько касаний цены должно произойти, чтобы уровень считался состоявшимся.

Диаграмма робота:
Укрепляем дисциплину при помощи роботов.

Алгоритм:

1. Проверяется наличие открытых позиций.

2. Если таких нет, то определяется является ли текущая цена локальным минимумом в диапазоне последних баров BarsRange.

3. Если да, то в районе текущей цены определяется зона предполагаемого уровня PriceRange.

4. Начинается перебор в поисках таких баров, лоу которых находится в зоне уровня PriceRange.

5. Если находится такой бар, то засчитывается подтверждение уровня, но только в том случае, если в пределах BarsRange от этого подтверждения не происходило пробоя зоны уровня.

6. Перебор заканчивается либо после достижения конца истории, либо после достижения предыдущего пробоя уровня, либо после нахождения достаточного количества подтверждений уровня Confirm.

7. При этом, в случае, если уровень подтвержден, то открывается позиция на продажу по текущей цене, со стопом 2 ATR и профитом 6 ATR.

Вот как выглядит код робота на MQL4:

Укрепляем дисциплину при помощи роботов.

Вот ссылка на скачивание:

Укрепляем дисциплину при помощи роботов.

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

Пример работы.

Инструмент: EURUSD
Тайм фрейм: 15 минут
Период: 01.01.2010-01.01.2013
Объем: 0.1 лота
Исходные параметры: PriceRange 20 пунктов (0.002), BarsRange 20, Confirm 3
Параметры подобраны путем легкой оптимизации по 2011 году.

Эквити:

Укрепляем дисциплину при помощи роботов.

Отчет:

Укрепляем дисциплину при помощи роботов.

Примеры сделок:

Укрепляем дисциплину при помощи роботов.

Укрепляем дисциплину при помощи роботов.

Укрепляем дисциплину при помощи роботов.

Эквити и отчет с параметрами PriceRange 20 пунктов (0.002), BarsRange 30, Confirm 2:

Укрепляем дисциплину при помощи роботов.

Укрепляем дисциплину при помощи роботов.

Выводы.

1. Глядя на результаты, я бы не сказал однозначно, что горизонтальные уровни не работают. Но и пускать робота «как есть» на рынок я бы не стал. Во-первых, значения исходных параметров получены в результате, пусть и весьма поверхностной, но оптимизации. Во-вторых, 2012 год полностью боковой. В-третьих, характеристики робота, типа профит фактора и дродауна, довольно средненькие.

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

Неожиданный вывод о дисциплине.

Каждый из нас прочитал гору литературы о том, насколько важна дисциплина в трейдинге. Абослютно все знают, что должна быть системность, последовательность, терпеливость. Что вы должны уметь бороться с обственными страхом и жадностью. При этом абсолютно все сталкиваются с проблемой недисциплинированности, тильтов, импульсивности и т.д. Сама природа трейдинга противоестественна физиологии человека. В трейдинге человек должен всегда поступать не так, как он это делает в жизни, и не так, как он поступал на протяжении тысячелетий эволюции. Совершенно очевидно, что «неправильное» поведение абсолютно естественно, и никакая сила воли не сможет этого изменить, точно также как вы никогда не сможете бросить курить на силе воли, хотя в принципе бросить курить довольно просто.

Есть ли легкий способ стать дисциплинированным трейдером? Есть! Для этого нужно всего лишь быть абсолютно, на 110% уверенным в собственной системе. Любая недисциплинированность связана исключительно с неуверенностью в собственных действиях. Человек идет в трейдинг без грааля, надеясь на вероятностный характер тех или иных систем, на их якобы положителное математическое ожидание, которое на самом деле никому не известно. И всякий в глубине души прекрасно понимает, что по большому счету он занимается игрой. Откуда тут взяться дисциплине?

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

Можем ли мы исключить элемент удачи из процесса становления тредера? Приобрести уверенность в собственной системе без трудного пути проб и ошибок? Да! Нужно строить свою систему из элементов, которые легко поддаются автоматизации, каждый из которых можно проверить на истории, подобрать к нему оптимальные параметры. А как это сделать технически я описал выше. При этом я не говорю о том, что непременно нужно писать роботов, которые будут торговать за вас. Вовсе нет. Это довольно сложно и неоднозначно. Я говорю о том, что если элементы вашей системы будут протестированы на истории, то это вам придаст уверенность столь необходимую для дисциплинированности. Например, если в вашей системе присутствует индикатор, то использовать исторически подтвержденный его параметр гораздо проще и правильнее, чем тыкать пальцем в небо чисел Фиббоначи или полагаться на субъективный опыт какого-то гуру из учебника. Это касается практически любых форм технического анализа.

Проверяйте свои идеи и наработки на истории посредством роботов. Это совершенно не сложно и очень полезно для укрепления дисциплины.

А теперь стихи!

   

С удовольствием отвечу на любые ваши вопросы и выслушаю любые мнения по теме.