Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1129

 

Подскажите, пожалуйста. В индикаторе есть два буфера со значениями.

Buf1[0]=12.00000;
Buf2[0]=0.00045;

Пытаюсь получить значение третьего буфера.

Buf3[0]=Buf2[0]/Buf1[0];

И ничего.

Что делаю не так?

Спасибо.

 
Oleg Bondarev:

Подскажите, пожалуйста. В индикаторе есть два буфера со значениями.

Пытаюсь получить значение третьего буфера.

И ничего.

Что делаю не так?

Спасибо.

Вы не получаете. Вы записываете.

 
Artyom Trishkin:

Вы не получаете. Вы записываете.

Не понял.
 

Вы присваиваете значение 3-ему буферу. "И нечего" - это что? )))

Как Вы пытаетесь получить это значение?

 
Сергей Таболин:

Вы присваиваете значение 3-ему буферу. "И нечего" - это что? )))

Как Вы пытаетесь получить это значение?

Присваиваю частное от деления значений второго и первого буферов.

Пустой буфер получается.

Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
  • www.mql5.com
Операция инкремента и декремента применяются только к переменным, к константам не применяются. Префиксныe инкремент (++i) и декремент (--k) применяются к переменной непосредственно перед использованием этой переменной в выражении. Могут возникнуть вычислительные проблемы при переносе вышеуказанного выражения из одной среды программирования в...
 
Oleg Bondarev:

Присваиваю частное от деления значений второго и первого буферов.

Пустой буфер получается.

может не буфер пустой, а график?)

 
Oleg Bondarev:

Присваиваю частное от деления значений второго и первого буферов.

Пустой буфер получается.

Вот так всё работает

void OnStart()
{
   double   Buf1[];
   double   Buf2[];
   double   Buf3[];
   
   ArrayResize(Buf1,1);
   ArrayResize(Buf2,1);
   ArrayResize(Buf3,1);
   
   Buf1[0]=12.00000;
   Buf2[0]=0.00045;
   
   Buf3[0]=Buf2[0]/Buf1[0];
   
   ArrayPrint(Buf3);
}
2020.04.18 21:19:09.970 test (EURUSD,H1)        0.00004
 
Сергей Таболин:

Вот так всё работает

Спасибо, но у меня вопрос. Буферы у меня индикаторные и имеют вид.

Buf1[0]=Buf1[0]+delta1;
Buf2[0]=Buf2[0]+delta2;

В таком виде будет работать?

 
Oleg Bondarev:

Спасибо, но у меня вопрос. Буферы у меня индикаторные и имеют вид.

В таком виде будет работать?

Буфер это обычный массив. я считаю что Вы дольше вопросы пишите нежели на простом примере могли проверить. Все что Вы написали будет работать и можно даже упростить

Buf1[0]+=delta1;
Buf2[0]+=delta2;
 
Спасибо всем за помощь!