Помогите новичку - страница 3

 
MIR_KAZAN:
С этим разобрался. Не хватало одного параметра. Он возвращает цену где на до входит а купить или продать показывает графической стрелкой вверх или вниз. Как научить сову видеть покупать или продавать ?
В индикаторе должен быть индикаторный буфер (или несколько) ответственных за отрисовку графических элементов - это для стиля рисования DRAW_ARROW. Соответственно значения в индикаторном буфере будет или "0" - ничего не рисуем, или "1" - рисуем стрелочку.
 
Karputov Vladimir:
В индикаторе должен быть индикаторный буфер (или несколько) ответственных за отрисовку графических элементов - это для стиля рисования DRAW_ARROW. Соответственно значения в индикаторном буфере будет или "0" - ничего не рисуем, или "1" - рисуем стрелочку.

Да есть такое. А как и сове прочитать этот бувер ? Он ричует Red стрелку на продажу и Lime на покупку.

iCustom возвращает только цену по которой надо заходить. Вот код индюка:


#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Red
#property indicator_width1 1
#property indicator_color2 Lime
#property indicator_width2 1
#property indicator_color3 Red
#property indicator_width3 1
#property indicator_color4 Lime
#property indicator_width4 1

extern int SignalGap = 4;
extern int ShowBars = 500;

int dist=24;

double b1[];
double b2[];
double b3[];
double b4[];

int init() 
{  
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
   SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID,1);
   SetIndexStyle(3,DRAW_ARROW,STYLE_SOLID,1);
  
   SetIndexBuffer(0,b1);
   SetIndexBuffer(1,b2);
   SetIndexBuffer(2,b3);
   SetIndexBuffer(3,b4);
  
   SetIndexArrow(2,234);
   SetIndexArrow(3,233);
  
   return(0);
}

int start()
{  
   int i,hhb,llb;  
   if (ShowBars >= Bars) ShowBars = Bars;  
   for (i=0;i<ShowBars;i++)  
   {
      b1[i]=0;
      b2[i]=0;
      b3[i]=0;
      b4[i]=0;
      hhb = iHighest(Symbol(),0,MODE_HIGH,dist,i-dist/2);
      llb = iLowest(Symbol(),0,MODE_LOW,dist,i-dist/2);    
      if (i==hhb)
         b3[i]=High[hhb]+SignalGap*Point;     
      if (i==llb)
         b4[i]=Low[llb]-SignalGap*Point;
        
         b1[i]=High[hhb];//+SignalGap*Point;
         b2[i]=Low[llb];//-SignalGap*Point;  
   }
   return(0);
}

 
MIR_KAZAN:

Да есть такое. А как и сове прочитать этот бувер ? Он ричует Red стрелку на продажу и Lime на покупку. 

Вам нужны вот эти два индикаторных буфера:

   SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID,1);
   SetIndexStyle(3,DRAW_ARROW,STYLE_SOLID,1);

 Вот с них и нужно получать данные.

 
Karputov Vladimir:

Вам нужны вот эти два индикаторных буфера:

 Вот с них и нужно получать данные.

Какая функция читает буфер на mql4 ? Как его вытащить ? Сорри за глупые вопросы я только Delphi знаю.
 
MIR_KAZAN:
Какая функция читает буфер на mql4 ? Как его вытащить ? Сорри за глупые вопросы я только Delphi знаю.
Для MQL4 получение данных пользовательского индикатора: iCustom (а вообще в редакторе кода есть справка, там тоже нужно посматривать). И вообще, раз только начали изучать - сразу учите MQL5. Справка на сайте на порядок лучше. Примеры в справке более полные.
iCustom - Документация на MQL4
  • docs.mql4.com
iCustom - Документация на MQL4
 
Karputov Vladimir:
Для MQL4 получение данных пользовательского индикатора: iCustom (а вообще в редакторе кода есть справка, там тоже нужно посматривать). И вообще, раз только начали изучать - сразу учите MQL5. Справка на сайте на порядок лучше. Примеры в справке более полные.
Пробовал и в текстовую переменную и дабл и интегер чето стрелку не могу вывести. Что вообще должен возвращать ?
 
MIR_KAZAN:
Пробовал и в текстовую переменную и дабл и интегер чето стрелку не могу вывести. Что вообще должен возвращать ?
Или "0" или "цена рисования стрелки". А Вы запустите индикатор в режиме отладки в редакторе кода, поставьте точки останова и сами сможете увидеть, что именно записывается в индикаторные буферы.
 
Karputov Vladimir:
Или "0" или "цена рисования стрелки". А Вы запустите индикатор в режиме отладки в редакторе кода, поставьте точки останова и сами сможете увидеть, что именно записывается в индикаторные буферы.
индюк возвращает только цену где стоит эта стрелка и все. 0 это продать а "цена рисования стрелки" купить да ?
 
MIR_KAZAN:
индюк возвращает только цену где стоит эта стрелка и все. 0 это продать а "цена рисования стрелки" купить да ?

Сейчас посмотрим:

   SetIndexArrow(2,234);
   SetIndexArrow(3,233);

 Эти строки назначают символ (код символа - стрелочек, палочек, звёздочек и тому подобное). Сейчас гляну кодировку символов...

 
В соответствии с таблицей символов из шрифта Wingdings 234 это стрелка вниз, а код символа 233 стрелка вверх.
Wingdings - Документация на MQL4
  • docs.mql4.com
Wingdings - Документация на MQL4
Причина обращения: