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

Рейтинг 2081



РЕКОМЕНДУЮ



Нужна модификация стандартного индикатора MACD (МТ4) с раскраской баров

Добрый день.

Необходимо в стандартном индикаторе MACD (МТ4) иметь возможность раскрашивать бар гистограммы в 2 цвета. То есть именно КАЖДЫЙ бар (столбик) необходимо раскрасить в 2 цвета в зависимости от установленного в настройках процентного соотношения. Например, 90% бара должно быть одного цвета, а другие 10% — другого цвета.

MACDmod.JPG (7 Kb)

что-то подобное реализовано в этом индикаторе Candles

Candles.zip (12 Kb)
  • +1
  • Просмотров: 3088
  • 2 июля 2016, 17:15
  • vasdco
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
Один бар в разные цвета не берусь красить.
avatar

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

  • 2 июля 2016, 17:19
+
0
это тяжело?
avatar

  6  vasdco Автор Сообщений: 116 - Мастер

  • 2 июля 2016, 17:21
+
0
Я даже не представляю как это сделать, если вообще возможно.
avatar

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

  • 2 июля 2016, 17:22
+
0
у меня был в архиве какой-то индикатор (не связанный с MACD), так там бары отображались в 2 -х цветах. Сейчас попробую у себя найти. если надо могу скинуть или выложить чтобы посмотреть?..
avatar

  6  vasdco Автор Сообщений: 116 - Мастер

  • 2 июля 2016, 17:28
+
+1
Конечно посмотрю.
avatar

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

  • 2 июля 2016, 17:29
+
0
нашел индикатор, называется Candles — в гистограмме рисует бары разного цвета. Приложил к файлам в заказе.
avatar

  6  vasdco Автор Сообщений: 116 - Мастер

  • 2 июля 2016, 17:41
+
+1
после выходных посмотрю
avatar

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

  • 2 июля 2016, 17:45
+
0
Ок. Спасибо. *good* 
avatar

  6  vasdco Автор Сообщений: 116 - Мастер

  • 2 июля 2016, 17:48
+
+1
Готово:




//+------------------------------------------------------------------+
//|                                                  Custom MACD.mq4 |
//|                   Copyright 2005-2014, MetaQuotes Software Corp. |
//|                                              http://www.mql4.com |
//+------------------------------------------------------------------+
#property copyright   "2005-2014, MetaQuotes Software Corp."
#property link        "http://www.mql4.com"
#property description "Moving Averages Convergence/Divergence"
#property strict

#include <MovingAverages.mqh>

//--- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Silver
#property  indicator_color3  Blue
#property  indicator_color2  Red
#property  indicator_width1  2
#property  indicator_width3  2
//--- indicator parameters
input int InpFastEMA=12;   // Fast EMA Period
input int InpSlowEMA=26;   // Slow EMA Period
input int InpSignalSMA=9;  // Signal SMA Period

input int Procent = 80;
//--- indicator buffers
double    ExtMacdBuffer[];
double    ExtSignalBuffer[];
double    ExtMacdBlueBuffer[];
//--- right input parameters flag
bool      ExtParameters=false;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit(void)
  {
   IndicatorDigits(Digits+1);
//--- drawing settings
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexStyle(2,DRAW_HISTOGRAM);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexDrawBegin(1,InpSignalSMA);
//--- indicator buffers mapping
   SetIndexBuffer(0,ExtMacdBuffer);
   SetIndexBuffer(1,ExtSignalBuffer);
   SetIndexBuffer(2,ExtMacdBlueBuffer);
//--- name for DataWindow and indicator subwindow label
   IndicatorShortName("MACD("+IntegerToString(InpFastEMA)+","+IntegerToString(InpSlowEMA)+","+IntegerToString(InpSignalSMA)+")");
   SetIndexLabel(0,"MACD");
   SetIndexLabel(1,"Signal");
//--- check for input parameters
   if(InpFastEMA<=1 || InpSlowEMA<=1 || InpSignalSMA<=1 || InpFastEMA>=InpSlowEMA)
     {
      Print("Wrong input parameters");
      ExtParameters=false;
      return(INIT_FAILED);
     }
   else
      ExtParameters=true;
//--- initialization done
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
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[])
  {
   int i,limit;
//---
   if(rates_total<=InpSignalSMA || !ExtParameters)
      return(0);
//--- last counted bar will be recounted
   limit=rates_total-prev_calculated;
   if(prev_calculated>0)
      limit++;
//--- macd counted in the 1-st buffer
   for(i=0; i<limit; i++)
     {
      ExtMacdBuffer[i]=iMA(NULL,0,InpFastEMA,0,MODE_EMA,PRICE_CLOSE,i)-
                       iMA(NULL,0,InpSlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
      ExtMacdBlueBuffer[i]=ExtMacdBuffer[i]*Procent*0.01;
     }
//--- signal line counted in the 2-nd buffer
   SimpleMAOnBuffer(rates_total,prev_calculated,0,InpSignalSMA,ExtMacdBuffer,ExtSignalBuffer);
//--- done
   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

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

  • 2 июля 2016, 18:21
+
0
ВАУ! Вы ЛУЧШИЙ! СПАСИБО! *good*  *good*  *good* 
Теперь мне надо скопировать код в текстовый блокнот и сохранить с расширением mq4 или ex4?
avatar

  6  vasdco Автор Сообщений: 116 - Мастер

  • 2 июля 2016, 18:34
+
0
avatar

  6  vasdco Автор Сообщений: 116 - Мастер

  • 2 июля 2016, 18:25
+
+1
avatar

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

  • 2 июля 2016, 18:38
+
0
СПАСИБО ОГРОМНОЕ!!!
avatar

  6  vasdco Автор Сообщений: 116 - Мастер

  • 2 июля 2016, 18:53

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