Скачать MetaTrader 5

Вопросы общего характера

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Игорь
54
Игорь  

Разъясните мне пожалуйста (гугол не смог помочь). Что значат эти предупреждения:

1. declaration of 'MaShift' hides global declaration at line 12    (Объявление «MaShift» скрывает глобальную декларацию в строке 12)

2. variable 'MaPeriod' not used    (Переменная «MaPeriod» не используется)

3. expression not boolean    (Выражение не булево)

4. empty controlled statement found    (Пустое управляемое заявление найдено)

Dmitry Fedoseev
47912
Dmitry Fedoseev  
Игорь:

Разъясните мне пожалуйста (гугол не смог помочь). Что значат эти предупреждения:

1. declaration of 'MaShift' hides global declaration at line 12    (Объявление «MaShift» скрывает глобальную декларацию в строке 12)

2. variable 'MaPeriod' not used    (Переменная «MaPeriod» не используется)

3. expression not boolean    (Выражение не булево)

4. empty controlled statement found    (Пустое управляемое заявление найдено)


1. Переменная объявлена на глобальном уровне и с таким же именем в функции.

2. Переменная объявлена, но ни где не используется.

3. Неправильное выражение в условии проверяемом if'ом.

4. У меня ни разу не было.

Игорь
54
Игорь  
Dmitry Fedoseev:

1. Переменная объявлена на глобальном уровне и с таким же именем в функции.

2. Переменная объявлена, но ни где не используется.

3. Неправильное выражение в условии проверяемом if'ом.

4. У меня ни разу не было.

Игорь
54
Игорь  
Игорь:
double iMA=(Symbol(),0,MaPeriod,MaShift,MODE_SMA,PRICE_CLOSE,1);

Тогда я не пойму, в чём тут косяк?

При этом у меня в параметрах

extern int MaPeriod=21;
extern int MaShift =3;
extern double lots=0.01;
extern int Slippage=5;
Dmitry Fedoseev
47912
Dmitry Fedoseev  
Игорь:

Тогда я не пойму, в чём тут косяк?

При этом у меня в параметрах


Посмотрите, нет ли еще где объявления MaShift.

Alexey Viktorov
20815
Alexey Viktorov  
Игорь:

Тогда я не пойму, в чём тут косяк?

При этом у меня в параметрах

Судя по этой строке

double iMA=(Symbol(),0,MaPeriod,MaShift,MODE_SMA,PRICE_CLOSE,1);

это mql4.

Так написать можно только после трёх суток работы без перерывов на обед и сон. Поэтому и предупреждение

Игорь:

3. expression not boolean    (Выражение не булево)

Должно быть так

double ima = iMA(Symbol(),0,MaPeriod,MaShift,MODE_SMA,PRICE_CLOSE,1);
George Merts
5230
George Merts  
Игорь:
 

4. empty controlled statement found    (Пустое управляемое заявление найдено)

Это значит, что после условия цикла или ифа - стоит точка с запятой, и компилятор удивляется - тебе ничего не надо в этом цикле или ифе делать ?

Весьма нужное предупреждение, чаще всего эта самая точка с запятой - лишние. (Но, бывают случаи, когда вся работа выполняется прямо в заголовке цикла, и тело цикла и правда, должно быть пустым.
Maxim Dmitrievsky
21850
Maxim Dmitrievsky  

Интересный стиль написания кода ))  компилятор аж сконфузился и решил выдать все ошибки сразу

Ivan Ivanov
1764
Ivan Ivanov  
Все те 4 "ошибки" на самом деле "предупреждения" (warning)

Программа компилируется не смотря на их существование, но хорошо если их не было.

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

Кстати вот пример о "empty controlled statement" :

if ( true )  ;
Aleksey Semenov
5257
Aleksey Semenov  
ох  #property strict  вам в помощ, ошибок у них нету, ага щас разбежались ))), надо всем по дефолту под #property strict писать а не абы как лишь бы компилилось
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий