Ищу индикаторы. - страница 2

 
Stanislav Aksenov:

Тогда понятно, я то думал что вы молодая девушка, а вы старый дедушка оказывается, тогда понятно все. Просто смутила меня и аватарка с бабочкой, и картинка, понятно все тогда.

 На картинке моя внучка).

 
STARIJ:

   Делается очень просто

Исходный вариант чуть переделал для ясности последующего

Внес изменения (кажется в 12 строк): добавил буфер и еще чуть-чуть

Второй индикатор доработайте по аналогии и покажите результат

//+------------------------------------------------------------------+
//|                                                  Buls_Color.mq4  |
//+------------------------------------------------------------------+
#property description "Color Buls Power"
#property strict

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_width2  2
#property indicator_width3  2

#property indicator_color2 Lime
#property indicator_color3 Red

input int InpBulssPeriod=13;   // Bulss Period

double Buf_0[];              // Буфер для расчетов
double Buf_1[];              // Буфер гистограммы
double Buf_2[];              // Буфер гистограммы

//+------------------------------------------------------------------+
//| Инициализация                                                    |
//+------------------------------------------------------------------+
void OnInit(void)
{
   IndicatorDigits(Digits);
   SetIndexBuffer(0,Buf_0);
   SetIndexStyle (0,DRAW_NONE);   // Запрет отображения
   SetIndexLabel (0,NULL);        // Запрет вывода в окно данных

   SetIndexStyle (1,DRAW_HISTOGRAM);
   SetIndexBuffer(1,Buf_1);

   SetIndexStyle (2,DRAW_HISTOGRAM);
   SetIndexBuffer(2,Buf_2);

   string short_name="Bulss_"+IntegerToString(InpBulssPeriod)+" ";
   IndicatorShortName(short_name);
   SetIndexLabel(1,short_name+"_up");
   SetIndexLabel(2,short_name+"_dn");
}

//+------------------------------------------------------------------+
//| Расчет на каждый тик                                             |
//+------------------------------------------------------------------+
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 limit=rates_total-prev_calculated;
   if(rates_total<=InpBulssPeriod) return(0);
   if(prev_calculated>0)  limit++;

   for(int i=0; i<limit; i++)
   {
      Buf_1[i]=0;  Buf_2[i]=0;
      Buf_0[i]=iMA(NULL,0,InpBulssPeriod,0,MODE_EMA,PRICE_CLOSE,i);
      double Rezultat=high[i]-Buf_0[i];
      if(Rezultat>0) Buf_1[i]=Rezultat;
      else           Buf_2[i]=Rezultat;
   }
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
khorosh:

Ну вот, Вы и стали специалистом по индикаторам!!!

 

картинку бы еще в качестве вишенки

 
STARIJ:

Ну вот, Вы и стали специалистом по индикаторам!!!

Так по аналогии я и раньше мог или небольшие переделки. Только я предпочитаю всегда вначале поискать готовое, чтобы не изобретать уже давно сделанный велосипед.)
 
poruchik:

картинку бы еще в качестве вишенки

Вот, цвета только изменил на те, которые мне больше нравятся.

#property indicator_color2 clrMediumSeaGreen
#property indicator_color3 clrSandyBrown


 
khorosh:

Вот, цвета только изменил на те, которые мне больше нравятся.


добавлены данные еще 3-х индикаторов, сборка из 4-х индикаторов - (Awesome Oscillator, Accelerator Oscillator, Bears Power, Bulls Power).

График  MT4

То же самое MT5 (для сравнения)



Файлы: