Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
koziabrrr
14
koziabrrr  

Помогите с индикатором


Хочу оставить по сути , но переделать на два буфера


#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 DodgerBlue

#property indicator_maximum 1.4

#property indicator_level1  0

#property indicator_minimum -1.2


//------- Внешние параметры индикатора -------------------------------

extern int CCI_Period_0 = 14;     // Период CCI для текущего ТФ

extern int Level_0      = 100;    // Уровень CCI для текущего ТФ

extern int TF_1         = 60;     // Количество минут первого ТФ

extern int CCI_Period_1 = 14;     // Период CCI для первого ТФ

extern int Level_1      = 100;    // Уровень CCI для первого ТФ

extern int TF_2         = 240;    // Количество минут второго ТФ

extern int CCI_Period_2 = 14;     // Период CCI для второго ТФ

extern int Level_2      = 100;    // Уровень CCI для второго ТФ

extern int NumberOfBars = 10000;  // Количество баров обсчёта (0-все)


//------- Буферы индикатора ------------------------------------------

double buf0[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function                         |

//+------------------------------------------------------------------+

void init() 

  {

   IndicatorDigits(1);


   SetIndexBuffer(0,buf0);

   SetIndexLabel(0,"i-3CCI-h");

   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);

   SetIndexEmptyValue(0,0);

  }

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function                       |

//+------------------------------------------------------------------+

void deinit() 

  {

   Comment("");

  }

//+------------------------------------------------------------------+

//| Custom indicator iteration function                              |

//+------------------------------------------------------------------+

void start() 

  {

   double cci0,cci1,cci2;

   int    nb1,nb2;

   int    LoopBegin,sh;


   if(NumberOfBars==0) LoopBegin=Bars-1;

   else LoopBegin=NumberOfBars-1;

   LoopBegin=MathMin(Bars-1,LoopBegin);


   for(sh=LoopBegin; sh>=0; sh--) 

     {

      nb1=iBarShift(NULL, TF_1, Time[sh], False);

      nb2=iBarShift(NULL, TF_2, Time[sh], False);


      cci0=iCCI(NULL, 0   , CCI_Period_0, PRICE_CLOSE, sh);

      cci1=iCCI(NULL, TF_1, CCI_Period_1, PRICE_CLOSE, nb1);

      cci2=iCCI(NULL, TF_2, CCI_Period_2, PRICE_CLOSE, nb2);


      if(cci0>Level_0 && cci1>Level_1 && cci2>Level_2) buf0[sh]=1;

      if(cci0<-Level_0 && cci1<-Level_1 && cci2<-Level_2) buf0[sh]=-1;

     }

  }

//+------------------------------------------------------------------+


сам тыркаюсь , пока не вышло

попробовал так 


#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 Green

#property indicator_color2 Red

#property indicator_maximum 1.4

#property indicator_level1  0

#property indicator_minimum -1.2


//------- Внешние параметры индикатора -------------------------------

extern int CCI_Period_0 = 14;     // Период CCI для текущего ТФ

extern int Level_0      = 100;    // Уровень CCI для текущего ТФ

extern int TF_1         = 60;     // Количество минут первого ТФ

extern int CCI_Period_1 = 14;     // Период CCI для первого ТФ

extern int Level_1      = 100;    // Уровень CCI для первого ТФ

extern int TF_2         = 240;    // Количество минут второго ТФ

extern int CCI_Period_2 = 14;     // Период CCI для второго ТФ

extern int Level_2      = 100;    // Уровень CCI для второго ТФ

extern int NumberOfBars = 10000;  // Количество баров обсчёта (0-все)


//------- Буферы индикатора ------------------------------------------

double ExtBuffer1[];

double ExtBuffer2[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function                         |

//+------------------------------------------------------------------+

void init() 

  {

   SetIndexBuffer(0, ExtBuffer1);

   SetIndexStyle(0,DRAW_HISTOGRAM,0,2);

//----

   SetIndexBuffer(1, ExtBuffer2);

   SetIndexStyle(1,DRAW_HISTOGRAM,0,2);

   

  }

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function                       |

//+------------------------------------------------------------------+

void deinit() 

  {

   Comment("");

  }

//+------------------------------------------------------------------+

//| Custom indicator iteration function                              |

//+------------------------------------------------------------------+

void start() 

  {

   double cci0,cci1,cci2;

   int    nb1,nb2;

   int    LoopBegin,sh;


   if(NumberOfBars==0) LoopBegin=Bars-1;

   else LoopBegin=NumberOfBars-1;

   LoopBegin=MathMin(Bars-1,LoopBegin);


   for(sh=LoopBegin; sh>=0; sh--) 

   for(st=LoopBegin; st<0; st--) 

     {

      nb1=iBarShift(NULL, TF_1, Time[sh], False);

      nb2=iBarShift(NULL, TF_2, Time[st], False);


      cci0=iCCI(NULL, 0   , CCI_Period_0, PRICE_CLOSE, sh);

      cci1=iCCI(NULL, TF_1, CCI_Period_1, PRICE_CLOSE, nb1);

      cci2=iCCI(NULL, TF_2, CCI_Period_2, PRICE_CLOSE, nb2);


      if(cci0>Level_0 && cci1>Level_1 && cci2>Level_2) buf1[sh]=1;

      if(cci0<-Level_0 && cci1<-Level_1 && cci2<-Level_2) buf2[st]=-1;



ошибка такая 


в конечном итоге нужно два буфера , один выше нуля -другой ниже , а то сейчас всё одним идёт


Файлы:
12121.jpg 42 kb
ere.mq4 6 kb
STARIJ
1806
STARIJ  

Уважаемый koziabrrr !!! Вы создали свою тему. Тем становится больше. А если кто начнет искать какую-то тему? А тем много, найти трудно. Для облегчения темы по тематике. Самая верхняя тема для помощи новичкам. Вот туда и нужно Ваш вопрос. Созданную тему удаляйте, а туда пишите с учетом моих замечаний!!! Потом Вы еще и в этой теме написали - ну это уже мания величия, преувеличенное мнение о ценности своей персоны

Чтобы привлечь внимание - нужно объяснить задачу. 1. Как выглядит индикатор = скриншот.  2. Что индикатор ДЕЛАЕТ, какая от него ПОЛЬЗА (точки входа покажет, тренд, флэт, ...).   3. Зачем два буфера, чем это будет ПОЛЕЗНЕЕ (лучше видно тренд, флэт, точки входа). Вот тогда все и бросятся его дорабатывать!!!! .... Им польза будет и Вам! Надо жить дружно, делиться

STARIJ
1806
STARIJ  

  Вот переделал. Вроде показывает тренд. Но это обман

   Вот через полчаса узнаем, что надо было продавать...

А что пора покупать - он молчит...

STARIJ
1806
STARIJ  
Лучше что-то такое:

  или MAinColor какую-нибудь

koziabrrr
14
koziabrrr  
STARIJ:

  Вот переделал. Вроде показывает тренд. Но это обман

   Вот через полчаса узнаем, что надо было продавать...

А что пора покупать - он молчит...


Да выглядит лучше , спасибо что переделали . Но как я так и не понял))

STARIJ
1806
STARIJ  
koziabrrr:   Да выглядит лучше , спасибо что переделали . Но как я так и не понял))
#property indicator_buffers 2
#property indicator_color2 Tomato
double buf0[], buf1[];  //------- Буферы индикатора ------   добавил второй буфер
void init() 
  {
..................
   SetIndexBuffer(1,buf1);
   SetIndexLabel(1,"Вниз");
   SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2);
   SetIndexEmptyValue(1,0);
  }

void start() 
  {
....................
..................

      buf0[sh]=0;buf1[sh]=0;
      if(cci0>Level_0 && cci1>Level_1 && cci2>Level_2) buf0[sh]=1;
      if(cci0<-Level_0 && cci1<-Level_1 && cci2<-Level_2) buf1[sh]=-1;
    }
}
koziabrrr
14
koziabrrr  
STARIJ:

STARIJ:

Пробую но целиком не получается скомпелировать. Хорошо когда вопросом владеешь, а когда нет то каждая мелочь это день.

Artyom Trishkin
Модератор
92418
Artyom Trishkin  
koziabrrr:


Пробую но целиком не получается скомпелировать. Хорошо когда вопросом владеешь, а когда нет то каждая мелочь это день.

... и каждый день - бесценный опыт, который появляется только своим трудом - не решением на форуме.
koziabrrr
14
koziabrrr  
Artyom Trishkin:
... и каждый день - бесценный опыт, который появляется только своим трудом - не решением на форуме.

Это Да!


STARIJ: Спасибо за помощь!!!!


Разрулил вопрос))

hermes77
3
hermes77  

здравствуйте! Юрий

описание индикатора: когда начиная от 3-х свечей держались на одном уровне или почти на одном уровне.При этом посылал алерт на email и передавал звук. Еще показывал инструмент и тайм фрейм на экране пока не отменил его. Посмотрите на прикрепленные файлы пожалуйста, там примеры 

Файлы:
11.png 25 kb
12.png 24 kb
13.png 24 kb
14.png 27 kb
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий