Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ



Добавление дивергенции+пересечение ноля+пересечение уровней+сигнальное окошко индикатору $lide$ MQL4

Здравствуйте*hi* ! Индикатор неплохо показывает скрытую дивергенцию, которая подтверждает продолжение тренда!
Сделайте пожалуйста дивергенцию только на острых пиках и впадинах и которые поближе к экстремумам уровней+стрелку после точки дивера на втором баре. а то много ложных сигналов
сделайте 3 типа сигнальных стрелок
1. это дивергенция по острым эксртемумным пикам и впадинам.(стрелка на втором баре)
2. это пересечение 0 (стрелка сразу)
3.Пересечении уровней
И чтобы они были вкл/выкл и не зависимы друг от друга. $lide$.mq4 (6 Kb)
  • 0
  • Просмотров: 3073
  • 1 июля 2018, 04:05
  • Shiva
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
советник
Следующая запись в группе  
индикатор максимальная волатильность
30 июня 2018
01 июля 2018

Брокер для ваших роботов, 15 лет на рынке

Комментарии (5)

+
0
пункты 2,3 могу посмотреть
avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 1 июля 2018, 11:40
+
0
Ну, хоть 2,3
avatar

  10  Shiva Автор Сообщений: 148

  • 1 июля 2018, 22:17
+
0
на завтра
avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 2 июля 2018, 17:51
+
0
Хорошо. Спасибо
avatar

  10  Shiva Автор Сообщений: 148

  • 2 июля 2018, 19:21
+
0
пересечение нуля сделал. теперь покажите на скринах каким образом отмечать пересечение уровней?



//--- зададим название индикатора
#property description "$lide$"
//--- установим строгий режим компиляции
#property strict
//--- укажем где отрисовываться индиктору
#property indicator_separate_window
//--- укажем количество буферов
#property indicator_buffers 1
//--- зададим цвет отрисовки индикатора
#property indicator_color1 clrGreenYellow
//--- установим толщину горизонтальных уровней
#property indicator_levelwidth 1
//--- установим стиль горизонтальных уровней
#property indicator_levelstyle STYLE_SOLID
//--- зададим входные параметры
extern string S_I                    = "Настройки индикатора";
extern int    count                  = 10;                    //период
extern int    flexibility            = 1;                     //гибкость
extern int    deviation_from_levels  = 1;                     //отклонение от уровней
extern string S_G                    = "Настройки графики";
extern int    counted_bars=100;                   //подсчет баров
//--- укажем массивы индикаторных буферов
double line_01[];
//+------------------------------------------------------------------+ 
//| Custom indicator initialization function                         | 
//+------------------------------------------------------------------+ 
int OnInit(void)
  {
   string short_name;
//--- укажем один дополнительный буфер для вычислений
   IndicatorBuffers(1);
   SetIndexBuffer(0,line_01);
//--- зададим уровни 
   IndicatorSetInteger(INDICATOR_LEVELS,2);
   IndicatorSetDouble(INDICATOR_LEVELVALUE,0,count/flexibility-deviation_from_levels);
   IndicatorSetDouble(INDICATOR_LEVELVALUE,1,-count/flexibility+deviation_from_levels);
//--- зададим всем уровням цвет Blue
   IndicatorSetInteger(INDICATOR_LEVELCOLOR,0,clrBlue);
//--- зададим отрисовку индикатора в виде линии 
   SetIndexStyle(0,DRAW_LINE,EMPTY,EMPTY,clrGreenYellow);
   SetIndexBuffer(0,line_01);
//--- зададим имя в окне DataWindow и метку
   short_name="$lide$("+string(count)+")";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
//--- проверим входные параметры
   if(count<2)
     {
      Alert("Неправильное значение переменной период = ",count);
      return(INIT_FAILED);
     }
//--- если нет ошибок,то инициализация успешно завершена
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutArrow(string name,int code,double p,datetime time,color clr)
  {
//--- создадим стрелку
   ObjectCreate(0,name,OBJ_ARROW,0,time,p);
//--- установим код стрелки
   ObjectSetInteger(0,name,OBJPROP_ARROWCODE,code);
//--- установим способ привязки
   ObjectSetInteger(0,name,OBJPROP_ANCHOR,ANCHOR_CENTER);
//--- установим цвет стрелки
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим размер стрелки
   ObjectSetInteger(0,name,OBJPROP_WIDTH,2);
  }
//+------------------------------------------------------------------+
//|                             $lide$                               |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   for(int shift=counted_bars;shift>=0;shift--)
     {
      double lowest=iLowest(_Symbol,_Period,MODE_LOW,count,shift)/flexibility;
      double highest= iHighest(_Symbol,_Period,MODE_HIGH,count,shift)/flexibility;
      line_01[shift]=lowest-highest;
     }

   if(line_01[1]>0 && line_01[2]<0) PutArrow("NULL_UP"+(string)time[0],233,low[1],time[0],Blue);
   if(line_01[1]<0 && line_01[2]>0) PutArrow("NULL_DN"+(string)time[0],234,high[1],time[0],Red);
   
   return(rates_total);
  }
//+------------------------------------------------------------------+
avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 3 июля 2018, 20:51

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий