TRENd dETEcTOR (определитель тренда)

Костян555

Активный участник
В данной статье предлагаеться к применению так называемый «определитель тренда», написанный на 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; //- вычисляем Дельту
//=========================================================================
 

Костян555

Активный участник
На представленном далее графике хорошо видно, что при преобладании Down-тренда Delta у нас будет меньше нуля:
Безымянный.jpg
 
Последнее редактирование:

Костян555

Активный участник
При этом нужно учесть, что описываемая конструкция не столько увеличивает саму прибыль, сколько уменьшает число сделок против тренда (в основном убыточных), и потому увеличивает параметр
«прибыльность» (профит-фактор) эксперта зачастую не менее, чем до двух! А это означает, что вне периода оптимизации советника мы с гораздо большей вероятностью получим прибыль.Можно также вынести во внешние параметры советника величину Delta и оптимизировать её отдельно для длинных и для коротких сделок в пределах, например, от «-0.05» до «+0.05».Вот типичный пример работы советника с тренд-детектором. На графике обозначился UP-тренд и советник в основном работает только в BUY (синие стрелки – входы BUY, красные стрелки – входы SELL), а при развороте цены вниз (правая часть графика) советник встает в SELL .
Безымянный п.jpg
ПРОШУ КТО УМЕЕТ НАПИСАТЬ ИНДИКАТОР ПО ОПИСАНОЙ ИДЕИ!!!!
 

Kalev

Новичок форума
Идея плохая.
Из представленного Вами графика хорошо видно, что Дельта слишком запаздывает. Даже две МАшки при всей их медлительности справятся с поставленной задачей лучше.
 
Верх