Напишу индикатор бесплатно - страница 106

 
Iurii Tokman:

вот это -  Как получать push-уведомления на MetaQuotes ID
о чем то говорит ?

Извините  

Работает,  пришлось комп пере стартовать и сигнал поймать сейчас все работает  Сигнал приходит спасибо вам большое 

 
Iurii Tokman:

пжлст.

работает правильно ? я не проверял

Сигнал приходит все чётко только вот ещё одна проблемка , не показывает точно какие пары  И в какую сторону вверх или вниз Когда дает сигнал стоит только (clock-alarm3.wav)

 Сможете ли вы подкорректировать 

 Ещё раз огромное спасибо за ваш труд 

 
Andrej2478:

Сигнал приходит все чётко только вот ещё одна проблемка , не показывает точно какие пары  И в какую сторону вверх или вниз Когда дает сигнал стоит только (clock-alarm3.wav)

 Сможете ли вы подкорректировать 

для этих условий его нужно переписать

 
 Всем привет! Уважаемые программисты, напишите пожалуйста индикатор, который будет давать сигнал и показывать стрелку при определённых условиях. Условия на покупку: индикатор АО в плюсе, появляется fractals up, индикатор АС в минусе, как только все условия соблюдены появляется стрелочка и сигнал. Индикатор фрактал на 7 баров. На продажу всё зеркально. Заранее благодарен!!! 
 
Уважаемые господа, товарищи программисты, помогите! Пожалуйста, исправьте отрисовку индикатора ORB Range Indicator, чтобы текущий рендж не выходил за пределы своего образования в историю, как на скрине 1.

А рисовался отрезками, а не линиями, как на скрине 2.

И было бы замечательно, если бы параболик индикатора Ma_Parabolic_Alert _2 менял цвет при пересечении с МА и при этом появлялась стрелка.

Буду Очень Признательна!
Файлы:
 
Добрый день уважаемые кодеры. Просьба переделать индикатор FX Aliev под МТ5
 
sergionnik:
Добрый день уважаемые кодеры. Просьба переделать индикатор FX Aliev под МТ5

а где его взять ? в поиске не нашёл 

- что бы что то переделать - нужно иметь из чего переделывать.

---------------------------------------------------------------------------

вот это он ? https://www.mql5.com/ru/forum/219756#comment_6057329

Продолжаю тему простейших индикаторов
Продолжаю тему простейших индикаторов
  • 2017.11.14
  • www.mql5.com
Продолжаю тему простейших индикаторов , встречал ли кто нибудь на просторах интернета индикатор нумерации свечей к примеру 1-2-3 направленных в одн...
 
sergionnik:
Добрый день уважаемые кодеры. Просьба переделать индикатор FX Aliev под МТ5

Ваш так выглядит ???

AUDUSDH1

Файлы:
 
SanAlex:

Ваш так выглядит ???


Да, Именно так и выглядит.
 
sergionnik:
Да, Именно так и выглядит.

я самоучка - попытался . но мало знаний для этих дел.

- только до этого добился.

Снимок

//+------------------------------------------------------------------+
//|                                                 Fine volumes.mq5 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_separate_window
#property indicator_minimum 0
#property indicator_buffers 6
//--- plot Label1
#property indicator_label1  "Label1"
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  clrSkyBlue
#property indicator_style1  STYLE_SOLID
#property indicator_width1  2
//--- plot Label2
#property indicator_label1  "Label2"
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  clrMaroon
#property indicator_style1  STYLE_SOLID
#property indicator_width1  2
//--- plot Label3
#property indicator_label1  "Label3"
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  clrYellow
#property indicator_style1  STYLE_SOLID
#property indicator_width1  2
//--- plot Label4
#property indicator_label1  "Label4"
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  clrBlue
#property indicator_style1  STYLE_SOLID
#property indicator_width1  4
//--- plot Label5
#property indicator_label1  "Label5"
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  4

input int    BarsToCount = 400;
input string pus1 = "";
input string p_s = "Points settings";
input bool   use_points = true;
input int    distance_point = 80;
input color  color_point_u = Lime;
input color  color_point_d = Red;
input color  color_point_s = Yellow;
input int    size_point = 6;
input string pus2 = "";
input string s_w = "Way";
input bool   use_show_same_way = true;
input bool   use_show_daily_way = true;
input string pus3 = "";
input string al = "Alerts";
input bool   use_alerts = false;
input string up_alert = "Up";
input string down_alert = "Down";

double up[];
double down[];
double mid[];
double up2[];
double down2[];
double none[];

static int prevtime = 0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,up,INDICATOR_DATA);
//--- set as an empty value 0
   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0);
//--- indicator buffers mapping
   SetIndexBuffer(1,down,INDICATOR_DATA);
//--- set as an empty value 0
   PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0);
//--- indicator buffers mapping
   SetIndexBuffer(2,mid,INDICATOR_DATA);
//--- set as an empty value 0
   PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,0.0);
//--- indicator buffers mapping
   SetIndexBuffer(3,up2,INDICATOR_DATA);
//--- set as an empty value 0
   PlotIndexSetDouble(3,PLOT_EMPTY_VALUE,0.0);
//--- indicator buffers mapping
   SetIndexBuffer(4,down2,INDICATOR_DATA);
//--- set as an empty value 0
   PlotIndexSetDouble(4,PLOT_EMPTY_VALUE,0.0);
