MQL4 - automated forex trading   /  

Статьи

Cтатьи  Торговые системы  Использование платформы MetaTrader 4 для выявления благоприятных временных окон (паттернов времени) Авторизуйтесь или зарегистрируйтесь , чтобы добавить новую статью


Эта статья о возможностях
MetaTrader 4

Мобильный трейдинг!
Купите лицензию и торгуйте мобильно

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


Введение

Чтение интервью, опубликованных на сайте Чемпионата Automated Trading Championship, обнаруживает много интересной информации, скрытой в рассуждениях.
В интервью Уильяма Ботрайта (Wackena) (http://championship.mql4.com/2007/ru/news/315) меня заинтересовала идея анализа времени для выявления одного единственного часа в сутки для совершения одной единственной сделки при свинговой торговле.
Поэтому я начал собирать информацию об исследованиях анализа времени для определения благоприятных точек входа в рынок. Более того, я решил реализовать систему, которая могла бы подтвердить эффективность подобной методики.
В конце статьи приводится код советника. В нем отсутствует стратегия выхода, однако он приведен здесь только как пример временных паттернов, которые можно получить, анализируя данные и проводя статистические исследования с помощью MetaTrader 4.

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

Для начала я занялся поиском подтверждения данной идеи в научной литературе и нашел очень интересный раздел, посвященный этой теме, в книге Перри Дж. Кауфмана "Торговые системы и методы", поистине являющейся энциклопедией технического анализа. В разделе 15 рассказывается о распознавании паттернов, одними из первых рассматриваются время суток и торговые привычки.
В этом разделе он упоминанет книгу "Заочные уроки по фондовому рынку" ("Stock Market Correspondence Lessons") Фрэнка Туббса, в которой автор описывает шесть основных паттернов фондового рынка, основанных на торговых часах США. В правиле 4 говорится: "если рынок быков продлится до 14:00, скорее всего он останется таковым до закрытия, а так же и на следующий день".
А 14:00 по GMT-5 совпадает с 20:00 по GMT+1 - время, когда советник участника Wackena открывает сделки. Это первое интересно подтверждение эффективности данной методики. Этот раздел книги Кауфмана также содержит много другой интересной информации, касающейся данного вопроса.

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

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

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

где:
  • Analyzer вызывает распознавателей сигналов и предоставляет информацию о силе тренда на данный момент.
  • TrailingStopEngine динамически вычисляет уровни Take Profit и трейлинг стоп на основе индикатора среднего истинного диапазона (ATR) или другого индикатора волатильности.
  • CurrentOpenOrders возвращает количество открытых ордеров.
  • LoopThroughOrders просматривает все ордера и при необходимости устанавливает новые трейлинг стопы или уровни Take Profit.
  • BlockFilterTrading выявляет наличие специальных условий, при которых мы не хотим открывать сделки.
  • MoneyManagement возвращает размер лота как функцию от заданного уровня риска.
  • PlaceOrder при возможности открывает позиции в направлении, указанном блоком Analyzer.

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

Я работал с платформой 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
http://championship.mql4.com/2007/ru/news/315
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
Перевод с английского языка выполнен MetaQuotes Software Corp.
Текст оригинала: http://articles.mql4.com/551

Прикрепленные файлы:
Sauron.mq4 (7.6 Kb)
Создана: 08.02.2008  Автор: Giampiero Raschetti
Предупреждение: все права на данные материалы принадлежат MetaQuotes Software Corp. Полная или частичная перепечатка запрещена.
Индикатор Taichi - простая идея формализации показаний Ichimoku Kinko Hyo
Индикатор Taichi - простая идея формализации показаний Ichimoku Kinko Hyo

Теряетесь в интерпритации сигналов Ichimoku? В данной статье предложены некоторые принципы формализации показаний и сигналов Ichimoku Kinko Hyo. Для ильюстрации применения была выбрана пара EURUSD исключительно из собственных соображений, что ни сколько не ограничивает применение индикатора на других инструментах.

Эксперты на основе популярных торговых систем и алхимия оптимизации торгового робота
Эксперты на основе популярных торговых систем и алхимия оптимизации торгового робота

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

34 комментария: 1 2 3 4   Авторизуйтесь или зарегистрируйтесь
Giampiero Raschetti / Massive potential idea for trade strategy
09.02.2009 03:02 fx.maestro

Ладно, все шуточки........  откуда вот это взялось, нет, если ноу-хау или секркт фирмы, так и скажаите - дело интимное:

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



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

Больше всего картиночка интересует (которая так и не вставилась почему-то)?

Как и откуда взялась? илии не догоняю...... Helen? не отыгрывайся :))))

05.08.2008 14:38 rider
вчера его на фунт в "нулевом" варианте поставил - так полный драйв сегодня ..... целых 12 пп прибыли
05.08.2008 14:27 rider
Helen писал(а):
Можно выложить работающий вариант этого советника?

100$ мадемуазель и без вопросов :))))))..... пардон, мадам, личное....

Вопрос, собственно такой. Кто-нибудь этого эксперта юзал, скажем так, парам по 10-ти, да по 2-3 ТФ с соответствующей оптимизацией?

А то заявления, типа, "на одну пару поставил и полный драйв, а на шесть - полный слив", как минимум недоумение вызывают.........

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


05.08.2008 14:17 rider
 
По результатам тестирования, данный советник больше всего подходит к йеновым парам. Возможно, что это связано с привязкой йены к фондовым рынкам, которые работают с известной и неизменной периодичностью. Самые "популярные" сигналы приходят в 5.00,10.00 и в 22.00 (GMT). Как раз, собственно.
29.02.2008 12:23 Helen
Helen писал(а):

Использую этот советник,как базу,на реале.Результаты неплохие,даже очень.Первая неделя торгов 68% прибыли,малым лотом,лосей пока нет.Использую в нём два индикатора SlopeDirectionLine_Н(гистограма) c разными параметрами с одного ТФ,но делаю что-то неправильно(новичёк) и получаю сигналы только одного(кстати,даже в этом случае результаты лучше чем с базовыми индюками,процентов на 5-10).Отзовитесь,кто поможет справиться с этой проблемой!Для мастера-минутное дело.

Автору - респект!Оччень дельный советник!

 

There are an other problem with sauron if you want to use it on live account. You must remove CurrentOpenOrders function, substitute it with simple built in OrdersTotal function and create a flag to tell you if there are ea's open orders or not. I can send you a copy. An other problem is on the timing selectio at the very begining.
I would really appreciate if you try to contact me directly via email or skype as from my information on the forum, possibly in english language.
Thanks Helen for your comment

29.02.2008 09:09 giaras
GlucK писал(а)

1. Индикатор взял - буду посмотреть.

2. Вопрос о "грамотнее, лучше и надежней" скорее всего из области предпочтений.

3. Т.е. Получается что торгуешь на половину вручную?

4. Можно и блок ожидания вставить - технически это не сложно.

5. Так и не понял что значит использую два советника... На одном инструменте, но в разных ТФ (в разных окнах)? Объединяются аналогично мультивалютным советникам.

6. Уже и инвестор доволен? ;)

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

8. То что профит срабатывает намного чаще - факт. Подумываю о ступенчатом трейлинге... дабы не упускать продолжение движения.

ps: Скинь на мыло советника - ужасть как любопытно что наварганила и как у тебя до сих пор только 1 лось? ;)


2.Грамотность-не вопрос предпочтений,как и надёжность.

3.Да,торгую вручную,базовый сигнал-от советника.Он даёт направление и цель.

4.Если можно-тогда нужно!

5.Да,в разных окнах.Чаще бывает,что сигналы разнонаправленные.

6.31 сделка.Чаще тейка не дожидаюсь.Увы.

7.Работает.В тестере по крайней мере.В реале не использую.

8.Что такое ступенчатый трейлинг?

Мыло отправила.Думала,что будет второй.Ещё вчера был сигнал селл в 15.00(терминал) на советнике 15М до 211.79.Фунтйена.Обошлось однако!

27.02.2008 19:06 Helen
Helen писал(а):

1. Индикатор есть здесь-'SlopeDirection_MTF',базовый. В виде двухцветной линии отображается,по сути,тот же МАКД,так что можно его ипользовать,возможно и грамотнее.Для советника делала отображение в виде гистограмы(..._Н).

2. ...

3. Так в том и вопрос - как грамотнее,лучше,надёжнее и т.д.?

Кстати,использование в качестве индикаторов двух МАКД,даёт лучшие результаты чем с МА+МАКД - меньше просадка,короче ожидание профита.

По прежнему неплохо торгую с использованием этого советника.Захожу вручную,почти всегда позже сигнала советника,т.к. в начале торгового часа есть ценовые выбросы в обратную от сигнала сторону(или резко в сторону сигнала и тут же намного обратно).Подтверждения от внешних индикаторов дожидаюсь не всегда-опаздывают.Только в тех случаях,когда они показывают уж совсем обратное,а при первых признаках изменения направления-вхожу "по советнику".Может быть есть смысл вставить в советник некий блок ожидания подтверждения-отмены сигнала от другого(других) индикатора в течении определённого времени,если это возможно технически,конечно?Есть первый лось,-стоп коротковат оказался,была бы прибыль.Так же использую два советника,с показаниями от М15(в коде) и Н1(в коде),чем не заглядывание в будущее?Неплохо было бы объединить.Подтверждения от старших ТФ можно не рассматривать,так как часто сигналит "не в ту сторону".Тестирую теперь каждый день,есть смысл.В общем,советник приятно удивляет,инвестор доволен.

   У кого есть какие наблюдения?Делитесь.Неужели использование торговых привычек рынка никого не заинтересовало?

1. Индикатор взял - буду посмотреть.

2. Вопрос о "грамотнее, лучше и надежней" скорее всего из области предпочтений.

3. Т.е. Получается что торгуешь на половину вручную?

4. Можно и блок ожидания вставить - технически это не сложно.

5. Так и не понял что значит использую два советника... На одном инструменте, но в разных ТФ (в разных окнах)? Объединяются аналогично мультивалютным советникам.

6. Уже и инвестор доволен? ;)

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

8. То что профит срабатывает намного чаще - факт. Подумываю о ступенчатом трейлинге... дабы не упускать продолжение движения.

ps: Скинь на мыло советника - ужасть как любопытно что наварганила и как у тебя до сих пор только 1 лось? ;)

27.02.2008 17:57 GlucK
GlucK писал(а):

1) У меня нет твоего индикатора, чтобы узнать что он принимает и возвращает.

2) Если условие дает не верное направление - нужно просто поменять знак отношения в условии.

3) Использование НУЛЕВОГО бара (кроме как его цены открытия) еще никогда до добра не доводило.

1. Индикатор есть здесь-'SlopeDirection_MTF',базовый. В виде двухцветной линии отображается,по сути,тот же МАКД,так что можно его ипользовать,возможно и грамотнее.Для советника делала отображение в виде гистограмы(..._Н).

2. ...

3. Так в том и вопрос - как грамотнее,лучше,надёжнее и т.д.?

Кстати,использование в качестве индикаторов двух МАКД,даёт лучшие результаты чем с МА+МАКД - меньше просадка,короче ожидание профита.

По прежнему неплохо торгую с использованием этого советника.Захожу вручную,почти всегда позже сигнала советника,т.к. в начале торгового часа есть ценовые выбросы в обратную от сигнала сторону(или резко в сторону сигнала и тут же намного обратно).Подтверждения от внешних индикаторов дожидаюсь не всегда-опаздывают.Только в тех случаях,когда они показывают уж совсем обратное,а при первых признаках изменения направления-вхожу "по советнику".Может быть есть смысл вставить в советник некий блок ожидания подтверждения-отмены сигнала от другого(других) индикатора в течении определённого времени,если это возможно технически,конечно?Есть первый лось,-стоп коротковат оказался,была бы прибыль.Так же использую два советника,с показаниями от М15(в коде) и Н1(в коде),чем не заглядывание в будущее?Неплохо было бы объединить.Подтверждения от старших ТФ можно не рассматривать,так как часто сигналит "не в ту сторону".Тестирую теперь каждый день,есть смысл.В общем,советник приятно удивляет,инвестор доволен.

   У кого есть какие наблюдения?Делитесь.Неужели использование торговых привычек рынка никого не заинтересовало?


27.02.2008 16:40 Helen
Helen писал(а):

Привет,Gluck!Может сливает как раз по причине возможной ошибки в блоке анализа?При тестировании на подбор параметров МА и МАКД,последний получился с забавными параметрами - 36,12,3.При этом вход осуществляется по сигналу "наоборот" от МАКД.С штатными настройками - то же самое. Т.е. МА-покупка,а МАКД-продажа - покупаем! Подбираю оба индикатора на одном ТФ(меняю в коде),что-бы избежать "подглядывания" в историю старших ТФ.В частности использую 1Н и 15М.С SlopeDirectionLine_H получается то же самое.Никак не могу добиться,что-бы открытие сделки происходило при сигналах одинаковой направленности.Упускаются "железные" сделки.Да и просадочка у открывшихся сделок великовата.Поэтому и использую два ТФ.

1) У меня нет твоего индикатора, чтобы узнать что он принимает и возвращает.

2) Если условие дает не верное направление - нужно просто поменять знак отношения в условии.

3) Использование НУЛЕВОГО бара (кроме как его цены открытия) еще никогда до добра не доводило.

27.02.2008 01:26 GlucK
34 комментария: 1 2 3 4