Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не удивительно. Если через строку вставлять по 3 пустые то советник разрастётся до 9 тыс. строк.
Суть файла .mqh в том, чтобы некоторые функции и/или структуры можно было хранить вне основного кода. Но при компиляции эти функции вносятся в код программы как родные. Тоесть, если у тебя в .mqh есть структура, то к ней из советника надо обращаться так-же как если она в основном коде, но при этом в начале кода надо компилятору объяснить что если здесь чего-то не находишь, то посмотри в инклюднике.
#include <ArrMQH.mqh>
Массив до 4х мерного ничем не отличается от структуры. Но структура удобней тем, что если нужно хранить данные и double и int в одном массиве, то массив должен int как тип double и при чтении надо приводить их к нужному типу. В структуре-же хранятся и double и int и string и все остальные, да ещё и не ограничен размер.
А обращение к структуре мало чем отличается
double d = arr[0];
// равно
double d = str.имя_элемента_структуры;
В советнике не надо создавать структуру, достаточно только объявить переменную типа структуры.
DATA_ARREY_MQH globArrayMQH[1];
или лучше
DATA_ARREY_MQH globArrayMQH;
Зачем массив с одним элементом? Хотя если предполагаешь потом увеличивать, то пусть будет так.
НО в инклюднике её объявлять не надо.
В твоём-же коде присутствуют две структуры и создаёшь две переменные.
И ещё вопрос: для чего в структуре конструктор?
Этот код приведен для примера и для проверки что все работает.
Как не пытался обьявлять куча ошибок потому и написал простенький код для проверки.
Я не очень силен в программировании, я привел пример упрощенно, как у меня сейчас все организованно в советнике.
Может просто покажете где и что надо у меня в коде поправить чтоб все заработало.
RE: "И ещё вопрос: для чего в структуре конструктор?" Как было в примере так и сделал. И все работает, ошибок нет. код компилируется без ошибок и восклицаний.
Весь советник построен подобным образом на подобном массиве.
RE: Зачем массив с одним элементом? Хотя если предполагаешь потом увеличивать, то пусть будет так. В твоём-же коде присутствуют две структуры и создаёшь две переменные. "
на самом деле их в 10 раз больше.( В коде я все очень упростил.) А количество элементов я могу и увеличить.
Поддерживаю!!!!!!!!!!!!
Не удивительно. Если через строку вставлять по 3 пустые то советник разрастётся до 9 тыс. строк.
Суть файла .mqh в том, чтобы некоторые функции и/или структуры можно было хранить вне основного кода. Но при компиляции эти функции вносятся в код программы как родные. Тоесть, если у тебя в .mqh есть структура, то к ней из советника надо обращаться так-же как если она в основном коде, но при этом в начале кода надо компилятору объяснить что если здесь чего-то не находишь, то посмотри в инклюднике.
#include <ArrMQH.mqh>
По поводу пустых строк вопрос надо задавать разрабу metaeditorа. Он их какого то х.. сам вставляет. В коде что выкладывал специально все пустые строки удалил откомпилировал для проверки и выложил... Результат... пустые строки.
Суть .mqh понятна. boll работает без проблем ;-). Почему тогда не работает мой пример. У меня в коде есть такая строчка #include <ArrMQH.mqh>.
Только вы сами попробуйте в каком нибудь из этих двух файлов не обьявить структуру.... :-)
Массив до 4х мерного ничем не отличается от структуры. Но структура удобней тем, что если нужно хранить данные и double и int в одном массиве, то массив должен int как тип double и при чтении надо приводить их к нужному типу. В структуре-же хранятся и double и int и string и все остальные, да ещё и не ограничен размер.
А обращение к структуре мало чем отличается
double d = arr[0];
// равно
double d = str.имя_элемента_структуры;
В моей структуре так и есть doble, int, datetime, ENUM_TIMEFRAMES, enum. И как с этим всем работать тоже есть понимание.(все работает).
Просто хочу половину кода вынести в MQH.
Вот текст .mqh
и вот код советника
Вот текст .mqh
и вот код советника
Все равно не получается.
Это нужно получить из mqh файла. А в сове прочитать.
Но это уже что-то спасибо. Попробую разобраться.
Все равно не получается.
Это нужно получить из mqh файла. А в сове прочитать.
Но это уже что-то спасибо. Попробую разобраться.
Смотри, в этом примере очень важна последовательность. Сначала пишется в структуру время указанного бара, потом используя это время получаем номер бара функцией iBarShift()
Я умышленно переплёл всё. Чтобы показать и запись в структуру и чтение из неё.
Смотри, в этом примере очень важна последовательность. Сначала пишется в структуру время указанного бара, потом используя это время получаем номер бара функцией iBarShift()
Я умышленно переплёл всё. Чтобы показать и запись в структуру и чтение из неё.
Огромнейшее Спасибо разобрался. Усе работает как надо. Тему можно закрывать. Не пойму тока как плюсовать, или на этом форуме нету такого... Еще раз Спасибо.
Как я не пытался результат отрицательный; не объявлен или уже объявлен.
Мне нужно передать данные из MQH в MQL4 советник и дальше с ними работать в советнике. В файл MQH ничего не передается. Он получает котировки, обрабатывает и отправляет сигнал советнику.
Может эти структуры и называются иначе, но суть то не меняется.
Внимательно прочитайте и сделайте. У меня почему-то результат положительный. Представляете, не от балды написал, а сначала попробовал.
В конце концов можно сделать просто - освободить mqh, добиться, чтобы советник компилировался, а потом переносить код в mqh.
А в самом конце концов, если запутались в трех строчках кода, то вообще не пользоваться подключаемыми файлами.