Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Публикуй программы в Code Base. Увеличивай свой рейтинг!
Arseniy Suharev
282
Arseniy Suharev 2015.07.12 18:51 

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

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

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

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

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

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

Vladimir Karputov
Модератор
46003
Vladimir Karputov 2015.07.13 16:45  
Arsen_Syharev:

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

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

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

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

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

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

Так всё таки "помогите" или "сделайте за меня"? Если помочь, то пожалуйста. Выкладывайте то, что у Вас получилось.
Arseniy Suharev
282
Arseniy Suharev 2015.07.13 19:28  
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
Vitalie Postolache
12135
Vitalie Postolache 2015.07.13 22:16  
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);
 }
Arseniy Suharev
282
Arseniy Suharev 2015.07.14 10:03  
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;

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

Vitalie Postolache
12135
Vitalie Postolache 2015.07.14 12:28  
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) неверно, вот и не показывает. Когда будет совпадение, тогда и стрелки будут.
Arseniy Suharev
282
Arseniy Suharev 2015.07.14 12:41  
Vitalie Postolache:
Учловие if (Buy1>0 && Buy2>0) неверно, вот и не показывает. Когда будет совпадение, тогда и стрелки будут.
Совпадения были более 30 раз, и не разу не показались стрелки.Может я что не дописал.
Vitalie Postolache
12135
Vitalie Postolache 2015.07.14 13:14  
Arsen_Syharev:
Совпадения были более 30 раз, и не разу не показались стрелки.Может я что не дописал.

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

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

Arseniy Suharev
282
Arseniy Suharev 2015.07.14 19:02  
Vitalie Postolache:

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

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

А можно пример написания цикла.
Vitalie Postolache
12135
Vitalie Postolache 2015.07.14 19:06  
Arsen_Syharev:
А можно пример написания цикла.
Откройте любой индикатор в метаедиторе, как пример.
Alexander Voronkov
18887
Alexander Voronkov 2015.07.14 19:11  
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
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий