Сигнальный бар shift Рисующие индикаторы, с чем едят закрытый бар и текущий

Сигнальный бар shift Рисующие индикаторы, с чем едят закрытый бар и текущий

Системы скальпинга на основе скорости котировок! Подводные камни!
Терминологический словарь рынка Forex – Основные понятия и определения
Системы скальпинга на основе скорости котировок! Подводные камни!
Терминологический словарь рынка Forex – Основные понятия и определения

Описание

Разбираем примеры работы индикаторов рисующих и не рисующих. Отличие сигналов при программировании. Использование параметра shift

Предисловие

Данная статья была написана по просьбам наших друзей.

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

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

shift (0,1,2…..) Номер бара

Данный параметр представляет собой номер бара, с которого Ваши индикаторы будут брать сигнал. При заказе эксперта Вы должны указать такие параметры определения сигнала: Открывать сделку сразу же после сигнала, или же ждать , пока сигнал сформируется на закрытом баре и открывать сделку только открытии следующего бараНекоторые индикаторы, в силу своих алгоритмов, имеют четкое определение: на каком баре подается сигнал. Если говорить о четкости и правильном исполнении приказа: то сделку необходимо обрабатывать только на закрытом баре  т.е. параметр shift=1, Если же необходимо открывать сделку сразу же по наступлению сигнала на текущем баре и индикатор это позволяет необходимо ставить shift=0.

 

Советник

Советник написан с помощью нашего шаблона для написания советника. Все функции советника описаны на данной странице: Функции советника форекс

Скачать пакет можно по ссылке Пакет тестирования сигнального бара

 Индикатор 1. Индикатор Mooving Average

Стандартные индикатор терминала МТ4 имеющий в настройках период усреднения, цены усреднения а также тип усреднения. 

Стратегия торговли: Пересечение средних. Пересечение медленной МА и быстрой МА

Код стратегии:

      double ExampleMA=iMA(Symbol(),0,20,0,MODE_SMA,PRICE_CLOSE,shift); // Пример Вызова МА
      double ExampleMA2=iMA(Symbol(),0,50,0,MODE_SMA,PRICE_CLOSE,shift); // Пример Вызова МА
      double ExampleMA23=iMA(Symbol(),0,20,0,MODE_SMA,PRICE_CLOSE,shift+1); // Пример Вызова МА
      double ExampleMA22=iMA(Symbol(),0,50,0,MODE_SMA,PRICE_CLOSE,shift+1); // Пример Вызова МА

      if(ExampleMA23<ExampleMA22 && ExampleMA>ExampleMA2)Sig=1;
      if(ExampleMA23>ExampleMA22 && ExampleMA<ExampleMA2)Sig=2;

Примеры работы при shift = 0 

Примеры работы при shift = 1

Пояснение: Данный индикатор, в принципе, не рисует, поэтому можно использовать при любом shift. 

Пример в видео: 

https://youtube.com/watch?v=E3EPbBWn8ik%3Fstart%3D288

2. Индикатор cross

Пользовательский индикатор по стратегии пересечения МА + какие то фишки. Рисует сильно с хитростью. Т.е. пересечение 1 бара рисует стрелку на 0 баре и постоянно ее перерисовывает. 

Стратегия торговли: Торговля по стрелкам

Код стратегии:

  int Sig=0;
   if(shift!=-1)
     {
      double UP=iCustom(Symbol(),0,”cross”,0,shift);
      double DN=iCustom(Symbol(),0,”cross”,1,shift);
     }
   if(shift==-1)
      for(int i=1;i<=100;i++)
        {
         UP=iCustom(Symbol(),0,”cross”,0,i);
         DN=iCustom(Symbol(),0,”cross”,1,i);
         if(UP!=EMPTY_VALUE || DN!=EMPTY_VALUE)break;

        }

   if(UP!=EMPTY_VALUE){Sig=1;}
   if(DN!=EMPTY_VALUE){Sig=2;}

Примеры работы при shift = 0 

Примеры работы при shift = 1

Примеры работы при shift = -1

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

Пример в видео: 

https://youtube.com/watch?v=E3EPbBWn8ik%3Fstart%3D464

3. Индикатор CurrencyPowerMeter

Пользовательский индикатор измеряющий силу валют. Данный индикатор работает по объектам поэтому shift не имеет значения. стратегия торговли по данному индикатору основывается на выстаскивании значения не с буфера индикатора, а с показания объекта на графике

Стратегия торговли: Торговля разнице между силами валют

