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

 
Vladimir #:
Здравствуйте! Создаю индикатор аллигатор код следующий:  И по каким то причинам в самом конце линии улетают либо куда-то очень высоко, либо куда-то очень низко: 


В чем может быть проблема?

Сравните со стандартным примером Alligator из поставки терминала. В папке Indicators в подпапке Examples:


 
Vladimir #:
Здравствуйте! Создаю индикатор аллигатор код следующий:  И по каким то причинам в самом конце линии улетают либо куда-то очень высоко, либо куда-то очень низко: 


В чем может быть проблема?
В самом конце и смотрите значения, которые подставляются в расчёт. Обычный недосмотр) на краю массива могут быть нули или мусор) принтуйте расчетный массив или перед расчетом, значения переменных. Да и отладчик в помощь)
 
Спасибо за помощь!
 
Vitaly Murlenko #:
Что мешает Вам вместо стрелки использовать коротюсенький отрезок линии тренда, у которой выключено свойство "Луч"? Там и цену можно ОЧЕНЬ точно поставить. И даж чётко горизонтально/вертикально (если надо) расположить. И имя уникальное присвоить...
С трендовыми линиями проблема при смене таймфреймов. 
Лучшее решение - текст, можно нарисовать стрелку и привязать к центру, на любом ТФ выглядит одинаково.
В любом случае - Спасибо!
 
Всем доброго времени суток. Вопрос по тестеру МТ4
int RZN[6],Tik;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
void OnTick()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
{                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
Tik++;
if(Tik==1) RZN[6] = {0,1,2,3,4,5};
}

СООБЩЕНИЕ ОБ ОШБКЕ
'{' - expression expected       ФОРУМ.mq4       6       21

Почему программа не хочет инициализировать массив. Не смотря на то что я все сделал как написано в учебнике Ковалева

Спасибо

 
ANDREY #:
Всем доброго времени суток. Вопрос по тестеру МТ4

Почему программа не хочет инициализировать массив. Не смотря на то что я все сделал как написано в учебнике Ковалева

Спасибо

Инициализация массива возможна только в месте его определения (объявления). В тот момент, когда под массив выделяется память, если быть точнее.

А вы пытаетесь его инициализировать уже после определения.

 
Vladislav Boyko #:

Инициализация массива возможна только в месте его определения (объявления). В тот момент, когда под массив выделяется память, если быть точнее.

А вы пытаетесь его инициализировать уже после определения.

Спасибо за ценную информацию.
 
Vladislav Boyko #:
Инициализация массива возможна только в месте его определения (объявления). В тот момент, когда под массив выделяется память, если быть точнее.
int RZN[6] = {0,1,2,3,4,5};
int Tik = 0;

void OnTick()
{           
   Tik++;
   if(Tik == 1) {
        // do something
   }
}
 
Yuriy Bykov #:

Почему нельзя лёгким движением копировать статические массивы, тайна сия велика есть :-) 

Потому-что структуры содержащие подобные массивы копировать можно

struct OpaqueArr {
   int arr[6];
};
OpaqueArr arr1={{1,2,3,4,5,6}};
OpaqueArr arr2={{6,5,4,3,2,1}};
void OnStart()
{
   MathSrand((uint)TimeLocal());
   if ((MathRand()%2)==0) {
      arr1=arr2;
   }
   ArrayPrint(arr1.arr);
}
 
ANDREY #:
Всем доброго времени суток. Вопрос по тестеру МТ4

Почему программа не хочет инициализировать массив. Не смотря на то что я все сделал как написано в учебнике Ковалева

Возможно, подойдет такой вариант:
int RZN[6],Tik;
int RZN_start[6]={0,1,2,3,4,5};

void OnTick(void)
{
Tik++;
if(Tik==1) ArrayCopy(RZN,RZN_start);

}