Исследование статистики повторяемости направления свечей
Введение
Здравствуйте.
Хочу предложить вашему вниманию рассмотреть следующую мысль. Нельзя ли предсказать поведение рынка на ближайший небольшой период, на основе повторяемости направления свечей в одно и то же время в течение дня. Если такая повторяемость, конечно, обнаружится.
Вообще, если удастся обнаружить, что в течение последних нескольких дней, в одно и то же время, свечи всегда имели одно и то же направление, то это само по себе было бы интересно. Ведь весь технический анализ, по сути, сводится к нахождению статистически значимых зависимостей.
Смена направления повторяющихся свечей говорит о смене тренда
Давайте для начала договоримся о некоторых терминах. Хотя эти термины общеупотребительные, стоит еще раз напомнить о них, для исключения разночтений. Если цена открытия свечи меньше чем цена закрытия - свеча бычья (на предлагаемых рисунках они закрашены белым цветом), если наоборот - цена медвежья (закрашены черным цветом). Если цена открытия равна цене закрытия, то такие свечи будем называть равными (термин мой). Если цена котировки, в течение какого-то периода падала, то говорим о медвежьем тренде за данный период, если наоборот, то о бычьем.
Давайте посмотрим на график:
Рис 1. Свечной график на 4-х часовом таймфрейме USDJPY, с 20.11.2009 по 08.12.2008
Как видно из рисунка 1, если тренд медвежий, то и свечи, составляющие этот тренд, в основном медвежьи, если бычий, то и свечи бычьи. Если боковой, то и свечи постоянно меняют направление.
Собственно, наша задача - определить, есть ли у свечей какая-либо повторяемость, и как она меняется в зависимости от изменения направления тренда.
Конечно, все это можно проделать и вручную, скажем, взять часовой или любой другой график, выписать на бумажку направление свечей, и сравнивать их друг с другом за какой-то период. Объем работы большой, но в принципе возможный. Но у нас есть такое замечательное средство, как язык программирования MQL4, с помощью которого можно легко написать эксперта, который сам все подсчитает и сам все расскажет о результатах расчетов.
Итак, что нам нужно:
- Во-первых, мы должны иметь возможность задавать период времени, который нас интересует, вряд ли есть 15-минутные свечи, которые с вероятностью 100% были медвежьими в 7:15 ежедневно, на протяжении последних пары лет. Хотя проверить такую возможность, хотя бы за последние полгода, мы должны иметь, а вдруг.
- Во-вторых, наверное, неплохо было бы знать, сколько свечей за рассматриваемый период, было бычьих, сколько медвежьих. Согласитесь, если за последние 10 дней часовые свечи со временем открытия 18:00 - 6 раз были бычьи, а 4 раза медвежьи, то вряд ли из этой информации можно вытащить что-то серьезное. Вот если они 9 раз из 10 были медвежьи, то такую информацию стоит учитывать, например, для того, чтобы решить, в каком направлении открываться сегодня в 18:00.
- В-третьих, неплохо было бы также узнать, какое среднее расстояние между ценой открытия и закрытия было у данных свечей, а также среднюю их высоту за рассматриваемый период.
- В-четвертых, мы должны иметь возможность проводить наши расчеты на различных таймфреймах.
Все это возможно задать во внешних переменных предлагаемого скрипта - script_Statistics_candles.
Посмотрим на нижеследующий рисунок.
Рис. 2. Входные параметры скрипта
На рисунке 2 показаны входные параметры, которые можно изменять в скрипте.
Open_session - Время начала исследуемой сессии
Close_session - Время окончания исследуемой сессии
Period_time - Таймфрейм, на которых скрипт считает вероятность повторения свечей. Может принимать одно из следующих значений - 5, 15, 30, 60, 240. Прошу запомнить, что допустимы только эти и никакие другие значения. Соответственно, эти значения будут соответствовать периодам графиков - 5, 15, 30 минут, 1 час и 4 часа.
Ниже выкладываю код самого скрипта. Код я максимально комментирую по той причине, что сам я в процессе изучения учебника по MQL4, не раз обращался к экспертам, выложенным на данном сайте и прежде всего, наиболее полно комментированным. Ведь не секрет, что любая статья, выложенная на данном сайте, имеет, помимо прочего и обучающее значение, для тех, кто делает первые шаги в использовании языка MQL4.
//+------------------------------------------------------------------+ //| script_Statistics_candles_V2.mq4 | //| Copyright © 2009, Игорь Александров | //| sydiya@rambler.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, Игорь Александров" #property link "sydiya@rambler.ru" #property show_inputs //---- Входные параметры extern string Open_session ="2009.11.20"; //Дата открытия исcледуемой сессии extern string Close_session = "2009.11.26"; //Дата закрытия исcледуемой сессии extern int Period_time = 60; //Период графика, на котором будет работать эксперт, //может принимать значения 5;15;30;60;240 //----------------------------------------------------------------- int Day_bars_i; //Номер дня для i-го бара в сессии double Mas_vira_maina[24,60]={0,0 0,0}, //Объявляем массив для баров с равной ценой открытия - закрытия Mas_vira[24,60]={0,0 0,0}, //Объявляем массив для вычислений бычьих баров Mas_maina[24,60]={0,0 0,0}, //Объявляем массив для вычислений медвежьих баров Mas_kol_vo[24,60]={0,0 0,0}, //Обьявляем массив для вычислений кол-ва подсчитаных баров Mas_profit[24,60]={0,0 0.0}, //Обьявляем массив для вычислений профита по open-close Mas_H_L[24,60]={0,0 0.0}; //Обьявляем массив для вычислений профита по high-low string Symb; //Название финанс. инструмента, на котором исполняется скрипт bool New_day = false; //Флаг нового дня //-------------------------------------------------------------------- //----------------------------Стартуем-------------------------------- int start() { //-общая открывающая скобка Print("----------------------------------------------------------------------"); Print(" Результаты работы скрипта- Statistics_candles- ",TimeToStr(TimeCurrent( )) ); Print(" Расчет проведен с ",Open_session," до ",Close_session); //------------------------Обьявляем переменные ---------------------- int Hour_open_bars, //Номер часа открытия i-го бара в сессии Minute_open_bars, //Номер минуты открытия i-го бара в сессии Shift_open, //Номер бара с временем открытия Open_session Shift_close, //Номер бара с временем открытия Close_session Shift_open_close, //Количество баров в сессии Total_day=0; //Счетчик количества подсчитанных дней double Open_bars_price, //Цена открытия i-го бара сессии Close_bars_price, //Цена закрытия i-го бара сессии Low_bars_price, //Минимальная цена i-го бара сессии High_bars_price, //Максимальная цена цена i-го бара сессии Total_bars=0; //Кол-во исследуемых баров при старте скрипта datetime Time_open_session, //Время открытия первого бара исследуемой сессии //в формате datatime Time_close_session, //Время открытия последнего бара исследуемой //сессии в формате datatime Time_open_bars; //Время открытия баров в формате datatime bool Session_vira=false, //Флаг бычьей сессии Session_maina=false; //Флаг медвежьей сессии //-----------------------Конец обьявления переменных ------------------ Symb=Symbol(); // Название фин.инструмента //Запрашиваем время начала исследуемой сессии в формате datatime Time_open_session= StrToTime(Open_session); //Запрашиваем время закрытия исследуемой сессии в формате datatime Time_close_session= StrToTime(Close_session); //Запрашиваем номер бара, открывающего сессию Shift_open=iBarShift( Symb,Period_time, Time_open_session,false); //Запрашиваем номер бара,закрывающего сессию Shift_close=iBarShift( Symb,Period_time, Time_close_session,false); //--------------------------------------------------------------------- for(int i = Shift_open; i>=Shift_close; i --) //Цикл перебора баров в сессии { //Открывающая скобка цикла переборов баров Total_bars++; //Счетчик кол-ва исследуемых баров static int New_day_shift=0; //Номер дня при старте советника // Запрашиваем время открытия i-го бара в сессии Time_open_bars=iTime( Symb,Period_time,Shift_open-Total_bars); //Запрашиваем час открытия i-го бара в сессии Hour_open_bars=TimeHour(Time_open_bars); //Запрашиваем минуту открытия i-го бара в сессии Minute_open_bars=TimeMinute(Time_open_bars); // Запрашиваем номер дня для i-го бара в сессии Day_bars_i=TimeDayOfYear( Time_open_bars); //Если номер дня первого бара в сессии не равен номеру i-го дня,то if(New_day_shift!=Day_bars_i) { New_day = true; //флаг нового дня сработал New_day_shift=Day_bars_i; //и присваиваем номеру дня номер i-го бара Total_day++; //Счетчик дней увеличиваем на единицу } else //в противном случае { New_day = false; //флаг нового дня не сработал } //Запрашиваем цену открытия i-го бара Open_bars_price= iOpen( Symb, Period_time,i); //Запрашиваем цену закрытия i-го бара Close_bars_price=iClose( Symb, Period_time,i); //Запрашиваем минимальную цену i-го бара Low_bars_price=iLow( Symb, Period_time,i); //Запрашиваем максимальную цену i-го бара High_bars_price=iHigh( Symb, Period_time,i); //Если цена открытия бара меньше цены закрытия, то сессия бычья if(Open_bars_price<Close_bars_price) { //Значение массива в соответствующей ячейке увеличиваем на единицу Mas_vira[Hour_open_bars,Minute_open_bars]=Mas_vira[Hour_open_bars,Minute_open_bars]+1; //Значение массива в соответствующей ячейке увеличиваем на единицу Mas_kol_vo[Hour_open_bars,Minute_open_bars]=Mas_kol_vo[Hour_open_bars,Minute_open_bars]+1; //В массив заносим разницу между ценой открытия и закрытия в пунктах Mas_profit[Hour_open_bars,Minute_open_bars]= Mas_profit[Hour_open_bars,Minute_open_bars]+(Close_bars_price-Open_bars_price)/Point; //В массив заносим разницу между максимальной и минимальной ценой бара в пунктах Mas_H_L[Hour_open_bars,Minute_open_bars]= Mas_H_L[Hour_open_bars,Minute_open_bars]+(High_bars_price-Low_bars_price)/Point; } //Если цена открытия бара больше цены закрытия, то сессия медведей if(Open_bars_price>Close_bars_price) { //Значение массива увеличиваем на единицу Mas_maina[Hour_open_bars,Minute_open_bars]=Mas_maina[Hour_open_bars,Minute_open_bars]+1; //Значение массива в соответствующей ячейке увеличиваем на единицу Mas_kol_vo[Hour_open_bars,Minute_open_bars]=Mas_kol_vo[Hour_open_bars,Minute_open_bars]+1; //В массив заносим разницу между ценой открытия и закрытия в пунктах Mas_profit[Hour_open_bars,Minute_open_bars]= Mas_profit[Hour_open_bars,Minute_open_bars]+(Open_bars_price-Close_bars_price)/Point; //В массив заносим разницу между максимальной и минимальной ценой бара в пунктах Mas_H_L[Hour_open_bars,Minute_open_bars]= Mas_H_L[Hour_open_bars,Minute_open_bars]+(High_bars_price-Low_bars_price)/Point; } //Если цена открытия бара равна цены закрытия, то сессия никакая if(Open_bars_price==Close_bars_price) { //Значение массива увеличиваем на единицу Mas_vira_maina[Hour_open_bars,Minute_open_bars]=Mas_vira_maina[Hour_open_bars,Minute_open_bars]+1; //Значение массива в соответствующей ячейке увеличиваем на единицу Mas_kol_vo[Hour_open_bars,Minute_open_bars]=Mas_kol_vo[Hour_open_bars,Minute_open_bars]+1; //Значение масива оставляем таким же Mas_profit[Hour_open_bars,Minute_open_bars]= Mas_profit[Hour_open_bars,Minute_open_bars]+0; //В массив заносим разницу между максимальной и минимальной ценой бара в пунктах Mas_H_L[Hour_open_bars,Minute_open_bars]= Mas_H_L[Hour_open_bars,Minute_open_bars]+(High_bars_price-Low_bars_price)/Point; } } //Закрывающая скобка цикла перебора баров //--------------------------Выводим информацию в журнал экспертов------------------- Print("Обработано - ",Total_day," дней; ",Total_bars," баров, по ",Period_time," минут"); for (int h=0; h<=23; h++) //Цикл перебора часов { for (int m=0; m<=60; m++) //Цикл перебора минут { if (Mas_kol_vo[h,m]!=0) //Если значение массива не равно 0, то считаем дальше { Print("За расчитанный период, среди ",Mas_kol_vo[h,m], " баров,с временем открытия ",h,":",m, " .Бычьих- ",Mas_vira[h,m], ".Медвежьих- ",Mas_maina[h,m], ".Равных - ",Mas_vira_maina[h,m]); Print("У баров с временем открытия ",h,":",m, " ,среднее расстояние между ценами Open-Close - ",Mas_profit[h,m]/Mas_kol_vo[h,m], " пунктов.Между High-Low - ",Mas_H_L[h,m]/Mas_kol_vo[h,m]," пунктов."); } Mas_vira_maina[h,m]=0; //Обнуляем значение массива Mas_vira[h,m]=0; //Обнуляем значение массива Mas_maina[h,m]=0; //Обнуляем значение массива Mas_kol_vo[h,m]=0; //Обнуляем значение массива Mas_profit[h,m]=0; //Обнуляем значение массива Mas_H_L[h,m]=0; //Обнуляем значение массива } //Конец цикла перебора минут } //Конец цикла перебора часов Print("-------------- Скрипт закончил работу --------------------"); return(0); } //-общая закрывающая скобка
Как видите, я объявляю шесть массивов на глобальном уровне под вычисления.
double Mas_vira_maina[24,60]={0,0 0,0}, //Объявляем массив для баров с равной ценой открытия - закрытия Mas_vira[24,60]={0,0 0,0}, //Объявляем массив для вычислений бычьих баров Mas_maina[24,60]={0,0 0,0}, //Объявляем массив для вычислений медвежьих баров Mas_kol_vo[24,60]={0,0 0,0}, //Объявляем массив для вычислений кол-ва посчитанных баров Mas_profit[24,60]={0,0 0.0}, //Объявляем массив для вычислений профита по open-close Mas_H_L[24,60]={0,0 0.0}; //Объявляем массив для вычислений профита по high-low
В буфер Mas_kol_vo будем заносить количество подсчитанных баров. Зачем это нужно. Казалось бы, значение ячеек массивов для open-close и high-low можно поделить на количество подсчитанных дней, тем более и счетчик в коде имеется- Total_day. Но в процессе работы над скриптом я столкнулся с отсутствием некоторых баров в истории, поэтому получались иногда интересные результаты. Например, высота некоторых баров получалась уж совсем нереальной.
Для чего нужны остальные массивы понятно из комментариев.
Ну а теперь собственно, проверим повторяемость баров при разных направлениях тренда. Для этого возьмем часовой график на USDJPY показанный на рис 1. Как видно из рисунка с 20.11.2009 по 26.11.2009, график имеет медвежью направленность, с 26.11.2009 по 2.12.2009 на графике боковой тренд и с 2.12.2009 по 8.12.2009 бычий тренд.
Проверим, есть ли за этот период повторяющиеся свечи и если есть, то как меняется их направление.
Ставим скрипт на часовой график. Для тех, кто не знает, как это сделать, расскажу чуть подробнее. Сам скрипт -script_Statistics_candles_V2.mq4, скачиваем в папку \Program Files\Название терминала\expert\scripts. Компилируем. Скрипт появится в левом нижнем углу, в окошке под названием "Навигатор". Выглядит это примерно так:
Рис.3 Окно навигатора
Из этого окна достаточно перетащить мышью скрипт в окно терминала, появится окно свойств - рис. 2. Выставляем дату начала и конца работы скрипта.
Для того чтобы понимать логику наших действий, прошу представить следующее. Как бы первое, что вы делаете утром, встав с постели, это запуск данного скрипта. Результаты его работы вы заносите в табличку, по типу той что будет представлена ниже под номером 1. Ваша задача попытаться понять, на результатах работы скрипта, как будут развиваться события на рынке в ближайшие сутки, а может и двое.
Итак, сегодня как будто 26 ноября 2009 года. Вы запускаете скрипт, Вас интересует статистика по свечам за последние, скажем, 6 календарных дней. То есть в свойствах скрипта вы выставляете: Open_session- 2009.11.20 (шесть дней назад), Close_session - 2009.11.26 (то есть сегодня), таймфрейм для расчета можете взять любой, я буду на часовом графике, т.е Period_time=60. И так мы будем делать ежедневно, увеличивая время начала и конца работы скрипта каждый раз на один день.
Мы же будем это делать на исторических данных.
Нажимаем кнопку "ОК" в свойствах, в папке экспертов в Log файле, появилась запись:
21:05:46 script_Statistics_candles_V2 USDJPY,H1 inputs: Open_session="2009.11.20"; Close_session="2009.11.26"; Period_time=60; 21:05:46 script_Statistics_candles_V2 USDJPY,H1: ---------------------------------------------------------------------- 21:05:46 script_Statistics_candles_V2 USDJPY,H1: Результаты работы скрипта - script_Statistics_candles- 2010.01.15 20:05 21:05:46 script_Statistics_candles_V2 USDJPY,H1: Расчет проведен с 2009.11.20 до 2009.11.26 21:05:46 script_Statistics_candles_V2 USDJPY,H1: Обработано - 5 дней; 97 баров, по 60 минут 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 0:0 .Бычьих- 1.Медвежьих- 3.Равных - 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 0:0,среднее расстояние между ценами Open-Close - 6.5 пунктов.Между High-Low - 11 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 5 баров,с временем открытия 1:0 .Бычьих- 1.Медвежьих- 2.Равных - 2 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 1:0,среднее расстояние между ценами Open-Close - 2.2 пунктов.Между High-Low - 10 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 2:0 .Бычьих- 2.Медвежьих- 2.Равных - 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 2:0,среднее расстояние между ценами Open-Close - 7.5 пунктов.Между High-Low - 13.5 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 3:0 .Бычьих- 2.Медвежьих- 2.Равных - 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 3:0,среднее расстояние между ценами Open-Close - 9 пунктов.Между High-Low - 14.5 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 4:0 .Бычьих- 0.Медвежьих- 4.Равных - 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 4:0,среднее расстояние между ценами Open-Close - 7.25 пунктов.Между High-Low - 12 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 5:0 .Бычьих- 2.Медвежьих- 2.Равных - 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 5:0,среднее расстояние между ценами Open-Close - 6 пунктов.Между High-Low - 12.75 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 6:0 .Бычьих- 1.Медвежьих- 2.Равных - 1 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 6:0,среднее расстояние между ценами Open-Close - 3.75 пунктов.Между High-Low - 8.25 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 7:0 .Бычьих- 1.Медвежьих- 3.Равных - 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 7:0,среднее расстояние между ценами Open-Close - 1.75 пунктов.Между High-Low - 10 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 8:0 .Бычьих- 2.Медвежьих- 2.Равных - 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 8:0,среднее расстояние между ценами Open-Close - 4.25 пунктов.Между High-Low - 8.75 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 9:0 .Бычьих- 0.Медвежьих- 3.Равных - 1 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 9:0,среднее расстояние между ценами Open-Close - 8.25 пунктов.Между High-Low - 14.5 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 10:0 .Бычьих- 2.Медвежьих- 2.Равных - 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 10:0,среднее расстояние между ценами Open-Close - 5.75 пунктов.Между High-Low - 15.25 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 11:0 .Бычьих- 3.Медвежьих- 1.Равных - 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 11:0,среднее расстояние между ценами Open-Close - 14.5 пунктов.Между High-Low - 19.75 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 12:0 .Бычьих- 1.Медвежьих- 3.Равных - 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 12:0,среднее расстояние между ценами Open-Close - 16.75 пунктов.Между High-Low - 25.5 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 13:0 .Бычьих- 2.Медвежьих- 2.Равных - 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 13:0,среднее расстояние между ценами Open-Close - 7 пунктов.Между High-Low - 14.75 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 14:0 .Бычьих- 1.Медвежьих- 2.Равных - 1 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 14:0,среднее расстояние между ценами Open-Close - 2.75 пунктов.Между High-Low - 12 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 15:0 .Бычьих- 2.Медвежьих- 2.Равных - 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 15:0,среднее расстояние между ценами Open-Close - 8.5 пунктов.Между High-Low - 14 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 16:0 .Бычьих- 0.Медвежьих- 3.Равных - 1 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 16:0,среднее расстояние между ценами Open-Close - 7.75 пунктов.Между High-Low - 18.75 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 17:0 .Бычьих- 3.Медвежьих- 1.Равных - 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 17:0,среднее расстояние между ценами Open-Close - 6.5 пунктов.Между High-Low - 14.75 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 18:0 .Бычьих- 2.Медвежьих- 2.Равных - 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 18:0,среднее расстояние между ценами Open-Close - 9 пунктов.Между High-Low - 18.5 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 19:0 .Бычьих- 2.Медвежьих- 2.Равных - 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 19:0,среднее расстояние между ценами Open-Close - 8.75 пунктов.Между High-Low - 16 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 20:0 .Бычьих- 2.Медвежьих- 2.Равных - 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 20:0,среднее расстояние между ценами Open-Close - 3 пунктов.Между High-Low - 10.5 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 21:0 .Бычьих- 1.Медвежьих- 3.Равных - 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 21:0,среднее расстояние между ценами Open-Close - 7.25 пунктов.Между High-Low - 12 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 22:0 .Бычьих- 1.Медвежьих- 3.Равных - 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 22:0,среднее расстояние между ценами Open-Close - 7 пунктов.Между High-Low - 15 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: За расчитанный период, среди 4 баров,с временем открытия 23:0 .Бычьих- 1.Медвежьих- 2.Равных - 1 21:05:46 script_Statistics_candles_V2 USDJPY,H1: У баров с временем открытия 23:0,среднее расстояние между ценами Open-Close - 4 пунктов.Между High-Low - 8.75 пунктов. 21:05:46 script_Statistics_candles_V2 USDJPY,H1: -------------- Скрипт закончил работу -------------------- 21:05:46 script_Statistics_candles_V2 USDJPY,H1: uninit reason 0 21:05:46 script_Statistics_candles_V2 USDJPY,H1: removed
Результаты работы заносим в таблицу. Договоримся, что количество бычьих баров будем заносить в колонку "Б", медвежьих - в колонку "М", бары "никаких" свечей в таблицу заносить не будем.
Час открытия | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | ||||||||||||||||||||||||
Тип баров | М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
М |
Б |
11.20-11.26 |
3 | 1 | 2 | 1 | 2 | 2 | 2 | 2 | 4 | 0 | 2 | 2 | 2 | 1 | 3 | 1 | 2 | 2 | 3 | 0 | 2 | 2 | 1 | 3 | 3 | 1 | 2 | 2 | 2 | 1 | 2 | 2 | 3 | 0 | 1 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 1 | 3 | 1 | 2 | 1 |
11.21-11.27 |
4 | 1 | 2 | 1 | 1 | 3 | 2 | 2 | 3 | 1 | 2 | 2 | 3 | 0 | 3 | 1 | 2 | 2 | 2 | 1 | 3 | 1 | 1 | 3 | 4 | 0 | 2 | 2 | 2 | 1 | 3 | 1 | 4 | 0 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 4 | 0 | 3 | 1 | 2 | 1 |
11.22-11.28 |
5 | 1 | 2 | 1 | 2 | 3 | 2 | 3 | 4 | 1 | 3 | 2 | 3 | 1 | 3 | 2 | 3 | 2 | 3 | 1 | 3 | 2 | 1 | 4 | 4 | 1 | 3 | 2 | 2 | 2 | 4 | 1 | 4 | 1 | 2 | 3 | 3 | 2 | 2 | 3 | 2 | 5 | 0 | 3 | 2 | 3 | 1 | |
11.23-11.29 |
4 | 1 | 2 | 1 | 2 | 3 | 2 | 3 | 4 | 1 | 3 | 2 | 3 | 1 | 3 | 2 | 3 | 2 | 3 | 1 | 3 | 2 | 1 | 4 | 4 | 1 | 3 | 2 | 2 | 2 | 4 | 1 | 4 | 1 | 2 | 3 | 3 | 2 | 2 | 3 | 3 | 2 | 5 | 0 | 3 | 2 | 3 | 1 |
11.24-11.30 |
3 | 1 | 2 | 1 | 2 | 2 | 2 | 2 | 3 | 1 | 2 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 3 | 1 | 2 | 2 | 1 | 3 | 3 | 1 | 2 | 2 | 2 | 2 | 4 | 0 | 3 | 1 | 2 | 2 | 3 | 1 | 2 | 2 | 2 | 2 | 4 | 0 | 2 | 2 | 2 | 1 |
11.25-12.01 |
3 | 1 | 2 | 0 | 1 | 3 | 1 | 3 | 3 | 1 | 3 | 1 | 3 | 1 | 2 | 2 | 2 | 2 | 3 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 1 | 1 | 3 | 3 | 1 | 2 | 2 | 2 | 2 | 3 | 1 | 3 | 1 | 1 | 3 | 4 | 0 | 2 | 2 | 2 | 2 |
11.26-12.02 |
3 | 0 | 2 | 1 | 2 | 2 | 0 | 4 | 2 | 2 | 3 | 1 | 2 | 2 | 2 | 2 | 3 | 1 | 3 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 4 | 0 | 0 | 4 | 2 | 2 | 2 | 2 | 2 | 2 | 4 | 0 | 3 | 1 | 2 | 2 | 3 | 0 | 3 | 1 | 3 | 1 |
11.27-12.03 |
3 | 0 | 2 | 2 | 3 | 1 | 0 | 4 | 2 | 2 | 2 | 2 | 1 | 3 | 2 | 2 | 4 | 0 | 3 | 1 | 2 | 2 | 2 | 2 | 1 | 3 | 3 | 1 | 1 | 3 | 1 | 3 | 2 | 2 | 1 | 3 | 3 | 1 | 3 | 1 | 2 | 2 | 2 | 0 | 0 | 4 | 2 | 2 |
11.28-12.04 |
3 | 1 | 1 | 3 | 2 | 2 | 0 | 4 | 1 | 3 | 1 | 3 | 2 | 2 | 3 | 1 | 3 | 1 | 3 | 1 | 2 | 2 | 2 | 2 | 1 | 1 | 3 | 1 | 2 | 2 | 0 | 4 | 2 | 2 | 1 | 3 | 3 | 1 | 3 | 1 | 1 | 2 | 1 | 1 | 1 | 3 | 2 | 2 |
11.29-12.05 |
3 | 2 | 1 | 3 | 3 | 2 | 1 | 4 | 1 | 4 | 1 | 4 | 3 | 2 | 4 | 1 | 3 | 2 | 4 | 1 | 3 | 2 | 2 | 3 | 1 | 4 | 3 | 2 | 2 | 3 | 1 | 4 | 2 | 3 | 1 | 4 | 3 | 2 | 4 | 1 | 1 | 3 | 1 | 2 | 1 | 4 | 3 | 2 |
11.30-12.06 |
2 | 2 | 1 | 3 | 3 | 2 | 1 | 4 | 1 | 4 | 1 | 4 | 3 | 2 | 4 | 1 | 3 | 2 | 4 | 1 | 3 | 2 | 2 | 3 | 4 | 1 | 3 | 2 | 2 | 3 | 1 | 4 | 2 | 3 | 1 | 4 | 3 | 2 | 4 | 1 | 1 | 3 | 1 | 2 | 1 | 4 | 3 | 2 |
12.01-12.07 |
2 | 1 | 4 | 0 | 1 | 3 | 3 | 1 | 4 | 0 | 4 | 0 | 2 | 2 | 3 | 1 | 2 | 2 | 3 | 1 | 2 | 2 | 1 | 3 | 1 | 3 | 2 | 2 | 2 | 2 | 1 | 3 | 2 | 2 | 1 | 3 | 2 | 2 | 3 | 1 | 1 | 2 | 0 | 2 | 1 | 3 | 3 | 1 |
12.02-12.08 |
2 | 2 | 1 | 4 | 3 | 1 | 1 | 3 | 1 | 3 | 1 | 3 | 3 | 1 | 3 | 1 | 1 | 3 | 3 | 1 | 3 | 1 | 0 | 4 | 0 | 4 | 2 | 2 | 2 | 2 | 1 | 3 | 2 | 2 | 1 | 3 | 2 | 2 | 3 | 1 | 1 | 2 | 1 | 2 | 1 | 3 | 3 | 1 |
Таблица 1. Результаты работы эксперта
Ну что ж, давайте посмотрим на результаты. Ну во-первых оказалось - некоторые бары, в одно и то же время, имеют одинаковую направленность, что само по себе интересно. Обратите внимание на ячейки, подкрашенные разными цветами. Желтым цветом я подкрасил ячейки в которых бары были только медвежьи за последние 6 дней, розовым цветом закрашены ячейки, соответствующие только бычьим барам.
26 ноября мы видим, что за последние 6 дней бары с временем открытия 4, 9, и 16 часов всегда были медвежьи. Стоит предположить, что медведи сильны и сегодня, а возможно и завтра рынок будет медвежий.
27 ноября. Наш прогноз оправдался. По результатам работы скрипта видим, что за последние 6 дней в 6, 12, 16, 21 часов, свечи были только медвежьи, предполагаем, что рынок будет медвежий.
28 ноября. Наш прогноз оправдался. За последние 6 дней количество только медвежьих свечей резко уменьшилось, и только в 21 час они были полностью медвежьи. Стоит предположить, что медведи выдыхаются, и тренд будет меняться.
29,30 ноября, 1 и 2 января картина та же. Сидим в боковом тренде. Но что интересно, со 2-го числа начинают появляться только бычьи свечи, предполагаем смену тренда, в течении дня убеждаемся, что были правы.
Интересную картину будем наблюдать 5 и 6 декабря. Нет ни одного временного интервала, где были бы свечи одной направленности. Что-то должно произойти. Смотрим на терминал и с облегчением видим, что это были выходные.
7 декабря опять разнонаправленные свечи, опять ждем смену тренда.
8 декабря чисто бычьи свечи в 11 и 12 часов. На рисунке 1 тренд то вроде медвежий? Но заглянем в терминал и с удивлением видим, что примерно с 12 часов тренд начнет меняться на боковой, а с 9 декабря начнется бычий тренд.
Ну что ж. Как видим 100% верным данный метод быть не может, да и нет пока такого инструмента. Но может стать сильным подспорьем совместно с другими методами технического анализа в предсказании поведения рынка на ближайший день - два.
Заключение
При написании данной статьи я ставил перед собой три задачи:
- Во-первых, показать необходимость изучения языка MQL4, с помощью которого Ваши возможности по анализу торговли увеличиваются неимоверно, ну и дать в руки интересующимся инструмент, для самостоятельного анализа повторения свечей на разных временных отрезках и валютных парах.
- Во-вторых, проверить, а есть ли повторяющиеся свечи на разных отрезках в глубь истории и то что в течении нескольких дней некоторые свечи, с одинаковым временем открытия со 100% повторяемостью имеют одинаковое направление, было для меня открытие.
- Ну и в-третьих, посмотреть, может ли смена направления свечей служить одним из инструментов по предсказанию смены направления тренда.
Понятно, что в рамках одной статьи, я не мог очень глубоко анализировать поведение свечей на разных временных графиках, да собственно, и не собирался. Каждый сам способен исследовать те пары и те таймфреймы которые ему по душе. В прикрепленном файле сам скрипт.
Спасибо.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Хорошая статья! Автору спасибо.
Спасибо за труд, но как обычно, есть исследование фактическое, но нет мат-статистического. Ваша таблица будет постоянно изменяться с течением настоящего времени. Не так ли? Это для Вас не открытие?
Желтенькие клеточки будут превращаться в красненькие, а беленькие в желтенькие и красненькие, и наоборот, и по всякому. 100% после серии неудач плавно и незаметно превращаются в 50%, и наоборот. Нет в статье статистики в виде "$" прибыли. Так ..., обычные поиски каких-нибудь закономерностей, на которые в настоящем почему-то всегда поздно билет покупаем.