Код стратегии:

   double EUR_HOUR[1];
   double GBP_HOUR[1];
   double AUD_HOUR[1];
   double NZD_HOUR[1];
   double USD_HOUR[1];
   double CAD_HOUR[1];
   double CHF_HOUR[1];
   double JPY_HOUR[1];

   double PervayaValuta;
   double VtorayaValuta;
   string note=” Authentication SETTINGS ==”;
   string username = “”;
   string password = “”;
   double trend;
   string DATATRend;

   trend=iCustom(Symbol(),0,”CurrencyPowerMeter”,0,0);

   EUR_HOUR[0]=StringToDouble(ObjectDescription(“CPMEUR_Str_h”));
   GBP_HOUR[0]=StringToDouble(ObjectDescription(“CPMGBP_Str_h”));
   AUD_HOUR[0]=StringToDouble(ObjectDescription(“CPMAUD_Str_h”));
   NZD_HOUR[0]=StringToDouble(ObjectDescription(“CPMNZD_Str_h”));
   USD_HOUR[0]=StringToDouble(ObjectDescription(“CPMUSD_Str_h”));
   CAD_HOUR[0]=StringToDouble(ObjectDescription(“CPMCAD_Str_h”));
   CHF_HOUR[0]=StringToDouble(ObjectDescription(“CPMCHF_Str_h”));
   JPY_HOUR[0]=StringToDouble(ObjectDescription(“CPMJPY_Str_h”));

   if(StringSubstr(Symbol(),0,3)==”USD”)PervayaValuta=USD_HOUR[0];
   if(StringSubstr(Symbol(),0,3)==”GBP”)PervayaValuta=GBP_HOUR[0];
   if(StringSubstr(Symbol(),0,3)==”EUR”)PervayaValuta=EUR_HOUR[0];
   if(StringSubstr(Symbol(),0,3)==”AUD”)PervayaValuta=AUD_HOUR[0];
   if(StringSubstr(Symbol(),0,3)==”NZD”)PervayaValuta=NZD_HOUR[0];
   if(StringSubstr(Symbol(),0,3)==”CAD”)PervayaValuta=CAD_HOUR[0];
   if(StringSubstr(Symbol(),0,3)==”CHF”)PervayaValuta=CHF_HOUR[0];
   if(StringSubstr(Symbol(),0,3)==”JPY”)PervayaValuta=JPY_HOUR[0];

   if(StringSubstr(Symbol(),3,3)==”USD”)VtorayaValuta=USD_HOUR[0];
   if(StringSubstr(Symbol(),3,3)==”GBP”)VtorayaValuta=GBP_HOUR[0];
   if(StringSubstr(Symbol(),3,3)==”EUR”)VtorayaValuta=EUR_HOUR[0];
   if(StringSubstr(Symbol(),3,3)==”AUD”)VtorayaValuta=AUD_HOUR[0];
   if(StringSubstr(Symbol(),3,3)==”NZD”)VtorayaValuta=NZD_HOUR[0];
   if(StringSubstr(Symbol(),3,3)==”CAD”)VtorayaValuta=CAD_HOUR[0];
   if(StringSubstr(Symbol(),3,3)==”CHF”)VtorayaValuta=CHF_HOUR[0];
   if(StringSubstr(Symbol(),3,3)==”JPY”)VtorayaValuta=JPY_HOUR[0];

   if(PervayaValuta-VtorayaValuta>0)return(1);
   if(PervayaValuta-VtorayaValuta<0)return(2);
   return(0);

Примеры работы

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

Пример в видео: 

https://youtube.com/watch?v=E3EPbBWn8ik%3Fstart%3D683

4. Индикатор Fiji Trend

Пользовательский индикатор работающий на MA и ATR, сигналы в виде стрелок, не рисующий индикатор, но с маленькой хитростью, индикатор берет данные с закрытых баров, но ставит стрелку на текущем 0 баре. это Иллюзия обмана. 

Стратегия торговли: торговля по стрелкам индикатора

Код стратегии:

   int Sig=0;

   double DNSignal=iCustom(Symbol(),0,”Fiji Trend”,3,shift); // Пример вызова пользовательского индикатора
   double UPSignal=iCustom(Symbol(),0,”Fiji Trend”,2,shift); // Пример вызова пользовательского индикатора
   double DNTrend=iCustom(Symbol(),0,”Fiji Trend”,1,shift); // Пример вызова пользовательского индикатора
   double UPTrend=iCustom(Symbol(),0,”Fiji Trend”,0,shift); // Пример вызова пользовательского индикатора


                                                            //Указываем Сигналы на открытие:
   if( UPSignal!=EMPTY_VALUE)Sig=1;
   if( DNSignal!=EMPTY_VALUE)Sig=2;

Примеры работы при shift = 0 

Примеры работы при shift = 1

Пояснение: Данный индикатор  не рисует. Но ставит сигналы с хитростью, которую я указал Выше. Один из немногих индикаторов, которые дает вполне хорошие сигналы

Пример в видео: 

https://youtube.com/watch?v=E3EPbBWn8ik%3Fstart%3D780

5. Индикатор Fisher

Пользовательский индикатор, работающий на Хай Лоу баров и вычисляющий сигнал на основе своих формул. Рисует как показали тесты. Перерисовывает 3-5 баров на закрытых барах. сделан в виде гистограммы

Стратегия торговли: торговля по гистограмме. Пересечение гистограммой 0 отметки

Код стратегии:

   int Sig=0;

   double DNSignal=iCustom(Symbol(),0,”Fiji Trend”,3,shift); // Пример вызова пользовательского индикатора

   double Fisher1=iCustom(Symbol(),0,”fisher”,0,shift);
   double Fisher2=iCustom(Symbol(),0,”fisher”,0,shift);


   if( Fisher1>0 && Fisher2>0 ){Sig=1; }
   if( Fisher1<0 && Fisher2<0 ){Sig=2;}

// 1 – бай  2 – селл
   return(Sig);

Примеры работы при shift = 0 

Примеры работы при shift = 1

Пояснение: Данный индикатор  рисует, поэтому брать с него сигналы я не рекомендую

Пример в видео: 

https://youtube.com/watch?v=E3EPbBWn8ik%3Fstart%3D887

6. Индикатор HMA color

Пользовательский индикатор, работающий на MA и вычисляющий сигнал на основе своих формул.

Стратегия торговли: торговля по изменению цвета

Код стратегии:

  int Sig=0;

   double HMARED=iCustom(Symbol(),0,”HMA Color”,3,shift);
   double HMAGREEN=iCustom(Symbol(),0,”HMA Color”,1,shift);

   double HMARED2=iCustom(Symbol(),0,”HMA Color”,3,shift+1);
   double HMAGREEN2=iCustom(Symbol(),0,”HMA Color”,1,shift+1);

//Указываем Сигналы на открытие:
   if(HMAGREEN!=EMPTY_VALUE && HMAGREEN2==EMPTY_VALUE)Sig=1;
   if(HMARED!=EMPTY_VALUE && HMARED2==EMPTY_VALUE)Sig=2; 

Примеры работы при shift = 0 

Примеры работы при shift = 1

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

Пример в видео: 

https://youtube.com/watch?v=E3EPbBWn8ik%3Fstart%3D1039

7. Индикатор MACD

Стандартный индикатор терминала МТ. 

Стратегия торговли: торговля по пересечнию сигнальной линии и гистограммы

Код стратегии:

   int Sig=0;

   double MACD_SIGNAL1=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,shift); // Пример Вызова МА
   double MACD_SIGNAL2=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,shift+1); // Пример Вызова МА

   double MACD_MAIN1=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_MAIN,shift); // Пример Вызова МА
   double MACD_MAIN2=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_MAIN,shift+1); // Пример Вызова МА

   if(MACD_SIGNAL2<MACD_MAIN2 && MACD_SIGNAL1>MACD_MAIN1)Sig=1;
   if(MACD_SIGNAL2>MACD_MAIN2 && MACD_SIGNAL1<MACD_MAIN1)Sig=2;

Примеры работы при shift = 0 

Примеры работы при shift = 1

Пояснение: Данный индикатор  не перерисовывает на 1 закрытом баре, поэтому можно свободно использовать shift=1

Пример в видео: 

https://youtube.com/watch?v=E3EPbBWn8ik%3Fstart%3D1195

8. Индикатор ZIGZAG

Стандартный индикатор терминала МТ. Строит вершины и впадины по хай лоу определенного участка.

Стратегия торговли: торговлю по образованию вершин и впадин. Не рекомендуется играть по индикатору позициями. Хорошая стратегия по лимитникам.

Код стратегии:

   int Sig=0;

   double PriceZZ1=GetExtremumZZPrice(Symbol(),0,1);
   double PriceZZ2=GetExtremumZZPrice(Symbol(),0,2);

   double priceUP,priceDN;

   if(PriceZZ2>PriceZZ1 ){priceUP=PriceZZ2;priceDN=PriceZZ1;Sig=2;}
   if(PriceZZ2<PriceZZ1 ){priceUP=PriceZZ1;priceDN=PriceZZ2;Sig=1;}

Примеры работы при shift = 0 

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

Пример в видео: 

https://youtube.com/watch?v=E3EPbBWn8ik%3Fstart%3D1316

9. Работа по барам

Работа по обычнм барам терминала МТ. 

Стратегия торговли: Если бар бычий открываем бай, если бар медвежий открываем селл. 

Код стратегии:

      int Sig=0;

   if(Open[shift]<Close[shift])Sig=1;
   if(Open[shift]>Close[shift])Sig=2;

Примеры работы при shift = 0 

Примеры работы при shift = 1

Пояснение: Очень хороший пример работы параметра shift показывающий как можно играть стратегий по данному параметру

Пример в видео: 

https://youtube.com/watch?v=E3EPbBWn8ik%3Fstart%3D1473

Выводы

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

Советник

Советник написан с помощью нашего шаблона для написания советника. Все функции советника описаны на данной странице: Функции советника форекс

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


    This website uses cookies to improve your experience. By using this website you agree to our Data Protection Policy.
    Read more