Использование платформы MetaTrader 4 для выявления благоприятных временных окон (паттернов времени)

Giampiero Raschetti | 8 февраля, 2008

Введение

Чтение интервью, опубликованных на сайте Чемпионата Automated Trading Championship, обнаруживает много интересной информации, скрытой в рассуждениях.

В интервью Уильяма Ботрайта (Wackena) (https://championship.mql5.com) меня заинтересовала идея анализа времени для выявления одного единственного часа в сутки для совершения одной единственной сделки при свинговой торговле.

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

В конце статьи приводится код советника. В нем отсутствует стратегия выхода, однако он приведен здесь только как пример временных паттернов, которые можно получить, анализируя данные и проводя статистические исследования с помощью MetaTrader 4.


Поиск литературы

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

В этом разделе он упоминанет книгу "Заочные уроки по фондовому рынку" ("Stock Market Correspondence Lessons") Фрэнка Туббса, в которой автор описывает шесть основных паттернов фондового рынка, основанных на торговых часах США. В правиле 4 говорится: "если рынок быков продлится до 14:00, скорее всего он останется таковым до закрытия, а так же и на следующий день".

А 14:00 по GMT-5 совпадает с 20:00 по GMT+1 - время, когда советник участника Wackena открывает сделки. Это первое интересно подтверждение эффективности данной методики. Этот раздел книги Кауфмана также содержит много другой интересной информации, касающейся данного вопроса.


Реализация базового советника

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

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

где:


Работа эксперта и оптимизация результатов

Я работал с платформой MetaTrader 4 на Apple MacBookPro с использованием виртуальной машины, работающего достаточно быстро и надежно.

Проводилось тестирование на истории по валютной паре EURUSD за период с 1 января 2007 г. по 29 декабря 2007 г. на 15 минутном таймфрейме. Результаты были вполне удовлетворительные.

Основные параметры работы взяты из первой оптимизации. Вы можете попробовать совмещать различные параметры.

Что касается параметров Take Profit и Stop Loss, установленных при тестировании, здесь нас не интересовала максимизация баланса или использование других параметров оптимизации, доступных в платформе MetaTrader 4. Что нам нужно, это максимальное количество прибыльных сделок для подтверждения стратегии входа.

Любые оптимизации других параметров будут проведены на следующих этапах.

Ниже представлен код модуля Analyzer. При тестировании вы можете добавить в него любой другой распознаватель сигналов.

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

//+------------------------------------------------------------------+ 
//| Price Direction Analyzer 
//+------------------------------------------------------------------+ 
int Analyzer()  
{ 
 int  signalCount=0; 
 signalCount += EntrySignal1(); 
 signalCount += EntrySignal2(); 
 return(signalCount); 
} 
 
//+------------------------------------------------------------------+ 
//| ENTRY SIGNALS BLOCK MODULES 
//+------------------------------------------------------------------+ 
int EntrySignal1() 
{ // Long term SMA trend detect 
 int i,Signal; 
 
 int LongTrend=0; 
 for(i=0;i<3;i++) 
 { 
   if (iMA(Symbol(),PERIOD_H4,S1_MA_FAST,0,MODE_LWMA,PRICE_TYPICAL,i) > iMA(Symbol(),PERIOD_H4,S1_MA_FAST,0,
   MODE_LWMA,PRICE_TYPICAL,i+1)) 
     LongTrend++; 
   else 
     LongTrend--; 
 }     
 if( LongTrend < 0) 
   Signal=-1; 
 else 
   Signal=1;  
 return(Signal);  
} 
 
int EntrySignal2() 
{ // Daily MACD 
   int Signal; 
 
   if (iMACD(NULL,PERIOD_D1,S2_OSMAFast,S2_OSMASlow,S2_OSMASignal,PRICE_WEIGHTED,MODE_MAIN,0) > 
       iMACD(NULL,PERIOD_D1,S2_OSMAFast,S2_OSMASlow,S2_OSMASignal,PRICE_WEIGHTED,MODE_MAIN,1) ) 
     Signal=1; 
   else 
     Signal=-1; 
   return (Signal); 
}

Торговый час согласован с блоком фильтрации торговли, реализация которого приведена ниже.

Такая структура допускает использование дополнительных фильтров в ходе работы.

//+------------------------------------------------------------------+ 
//| FILTER BLOCK MODULES 
//+------------------------------------------------------------------+ 
bool BlockTradingFilter1() 
{
 bool BlockTrade=false;  //trade by default 
 if (UseHourTrade) 
 { 
   if( !(Hour() >= FromHourTrade && Hour() <= ToHourTrade && Minute()<= 3) ) 
     { 
      //  Comment("Non-Trading Hours!"); 
      BlockTrade=true; 
     } 
  } 
 return (BlockTrade);  
}

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

Вот основные параметры оптимизации:

Для анализа временных периодов, приносящих наилучшие результаты, установите значение параметра FromHourTrades от 0 до 23 с шагом в 1 час и установите галочку оптимизации в параметрах тестирования на истории перед началом процесса.

Вот результаты оптимизации:

Отчетливо видно, что есть периоды, когда торговля с использованием техники выявления тренда может быть очень опасной, в то время как в другие часы выбор терндевого направления может приносить неплохую прибыль. Это период с 19:00 до 22:00 (GMT +1) в Восточной временной зоне, когда рынок уже "переварил" все новости.

В данном случае на имеющихся исторических данных пиковое время в процессе оптимизации совпало с 21:00 (GMT +1).

Такие результаты должны считаться действительным для рынка Форекс на 2007 год. Однако по мнению Фрэнка Туббса, благодаря торговым привычкам такие показатели должны быть действительны и в будущем.

Ниже приведены подробные результаты оптимизации:



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

Вот результаты тестирования на истории в 21:00 (GMT+1).

Итак, из 160 сделок 154 оказались прибыльными (96.86%).

Данная информация подтверждает слова участника Wackena, приведенные в его интервью.


Добавление уровня Stop Loss на основе временного подхода

Судя по количеству сделок за один год при тестировании на истории, можно предположить, что есть возможность улучшить результаты торговли путем добавления уровня Stop Loss на основе показателя времени для закрытия ордеров, которые после 23 часового пребывания на рынке являются убыточными.

Для этого необходимо лишь установить флажок на параметре UseTimeBasedStopLoss и выбрать параметры оптимизации.

Ниже представлена таблица с результатами измененной стратегии:

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


Заключение

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

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


Список используемой литературы

New Trading Systems and Methods, by Perry J. Kaufman

https://championship.mql5.com

The Encyclopedia of Trading Strategies, by Jeffrey Owen Katz,Donna L. McCormick

Forex conquered, by J.L.Person

Trading with the odds, by Cynthia A.Kase