1. Дайте сюда Ваш mqh-файл
2. Покажите исходник с подключением этого самого mqh-файла
Текст ошибки неверный.
Нельзя на глобальном уровне писать выражения. Только инициализацию. В Вашем случае должно быть так
GeneralSettings GenS={2);
Компилятор ожидал инициализацию, поэтому и сказал про отсутсвие типа у инициализируемой переменной
Спасибо за помощь.
Нельзя на глобальном уровне писать выражения.
Есть ли какая ссылка, где об этом можно почитать?
Спасибо за помощь.
Есть ли какая ссылка, где об этом можно почитать?
- www.mql5.com
Включаемый файл "Hole.mqh":
//+------------------------------------------------------------------+ //| Hole.mqh | //| Francuz | //| Francuz2000@rambler.ru | //+------------------------------------------------------------------+ #property copyright "Francuz" #property link "Francuz2000@rambler.ru" //+------------------------------------------------------------------+ //| Структура основных настроек | //+------------------------------------------------------------------+ struct GeneralSettings { uchar TypeSignal; // Тип робота (сигнала) от 1 до 20 }; //+------------------------------------------------------------------+
размещаете в стандартном каталоге (обычно это каталог_терминала\MQL5\Include).
Создаёте проверочный скрипт в котором производите ПОДКЛЮЧЕНИЕ включаемого файла, ОБЪЯВЛЕНИЕ объекта GenS структуры GeneralSettings и присвоение полю структуры определённого значения:
//+------------------------------------------------------------------+ //| TestHole.mq5 | //| Copyright 2017, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" #include <Hole.mqh> // Угловые скобки обозначают, что файл Hole.mqh будет взят из стандартного каталога (обычно это каталог_терминала\MQL5\Include) //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- GeneralSettings GenS; GenS.TypeSignal=2; } //+------------------------------------------------------------------+
ds
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Slava, 2017.10.24 15:30
https://www.mql5.com/ru/docs/basisПрежде чем задавать свой вопрос, я это всё прочитал дважды. И там нигде не упоминается, что:
Нельзя на глобальном уровне писать выражения.
спасибо за помощь. Я уже уяснил свой косяк. вся мудрость заключается в одном предложении:
Нельзя на глобальном уровне писать выражения.
Только в документации об этом нет упоминания.
Прежде чем задавать свой вопрос, я это всё прочитал дважды. И там нигде не упоминается, что:
спасибо за помощь. Я уже уяснил свой косяк. вся мудрость заключается в одном предложении:
Только в документации об этом нет упоминания.
В документации не может быть всего: что-то познаётся на интуитивном уровне и запоминается как "Отче Наш", что-то приходит с опытом из других языков.
struct GeneralSettings { uchar TypeSignal; GeneralSettings() {} GeneralSettings( const uchar Value ) : TypeSignal(Value) {} }; GeneralSettings GenS(2);
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Почему подобный код не позволяет использовать в подключаемом файле (.mqh)? Выкидывает ошибку:
'GenS' - declaration without type