Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1264
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В структуре
STRUCT_POSITION
присутствует метод
GetCurrentPositionProperty(void)
который рассчитывает и присваивает значения элементам структуры. Определяем тело метода вне структуры. Для этого используем операцию разрешения контекста (::).
В OnTick() вызываем фунцию:
void OnTick() { //--- STRUCT_POSITION.GetCurrentPositionProperty(); }
И получаем ошибку:
'.' - name expected eSower_and_Gather_5.mq5 69 19
Где накосячено не понимаю, помогите плиз.
'.' - name expected eSower_and_Gather_5.mq5 69 19
Что за строка 69 19? Опубликуйте строку кода 69 и укажите где 19 позиция. Сразу станет ясно где ошибка.
Что за строка 69 19? Опубликуйте строку кода 69 и укажите где 19 позиция. Сразу станет ясно где ошибка.
STRUCT_POSITION.GetCurrentPositionProperty();
в посте выше она выделена красным. Спасибо за оперативный ответ.
Что за строка 69 19? Опубликуйте строку кода 69 и укажите где 19 позиция. Сразу станет ясно где ошибка.
Это точка, которая должна давать доступ к функции, которая в свою очередь использует контекст структурыю Это то что я понял из учебников. Но почему это не работает понять не могу.
в посте выше она выделена красным. Спасибо за оперативный ответ.
'STRUCT_POSITION' - это ТИП ДАННЫХ. Вам нужно создать переменную с этим типом и потом вызывать ПЕРЕМЕННАЯ.GetCurrentPositionProperty();
Это точка, которая должна давать доступ к функции, которая в свою очередь использует контекст структурыю Это то что я понял из учебников. Но почему это не работает понять не могу.
Код: (просто вызывается функция - функция советника, а не метод структуры - так понятнее)
'STRUCT_POSITION' - это ТИП ДАННЫХ. Вам нужно создать объект с этим типом и потом вызывать ОБЬЕКТ.GetCurrentPositionProperty();
Пробовал. Такой обЪект создан, объявлен сразу после объявления структуры
StrPositionArray[]
Если прописать в ОнТике
получаем ошибку:
']' - expression expected eSower_and_Gather_5.mq5 69 21
Код: (просто вызывается функция - функция советника, а не метод структуры - так понятнее)
Тоесть использовать :: было пустой затеей?
Тогда зачем прописывать функцию
внутри структуры??? Она ведь и без прописывания внутри структиуры отлично будет заполнять ее. Проясните плиз, что-то вообще запутался, может это уже устаревшая фишка, про которую нужно забыть ???
Тоесть использовать :: было пустой затеей?
Тогда зачем прописывать функцию
внутри структуры??? Она ведь и без прописывания внутри структиуры отлично будет заполнять ее. Проясните плиз, что-то вообще запутался, может это уже устаревшая фишка, про которую нужно забыть ???
Копипаст. Осталась строка после копипаста.
Нужно так (внутри структуру нет никаких методов)
Копипаст. Осталась строка после копипаста.
Нужно так (внутри структуру нет никаких методов)
Ну вот, а я столько времени потратил на урок. Правда он был для МТ4, там это преподнесено как фишка, вот выдержка из текста:
В структуре присутствует метод Refresh(), который рассчитывает и присваивает значения элементам структуры. Определим тело метода вне структуры. Для этого используем операцию разрешения контекста (::). Контекст – это дескриптор (имя) структуры:
Обратите внимание, что в теле метода мы обращаемся к элементам структуры, не используя точку, так как мы использовали операцию разрешения контекста. Числовые поля перед их обновлением в самом начале тела метода обнуляются функцией ZeroMemory() с ключевым словом this, таким образом, структура передаёт ссылку на саму себя.
Основной код советника внутри обработчика OnTick() теперь будет выглядеть так: