Проверка некоторых мифов: "Как торгуется азиатская сессия, так весь день и пойдет торговля"
Введение
Здравствуйте! Как человек, уже почти год пытающийся что-то заработать на Форексе и сливший при этом уже не один небольшой депозит, думаю, имею право слегка поумничать на эту тему.
Ни для кого не открою большого секрета, что весь технический анализ, если отбросить словоблудие, по сути, сводится к поиску закономерностей. Если вы установили, что с 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. Расписание торговых сессий на основных мировых биржах
Как видим, технически Азия торгуется с 3 часов утра до 12 часов дня — зимой и с 4 утра до 13.00 — летом. Но в 9.00 открывается европейская сессия, и процессы начинают перекрываться. Так что кристально чистая азиатская сессия покрывает только промежуток с 3.00 до 9.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_LEVEL, для разных ДЦ и финансовых пар она разная. Сделано это для того, чтобы получить как можно более реальные результаты, ведь если вы, например, захотите выставить ордер по золоту с 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.- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Ок, согласен тут денег нет. Развейте еще один миф... Если пробой азиатского флета произошел на одном инструменте, то он произойдет, с большей вероятностью, и на другой. Можно взять шесть коррелирумых пар. Евра/бакс, Фунто/бакс, Бакс/франк, Бакс/Кад, Ауди/бакс, Зеландец/бакс
Сформулируйте - что считать флетом, а что пробоем -в каких пределах должна ходить цена по сравнению с предыдущими барами. Лучше в %, то есть если цена ушла на столько то процентов от минимума/максимума Азиатской сессии, - это пробой.
С Новым годом. Успехов на Форексе в следующем году.
Ок, согласен тут денег нет. Развейте еще один миф... Если пробой азиатского флета произошел на одном инструменте, то он произойдет, с большей вероятностью, и на другой. Можно взять шесть коррелирумых пар. Евра/бакс, Фунто/бакс, Бакс/франк, Бакс/Кад, Ауди/бакс, Зеландец/бакс
Сформулируйте - что считать флетом, а что пробоем -в каких пределах должна ходить цена по сравнению с предыдущими барами. Лучше в %, то есть если цена ушла на столько то процентов от минимума/максимума Азиатской сессии, - это пробой.
С Новым годом. Успехов на Форексе в следующем году.
Ох - север, север. Ты хоть представляешь какой обьем работы я должен сделать. Я неделю советника писать буду, если не больше (или ты думаешь мне больше делать нечего). Чего ради. Берешь листик бумаги и вперед, за день-два перелопатишь.
Ох - север, север. Ты хоть представляешь какой обьем работы я должен сделать. Я неделю советника писать буду, если не больше (или ты думаешь мне больше делать нечего). Чего ради. Берешь листик бумаги и вперед, за день-два перелопатишь.
:) если будет желание и время развеять пару троек мифов, обращайся...
П.С. у меня стратегия на этом, поэтому и подумал, что это будет полезно.... не только мне, а тоб в личку давно набрал.
По-моему, эта считалка не сильна в арифметике...
Срабатывание стоп-лосса - 1, а я вручную насчитал в одном окне аж 6 штук
А считалка - если бы она нормально работала - ценный инструмент.
Или это я неверно считаю? Так ведь ордера-то сработали бы
Точно! Только не я неверно считаю. Считалка не знает, что такое пятый знак после запятой.
http://s44.radikal.ru/i104/1004/48/87e0ada46f1c.gif
А это - http://s39.radikal.ru/i086/1004/e8/faf8febe5bae.gif - для колонки "Шутки юмора"...
Эта "считалка" на самом деле что-нибудь считает или в ей, родимой, встроен генератель случайных числ?