vikas
Алексей

 
Уровень 9

  Торгую в компаниях:


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

Рейтинг 2088



РЕКОМЕНДУЮ



Прошу доработать индикатор

Здравствуйте. Прошу доработать индикатор. Использую его на 5-ти знаке на М1. Индикатор считает тики по каждой свече.
С приходом новой свечки показания обнуляются. Показания индикатора сверху вниз:
колличество тиков вверх (a)
колличество тиков вниз (b)
сумма тиков вверх и вниз (a+b)
разность тиков вверх и вниз (a-b)
разность суммы и разности (a+b)-(a-b)

Просьба добавить шестой строкой деление разности тиков вверх и вниз на разность суммы и разности т.е. (a-b)/((a+b)-(a-b))
т.е. сверху вниз разделить показания четвёртой строчки на показания пятой. Код прилагаю:

//+------------------------------------------------------------------+
//|                                             shetchik_tick.mq4    |
//|                                        Copyright © 2012, FOX.RM  |
//|                                             fox.rm@mail.ru       |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, FOX.RM"
#property link      "http://www.niochem.net"

#property indicator_chart_window

bool New_Bar=false;

double old_price;
double count_plus=0,count_minus=0;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
 
  Dell();
  
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int start() {
  
  Dell();
  
  double price;
  string name_11;
  int i=0;
  int limit; 
  double delta;  
  
  int counted_bars=IndicatorCounted();   
  if(counted_bars<0) return(-1);
  if(counted_bars>0) counted_bars--;
  limit=Bars-counted_bars;
 
  if(limit>0) limit=0;
  
  for(i=limit; i>=0; i--) 
  {
     
    if(old_price==0) old_price=Close[i];
   
    price = Close[i];
    delta = price - old_price;
     
     //-- считаем "верхние" тики 
    if(delta>=0) {
      count_plus++;
               }
      
     //-- считаем "нижние" тики
    if(delta<0) {
      count_minus++;
        }
        
        //---- 
    old_price=price;
 
    double a=(count_minus+count_plus);
    double b=(count_plus-count_minus);
    double d=(a-MathAbs(b));
    
 //-- вешаем счетчик на график
    name_11 = "shetchik_tick";
    SetText1(name_11+"sell",DoubleToStr(count_minus,1),Blue,12);
    SetText2(name_11+"bay",DoubleToStr(count_plus,1),Red,12);   
    SetText3(name_11+"col_bar",DoubleToStr(a,1),Green,12); 
    SetText4(name_11+"dif_bar",DoubleToStr(b,1),Yellow,12);
    SetText5(name_11+"diff_bar",DoubleToStr(d,1),Brown,12);
   }
    if( NewBar()) {count_plus=0;count_minus=0;}
  return(0); 
}
//---- 
void Dell (string name_n = "shetchik_tick")
  {
   string vName;
   for(int i=ObjectsTotal()-1; i>=0;i--)
   {
     vName = ObjectName(i);
     if (StringFind(vName,name_n) !=-1) ObjectDelete(vName);
    }  
  } 
void SetText2(string name,string text, color c, int size) //-- функция для определения свойств метки и ее координат
 {
  ObjectCreate(name,OBJ_LABEL,0,0,0,0,0);     
  ObjectSet(name, OBJPROP_XDISTANCE, 1100);
  ObjectSet(name, OBJPROP_YDISTANCE, 35);    
  ObjectSetText(name,text,15,"Arial Black",c);
 }
void SetText1(string name,string text, color c, int size)
 {
  ObjectCreate(name,OBJ_LABEL,0,0,0,0,0);     
  ObjectSet(name, OBJPROP_XDISTANCE, 1100);
  ObjectSet(name, OBJPROP_YDISTANCE, 60);    
  ObjectSetText(name,text,15,"Arial Black",c);
 }
void SetText3(string name,string text, color c, int size)
 {
  ObjectCreate(name,OBJ_LABEL,0,0,0,0,0);     
  ObjectSet(name, OBJPROP_XDISTANCE, 1100);
  ObjectSet(name, OBJPROP_YDISTANCE, 85);    
  ObjectSetText(name,text,15,"Arial Black",c);
 }
 void SetText4(string name,string text, color c, int size)
 {
  ObjectCreate(name,OBJ_LABEL,0,0,0,0,0);     
  ObjectSet(name, OBJPROP_XDISTANCE, 1100);
  ObjectSet(name, OBJPROP_YDISTANCE, 110);    
  ObjectSetText(name,text,15,"Arial Black",c);
 }
  void SetText5(string name,string text, color c, int size)
 {
  ObjectCreate(name,OBJ_LABEL,0,0,0,0,0);     
  ObjectSet(name, OBJPROP_XDISTANCE, 1100);
  ObjectSet(name, OBJPROP_YDISTANCE, 135);    
  ObjectSetText(name,text,15,"Arial Black",c);
 }
  void SetText6(string name,string text, color c, int size)
 {
  ObjectCreate(name,OBJ_LABEL,0,0,0,0,0);     
  ObjectSet(name, OBJPROP_XDISTANCE, 1100);
  ObjectSet(name, OBJPROP_YDISTANCE, 160);    
  ObjectSetText(name,text,15,"Arial Black",c);
 }
 //----
  void Fun_New_Bar()                              // Ф-ия обнаружения .. 
  {                                             // .. нового бара 
   static datetime New_Time=0;                  // Время текущего бара 
   New_Bar=false;                               // Нового бара нет 
   if(New_Time!=Time[0])                        // Сравниваем время 
     { 
      New_Time=Time[0];                         // Теперь время такое 
      New_Bar=true;                             // Поймался новый бар 
     } 
    
  }  
//+------------------------------------------------------------------+
bool NewBar()
  {
   static datetime lastbar = 0;
   datetime curbar = Time[0];
   if(lastbar!=curbar)
   {
      lastbar=curbar;
      return (true);
   }
   else
   {
    return(false);
   }
  }
  • 0
  • Просмотров: 1796
  • 28 февраля 2016, 21:31
  • vikas
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Доработка советника 2Sides_v5 - с расширением mq4
Следующая запись в группе  
Исправить ошибки в индикаторе
28 февраля 2016
28 февраля 2016

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

+
0
avatar

  34  AM2 Сообщений: 15882 - Андрей

  • 28 февраля 2016, 22:03
+
0
Да всё работает. Большое спасибо.
avatar

  9  vikas Автор Сообщений: 113 - Алексей

  • 29 февраля 2016, 06:46

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