имя функции и имя переменной внутри неё - у вас одинаковое
Странно, имена переменных внутри функции исправил, а ошибка возникает там же... Вот исправленный код
extern int Day_of_Week = 1; // Текущий день - Понедельник int start() { if (New_Day(Day_of_Week)=1) Alert("Наступил новый день"); return; } int New_Day(int DayWeek) // Ф-ия обнаружения .. { // .. нового дня static int Data=DayWeek; // Текущий день недели int N_D=0; // Факта образования нового дня нет if(Data!=DayOfWeek()) // Сравниваем дни { Data=DayOfWeek(); // Теперь день недели такой N_D=1; // Наступил новый день } return(N_D); }
У вас ошибка в условии if. Вы используете присваивание "=", а надо - сравнение "==".
===
И кстати, имя переменной может совпадать с именем ф-ии в MQL4. Когда-то, когда начинал, это случайно выяснил...)))
===
И кстати, имя переменной может совпадать с именем ф-ии в MQL4. Когда-то, когда начинал, это случайно выяснил...)))
Svinozavr >>:
У вас ошибка в условии if. Вы используете присваивание "=", а надо - сравнение "==".
===
И кстати, имя переменной может совпадать с именем ф-ии в MQL4. Когда-то, когда начинал, это случайно выяснил...)))
У вас ошибка в условии if. Вы используете присваивание "=", а надо - сравнение "==".
===
И кстати, имя переменной может совпадать с именем ф-ии в MQL4. Когда-то, когда начинал, это случайно выяснил...)))
Спасибо большое!
Но только замеченная вами ошибка возникла бы у меня позже :-) А сейчас я борюсь с ошибкой в строке
static int Data=DayWeek;она находится внутри пользовательской функции.
sergey1302 >>:
Приветствую всех форумчан.
При написании функции определения нового дня я столкнулся с проблемкой: при комплияции возникает ошибка - 'DayWeek' - initialization expected
Если не сложно, посмотрите код и объясните, в чем дело.
Заранее спасибо!)))
Приветствую всех форумчан.
При написании функции определения нового дня я столкнулся с проблемкой: при комплияции возникает ошибка - 'DayWeek' - initialization expected
Если не сложно, посмотрите код и объясните, в чем дело.
Заранее спасибо!)))
Должна быть хотя-бы пустая функция инициализации
Вы ее сначала объявите, а потом присвойте. Т.е.
===
Только все равно - работать правильно не будет. Изначально алгоритм кривой.
static int Data; Data=DayWeek;Иначе низзя. Это тип статик.
===
Только все равно - работать правильно не будет. Изначально алгоритм кривой.
sergey1302 >>:
Спасибо большое!
Но только замеченная вами ошибка возникла бы у меня позже :-) А сейчас я борюсь с ошибкой в строке
Инициализация не верна.
int New_Day(int DayWeek) // Ф-ия обнаружения .. { // .. нового дня static int Data=DayWeek; // Текущий день недели int N_D=0; // Факта образования нового дня нет if(Data!=DayOfWeek()) // Сравниваем дни { Data=DayOfWeek(); // Теперь день недели такой N_D=1; // Наступил новый день } return(N_D); }
Вы не можете инициализировать переменным значением - оно не определено на этапе компиляции. Инициализируйте константой.
2 Svinozavr
Иначе низзя. Это тип статик.
можно, пример:
bool IsInit()
{
static bool flag = false;
if( flag )
return(true);
//
// Init Code
//
flag = true;
return(false);
}
внутри функции модификатор static обозначает, что переменная инициализируется один раз - при первом вызове функции.
Удачи.
Имелось ввиду, что инициализировать статику можно столько константой, а не так, как у автора.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
При написании функции определения нового дня я столкнулся с проблемкой: при комплияции возникает ошибка - 'DayWeek' - initialization expected
Если не сложно, посмотрите код и объясните, в чем дело.
Заранее спасибо!)))