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

Рейтинг 2146



РЕКОМЕНДУЮ



Стрелка+алерт+уровни к индикатору OBV для МТ4

Приветствую! Возможно к этому индюку прикрутить уровни и когда три раза подряд он «ныряет» выше уровня 90(скрин 1)или 10(скрин 2)появлялась стрелка и окно с оповещением по-паре и алертом? Стрелка уже формируется на третьем нырке. Если три нырка не подряд, то нет сигнала (скрин 2).*help* 1-aya situatsiya!.JPG (140 Kb)2-aya situatsiya!.JPG (130 Kb)3-ya situatsiya.JPG (114 Kb)OBV bez tikov.mq4 (3 Kb)





  • 0
  • Просмотров: 8697
  • 18 декабря 2016, 19:00
  • Shiva
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
Завтра буду смотреть.
avatar

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

  • 18 декабря 2016, 20:17
+
0
Индикатор перерисовывается многократно поэтому нырков может быть несколько а линия только вверх или вниз. Посмотрите что получилось: www.opentraders.ru/downloads/1435/




//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#property link "http://forexbig.ru"
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//+------------------------------------------------------------------+
//|                                            On Balance Volume.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue

//---- input parameters
extern int ExtOBVAppliedPrice=0;
extern int UP=13400000;
extern int DN=9100000;
//---- buffers
double ExtOBVBuffer[];
double up=0,dn=0;
bool b=true,s=true;
datetime t=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string sShortName;
//---- indicator buffer mapping
   SetIndexBuffer(0,ExtOBVBuffer);
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
//---- sets default precision format for indicators visualization
   IndicatorDigits(0);
//---- name for DataWindow and indicator subwindow label
   sShortName="777";
   IndicatorShortName(sShortName);
   SetIndexLabel(0,sShortName);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutArrow(string name,double price,int arrow_code,color clr)
  {
   ObjectDelete(name);
//--- создадим стрелку
   ObjectCreate(0,name,OBJ_ARROW,0,Time[0],price);
//--- установим код стрелки
   ObjectSetInteger(0,name,OBJPROP_ARROWCODE,arrow_code);
//--- установим цвет стрелки
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим размер стрелки
   ObjectSetInteger(0,name,OBJPROP_WIDTH,2);
  }
//+------------------------------------------------------------------+
//| On Balance Volume                                                |
//+------------------------------------------------------------------+
int start()
  {
   int    i,nLimit,nCountedBars;
//---- bars count that does not changed after last indicator launch.
   nCountedBars=IndicatorCounted();
//---- last counted bar will be recounted
   if(nCountedBars>0) nCountedBars--;
   nLimit=Bars-nCountedBars-1;
//---- 
   for(i=nLimit; i>=0; i--)
     {
      if(i==Bars-1)
         ExtOBVBuffer[i]=Volume[i];
      else
        {
         double dCurrentPrice=GetAppliedPrice(ExtOBVAppliedPrice,i);
         double dPreviousPrice=GetAppliedPrice(ExtOBVAppliedPrice,i+1);
         if(dCurrentPrice==dPreviousPrice)
            ExtOBVBuffer[i]=ExtOBVBuffer[i+1];
         else
           {
            if(dCurrentPrice<dPreviousPrice)
               ExtOBVBuffer[i]=ExtOBVBuffer[i+1]-Bars;
            else
               ExtOBVBuffer[i]=ExtOBVBuffer[i+1]+Bars;
           }
        }
     }

   if(t!=Time[0])
     {
      if(ExtOBVBuffer[1]<UP && ExtOBVBuffer[2]>UP)
        {
         up++;
         if(up>2 && s)
           {
            Alert(Symbol()+" Sell!!!");
            PutArrow("SELL"+(string)Time[0],High[0],234,Red);
            s=false;
            b=true;
            dn=0;
           }
        }

      if(ExtOBVBuffer[1]>DN && ExtOBVBuffer[2]<DN)
        {
         dn++;
         if(dn>2 && b)
           {
            Alert(Symbol()+" Buy!!!");
            PutArrow("Buy"+(string)Time[0],Low[0],233,Blue);
            b=false;
            s=true;
            up=0;
           }
        }
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double GetAppliedPrice(int nAppliedPrice,int nIndex)
  {
   double dPrice;
//----
   switch(nAppliedPrice)
     {
      case 0:  dPrice=Close[nIndex];                                  break;
      case 1:  dPrice=Open[nIndex];                                   break;
      case 2:  dPrice=High[nIndex];                                   break;
      case 3:  dPrice=Low[nIndex];                                    break;
      case 4:  dPrice=(High[nIndex]+Low[nIndex])/2.0;                 break;
      case 5:  dPrice=(High[nIndex]+Low[nIndex]+Close[nIndex])/3.0;   break;
      case 6:  dPrice=(High[nIndex]+Low[nIndex]+Close[nIndex])/4.0; break;
      default: dPrice=0.0;
     }
//----
   return(dPrice);
  }
//+----------------------------------------------------------


Редактирован: 24 декабря 2016, 07:28
avatar

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

  • 19 декабря 2016, 20:37
+
0
Спасибо*rabota* 
avatar

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

  • 22 декабря 2016, 14:21

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