Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1098
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Подскажите пожалуйста почему компилятор выдает предупреждение в следующем MQL4 коде проверочного скрипта:
Предупреждение в строке 27 о несоответствии типов данных. Обе переменные имеют одинаковый тип int. Ниже скриншот компиляции скрипта.
Если же строку 27 заменяю на
то предупреждение пропадает.
В чем фокус?
А никакого фокуса. Переменная t объявлена типа double
Да и вообще, эта t нигде не принимает никакого значения.
А никакого фокуса. Переменная t объявлена типа double
Спасибо большое, заработался - отдыхать пора.
Да и вообще, эта t нигде не принимает никакого значения.
Это буферная переменная, используемая для временного хранения результата при сортировке.
Чем отличаются эти методы инициализации?
class Klas{}; Klas *Klas_ Klas Klas_
1. class Klas{}; 2. Klas *Klas_ 3. Klas Klas_
1. описание типа (класса)
2. объявление указателя на тип (класс)
3. объявление экземпляра класса - это инициализация, т.к. будет вызван конструктор Klas() если он не описан, то будет вызван конструктор по умолчанию - справка в помощь
Чем отличаются эти методы инициализации?
т.е. инициализация только пп.3
1. описание типа (класса)
2. объявление указателя на тип (класс)
3. объявление экземпляра класса - это инициализация, т.к. будет вызван конструктор Klas() если он не описан, то будет вызван конструктор по умолчанию - справка в помощь
т.е. инициализация только пп.3
А зачем инициализировать через указатель, в справке я вообще этого не видел как их инициализировать может смотрел и не понял, т.к. классы плохо описаны в справке читал 30 раз.
Да действительно после класса как у меня записей нет но за-то в ОнСтарт налепили вот этот код
Как хочешь так и понимай. Зачем так объяснять.
Зачем этот указатель не понятно.
а это для чего что хочешь то и думай
а это что означает тоже не понятно.
CFoo foo40(foo1); // явный вызов конструктора копирования
Для чего это нужно тоже не понятно. Взяли бы не грузили а расписали идею нормально и просто.Приветствую.
Подскажите, пожалста, как рассчитываются горизонтальные уровни для сетки в мт4 и в мт5?
А зачем инициализировать через указатель, в справке я вообще этого не видел как их инициализировать может смотрел и не понял, т.к. классы плохо описаны в справке читал 30 раз.
указатель это указатель, инициализация это инициализация
разберитесь в этом коде для начала:
что в этом коде инициализация, а что объявление переменной?
когда выделяется память?
а потом уже с этим знанием подойдите к теме ООП и указателей на класс и указателей на объект
ушел, почему то не могу отвечать на элементарные вопросы
указатель это указатель, инициализация это инициализация
разберитесь в этом коде для начала:
что в этом коде инициализация, а что объявление переменной?
когда выделяется память?
а потом уже с этим знанием подойдите к теме ООП и указателей на класс и указателей на объект
ушел, почему то не могу отвечать на элементарные вопросы
Здесь простой и понятный пример. 1ый вариант объявление переменной и выделение памяти(переменная хранит по умолчанию мусор произвольное значение или номер сектора или адрес в с++ здесь не знаю), второй вариант инициализация.
А зачем эти указатели на Тип и с чем их есть тоже следовало бы объяснить нормально.
указателей на класс и указателей на объект
Тоже следовало бы понять что это такое сейчас в сети почитаю поищу может есть что-то.
Приветствую.
Подскажите, пожалста, как рассчитываются горизонтальные уровни для сетки в мт4 и в мт5?
обычно определяют самые крайние сверху/снизу ордера по ценам открытия ордера, затем прибавляют некое значение и получают новую цену по которой или следят когда цена пробьет этот уровень- условие и выставляют новый ордер или сразу ставят сетку отложенных ордеров ориентируясь на максимальное кол-во ордеров и затем сопровождают эту сетку
тут в общем поиском по КБ любой компактный код проще посмотреть и модифицировать под свои задачи
ЗЫ: если вопрос про неттинговые счета - не пробовал, но кажется были статьи, по мне неттинговые счета сложнее для таких простых ТС, хотя может просто не пробовал это делать
Здесь простой и понятный пример. 1ый вариант объявление переменной и выделение памяти(переменная хранит по умолчанию мусор произвольное значение или номер сектора или адрес в с++ здесь не знаю), второй вариант инициализация.
А зачем эти указатели на Тип и с чем их есть тоже следовало бы объяснить нормально.выделение памяти будет и в примере 1 и в примере 2
пример 2 это и объявление и инициализация, пример 1 только объявление
с классами то же самое, класс это пользовательский тип который содержит поля(свойства) и методы работы с этими полями
указатель на класс это объявление, но без инициализации и без выделения памяти под тип (класс)
указатель = new MyClass(); - это объявление и инициализация при которой будет создан новый экземпляр класса и это экземпляр класса будет возвращен как ссылка на обьект (не совсем ссылка, в MQL это ... не важно и так путаетесь)
....
если не хотиете читать, то хотя бы используйте вот этот мой пост чтобы изменить Ваш пример:
CFoo *pfoo6=new CFoo();
на
CFoo *pfoo6; pfoo6 = new CFoo(); CFoo *pfoo_7 = pfoo6;
и попытаться понять, что происходит - при присвоении последней строчки..... но все равно читать, просто спрашивать по форумам это не вариант