← К каталогу
Исходный код · ID 1106

mano mm.mq5

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Индикатор для MetaTrader 4, отображающий уровни математики Мерри (Murrey Math) на графике цены. На основе расчёта диапазона цены за заданный период вычисляет 13 горизонтальных уровней от -2/8 до +2/8 и рисует их цветными линиями с подписями.

Поддерживает визуализацию дополнительных промежуточных линий (babylines) и линий 50% между основными уровнями. При достижении цены определённых уровней возможно срабатывание уведомлений: всплывающие сообщения, звуковые сигналы и email-оповещения.

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

Настройки программы

НастройкаОписание
P Множитель периода — Множитель периода, используемый при вычислении интервала расчёта уровней.
MMPeriod Период расчёта MM — Базовый период в минутах для расчёта ценовых уровней математики Мерри.
StepBack Шаг назад — Сдвиг в барах назад для выбора диапазона расчёта ценовых уровней.
ShowDays Дней отображения — Количество дней, на которые рисуются горизонтальные линии уровней.
babylines Детализированные линии — Включает или отключает отображение дополнительных промежуточных линий между основными уровнями.
babyLinesStyle Стиль детализированных линий — Стиль отрисовки дополнительных промежуточных линий между основными уровнями.
fiftyPercentLine Линии 50% — Включает или отключает отображение линий 50% между основными ценовыми уровнями.
fiftyPercentLineStyle Стиль линий 50% — Стиль отрисовки линий 50% между ценовыми уровнями.
alertsOn Уведомления включены — Включает или отключает проверку касания ценовых уровней и отправку уведомлений.
alertsTolerance Допуск касания — Допустимое отклонление цены в пунктах для распознавания касания уровня.
touchChanell Канал касания — Включает или отключает расширенный режим проверки касания с учётом канала.
alertsOnCurrent Проверка на текущем баре — Определяет, проверять ли касание на текущем баре или на предыдущем.
alertsMessage Текстовые уведомления — Включает или отключает всплывающие текстовые сообщения при касании уровня.
alertsSound Звуковые уведомления — Включает или отключает звуковой сигнал при касании ценового уровня.
alertsEmail Email-уведомления — Включает или отключает отправку email-уведомлений при касании ценового уровня.
alertsShowTouched Отображение касаний — Включает или отключает отрисовку свечей-маркеров в местах касания ценовых уровней.
barsToShowCandles Баров для отображения свечей — Количество баров, в которых проверяется и отрисовываются маркеры касания.
BarUpColor Цвет свечи вверх — Цвет направления свечи вверх при отрисовке маркеров касания.
BarDownColor Цвет свечи вниз — Цвет направления свечи вниз при отрисовке маркеров касания.
BabyBarUpColor Цвет детализированной свечи вверх — Цвет верхней части детализированных свечей-маркеров при касании уровня.
BabyBarDownColor Цвет детализированной свечи вниз — Цвет нижней части детализированных свечей-маркеров при касании уровня.
WickColor Цвет вика — Цвет тела (вика) свечей-маркеров касания.
CandleWidth Ширина свечи — Ширина отрисовываемых свечей-маркеров касания ценовых уровней.
[-2]/8 (mml_clr_m_2_8) Цвет уровня [-2]/8 — Цвет линии уровня [-2]/8.
[-1]/8 (mml_clr_m_1_8) Цвет уровня [-1]/8 — Цвет линии уровня [-1]/8.
[0]/8 (mml_clr_0_8) Цвет уровня [0]/8 — Цвет линии уровня [0]/8.
[1]/8 (mml_clr_1_8) Цвет уровня [1]/8 — Цвет линии уровня [1]/8.
[2]/8 (mml_clr_2_8) Цвет уровня [2]/8 — Цвет линии уровня [2]/8.
[3]/8 (mml_clr_3_8) Цвет уровня [3]/8 — Цвет линии уровня [3]/8.
[4]/8 (mml_clr_4_8) Цвет уровня [4]/8 — Цвет линии уровня [4]/8.
[5]/8 (mml_clr_5_8) Цвет уровня [5]/8 — Цвет линии уровня [5]/8.
[6]/8 (mml_clr_6_8) Цвет уровня [6]/8 — Цвет линии уровня [6]/8.
[7]/8 (mml_clr_7_8) Цвет уровня [7]/8 — Цвет линии уровня [7]/8.
[8]/8 (mml_clr_8_8) Цвет уровня [8]/8 — Цвет линии уровня [8]/8.
[+1]/8 (mml_clr_p_1_8) Цвет уровня [+1]/8 — Цвет линии уровня [+1]/8.
[+2]/8 (mml_clr_p_2_8) Цвет уровня [+2]/8 — Цвет линии уровня [+2]/8.
[-2]/8 (mml_wdth_m_2_8) Толщина уровня [-2]/8 — Толщина линии уровня [-2]/8.
[-1]/8 (mml_wdth_m_1_8) Толщина уровня [-1]/8 — Толщина линии уровня [-1]/8.
[0]/8 (mml_wdth_0_8) Толщина уровня [0]/8 — Толщина линии уровня [0]/8.
[1]/8 (mml_wdth_1_8) Толщина уровня [1]/8 — Толщина линии уровня [1]/8.
[2]/8 (mml_wdth_2_8) Толщина уровня [2]/8 — Толщина линии уровня [2]/8.
[3]/8 (mml_wdth_3_8) Толщина уровня [3]/8 — Толщина линии уровня [3]/8.
[4]/8 (mml_wdth_4_8) Толщина уровня [4]/8 — Толщина линии уровня [4]/8.
[5]/8 (mml_wdth_5_8) Толщина уровня [5]/8 — Толщина линии уровня [5]/8.
[6]/8 (mml_wdth_6_8) Толщина уровня [6]/8 — Толщина линии уровня [6]/8.
[7]/8 (mml_wdth_7_8) Толщина уровня [7]/8 — Толщина линии уровня [7]/8.
[8]/8 (mml_wdth_8_8) Толщина уровня [8]/8 — Толщина линии уровня [8]/8.
[+1]/8 (mml_wdth_p_1_8) Толщина уровня [+1]/8 — Толщина линии уровня [+1]/8.
[+2]/8 (mml_wdth_p_2_8) Толщина уровня [+2]/8 — Толщина линии уровня [+2]/8.
MarkColor Цвет маркера — Цвет стрелки-маркера, указывающей бар последнего расчёта.
MarkNumber Номер маркера — Код стрелки-маркера, отображаемой на графике.
Получить полный код

Поиск по коду файла

#property indicator_chart_window

extern int    P                      = 64;
extern int    MMPeriod               = 1440;
extern int    StepBack               = 0;
extern int    ShowDays               = 10;
extern bool   babylines              = true;
extern int    babyLinesStyle         = STYLE_SOLID;
extern bool   fiftyPercentLine       = true;
extern int    fiftyPercentLineStyle  = STYLE_DASH;
extern bool   alertsOn               = false;
extern double alertsTolerance        = 1.0;
extern bool   touchChanell           = false;
extern bool   alertsOnCurrent        = false;
extern bool   alertsMessage          = true;
extern bool   alertsSound            = false;
extern bool   alertsEmail            = false;
extern bool   alertsShowTouched      = true;
extern int    barsToShowCandles      = 1000;
extern color  BarUpColor             = Green; 
extern color  BarDownColor           = Red; 
extern color  BabyBarUpColor         = Lime; 
extern color  BabyBarDownColor       = Pink; 
extern color  WickColor              = Gray;
extern int    CandleWidth            = 3;

extern color  mml_clr_m_2_8 = White;       // [-2]/8
extern color  mml_clr_m_1_8 = White;       // [-1]/8
extern color  mml_clr_0_8   = Aqua;        //  [0]/8
extern color  mml_clr_1_8   = Yellow;      //  [1]/8
extern color  mml_clr_2_8   = Red;         //  [2]/8
extern color  mml_clr_3_8   = Green;       //  [3]/8
extern color  mml_clr_4_8   = Blue;        //  [4]/8
extern color  mml_clr_5_8   = Green;       //  [5]/8
extern color  mml_clr_6_8   = Red;         //  [6]/8
extern color  mml_clr_7_8   = Yellow;      //  [7]/8
extern color  mml_clr_8_8   = Aqua;        //  [8]/8
extern color  mml_clr_p_1_8 = White;       // [+1]/8
extern color  mml_clr_p_2_8 = White;       // [+2]/8

extern int    mml_wdth_m_2_8 = 2;     // [-2]/8
extern int    mml_wdth_m_1_8 = 1;     // [-1]/8
extern int    mml_wdth_0_8   = 1;     //  [0]/8
extern int    mml_wdth_1_8   = 1;     //  [1]/8
extern int    mml_wdth_2_8   = 1;     //  [2]/8
extern int    mml_wdth_3_8   = 1;     //  [3]/8
extern int    mml_wdth_4_8   = 1;     //  [4]/8
extern int    mml_wdth_5_8   = 1;     //  [5]/8
extern int    mml_wdth_6_8   = 1;     //  [6]/8
extern int    mml_wdth_7_8   = 1;     //  [7]/8
extern int    mml_wdth_8_8   = 1;     //  [8]/8
extern int    mml_wdth_p_1_8 = 1;     // [+1]/8
extern int    mml_wdth_p_2_8 = 2;     // [+2]/8

extern color  MarkColor   = Blue;
extern int    MarkNumber  = 217;

double  dmml = 0,
        dvtl = 0,
        sum  = 0,
        v1 = 0,
        v2 = 0,
        mn = 0,
        mx = 0,
        x1 = 0,
        x2 = 0,
        x3 = 0,
        x4 = 0,
        x5 = 0,
        x6 = 0,
        y1 = 0,
        y2 = 0,
        y3 = 0,
        y4 = 0,
        y5 = 0,
        y6 = 0,
        octave = 0,
        fractal = 0,
        range   = 0,
        finalH  = 0,
        finalL  = 0,
        mml[13];

string  ln_txt[13],        
        buff_str = "";

int     
        bn_v1   = 0,
        bn_v2   = 0,
        OctLinesCnt = 13,
        mml_thk = 8,
        mml_clr[13],
        mml_wdth[13],
        mml_shft = 0,
        nTime = 0,
        CurPeriod = 0,
        nDigits = 0,
        i = 0;
int    NewPeriod=0;
int    ShowPeriod;
double values[49];
int    totalCandles;
string windowID;

int init() {
      // код доступен только после оплаты
   }
int deinit()
{
   for(i=0;i<OctLinesCnt;i++) ObjectDelete("mml_txt"+i);
   for(i=0;i<50;i++)          ObjectDelete("MMline"+i);
                              ObjectDelete("LR_LatestCulcBar");
   deleteCandles();                              
   return(0);
}

int start() {
      // код доступен только после оплаты
   }

   if( (nTime != Time[0]) || (CurPeriod != Period()) )
   {
      ArrayInitialize(values,0.00);
      bn_v1 = iLowest( NULL,0,MODE_LOW, NewPeriod+StepBack,StepBack);
      bn_v2 = iHighest(NULL,0,MODE_HIGH,NewPeriod+StepBack,StepBack);
      v1    = Low[bn_v1];
      v2    = High[bn_v2];
      while (true)
      {
         if( v2 > 25000 )    { fractal=100000;    break; }
         if( v2 > 2500 )     { fractal=10000;     break; }
         if( v2 > 250 )      { fractal=1000;      break; }
         if( v2 > 25 )       { fractal=100;       break; }
         if( v2 > 6.25 )     { fractal=12.5;      break; }
         if( v2 > 3.125 )    { fractal=6.25;      break; }
         if( v2 > 1.5625 )   { fractal=3.125;     break; }
         if( v2 > 0.390625 ) { fractal=1.5625;    break; }
         if( v2 > 0 )        { fractal=0.1953125; break; }
                                                  break;
      }                                            

      range  = (v2-v1);
      sum    = MathFloor(MathLog(fractal/range)/MathLog(2));
      octave = fractal*(MathPow(0.5,sum));
      mn     = MathFloor(v1/octave)*octave;

      if( (mn+octave)>v2 )
            mx=mn+octave; 
      else  mx=mn+(2*octave);

            if( (v1>=(3*(mx-mn)/16+mn)) && (v2<=(9*(mx-mn)/16+mn)) )
                 x2=mn+(mx-mn)/2; 
            else x2=0;

            if( (v1>=(mn-(mx-mn)/8))&& (v2<=(5*(mx-mn)/8+mn)) && (x2==0) )
                 x1=mn+(mx-mn)/2; 
            else x1=0;

            if( (v1>=(mn+7*(mx-mn)/16))&& (v2<=(13*(mx-mn)/16+mn)) )
                 x4=mn+3*(mx-mn)/4; 
            else x4=0;

            if( (v1>=(mn+3*(mx-mn)/8))&& (v2<=(9*(mx-mn)/8+mn))&& (x4==0) )
                 x5=mx; 
            else x5=0;

            if( (v1>=(mn+(mx-mn)/8))&& (v2<=(7*(mx-mn)/8+mn))&& (x1==0) && (x2==0) && (x4==0) && (x5==0) )
                 x3=mn+3*(mx-mn)/4; 
            else x3=0;

            if( (x1+x2+x3+x4+x5) ==0 )
                 x6=mx; 
            else x6=0;

      finalH = x1+x2+x3+x4+x5+x6;

         if( x1>0 )
              y1=mn; 
         else y1=0;

         if( x2>0 )
              y2=mn+(mx-mn)/4; 
         else y2=0;

         if( x3>0 )
              y3=mn+(mx-mn)/4; 
         else y3=0;

         if( x4>0 )
              y4=mn+(mx-mn)/2; 
         else y4=0;

         if( x5>0 )
              y5=mn+(mx-mn)/2; 
         else y5=0;

         if( (finalH>0) && ((y1+y2+y3+y4+y5)==0) )
              y6=mn; 
         else y6=0;

      finalL = y1+y2+y3+y4+y5+y6;

      ArrayInitialize(mml,0); //  for( i=0; i<OctLinesCnt; i++) {  mml[i] = 0; }
      dmml   = (finalH-finalL)/8;
      mml[0] = (finalL-dmml*2); //-2/8
      for( i=1; i<OctLinesCnt; i++)
      {
        mml[i] = mml[i-1] + dmml;
      }

      for( i=0; i<OctLinesCnt; i++ )
      {
         CreateBaby(i,mml[i],STYLE_SOLID,mml_clr[i],mm

Показано первые 50% кода (символов: 12019)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
1 201,90₽ ≈ $14.69