Помогите написать Простейший индикатор

 

При появлении нового фрактала, над новым баром появлялась стрелочка вверх или вниз.

Double Buy=iFractals(Symbol(),0,MODE_LOWER,2)  

if (Buy>0)-- Под новым баром появляется стрелка вверх

Double Sell=IFractals(Symbol(),0,MODE_UPPER,2)

if (Sell>0) -- Над новым баром появляется стрелка вниз

помогите из этого сделать индикатор

 
Arsen_Syharev:

При появлении нового фрактала, над новым баром появлялась стрелочка вверх или вниз.

Double Buy=iFractals(Symbol(),0,MODE_LOWER,2)  

if (Buy>0)-- Под новым баром появляется стрелка вверх

Double Sell=IFractals(Symbol(),0,MODE_UPPER,2)

if (Sell>0) -- Над новым баром появляется стрелка вниз

помогите из этого сделать индикатор

Так всё таки "помогите" или "сделайте за меня"? Если помочь, то пожалуйста. Выкладывайте то, что у Вас получилось.
 
Karputov Vladimir:
Так всё таки "помогите" или "сделайте за меня"? Если помочь, то пожалуйста. Выкладывайте то, что у Вас получилось.
 #property indicator_chart_window
 //---- количество индикаторных буфферов
 #property indicator_buffers 2
 //---- цвета индикатора
 #property indicator_color1 Blue
 #property indicator_color2 Red
 //---- входные параметры индикатора
 string Symbol1= "EURUSD";
 //---- индикаторные буфферы
 double buf_1[];
 double buf_2[];
 //+------------------
  //+------------------------------------------------------------------+
 //| Функция инициализации, запускается один раз |
 //+------------------------------------------------------------------+
 int init() 
 {
 //---- 2 индикаторных буффера использованы для счёта
 SetIndexBuffer(0, buf_1);
 SetIndexBuffer(1, buf_2);
 //---- Стиль исполнения графика 
 //---- DRAW_ARROW - стрелки(символы)
 SetIndexStyle (0, DRAW_ARROW, STYLE_SOLID, 3);
 SetIndexStyle (1, DRAW_ARROW, STYLE_SOLID, 3);
 SetIndexArrow (0, 241); //вверх
 SetIndexArrow (1, 242);
 //---- установка значений индикатора, которые не будут видимы на графике
 SetIndexEmptyValue(0,0.0);
 SetIndexEmptyValue(1,0.0);
 //---- завершение инициализации
 return (0);
 }
  //+------------------------------------------------------------------+
 //| Основная Функция, запускается на каждом тике |
 //+------------------------------------------------------------------+
 int start() 
 
 
 { 
 //---- получение значений индикатора в переменные
 double Buy1=iFractals(Symbol1,240,MODE_LOWER,2);
  double Sell1=iFractals(Symbol1,240,MODE_UPPER,2);
 //---- проверка условий по вашим правилам и отрисовка стрелки
 if (Buy1>0) buf_1[2] = Low[2] - 10 * Point;
 if (Sell1>0) buf_2[2] = High[2] + 10 * Point;
 
 //---- завершение основной функции
 return (0);
 }
 //---- end
 
Arsen_Syharev:

А зачем рисовать стрелку поверх фрактала? В вопросе же было

При появлении нового фрактала, над новым баром появлялась стрелочка вверх или вниз.

Это тогда так:

int start() 
 
 
 { 
 //---- получение значений индикатора в переменные
 double Buy1=iFractals(Symbol1,240,MODE_LOWER,2);
  double Sell1=iFractals(Symbol1,240,MODE_UPPER,2);
 //---- проверка условий по вашим правилам и отрисовка стрелки
 if (Buy1>0) buf_1[0] = Low[0] - 10 * Point;
 if (Sell1>0) buf_2[0] = High[0] + 10 * Point;
 
 //---- завершение основной функции
 return (0);
 }
 
Vitalie Postolache:

А зачем рисовать стрелку поверх фрактала? В вопросе же было

Это тогда так:

Vitalie Postolache
:

А зачем рисовать стрелку поверх фрактала? В вопросе же было

Это тогда так:

А если добавить еще один график к условию например Symbol2="GBPUSD"

Buy2=iFractals(Symbol2,240,MODE_LOWER,2)

if (Buy1>0 && Buy2>0) buf_1[0] = Low[0] -10 * Point;

стрелки не показывает. 

 
Arsen_Syharev:

А если добавить еще один график к условию например Symbol2="GBPUSD"

Buy2=iFractals(Symbol2,240,MODE_LOWER,2)

if (Buy1>0 && Buy2>0) buf_1[0] = Low[0] -10 * Point;

стрелки не показывает. 

Учловие if (Buy1>0 && Buy2>0) неверно, вот и не показывает. Когда будет совпадение, тогда и стрелки будут.
 
Vitalie Postolache:
Учловие if (Buy1>0 && Buy2>0) неверно, вот и не показывает. Когда будет совпадение, тогда и стрелки будут.
Совпадения были более 30 раз, и не разу не показались стрелки.Может я что не дописал.
 
Arsen_Syharev:
Совпадения были более 30 раз, и не разу не показались стрелки.Может я что не дописал.

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

Если надо раскидать стрелки по всему графику, а не только на самом свежем баре, то надо писать индикатор с циклом, как во всех индикаторах и делается. Открыть любой в качестве примера и повторить.

 
Vitalie Postolache:

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

Если надо раскидать стрелки по всему графику, а не только на самом свежем баре, то надо писать индикатор с циклом, как во всех индикаторах и делается. Открыть любой в качестве примера и повторить.

А можно пример написания цикла.
 
Arsen_Syharev:
А можно пример написания цикла.
Откройте любой индикатор в метаедиторе, как пример.
 
Arsen_Syharev:
А можно пример написания цикла.

https://book.mql4.com/ru/operators/for

https://docs.mql4.com/ru/basis/operators/for

Оператор циклa for - Операторы - Учебник по MQL4
  • book.mql4.com
Оператор циклa for - Операторы - Учебник по MQL4
Причина обращения: