В данной статье предлагаеться к применению так называемый «определитель тренда», написанный на MQL4 и предназначенный для работы в экспертах торговой платформы МТ4.
А идея вот в чем: Вызываем в советнике встроенные в МТ4 индикаторы BullsPower (сила быков ) и BearsPower (сила медведей) и сравниваем их между собой. Но просто так, на каждом баре сравнивать их – дело, скорее всего, бесперспективное. Программно это делать не совсем удобно и некорректно. Поэтому, вешаем на них индикатор Moving Average (Скользящую среднюю) в режиме iMAOnArray (см. рис. ниже)
и сравниваем именно показания Moving Average (MA) на нулевых барах BullsPower и BearsPower! Просто складываем эти значения, а сумму заявляем, как Delta. Далее всё просто. Если Delta > 0 – предполагаем
наличие UP-тренда. Если Delta < 0 - предполагаем Down-тренд!
Программно, в самом простейшем виде, это будет выглядеть так:
Во внешние параметры любого эксперта вставляем:
//------------------------------------------------------------
extern string ______TD_______ = «Параметры Тренд-детектора»;
extern int PeriodPower =13;
extern int Period_Bulls =15;
extern int Period_Bears =15;
//------------------------------------------------------------
Где:
PeriodPower - период индикаторов BullsPower и BearsPower;
Period_Bulls - период индикатора MA на BullsPower;
Period_Bears - период индикатора MA на BearsPower.
А вот и сам код тренд-детектора:
//==========================Определительтренда==========================
double Bears_array[30]; int cx=0; while (cx<30) // задаем массив значений
{Bears_array[cx]= iBearsPower(NULL, 0, PeriodPower,PRICE_CLOSE,cx); cx++; }
ArraySetAsSeries(Bears_array,true); //вешаем МА на iBearsPower
double MA_Bears =iMAOnArray(Bears_array,0,Period_Bears,1,MODE_SMMA,0);
double Bulls_array[30]; int lx=0; while (lx<30) //задаем массив значений
{Bulls_array[lx]= iBullsPower(NULL, 0, PeriodPower,PRICE_CLOSE,lx); lx++; }
ArraySetAsSeries(Bulls_array,true); //вешаем МА на iBullsPower
double MA_Bulls =iMAOnArray(Bulls_array,0,Period_Bulls,1,MODE_SMMA,0);
double Delta = MA_Bears + MA_Bulls; //- вычисляем Дельту
//=========================================================================
А идея вот в чем: Вызываем в советнике встроенные в МТ4 индикаторы BullsPower (сила быков ) и BearsPower (сила медведей) и сравниваем их между собой. Но просто так, на каждом баре сравнивать их – дело, скорее всего, бесперспективное. Программно это делать не совсем удобно и некорректно. Поэтому, вешаем на них индикатор Moving Average (Скользящую среднюю) в режиме iMAOnArray (см. рис. ниже)
и сравниваем именно показания Moving Average (MA) на нулевых барах BullsPower и BearsPower! Просто складываем эти значения, а сумму заявляем, как Delta. Далее всё просто. Если Delta > 0 – предполагаем
наличие UP-тренда. Если Delta < 0 - предполагаем Down-тренд!
Программно, в самом простейшем виде, это будет выглядеть так:
Во внешние параметры любого эксперта вставляем:
//------------------------------------------------------------
extern string ______TD_______ = «Параметры Тренд-детектора»;
extern int PeriodPower =13;
extern int Period_Bulls =15;
extern int Period_Bears =15;
//------------------------------------------------------------
Где:
PeriodPower - период индикаторов BullsPower и BearsPower;
Period_Bulls - период индикатора MA на BullsPower;
Period_Bears - период индикатора MA на BearsPower.
А вот и сам код тренд-детектора:
//==========================Определительтренда==========================
double Bears_array[30]; int cx=0; while (cx<30) // задаем массив значений
{Bears_array[cx]= iBearsPower(NULL, 0, PeriodPower,PRICE_CLOSE,cx); cx++; }
ArraySetAsSeries(Bears_array,true); //вешаем МА на iBearsPower
double MA_Bears =iMAOnArray(Bears_array,0,Period_Bears,1,MODE_SMMA,0);
double Bulls_array[30]; int lx=0; while (lx<30) //задаем массив значений
{Bulls_array[lx]= iBullsPower(NULL, 0, PeriodPower,PRICE_CLOSE,lx); lx++; }
ArraySetAsSeries(Bulls_array,true); //вешаем МА на iBullsPower
double MA_Bulls =iMAOnArray(Bulls_array,0,Period_Bulls,1,MODE_SMMA,0);
double Delta = MA_Bears + MA_Bulls; //- вычисляем Дельту
//=========================================================================