Индикаторы форекс Обсуждение, поиск и тестирование индикаторов для MT4.

Ответить
12.03.2011, 19:27
Аватар для Костян555
Костян555 Костян555 вне форума Активный участник
Регистрация: 02.02.2011 / Сообщений: 81
Поблагодарили 46 раз(а) / Репутация: 47

По умолчанию Сделать Трендовый Индикатор

В данной статье я предлагаю к применению так называемый «определитель тренда», написанный на MQL4 и предназначенный для работы в экспертах торговой платформы МТ4.Для демонстрации возможностей «Trend Detector’а» возьмем обычный советник на скользящих средних (Moving Averages).
А идея вот в чем: Вызываем в советнике встроенные в МТ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; //- вычисляем Дельту
//================================================== =======================
На представленном далее графике хорошо видно, что при преобладании Down-тренда Delta у нас будетменьше нуля:
Вложение 32610

Бывает так, что после установки тренд-детектора в заведомо убыточный советник, этот советник дает при тестировании прибыль!
Нужно просто добавить в условие для покупки:
if(Delta >= 0 && ... ... ) // покупаем
А в условие для продажи:
if (Delta <= 0 && ... ...) //продаем
При этом нужно учесть, что описываемая конструкция не столько увеличивает саму прибыль, сколько уменьшает число сделок против тренда (в основном убыточных), и потому увеличивает параметр «прибыльность» (профит-фактор) эксперта зачастую не менее, чем до двух! А это означает, что вне периода оптимизации советника мы с гораздо большей вероятностью получим прибыль.Можно также вынести во внешние параметры советника величину Delta и оптимизировать её отдельно для длинных и для коротких сделок в пределах, например, от «-0.05» до «+0.05».
Вот типичный пример работы советника с тренд-детектором. На графике обозначился UP-тренд и советник в основном работает только в BUY (синие стрелки – входы BUY, красные стрелки – входы SELL), а при развороте цены вниз (правая часть графика) советник встает в SELL .
Вложение 32611
Возможно, кому-то покажется целесообразным написать индикатор по описанной идее и пользоваться этим индикатором при ручной торговле.

Последний раз редактировалось Костян555; 12.03.2011 в 19:29.
Kvant , vm9999 
15.03.2011, 05:14
Аватар для vm9999
vm9999 vm9999 вне форума Новичок форума
Регистрация: 01.06.2010 / Сообщений: 16
Поблагодарили 20 раз(а) / Репутация: 21
не открываются аттачи (
24.03.2011, 17:41
Аватар для Nikita
Nikita Nikita вне форума Активный участник
Регистрация: 01.12.2009 / Адрес: Урал / Сообщений: 151
Поблагодарили 44 раз(а) / Репутация: 44
и как это выглядит в готовом виде?
кто нибудь у кого вышло написать индикатор покажет / поделится результатом?
Ответить


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 22:45. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO