18 января, 2010

Торговый эксперт «Форекс агент»

Игорь Герасько
RU

В настоящее время существует очень много способов определения вкусов и пристрастий человека еще до задушевного разговора с ним. Об этом может сказать его одежда, манера поведения в обществе и даже ринг-тон мобильного телефона.

Случай пофантазировать о предпочтениях человека, которого мы никогда не видели, представляется сегодня. Для этого не будут использованы фрагменты одежды или запах дезодоранта. Все оказалось немного проще и, в то же время, экзотичнее. Все, что мы имеем, это псевдоним на форуме (renoshnik), имя с фамилией (Юрий Волошин) и название эксперта – Agent_Fx_v07.

Трудно судить о случайности совпадения названия и номера версии, но ассоциативный ряд выстраивается такой: агент 007, Джеймс Бонд. Быть может Юрий действительно является поклонником Бондианы, может просто шпионских романов, а может в название вкладывался совсем другой смысл… Вот уж простор для фантазии.

Несмотря на постновогоднее настроение, которое как раз располагает к праздным размышлениям, попробуем вернуться к первоначальной цели – рассмотрению сути набора директив и операторов, которые все вместе составляют торгового робота «Агент Форекса».

Авторская версия

Результаты авторского теста были расширены на весь 2009-й год и для большей наглядности все сделки приведены к постоянному объему 0.1. Валютная пара EURUSD и таймфрейм Н1 (см. рис. 1):

Показана скромная чистая прибыль 1218 долларов и столь же скромная максимальная просадка 598 долларов. Уже неплохо. Но если расширить период тестирования до двух лет, захватив 2008-й год, то получим такие результаты (см. рис. 2):

В этом случае чистая прибыль упала до 1003 долларов, а просадка возросла до 1562 долларов.

Как всегда, попытаемся исправить ситуацию, разобравшись в принципах функционирования эксперта, и внеся в его логику необходимые поправки. Для начала необходимо найти сигнальную часть эксперта, где непосредственно принимается решение об открытии той или иной сделки. Как это часто бывает, генерация решения занимает всего несколько строк:

if(cci[1]<5 && cci[2]<cci[3] && cci[1]<cci[2] && cci[0]>cci[1] &&
Open[2]>Close[2] && Open[1]>Close[1] && Open[0]<Close[0] && Open[1]<Close[0]) pokypka();

if(cci[1]>-5 && cci[2]>cci[3] && cci[1]>cci[2] && cci[0]<cci[1] &&
Open[2]<Close[2] && Open[1]<Close[1] && Open[0]>Close[0] && Open[1]>Close[0]) prodaza();

Логика работы советника

Графический эквивалент представленных строк можно увидеть на рисунке 3:

Когда линия индикатора CCI находится выше значения 5.0 и образует пик, при этом два предыдущих бара были бычьими, а текущий бар является медвежьим, то открывается короткая позиция.

Если же линия CCI находится ниже значения -5.0 и образует впадину, при этом два предыдущих бара были медвежьими, а текущий бар является бычьим, то открывается длинная позиция.

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

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

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

Вносим коррективы

Вот так плавно переходим к исправлениям стратегии. Сначала, конечно, исправим время установки отложенных ордеров BuyStop и SellStop с последних мгновений текущего бара на первый тик следующего бара.

В итоге получаем восьмую версию советника, результаты которой при тестировании на котировках последних двух лет (2008-2009) выходят такие (см. рис. 4-7):

Вид кривой баланса очень похож на вид, приведенный на рисунке 2. То есть сама основа стратегии не пострадала. А вот численные показатели все же улучшились. Чистая прибыль возросла до 2742 долларов, в то время как максимальная просадка осталась на том же уровне – 1524 доллара.

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

Это подтверждается тем, что часть прибыльных сделок в обоих случаях примерно одинакова – 74% и 81%. А вот средняя прибыльная сделка в первом случае составила 27 долларов, в то время как во втором случае ее значение возросло почти в два раза – до 51 доллара.

Валютной паре USDCHF похвастаться особо нечем. Возможно, здесь требуется более тонкая настройка параметров трейлинг-стопа или даже дистанции между ценой открытия отложенного ордера и текущей рыночной ценой. Параметры, которые были применены к паре EURUSD, для франка явно не подходят – чистая прибыль -1061 доллар.

Конечное значение баланса после проведения теста на GBPUSD оказалось положительным. Показана чистая прибыль 941 доллар, но вот максимальная просадка достигла огромного значения — 1716 долларов. В данном случае итог совпадает с франком – требуется персональный подбор параметров.

Как видно на графике, оптимистичных зон очень мало. В основном наблюдаются затяжные периоды убыточных сделок. Хотя кривая баланса более стабильна, нежели кривая баланса на USDCHF. Поэтому заключение будет таким же, как было по франку.

Оптимизация Форекс Агента

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

Итак, оптимизация проводилась по трем входным параметрам советника:
DistSet — расстояние между текущей ценой и отложенным ордером;
MinProfit — уровень прибыли в пунктах, при достижении которого один раз за свечу в положительной зоне перемещался стоп;
Tr_Stop — дистанция, на которую перемещается стоп от текущей цены.

Первыми приведем результаты по USDJPY (см. рис. 8). Параметры были взяты такие: DistSet = 14, MinProfit = 15, Tr_Stop = 50.

Чистая прибыль уже 2259 долларов, а максимальная просадка всего лишь 783 доллара. Эти показатели превышают результат, достигнутый по паре EURUSD и их можно признать пока наилучшими, так как фактор восстановления достиг 2.89.

Следующими приведем результаты по GBPUSD (см. рис. 9). Наиболее оптимальными параметрами оказались такие: DistSet = 24, MinProfit = 40, Tr_Stop = 45.

Чистая прибыль 3575 долларов при максимальной просадке 1437 долларов, что дает фактор восстановления снова больше двух – 2.49. К тому же, вид кривой баланса изменился в сторону стабильности.

Оставшаяся валютная пара – USDCHF (см. рис. 10). Ее оптимальные параметры: DistSet = 24, MinProfit = 25, Tr_Stop = 10.

К сожалению, даже оптимизация параметров не дала достойных результатов. Тем не менее, чистая прибыль положительна – 1212 долларов, а максимальная просадка довольно терпимая – 796 долларов. Но вот фактор восстановления не достиг даже двух – 1.52.

Заключение

Проведенный анализ и последующее точечное исправление стратегии показали, насколько разительно могут меняться результаты от малейшего вмешательства в логику программы. И то, что изменения носят довольно незначительный характер, только подтверждает выражение: «Удача всегда рядом, нужно лишь протянуть к ней руку».

Для скачивания

Test.zip – развернутые результаты тестирования советников;
Agent_Fx_v07.mq4 – оригинальная версия советника;
Agent_Fx_v08_edit.mq4 – переработанная, исправленная и дополненная версия стратегии.

Подпишитесь на нас в VK

Fortrader contentUrl Suite 11, Second Floor, Sound & Vision House, Francis Rachel Str. Victoria Victoria, Mahe, Seychelles +7 10 248 2640568

Ещё из этой категории

Все статьи

Простая разработка скрипта Stop Trade для MetaTrader 4 на языке Mql4

Торговля на финансовых рынках становится всё более популярной, и Алготрейдинг играет в этом процессе значительную роль. В этой статье мы рассмотрим простую разработку скрипта для MetaTrader 4, который закроет все открытые позиции и удалит все отложенные ордера. Скрипт будет написан на популярном языке программирования MQL4, который зарекомендовал себя как простой и надёжный инструмент для разработки […]

4 нюанса тестирования советников в терминале MetaTrader 4, о которых знают не все трейдеры

В условиях современного трейдинга использование в торговле форекс советников уже давно не выглядит какой-то экзотикой. Практически каждый день появляются новые платные и бесплатные торговые роботы, которые впечатляют доходностью и вызывают желание быстренько заработать. Однако ставить эксперта на торговый счет без проверки – сомнительная затея, ведущая к «неожиданным» потерям в потенциале. Поэтому рекомендуем начать работу с […]

Классификация Форекс советников

Форекс Советник (робот, EA) – это обыкновенный алгоритм, запрограммированный на основе той торговой системы, которой вы планируете использовать, чтобы совершать сделки на валютном рынке. Можно сказать, что для того, чтобы использовать советник, необходимо знать торговую систему, ставшую для него основой, чтобы знать, на каком рынке его можно применять, когда это делать по времени и за […]

Как написать торгового робота, если вы – не программист? 8 шагов от идеи до реализации

Головной мозг трейдера функционирует не совсем обычным образом. Человек, далекий от финансовых рынков, действует рационально и предсказуемо. Когда же в дело вступает индивид, мыслящий исключительно свечными комбинациями, последствия предсказать гораздо сложнее. Как частное, сбитые жизненные приоритеты и повышенная импульсивность – известные пороки трейдеров. Сам процесс торговли становиться самоцелью, и биологический компьютер в недрах черепной коробки […]

Недавние обучающие статьи

Все статьи

Редакция рекомендует

Все статьи
Loading...