//--- indicator buffers mapping
   SetIndexBuffer(5,none,INDICATOR_DATA);
//--- set as an empty value 0
   PlotIndexSetDouble(5,PLOT_EMPTY_VALUE,0.0);
//---
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);
   string short_name="Fine volumes";
//---
   IndicatorSetString(INDICATOR_SHORTNAME,short_name);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Indicator deinitialization function                              |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   string name_de;
   for(int c=BarsToCount; c>=0; c--)
     {
      name_de="Vol_"+DoubleToString(c,0);
      if(ObjectFind(0,name_de)!=-1)
         ObjectDelete(0,name_de);
     }
//--- removes all objects of the specified type using prefix in object names
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
//---
   ArraySetAsSeries(open,true);
   ArraySetAsSeries(high,true);
   ArraySetAsSeries(low,true);
   ArraySetAsSeries(close,true);
//---
   up[0]=EMPTY_VALUE;
   down[0]=EMPTY_VALUE;
   mid[0]=EMPTY_VALUE;
   if(close[0]>open[0])
      up[0]=volume[0];
   if(close[0]<open[0])
      down[0]=volume[0];
   if(close[0]==open[0])
      mid[0]=volume[0];
   if(use_points)
      Ob_cre(0,time,open,close);
   if(!use_points)
      Ob_del(0);
   if(use_show_daily_way)
      Ob_cre2();
   if(!use_show_daily_way)
      Ob_del2();
   if(time[0] == prevtime)
      return(0);
   prevtime = time[0];
   for(int c=BarsToCount; c>=1; c--)
     {
      if(use_points)
         Ob_cre(c,time,open,close);
      if(!use_points)
         Ob_del(c);
      up[c]=EMPTY_VALUE;
      down[c]=EMPTY_VALUE;
      mid[c]=EMPTY_VALUE;
      up2[c]=EMPTY_VALUE;
      down2[c]=EMPTY_VALUE;
      if(close[c]>open[c])
         up[c]=volume[c];
      if(close[c]<open[c])
         down[c]=volume[c];
      if(close[c]==open[c])
         mid[c]=volume[c];
      none[c]=volume[c]+volume[c]/6;
      if(use_show_same_way)
        {
         if(close[c]>open[c] && close[c+1]>open[c+1])
           {
            up2[c]=volume[c];
            up2[c+1]=volume[c+1];
            up[c]=EMPTY_VALUE;
            up[c+1]=EMPTY_VALUE;
           }
         if(close[c]<open[c] && close[c+1]<open[c+1])
           {
            down2[c]=volume[c];
            down2[c+1]=volume[c+1];
            down[c]=EMPTY_VALUE;
            down[c+1]=EMPTY_VALUE;
           }
        }
      if(use_alerts)
        {
         if(up2[1]!=EMPTY_VALUE && up2[4]==EMPTY_VALUE)
            Alert(up_alert);
         if(down2[1]!=EMPTY_VALUE && down2[4]==EMPTY_VALUE)
            Alert(down_alert);
        }
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Ob_cre(int num_of_bar,
            const datetime &time[],
            const double &open[],
            const double &close[])
  {
   string name="Vol_"+DoubleToString(num_of_bar,0);
   color col_po;
   if(close[num_of_bar]>open[num_of_bar])
      col_po=color_point_u;
   if(close[num_of_bar]<open[num_of_bar])
      col_po=color_point_d;
   if(close[num_of_bar]==open[num_of_bar])
      col_po=color_point_s;
   if(ObjectFind(0,name)==-1)
     {
      ObjectCreate(0,name,OBJ_TEXT,0,0,0);
     }
   ObjectSetInteger(0,name,OBJPROP_TIME,time[num_of_bar]);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Ob_cre2()
  {
   if(ObjectFind(0,"D_w")==-1)
     {
      ObjectCreate(0,"D_w",OBJ_LABEL,0,0,0);
      ObjectSetInteger(0,"D_w",OBJPROP_CORNER,1);
      ObjectSetInteger(0,"D_w",OBJPROP_XDISTANCE,20);
      ObjectSetInteger(0,"D_w",OBJPROP_YDISTANCE,20);
     }
   if(ObjectFind(0,"D_w_v")==-1)
     {
      ObjectCreate(0,"D_w_v",OBJ_LABEL,0,0,0);
      ObjectSetInteger(0,"D_w_v",OBJPROP_CORNER,1);
      ObjectSetInteger(0,"D_w_v",OBJPROP_XDISTANCE,20);
      ObjectSetInteger(0,"D_w_v",OBJPROP_YDISTANCE,45);
     }
   color vol_col;
   if(iClose(Symbol(),PERIOD_D1,0)>iOpen(Symbol(),PERIOD_D1,0))
      vol_col=Lime;
   if(iClose(Symbol(),PERIOD_D1,0)<iOpen(Symbol(),PERIOD_D1,0))
      vol_col=OrangeRed;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Ob_del(int num_of_bar)
  {
   string name="Vol_"+DoubleToString(num_of_bar,0);
   if(ObjectFind(0,name)!=-1)
     {
      ObjectDelete(0,name);
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Ob_del2()
  {
   if(ObjectFind(0,"D_w")!=-1)
      ObjectDelete(0,"D_w");
   if(ObjectFind(0,"D_w_v")!=-1)
      ObjectDelete(0,"D_w_v");
  }
//+------------------------------------------------------------------+
Причина обращения: