Помогите написать код!

 

Здравствуйте уважаемые жители форума!

Не могли бы Вы помочь мне написать часть кода советника. Смысл его состоит в том, чтобы определить с какой стороны от скользящей средней или зубов аллигатора находиться фрактал. Заранее благодарен.

 
и в каком виде вы хотите получать ответ?
 
sergeev писал (а) >>
и в каком виде вы хотите получать ответ?

Хотелось бы кодом, но можно и алгоритмом построения кода.

 
нет, я имею ввиду как вас оповещать про расположение фрактала - зелено пимпочкой на графике или еще как то?
 
sergeev писал (а) >>
нет, я имею ввиду как вас оповещать про расположение фрактала - зелено пимпочкой на графике или еще как то?

А возможно сделать так?:

Обозначать зелёной стрелкой либо вверх, либо вниз фрактал который находиться выше линии зубов аллигатора, и красной стрелкой если фрактал находиться ниже линии зубов аллигатора?

 

2 sergeev

Могу я вам задать несколько вопросов по MQL.

Например:

Зачем нужна это строчка int counted_bars = Bars - IndicatorCounted() ? После операции counted_bars будет равен 1. А потом происходят вычисления в цикле for.

  for(i = counted_bars; i > 0; i--) 
  { 
   //Тело
  }

И ещё такая строчка int counted_bars = Bars - IndicatorCounted()-1 и вычисления по тому же циклу for?

 
Duke3D писал (а) >>

вот тут все внимательно почитайте http://www.alpari-idc.ru/ru/articles_mql4/12.html лучше сразу с первого урока

 
Duke3D писал (а) >>

2 sergeev

Могу я вам задать несколько вопросов по MQL.

Например:

Зачем нужна это строчка int counted_bars = Bars - IndicatorCounted() ? После операции counted_bars будет равен 1. А потом происходят вычисления в цикле for.

for(i = counted_bars; i > 0; i--)
{
//Тело
}

И ещё такая строчка int counted_bars = Bars - IndicatorCounted()-1 и вычисления по тому же циклу for?

После первого запуска индикатора counted_bars будет равен Bars, тем самым получаем индекс не посчитанного бара,он будет равен Bars.

Рисуется линия индикатора на истории.


int counted_bars = Bars - IndicatorCounted()-1

Здесь counted_bars будет равен нулевому индексу бара,а с образованием нового бара,на первом тике одному.Дальше counted_bars снова

станет 0,до прихода первого тика нового бара.

Тем самым линия ндикатора будет пересчитываться только на нулевом баре.

По моему так?

 
Murman писал (а) >>

После первого запуска индикатора counted_bars будет равен Bars, тем самым получаем индекс не посчитанного бара,он будет равен Bars.

Рисуется линия индикатора на истории.


int counted_bars = Bars - IndicatorCounted()-1

Здесь counted_bars будет равен нулевому индексу бара,а с образованием нового бара,на первом тике одному.Дальше counted_bars снова

станет 0,до прихода первого тика нового бара.

Тем самым линия ндикатора будет пересчитываться только на нулевом баре.

По моему так?

Все верно. этот парамтер удобен в том случае, когда расчет индикатора занимает очень большое время. А так как при приходе нового тика индикатор выполняет функцию Старт, то переменная counted_bars помогает ускорить процесс рачета, расчитывая только два последних бара.

 
Duke3D писал (а) >>

Зачем нужна это строчка int counted_bars = Bars - IndicatorCounted() ? После операции counted_bars будет равен 1. А потом происходят вычисления в цикле for.

for(i = counted_bars; i > 0; i--)
{
//Тело
}

И ещё такая строчка int counted_bars = Bars - IndicatorCounted()-1 и вычисления по тому же циклу for?

Это очень важный момент в понимании принципов расчёта индикаторных массивов.

Посмотрите здесь: https://book.mql4.com/ru/samples/icustom

 
Prival >>:

вот тут все внимательно почитайте http://www.alpari-idc.ru/ru/articles_mql4/12.html лучше сразу с первого урока

Отличный сайт, на нем все расписано по шагам. Спасибо!