Первый экран Элдера — советник, который дает прибыль в комплексе с системой

Рабочий экран Элдера, советник, по которому я сейчас рассмотрю, как известно, третий. Но в данной модификации автор советника будет использовать упрощенную модификацию стратегии, чтобы советник получился проще и эффективнее.

Здравствуйте мои дорогие трейдеры читатели моего блога и поклонники моего видео канала. Я очень хочу, чтобы сегодняшняя тема была для вас определенным факультативным взглядом на построения советника по системе три экрана Элдера.

Надеюсь, подход вызовет у вас определенный интерес. Хотя утверждать, что это единственно правильный метод, я, конечно не буду. Все, что связано с форексом, в большой степени субьективно, поэтому я оставляю за вами выбор пользоваться этим подходом, доработать его и потом использовать или использовать что-то совершенно иное.

Провожу бесплатное обучение на Форекс
Я ВебМастерМаксим провожу консультирование по заработку на Форекс! Вы с легкостью повторите мой путь! Интересует?
Форекс обучение

Самая модернизированная классика на моем блоге

Платформа: Metatrader 4

Валютные пары: EURUSD, GBPUSD, AUDUSD, USDCAD, NZDUSD, EURGBP, EURJPY предпочтительно USDCAD

Таймфрейм: M15

Время торговли: круглосуточно

Рекомендуемые счета: любые с NDD, то есть спред и уровни stoplimit поменьше.

Минимальный депозит для мин. риска: 500 единиц депозита

Замечание: следует избегать пар с затяжными флетами. Также настоятельно рекомендуется отключать советника на время выхода важных новостей по валюте, которую торгуете.

Итак, Три Экрана и советник. Система пришла к нам из 1985 года. Возможно, тогда рынки были не такими подвижными, хотя это выражение спорно. Сегодня стратегию очень известного финансиста с советским прошлым знают очень многие. Во многом благодаря книге, которая нашла довольно широкий круг читателей. Возможно, у кого-то эта книга была первой, кто-то позже пришел к ней. Однако простота и интересный принцип, оригинальность подарили системе и советникам на её базе большую популярность.

Описание системы

Классический советник 3 экрана Элдера работает просто. На теймфрейме W1 берет два последних бара индикатора MACD со стандартными настройками и сравнивает их. Если последний выше, тренд восходящий, ниже, нисходящий. Далее на таймфрейме D1 проверяется двухдневный Force Index. Если основной тренд восходящий то форс должен быть ниже нуля и развернуться. При нисходящем тренде форс выше нуля и разворачивается.

Знакомимся с классической стратегией мэтра более подробно — Элдера Три экрана

На третьем экране Элдера – H4 советник в направлении основного тренда совершает вход отложенными ордерами и скользит ими по максимумам или минимумам, чтобы войти в рынок. Затем скользящим стоплосом советник выходит из рынка. Однако экраны Элдера не так просты. Элдер сам ставит вопрос перед читателями его книги, как стоит планировать цели. И говорит, что этот вопрос лежит за пределами того, что обсуждается в рамках этого его труда.

Напоминаю как установить советника на МТ4, а сам Метатрейдер 4 устанавливается так.

Обратите внимание, что платные и бесплатные советники тестируются мной и отзывы будут выкладываться в ВИП группе, где я провожу бесплатное обучение.

Разница между таймфреймами почти всегда фактор 5 в дне H4*5= почти 24 часа, в неделе пять рабочих дней.

Идея советника состоит в том, что хороший тренд продолжиться может здорово надолго, а может и не очень надолго.

Далее привожу слова разработчика.

В модифицированных 3 экранах Элдера, советник по которым я привожу в качестве примера, как работает трейдерская мысль, мы перемещаемся на боле быстрые таймфреймы.

Первый экран Элдера — H1, второй — M15. Вместо MACD и Force Index две скользящие средние с периодом 14. Одна обычная строится на M15, другая мультитаймфреймовая, строится на M15, а данные берет с H1. Именно в таком виде мы получаем индикатор, которого можно скачать на этой странице. И такие же характеристики прописаны в советнике.

Робот экранов Элдера находит, когда H1 мувинг наклонен в какую-либо сторону, в том направлении и торгует. Дополнительное условие – мувинг на M15 должен пойти против основного тренда и нарисовать такой крючок, то есть развернуться в сторону основного тренда. В этот момент совершается вход. А индикатор выдает звуковой сигнал, и во вкладке Эксперты он также выводит оповещение о том, что есть возможность войти. Сигналы отключаются, если в настройках индикатора по экранам Элдера единицу поменять на ноль.

