Проверка некоторых мифов — «Как торгуется азиатская сессия, так весь день и пойдет торговля»

Автор: lexy Пятница, Сентябрь 5th, 2014 Нет комментариев

Рубрика: Разное

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

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

Бродя по разным около форексным форумам, в поисках крупиц информации, которую можно было бы использовать в реальной торговле – не раз встречал различные утверждения, которые выдавались за общеизвестную истину. На MTV есть неплохая передача – «Разрушители мифов», где два американца проверяют якобы «Общеизвестные истины», ну и соответственно на практике, показывают, а так ли оно на самом деле.

Вот и я тоже решил проверить некоторые изречения, которые выдаются за — «непреложные», всяческими форексными или скорее «околофорексными» гуру. Сегодня проверим следующее утверждение –

 

«Как торгуется азиатская сессия, так весь день и пойдет торговля».

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

 

 

Регион Город Зимнее время
Open
Зимнее время
Close
Летнее время
Open
Летнее время
Close
ASIA Токио
Гонконг
Сингапур
03:00
04:00
04:00
11:00
12:00
12:00
04:00
05:00
04:00
12:00
13:00
12:00
EUROPE Франкфурт
Цюрих
Париж
Лондон
9:00
9:00
9:00
10:00
17:00
17:00
17:00
18:00
09:00
09:00
09:00
10:00
17:00
17:00
17:00
18:00
AMERICA Нью-Йорк
Чикаго
16:00
17:00
24:00
01:00
16:00
17:00
24:00
01:00
PACIFIC Веллингтон
Сидней
00:00
01:00
08:00
09:00
00:00
01:00
08:00
09:00

 

 

 

Табл.1 Расписание торговых сессий

Как видим — технически Азия торгуется с 03 до 12 часов дня — зимой и с 04 до 13.00 летом. Но с 9.00 начинает торговать Европа. Так чисто Азиатская сессия это с 3.00 до 9.00 или все-таки с 3.00 до 13.00? Потом еще это серверное время — у разных ДЦ оно может быть разным и совсем не обязательно совпадать с московским, да и переходы на зимнее — летнее время — кто переходит, кто нет. Ладно, проверим и так и эдак. Потом – что значит –« так и весь день пойдет торговля». Это как надо понимать? Если в целом сессия была бычья, то до следующей сессии цена продолжит расти?

Для начала предлагаю посмотреть на нижеследующий график — рис 1. С помощью индикатора – «i-Sessions» Игоря Кима он раскрашен в разные цвета по времени сессий. Наиболее темным цветом я раскрасил время с 3.00 до 13.00 –«Азия». Соответственно посветлее «Европу» с 9.00 до 18.00 и самым светлым «Америку» с 16.00 до 24.00.

 

 

Рис 1. График NZDUSD с указанием сессий

Дальше я буду объяснять очень подробно, в расчете на то, что меня читают люди не совсем «в теме», т.е. начинающие трейдеры.

Итак, пишу эксперта «1- Session» для следующих задач.

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

Если цена открытия, по какой-то нелепой случайности, равна цене закрытия, то сессия «никакая».

Код эксперта я постарался максимально комментировать, в расчете на начинающих, к коим себя и отношу.

//+------------------------------------------------------------------+
//|                                                    1-Session.mq4 |
//|                              Copyright © 2009, Игорь Александров |
//|                                                sydiya@rambler.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Игорь Александров"
#property link      "sydiya@rambler.ru"

//---- Входные параметры

extern string  Open_session="01:00";   // Время открытия исследуемой сессии
extern string  Close_session="10:00";  // Время закрытия исследуемой сессии
extern int Day_kol_vo=50;              // Кол-во дней  для исследования
extern int Hour_kol_vo=15;             // Кол-во часов после конца сессии для исследования
extern int Profit=20;                  // Проверяемый уровень профита

//-----------------------------------------------------------------
string Symb;                           // Название финанс. инструмента на котором стоит эксперт
//----------------------------Стартуем--------------------------------

int start()
  {                                    // общая открывающая скобка
   int  Shift_open_H1,                 // Номер часового бара с
                                       // тем же временем открытия что и дневной
   Shift_open_bars_session,            // Номер часового бара с которого начинается сессия

   Shift_close_bars_session,           // Номер часового бара на котором заканчивается сессия 

   STOP_LEVER=0;                       // Минимальное расстояние для TP и SL

   double Open_bars_session,           // Цена открытия первого бара сессии
   Close_bars_session,                 // Цена закрытия последнего бара сессии
   Vira_session,                       // Наибольшая цена за время сессии
   Total_TP=0,                         // Счетчик срабатываний тейк профитов
   Total_SL=0,                         // Счетчик срабатываний стоплоссов
   Total_day=0,                        // Кол-во исследуемых дней при старте советника
   Total_SL_TP=0,                      // Счетчик пустых сессий              
   Maina_session;                      // Наименьшая цена за время сессии

   datetime Time_open_day,             // Время открытия i-того бара

   Time_open_session,                  // Время начала исследуемой сессии в формате datatime          
   Time_close_session;                 // Время закрытия исследуемой сессии в формате datatime 

   string String_open_H1;              // Время открытия первого часового бара в исследуемый день
                                       // в формате строки "yyyy.mm.dd"                    
   bool   Session_buy=false,           // Флаг бычьей сессии
   Session_sell=false;                 // Флаг медвежьей сессии                    
   Symb=Symbol();                      // Название фин.инстр.
   STOP_LEVER=MarketInfo(Symb,MODE_STOPLEVEL);   //Минимальное расстояние для TP и SL

   for(int i=Day_kol_vo;i>0;i --) //Цикл перебора дневных таймфремов
     { //Открывающая скобка цикла переборов дневных баров
      Total_day++;                            //Счетчик кол-ва исследуемых дней 

      Time_open_day=iTime(Symb,PERIOD_D1,i); //Запрашиваем время открытия дневного i-того бара  
      Shift_open_H1=iBarShift(Symb,PERIOD_H1,Time_open_day,false); //Запрашиваем номер часового бара с
                                                                   //тем же временем открытия, что и дневной  

      String_open_H1=TimeToStr(Time_open_day,TIME_DATE);  // Преобразовываем время открытия
                                                          // первого часового бара в исследуемый день
                                                          // из формата datatime в формат строки "yyyy.mm.dd"

      // Запрашиваем время начала исследуемой сессии в формате datatime
      Time_open_session=StrToTime(String_open_H1+" "+Open_session); 

      // Запрашиваем номер часового бара, с которого начинается сессия
      Shift_open_bars_session=iBarShift(Symb,PERIOD_H1,Time_open_session,false); 

      // Запрашиваем время закрытия исследуемой сессии в формате datatime   
      Time_close_session=StrToTime(String_open_H1+" "+Close_session); 

      // Запрашиваем номер часового бара, на котором заканчивается сессия
      Shift_close_bars_session=iBarShift(Symb,PERIOD_H1,Time_close_session,false); 

      // Запрашиваем цену открытия первого бара сессии
      Open_bars_session=iOpen(Symb,PERIOD_H1,Shift_open_bars_session); 

      // Запрашиваем цену закрытия последнего бара сессии
      Close_bars_session=iClose(Symb,PERIOD_H1,Shift_close_bars_session); 

      Vira_session=iHigh(Symb,PERIOD_H1,
      iHighest(Symb,PERIOD_H1,MODE_HIGH,(Shift_open_bars_session-Shift_close_bars_session),Shift_close_bars_session));
      // Находим максимальную цену за время сессии

      Maina_session=iLow(Symb,PERIOD_H1,
      iLowest(Symb,PERIOD_H1,MODE_LOW,(Shift_open_bars_session-Shift_close_bars_session),Shift_close_bars_session));
      //Находим минимальную цену за время сессии

      if(Open_bars_session>Close_bars_session)
        {
         Session_buy=false;
         Session_sell=true;//Цена открытия больше цены закрытия,
                           //сессия -медвежья      
        }
      if(Open_bars_session<Close_bars_session)
        {
         Session_buy=true;
         Session_sell=false;//Цена открытия меньше цены закрытия,
                            //сессия -бычья
        }
      if(Open_bars_session==Close_bars_session)
        {
         Session_buy=false;
         Session_sell=false;//Цена открытия равна цене закрытия,
                            //сессия -никакая
        }
      int PEREBOR=0;                       //Счетчик часов (Проверка кода)
      for(int j=Shift_close_bars_session;j>Shift_close_bars_session-Hour_kol_vo;j --)//Цикл перебора
         //часовых тайфремов в i-тый день
        {  //Открывающая скобка цикла перебора часовых баров

         PEREBOR++;                           //Счетчик часов (Проверка кода)

         if(Session_buy==true && Session_sell==false) //Если сессия бычья
           {
            // если максимальная ена часового бара больше цены закрытия сессии плюс (Профит+Мин.растояние)
            if(iHigh(Symb,PERIOD_H1,j-PEREBOR)>(Close_bars_session+(Profit+STOP_LEVER)*Point))
              {
               Total_TP++;     //Срабатывает счетчик тейкпрофитов

               break;          //Прерывается цикл перебора часовых баров
              }
              // Если минимальная цена часового бара меньше минимальной цены за сессию
              if(iLow(Symb,PERIOD_H1,j-PEREBOR)<Maina_session)

              {
               Total_SL++;     //Срабатывает счетчик стоплоссов

               break;          //Прерывается цикл перебора часовых баров
              }

           }
         if(Session_buy==false && Session_sell==true) //Если сессия медвежья
           {
            //если максимальная цена часового бара больше максимальной цены за сессию
            if(iHigh(Symb,PERIOD_H1,j-PEREBOR)>Vira_session)

              {
               Total_SL++;     //Срабатывает счетчик стоплоссов

               break;          //Прерывается цикл перебора часовых баров
              }
            //если минимальная цена часового бара меньше цены закрытия сессии минус (Профит+Мин.растояние)
            if(iLow(Symb,PERIOD_H1,j-PEREBOR)<(Close_bars_session-(Profit+STOP_LEVER)*Point))
              {
               Total_TP++;     //Срабатывает счетчик тейкпрофитов

               break;          //Прерывается цикл перебора часовых баров
              }
           }
         if(Session_buy==false && Session_sell==false) //Если сессия никакая
           {
            Total_SL_TP++;     //Срабатывает счетчик
            break;          //Прерывается цикл перебора часовых баров
           }

        } //Закрывающая скобка цикла перебора часовых баров
      double Pro_Total_TP=(Total_TP/Total_day)*100,//Вероятность срабатывания тейкпрофитов
      Pro_Total_SL=(Total_SL/Total_day)*100,//Вероятность срабатывания стоплоссов
      Pro_Total_SL_TP=(Total_SL_TP/Total_day)*100; //Вероятность пустых сессий
      int
      Total_no=Total_day-Total_SL-Total_TP-Total_SL_TP; //Не сработал не ТР не СЛ
      double
      Pro_Total_no=(Total_no/Total_day)*100;            //Вероятность что не сработает не ТР не СЛ
      Comment("Проверенно ",Total_day," дней","\n",
              "Время открытия сессий  ",Open_session," Время закрытия сессий ",
              Close_session," Кол-во проверяемых часов после сессии ",Hour_kol_vo," Профит ",Profit,"\n",
              "Из них тейк профит срабатывал ",Total_TP," раз","\n",
              "Из них стоп лосс срабатывал ",Total_SL," раз","\n",
              "Из них пустых сессий было ",Total_SL_TP," раз","\n",
              "Не сработал не тейк профит, не стоп лосс ",Total_no," раз","\n",
              "Вероятность срабатывания тейк профитов ",Pro_Total_TP," %","\n",
              "Вероятность срабатывания стоп лоссов ",Pro_Total_SL," %","\n",
              "Вероятность пустых сессий ",Pro_Total_SL_TP," %","\n",
              "Вероятность не срабатывания не ТР, не СЛ ",Pro_Total_no," %");

     } //Закрывающая скобка цикла перебора дневных баров

   return(0);

  }                                        //-общая закрывающая скобка

 

Теперь попрошу внимательно вчитаться и понять следующий метод проверки. Если скажем сессия в целом медвежья, то сымитируем установку Тейк профита на каком-то уровне ниже цены окончания сессии – на величину (Profit+STOP_LEVER), где Profit (можно менять) – это собственно количество пунктов, на которые мы хотим выставить Тейк профит. Т. е., предполагается, что если цена за сессию ушла вниз, то и дальше она продолжит свое движение вниз, соответственно при бычьей сессии все наоборот.

STOP_LEVER – это минимальное расстояние, на которое вашим ДЦ разрешено ставить ордер от существующей цены по данной валютной паре. Запрашивается программно, не чего самим вводить не надо.

Реальный уровень Тейк Профита, задаваемый вами в эксперте с помощью параметра «Profit», всегда будет чуточку дальше от цены на величину STOP_LEVER, для разных ДЦ и финансовых пар она разная. Сделано это для того, чтобы получить как можно более реальные результаты, ведь если вы, например, захотите выставить ордер по золоту с 5 пунктами профита (в реале), то это вряд ли вам удастся, минимальное расстояние от цены, которое я видел – это 50 пунктов.

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

Давайте посмотрим еще раз на картинку (рис 1). Из нее видно следующее. Если азиатская сессия в целом была бычья, то цена до следующей азиатской сессии не опускается ниже уровня минимальной цены за рассматриваемую сессию. На рис. 1 — вертикальными линиями отмечена сессия 4 ноября 2009 года с 3.00 до 13.00. Видно, что в целом она бычья, т.е. цена открытия меньше цены закрытия, уровень Стоп Лосса – это минимальная цена за сессию. Если сессия медвежья, то уровень Стоп Лосса – это максимальная цена за сессию, это вроде понятно.

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

Итак, передаваемые в эксперт параметры (те, которые можно менять на вкладке «Свойства»):

 

Рис 2. Параметры эксперта

Open session – время открытия сессии,

Close_session – время закрытия сессии,

Day_kol_vo – количество дней в глубину истории (т.е. если стоит цифра 50, то эксперт будет вести свои расчеты за 50 последних дней, слишком глубоко советую не копать),

Hour_kol_vo – количество часов. Этим параметром вы задаете количество часов, прошедших после окончания сессии, на которые эксперт будет смотреть. В прилагаемых далее данных я выставлял количество часов до следующей сессии. Если исследуем время с 3.00 до 13.00, то до следующей такой же сессии – 14 часов,

Profit – расстояние в пунктах от цены на которой закончилась сессия. Уровень виртуального тейк профита.

Вероятности считаем просто. Для тейк профитов, это количество их срабатываний за исследуемое количество дней, деленное на количество этих самых исследуемых дней, ну и умноженное на 100, чтобы выразить это в процентах.

Соответственно, для стоп лоссов – количество их срабатываний, за исследуемое количество дней, деленное на количество этих дней, и умноженное на 100.

Для пустых сессий аналогично.

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

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

Если тики идут слишком часто, можно выключить эксперт кнопкой «Советники» на терминале.

Ну а теперь собственно о том, зачем все это затевалось. Посмотрите на нижеследующую табличку. Составлялась она по данным эксперта 1-Session несколько дней назад, т.е. 10 ноября. Глубоко не копал, взял историю за последние 50 дней. Время для определения какую ставку делать (покупать–продавать) бралось с 3.00-13.00, т.е. собственно Азиатская сессия полностью, 3.00-9.00, чистая «Азия» без Европы, и 9.00-13.00 собственно и Азия и Европа вместе.

 

3.00-13.00

3.00-13.00

3.00-13.00

3.00-9.00

3.00-9.00

3.00-9.00

9.00-13.00

9.00-13.00

9.00-13.00

Профит-5

Профит-15
Профит-25
Профит-5
Профит-15
Профит-25
Профит-5
Профит-15
Профит-25
USDJPY Сработал тейк профит %
74
58
50
78
64
52
70
52
44
USDJPY Сработал стоп лосс %
24
36
44
22
36
48
30
48
56
USDJPY Сессия никакая %
2
2
2
0
0
0
0
0
0
USDJPY Ничего не сработало %
0
4
4
0
0
0
0
0
0
EURUSD Сработал тейк профит %
100
72
64
68
62
54
76
66
62
EURUSD Сработал стоп лосс %
0
28
36
32
38
46
24
34
38
EURUSD Сессия никакая %
0
0
0
0
0
0
0
0
0
EURUSD Ничего не сработало %
0
0
0
0
0
0
0
0
0
GBPJPY Сработал тейк профит %
72
62
54
72
66
50
78
64
56
GBPJPY Сработал стоп лосс %
28
34
42
28
34
50
22
34
42
GBPJPY Сессия никакая %
0
0
0
0
0
0
0
0
0
GBPJPY Ничего не сработало %
0
4
4
0
0
0
0
2
2
NZDUSD Сработал тейк профит %
80
66
56
74
58
50
68
58
46
NZDUSD Сработал стоп лосс %
20
34
42
24
40
48
30
40
52
NZDUSD Сессия никакая %
0
0
0
2
2
2
2
2
2
NZDUSD Ничего не сработало %
0
0
0
0
0
0
0
0
0

 

 

 

 

 

 

Таблица 2. Итоговая таблица вероятностей (%).

Как видите, тейк-профиты тоже высоко не ставил – 5, 15 и 25 пунктов.

Выводы

Собственно из таблицы 2 видно, что разговоры о том, что «как торгуется Азиатская сессия, так пройдет и весь день» — никакой основы под собой не имеют, по крайней мере по этим четырем парам, за последние 50 дней.

Вероятность срабатывания тейкпрофитов в 5 пунктов с вероятностью 60-70 % в данной ситуации расматриваю как вероятность при подбрасывании монетки. ИМХО.

EURUSD 100 % при 5 пунктах профита. То есть, если бы я последние 50 дней в 13.00 делал ставку, в зависимости от того, как торговалась Азия, с небольшим тейкпрофитом в 5 пунктов, то я бы всегда выигрывал. Что могу сказать — очень жаль что я этого не знал раньше. Хотя для пипсовщиков это советую использовать как дополнительную информацию, т.к. копание в более глубокую историю – 100 и более дней, дает не столь однозначные результаты.

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

Прикрепленные файлы – индикатор TradeSession.mq4 (может кто захочет разукрасить свой терминал) и сам эксперт 1- Session.mq4.

 

Прикрепленные файлы:
 1- Session.mq4 (9.3 Kb)
 TradeSessions.mq4 (7.8 Kb)
Источник: mql4.com

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты