Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1330
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Но вот как вы собрались делать конструкторы с неизвестными заранее аргументами - тут я немного не понял. Попробуйте это пояснить
Создание объектов типа CIsNewBar для каждого используемого таймфрейма по каждому символу.
З.Ы. С классом CArrayObj была проблемка: при обращении к элементам типа CArrayObj* ArrayObj.At(0) недоступны члены класса объекта, который At(0), хотя эти члены класса точно публичные, т.е. конструкция типа ArrayObj.At(0).method(parameter) не работает.Символы задаются одной строкой с разделителями в input-параметре, поэтому нельзя заранее создать все объекты перед OnInit().
Т.е. первый неизвестный параметр конструктора - символ.
Второй неизвестный параметр конструктора - таймфрейм, т.к. для каждого символа будет свой набор таймфреймов, аналогично передаётся строкой с разделителями в input-параметре.
И еще боюсь использовать эти библиотеки, вдруг что-то изменят в них при обновлении терминала и мой эксперт вдруг перестанет работать...
Создание объектов типа CIsNewBar для каждого используемого таймфрейма по каждому символу.
З.Ы. С классом CArrayObj была проблемка: при обращении к элементам типа CArrayObj* ArrayObj.At(0) недоступны члены класса объекта, который At(0), хотя эти члены класса точно публичные, т.е. конструкция типа ArrayObj.At(0).method(parameter) не работает.Символы задаются одной строкой с разделителями в input-параметре, поэтому нельзя заранее создать все объекты перед OnInit().
Т.е. первый неизвестный параметр конструктора - символ.
Второй неизвестный параметр конструктора - таймфрейм, т.к. для каждого символа будет свой набор таймфреймов, аналогично передаётся строкой с разделителями в input-параметре.
И еще боюсь использовать эти библиотеки, вдруг что-то изменят в них при обновлении терминала и мой эксперт вдруг перестанет работать...
Всё как-то не так...
Напишите простыми словами что хотите сделать. Без всяких упоминаний своих попыток закодить это всё.
Всё как-то не так...
Напишите простыми словами что хотите сделать. Без всяких упоминаний своих попыток закодить это всё.
Мультивалютный эксперт.
Список символов задается через input-параметр, строка с разделителем "AUDUSD,EURUSD,GBPUSD...", количество символов заранее не определено.
Для каждого символа есть два таймфрейма, на которых работает его "собственная" торговая система.
Соответственно два input-параметра, строки с разделителем : короткий таймфрейм для соответствующего символа "M1,M30,M5..."
длинный таймфрейм для соответствующего символа "Н1,D1,H4..."
Т.е. для AUDUSD таймфреймы М1 и Н1, для EURUSD М30 и D1, и т.д.
В OnTick() по каждому символу нужно отслеживать появление нового бара на обоих (коротком и длинном) таймфреймах для принятия торговых решений.
Старался написать как можно проще)
Мультивалютный эксперт.
Список символов задается через input-параметр, строка с разделителем "AUDUSD,EURUSD,GBPUSD...", количество символов заранее не определено.
Для каждого символа есть два таймфрейма, на которых работает его "собственная" торговая система.
Соответственно два input-параметра, строки с разделителем : короткий таймфрейм для соответствующего символа "M1,M30,M5..."
длинный таймфрейм для соответствующего символа "Н1,D1,H4..."
Т.е. для AUDUSD таймфреймы М1 и Н1, для EURUSD М30 и D1, и т.д.
В OnTick() по каждому символу нужно отслеживать появление нового бара на обоих (коротком и длинном) таймфреймах для принятия торговых решений.
Старался написать как можно проще)
Класс нового бара уже есть?
И как именно выглядят входные параметры?
Перекопал документацию и форум ...
Как сделать глобальными переменные типа указатель на объект [в примере var], если они создаются в OnInit() строкой:
причем количество объектов и параметры конструкторов заранее неизвестны и вычисляются в OnInit() ?
Легко.
Здравствуйте
в мт5 есть кнопка перекрестие
когда нажимаеш на графике то показывается информация сколько баров сколько пунктов и процент
помогите как правильно высчитать это значение чтоб можно было привязать его к роботу
спасибо
Класс нового бара уже есть?
И как именно выглядят входные параметры?
Класс позаимствован на сайте: https://www.mql5.com/ru/code/768, сделаны незначительные изменения
Предполагается применять следующим образом:
Легко.
Спасибо за ответ)
Сначала я так и сделал.
Таким образом, объект создается два раза, сначала пустой, потом, как положено, конструктором с параметрами.
Но ... Компилятор при этом на строку в OnInit() выводит предупреждение:
declaration of 'var1' hides global variable -> на строку в OnInit()
see previous declaration of 'var1'
Таким образом, локальная переменная скрывает глобальную ... и что при этом происходит ?
Какую переменную видит тогда другая функция, OnTick(), например? Глобальная у нас =NULL, локальная проинициализирована правильно, но её не может видеть другая функция ...
Класс позаимствован на сайте: https://www.mql5.com/ru/code/768, сделаны незначительные изменения
Предполагается применять следующим образом:
Из входных параметров нужно извлечь все подстроки, из них составить наименования символов и соответствующих им таймфреймов.
Далее из этих списков создать объекты-новые бары и указатель на каждый создаваемый объект "Новый бар" поместить в CArrayObj, который объявлен на глобальном уровне.
Далее - в OnTimer() в цикле по этому списку получать указатель на очередной объект в нём и проверять наличие нового бара. Если нету - переходим к следующему, если есть - делаем то, что нужно делать при открытии нового этого бара.
Таймер сделать по своим потребностям - миллисекундный, секундный, минутный - в общем, с той частотой, которую считаете достаточной для реакции на новый бар на нетекущем символе.
Спасибо за ответ)
Сначала я так и сделал.
Таким образом, объект создается два раза, сначала пустой, потом, как положено, конструктором с параметрами.
Но ... Компилятор при этом на строку в OnInit() выводит предупреждение:
declaration of 'var1' hides global variable -> на строку в OnInit()
see previous declaration of 'var1'
Таким образом, локальная переменная скрывает глобальную ... и что при этом происходит ?
Какую переменную видит тогда другая функция, OnTick(), например? Глобальная у нас =NULL, локальная проинициализирована правильно, но её не может видеть другая функция ...
Смотрите внимательнее. Вы делали не так.