Выход по стоплоссу или тейкпрофиту, в соответствие со статистикой графика, которая получается с помощью наблюдения. Об этом в самом конце повествования.

Тем, кто упускает мысль, поможет — Книга Элдера Три экрана

Советник задуман, как мультивалютный, поэтому использует в коде магические числа, которые позволяют размещать советника на семь основных пар, под которые чаще всего создаются системы. EURUSD, GBPUSD, AUDUSD, USDCAD, NZDUSD, EURGBP, EURJPY

Основы программирования

Среди переменных робота по экранам Элдера ничего необычного. Три типа. Логические, реальные и целые. Значения стоплосса, тейпрофита и лота считываются с параметров советника в момент его установки на график.

bool ExtMapBufferH1[], ExtMapBufferM15[]; // задается два массива под две скользящие средние

int    TP, SL, b, b1, s, s1, mn =1004, no, slm=1, tpm=1, i; // переменные под приведенную к пятизнаку заготовку под тейкпрофит и стоплосс; счетчики под условия входа

// магическое число для пары USDCAD и вспомогательный тригер для работы с ним и два включателя стоплосса и тейкпрофита, счетчик цикла.

extern double Lots = 0.01;  // Lot

extern int TP_pip=20;       // TP in pips на четырех знаке

extern int SL_pip=25;       // SL in pips на четырех знаке

Данный код находится в начальной разработке, поэтому он очень простой для понимания. Получается больше знаков, но зато нет логических нагромождений, от которых голова идет кругом.

for(i=0; i==200; i++)

     {

             ExtMapBufferH1[i]=

((iHigh(NULL,PERIOD_H1,i)+iLow(NULL,PERIOD_H1,i))/2+(iHigh(NULL,PERIOD_H1,i+1)+iLow(NULL,PERIOD_H1,i+1))/2+(iHigh(NULL,PERIOD_H1,i+2)+iLow(NULL,PERIOD_H1,i+2))/2+(iHigh(NULL,PERIOD_H1,i+3)+iLow(NULL,PERIOD_H1,i+3))/2+(iHigh(NULL,PERIOD_H1,i+4)+iLow(NULL,PERIOD_H1,i+4))/2+(iHigh(NULL,PERIOD_H1,i+5)+iLow(NULL,PERIOD_H1,i+5))/2+(iHigh(NULL,PERIOD_H1,i+6)+iLow(NULL,PERIOD_H1,i+6))/2+(iHigh(NULL,PERIOD_H1,i+7)+iLow(NULL,PERIOD_H1,i+7))/2+(iHigh(NULL,PERIOD_H1,i+8)+iLow(NULL,PERIOD_H1,i+8))/2+(iHigh(NULL,PERIOD_H1,i+9)+iLow(NULL,PERIOD_H1,i+9))/2+(iHigh(NULL,PERIOD_H1,i+10)+iLow(NULL,PERIOD_H1,i+10))/2+(iHigh(NULL,PERIOD_H1,i+11)+iLow(NULL,PERIOD_H1,i+11))/2+(iHigh(NULL,PERIOD_H1,i+12)+iLow(NULL,PERIOD_H1,i+12))/2+(iHigh(NULL,PERIOD_H1,i+13)+iLow(NULL,PERIOD_H1,i+13))/2)/14;

                ExtMapBufferM15[i]=

((High[i]+Low[i])/2+(High[i+1]+Low[i+1])/2+(High[i+2]+Low[i+2])/2+

(High[i+3]+Low[i+3])/2+(High[i+4]+Low[i+4])/2+(High[i+5]+Low[i+5])/2+

(High[i+6]+Low[i+6])/2+(High[i+7]+Low[i+7])/2+(High[i+8]+Low[i+8])/2+

(High[i+9]+Low[i+9])/2+(High[i+10]+Low[i+10])/2+(High[i+11]+Low[i+11])/2+

(High[i+12]+Low[i+12])/2+(High[i+13]+Low[i+13])/2)/14;

     }

Вот так определяется каждое значение точек скользящих средних в роботе экранов Элдера. Для H1 используются команды (IHigh+iLow)/2 – это позволяет найти значения с нужного таймфрейма. Вторая скользящая находится более простыми командами (High+Low)/2

Логическим ядром робота по экранам Элдера можно считать эти строки:

if (ExtMapBufferH1[0]<ExtMapBufferH1[1] && ExtMapBufferH1[0]<ExtMapBufferH1[190])

         {  

             b=0;

             s++;

         }

   

   if (ExtMapBufferM15[0]>ExtMapBufferM15[4] && ExtMapBufferM15[0]<ExtMapBufferM15[3]) 

         {

            b1=0;

            s1++;

         }  

      if (ExtMapBufferH1[0]>ExtMapBufferH1[1] && ExtMapBufferH1[0]>ExtMapBufferH1[190])

         {

            s=0;

            b++;

         }

   

if (ExtMapBufferM15[0]<ExtMapBufferM15[4] && ExtMapBufferM15[0]>ExtMapBufferM15[3])

         {

            s1=0;

            b1++;

         } 

Тут советник по экранам Элдера находит тренд на часовой скользящей средней, а на пятнадцатиминутной перегиб и налаживает счетчики. Эти счетчики нарастают при появлении сигнала или сбрасываются при обратных сигналах. Сбросы также происходят при открытии сделки и проверке снабжена ли открытая сделка магическим номером, созданным программистом специально для пары USDCAD.

Устали от все этой программерской лабуды? Переходите к бинарам — Стратегия для бинарных опционов Три Экрана Элдера

Как я уже говорил, для того, чтобы получить только по одной сделке на паре, нужно организовать проверочку. Выглядит она так:

   no=1;

        if(OrderSelect(0,SELECT_BY_POS)==true)

            {

               if(OrderMagicNumber()==mn) 

                  {     

                     no=1004;

                     b=0;

                     b1=0;

                     s=0;

                     s1=0;

                  }

            }

      if(OrderSelect(1,SELECT_BY_POS)==true)

            {

               if(OrderMagicNumber()==mn) 

                  {     

                     no=1004;

                     b=0;

                     b1=0;

                     s=0;

                     s1=0;

                  }

            }  

      if(OrderSelect(2,SELECT_BY_POS)==true)

            {

               if(OrderMagicNumber()==mn) 

                  {     

                     no=1004;

                     b=0;

                     b1=0;

                     s=0;

                     s1=0;

                  }

            }

      if(OrderSelect(3,SELECT_BY_POS)==true)

            {

               if(OrderMagicNumber()==mn) 

                  {     

                     no=1004;

                     b=0;

                     b1=0;

                     s=0;

                     s1=0;

                  }

            }

      if(OrderSelect(4,SELECT_BY_POS)==true)

            {

               if(OrderMagicNumber()==mn) 

                  {     

                     no=1004;

                     b=0;

                     b1=0;

                     s=0;

                     s1=0;

                  }

            }

      if(OrderSelect(5,SELECT_BY_POS)==true)

            {

               if(OrderMagicNumber()==mn)

                  {     

                     no=1004;

                     b=0;

                     b1=0;

                     s=0;

                     s1=0;

                  }

            }

      if(OrderSelect(6,SELECT_BY_POS)==true)

            {

               if(OrderMagicNumber()==mn)

                  {     

                     no=1004;

                     b=0;

                     b1=0;

                     s=0;

                     s1=0;

                  }

            } 

Я уже писал, что не перегружать начало создания кода обилием циклов не имеет смысла, потому что так легче следить за логикой. Строк больше, но внимание экономится!

Наконец, финал логического ядра робота по экранам Элдера помогает открывать сделки при набежавших счетчиках и отсутствие открытых ордеров таким же магическим числом, как у этой валютной пары. Тейкпрофиты и стоплоссы от введенных умножаются на 10 и потом приводятся в дробную десятичную форму.

SL=SL_pip*10;

      TP=TP_pip*10; 

            if (b>0 && b1>0 && no!=1004)

               {

                  b1=0;

                  b=0;

                  res1=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask, Digits),100,NormalizeDouble(Bid-SL*Point, Digits)*slm,NormalizeDouble(Ask+TP*Point, Digits)*tpm,»»,mn,clrNONE)==True;

                  int err=GetLastError();

                  Ala(err);

               }

            if (s>0 && s1>0 && no!=1004)

               {

                  s1=0;

                  s=0;

                  res1=OrderSend(Symbol(), OP_SELL, Lots, Bid, 5, NormalizeDouble(Ask+SL*Point, Digits)*slm, NormalizeDouble(Bid-TP*Point, Digits)*tpm, «», mn, 0, clrNONE)==True;

                  err=GetLastError();

                  Ala(err);

               }

Проверка ошибок открытия сделок роботом по экранам Элдера выглядит вот так

  return(0);      

      }

  int Ala(int erik)

    {switch (erik)

            {                 

               case 1:   return;

               case 2:   Alert(«Нет связи с торговым сервером «,Symbol());return;

               case 3:   Alert(«Error неправильные параметры «,Symbol());return;

               case 130: Alert(«Error близкие стопы   Ticket «,Symbol());return;

               case 134: Alert(«Недостаточно денег   «,Symbol());return;

               case 146: Alert(«Error Подсистема торговли занята «,Symbol());return;

               case 129: Alert(«Error Неправильная цена «,Symbol());return;

               case 131: Alert(«Error Неправильный объем «,Symbol());return;

               case 4200:Alert(«Error Объект уже существует «,Symbol());return;

               default:  return;// no error

            }}

Что мы получаем в результате или вся эта программерская чушь простым языком

В идеале вот такая как на иллюстрации конфигурация скользящих средних приводит к открытию сделки на понижение. Весь советник и индикатор настроен на поиск таких конфигураций для открытия по ним сделок. Однако остается большим вопросом, какой должна быть длина изучаемого промежутка на H1, чтобы получить прогнозируемый отрезок в будущем.

Не до конца понятна концепция MTF? Попробуйте это — MTF MACD divergence

Например, если мы нашли тренды на 200 свечей, то сколькими свечами будут продолжаться они в дальнейшем? Предварительно, такие прогнозные промежутки могут быть как короче первоначального отрезка, так и значительно длиннее.  Автор провел исследования на промежутке около трех лет, на паре USDCAD, выискивая  двести трендовых свечей на таймфрейме H1, и замерил, какие тренды затем можно наблюдать. В результате, в случае, когда тренд продолжался, он длился ещё:

92
1463
140
1555
159
833

…свечей.

Как видно, ожидать большие продолжения трендов можно с той же вероятностью, как и малые. При этом ожидая большой тренд, всегда есть вероятность упустить часть малого или всего его.

Вместо заключения, или в каком направлении следует совершенствовать этого советника, как это видит автор

Возьмем, к примеру, вот это выражение

if (ExtMapBufferH1[0]<ExtMapBufferH1[1] && ExtMapBufferH1[0]<ExtMapBufferH1[190])

В данном случае тренд признается нисходящим, если нулевая точка индикатора с H1 находится ниже первой и 190-ой. При этом в идеале индикатор должен нарисовать прямую наклонную линию. Но он может лечь и змейкой. Важно визуально наблюдать за ним. И в случае змейки отключить  торговлю только на этой паре, до так сказать выпрямления. Алгорим выбора трендовости в роботе по экранам Элдера может быть изменен.

Также алгоритм поиска крюка на зеленой M15 скользящей средней тоже можно дорабатывать. Сейчас он выбирается так:

if (ExtMapBufferM15[0]>ExtMapBufferM15[4] && ExtMapBufferM15[0]<ExtMapBufferM15[3]) ,

когда четвертая точка ниже нулевой и в это же время третья точка выше нулевой.

Кстати, одна из самых интересных модификаций индикаторов MTF — Индикатор Parabolic SAR MTF

И наконец, очень интересным является поиск целей и расстояния до остановки потерь. Приславутые стоплоссы и тейкпрофиты можно тоже подбирать. Дело в том, что проверить советника на тестере стратегий не возможно, можно поработать с индикатором. Просто, в Метатрейдер 4 советники во время тестирования не могут брать данные с другого таймфрейма, кроме того, на котором установлены. Поэтому оптимизировать советника не удастся. Но это можно сделать на тестере индикаторов. Индикатор, как раз будет брать данные с другого таймфрейма. И это один из секретов Метатрейдер 4.

В поиске целей может помочь таблица, которую я прилагаю к индикатору и советникам. Для стоплосов можно провести подобное исследование.

На этом я прощаюсь с вами. Надеюсь это было полезное занятие по алготрейдингу.

Понравилась статья?! Жми на кнопку!
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(10 голосов, в среднем: 5 из 5)
загрузка...
↑ Получай комментарии на E-MAIL