Как грамотно написать исходные переменные

 
Начинаю осваивать MQL4. Работа будущего советника основана на open iAC(0,0,0) и open iAC(0,0,1).Подскажите пожалуйста как грамотно написать исходные переменные.
 
Как бы грамотно понять Вашу просьбу? Можно конкретнее, в чем Ваша проблема?
 
Rodich1:
Начинаю осваивать MQL4. Работа будущего советника основана на open iAC(0,0,0) и open iAC(0,0,1).Подскажите пожалуйста как грамотно написать исходные переменные.


А здесь недостаточно: ???


double iAC ( string symbol, int timeframe, int shift)
Расчет осциллятора Accelerator/Decelerator.
Параметры:
symbol - Символьное имя инструмента, на данных которого будет вычисляться индикатор. NULL означает текущий символ.
timeframe - Период. Может быть одним из периодов графика. 0 означает период текущего графика.
shift - Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад).
Пример:
  double result=iAC(NULL, 0, 1);

 

А что в поиске не наберете? Там есть аналоги. 'Советник на основе АО и АС', например...

 
Если на пальцах - то моя просьба в следующем. Работа советника основана на значении индикатора iAC при открытии и должна браться за основу принятия решений.Это касается нулевого и первого бара.Дальнейшие изменения индикатора должны игнорироваться. И если можно - то конкретно исходную переменную для совсем чайника.Я потом разберусь почему именно так.Заранее благодарен всем.
 
Rodich1:
... если можно - то конкретно исходную переменную для совсем чайника.Я потом разберусь почему именно так.Заранее благодарен всем.


В функции iAC три параметра (переменных): символ, таймфрейм и индекс (сдвиг). Какой из них вызывает у Вас затруднения?

Например,

iAC ( Symbol (), PERIOD_D1, 2 ) ;

означает значение индикатора АС по текущему символу, вычисленное на D1 таймфрейме на 2-м баре (относительно текущего 0-го).

 

Это я знаю.Меня смущает вот этото самое движение во время течении бара.Конкретно.При открытии бара значение АС отличается от значения при закрытии.Тоесть открывается - зелёный цвет.Закрывается - красный.Конечно так не всегда, но мне нужно чтобы дальнейшие действия советник принимал на основе значения при открытии.

 

И это касается каждого последующего бара. Окно индикатора нам выдаёт значение с которым бары закрываются. Может имеет смысл подредактировать сам индикатор.А потом двигаться дальше?(размышления вслух)

 
Rodich1:

Это я знаю.Меня смущает вот этото самое движение во время течении бара.Конкретно.При открытии бара значение АС отличается от значения при закрытии.Тоесть открывается - зелёный цвет.Закрывается - красный.Конечно так не всегда, но мне нужно чтобы дальнейшие действия советник принимал на основе значения при открытии.


Сделайте явный контроль открытия бара. Например, так:

static int       prevtime = 0;
int start()
  {
   if (Time[0] == prevtime) return(0);
   prevtime = Time[0];
При открытии нового (0-го) бара считайте значение индикатора на 1-м, который только что закрылся. И оптимизировать можно будет быстрее - по ценам открытия.
 

В данном случае такое static-определение переменной лучше помеcтить в тело функции start.

Причина обращения: