Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да? А разве не создаёт новый, независимый объект?
Сейчас проверим - вставлю такие строки:
а также
и проверочный скрипт:
Результат:
Создался один объект, затем ВТОРОЙ (оказалось пересоздания нет - создаётся новый), позиций BUY открывается с magic "0" - то есть её открыл второй объект "trade".
Затем видно, что уничтожаются два объекта в обратном порядке: сначала второй (с magic "0"), а затем первый (с magic "123").
Да? А разве не создаёт новый, независимый объект?
да, будет новый экземпляр класса CTrade
области видимости как у обычной переменной, и даже более при выходе из void OnTick() будет вызван деструктор CTrade , а при следующем OnTick() будет опять вызван конструктор CTrade
да, будет новый экземпляр класса CTrade
области видимости как у обычной переменной, и даже более при выходе из void OnTick() будет вызван деструктор CTrade , а при следующем OnTick() будет опять вызван конструктор CTrade
Да я понял это сразу после ответа Артёма.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
ООП для школьников.
Artyom Trishkin, 2019.10.08 20:23
Всё точно так же, как и с переменными.
И фокус:
На мой взгляд, в mql очень узок набор задач которые надо решать посредством ООП. Сам язык, мне кажется, ничто иное как ООП на С++ или ещё чего-то. И в это ООП предлагается ООП в виде стандартной библиотеки. А к этому ООП от ООП предлагается впендюрить, иначе не скажешь, ещё ООП. А потом ещё одну ступень... Правильно сказал Колдун, хоть и злой, но доброжелательный, для моих задач ООП как собаке поворотка. И какой прок от постановки задачи и последующей реализации её посредством ООП если эту задачу без проблем можно решить в процедурном стиле.
Вот к примеру взять .mqh от fxsaber`a для написания кодов для МТ5 так-же как для МТ4. Может кому-то это и надо, но посмотрите кому... Тому кто не хочет или абсолютно не может освоить mql5. Или взять iCanvas у Николая ..., забыл фамилию, ну вы поняли. Вроде-бы полезная библиотека, но в ней разобраться не просто, а никакой документации, хотя-бы маломальского описания нет. Это не претензия, извини Николай, это факт. Так-что когда я решил попробовать написание графической метки, мне оказалось проще написать не обращаясь ни к стандартной библиотеке, ни к библиотеке Николая.
На самом деле, Алексей, информации про iCanvas можно достаточно почерпнуть на странице описания в КБ. https://www.mql5.com/ru/code/22164. Нужно внимательно изучить комментарии в коде. Смысл всех функций интуитивно понятен из их имен.
Но, возможно, ты и прав. Надо записать видео с написанием какого-нибудь простого, но полезного индикатора с использованием iCanvas и объяснить наглядно некоторые особенности данного класса. Нюансы все же есть.
Правда, если честно, то, как написан iCanvas, мне сейчас самому жутко не нравиться. Хочется его скомкать, выкинуть в корзину и написать заново более правильным стилем.
70% кода в этой библиотеке - это ускорение некоторых штатных функций, которые нужны для работы с координатами и доступом к данным.
Поэтому, если применять этот класс, то графика будет быстрее, чем если это делать "в лоб" с CCanvas. В этом его главная фишка и преимущество. Ну и, конечно, реально проще с ним формировать графики, фигуры, комментарии.
Хочется еще добавить, Алексей, что цель публикаций многих в CodeBase, в том числе fxsaber и моих публикаций - это бескорыстное "просто поделиться - кому нужно, тот разберется". Поэтому часто тратить время на подробные инструкции просто влом.
Тем более на форуме я много публиковал кототкие и наглядные примеры с применением iCanvas.
Вот, например:
https://www.mql5.com/ru/code/25929
https://www.mql5.com/ru/code/25113
https://www.mql5.com/ru/code/25414
https://www.mql5.com/en/code/24798
https://www.mql5.com/ru/forum/227736/page41#comment_13259627
https://www.mql5.com/ru/forum/227736/page24#comment_12836622
https://www.mql5.com/en/forum/323629#comment_13442470
https://www.mql5.com/ru/forum/321704#comment_13131995
https://www.mql5.com/ru/forum/317257/page3#comment_12341593
https://www.mql5.com/en/forum/229521/page2#comment_10258148
На самом деле, Алексей, информации про iCanvas можно достаточно почерпнуть на странице описания в КБ. https://www.mql5.com/ru/code/22164. Нужно внимательно изучить комментарии в коде. Смысл всех функций интуитивно понятен из их имен.
Николай, не обращай на мои слова никакого внимания. Таких как я среди изучающих программирование, если я не один, то их так мало, что вообще не сто́ит на них обращать внимание.
Для меня чтобы изучить комментарии в коде, надо сначала изучить аглицкий язык.)))
Была-бы острая необходимость, можно было-бы потратить время и перевести все комментарии, постараться понять машинный перевод и подправить. Но ведь нет такой необходимости.
Вот к примеру взять .mqh от fxsaber`a для написания кодов для МТ5 так-же как для МТ4. Может кому-то это и надо, но посмотрите кому... Тому кто не хочет или абсолютно не может освоить mql5.
Наверное, неплохо знаю MQL5, но есть потребность в торговой библиотеке. Речь не про MT4-style, а про торговую библиотеку для MT5, с которой будет удобно и быстро работать. И в которой нет багов на реальных торгах.
Поскольку такой библиотеки не было (и есть ли - не знаю) в паблике, пришлось ваять свою. Для этого нужно было определиться, какой велосипед в виде набора торговых функций изобретать. Позаимствовал MT4-набор, как довольно неплохой. Что бонусом дало возможность не писать документацию к библиотеке и изучать ее. Ну и другие плюшки.
Так что знание MQL5 иногда на высоком уровне у пользователей.
Подскажите, в mql5 как-то надо переопределять пользовательские типы в дочернем классе?
Наподобие как указано в закомментированных строках С++ нотации.
Но ключевого слова using нет в mql5.
Или пользовательские типы базового класса, автоматом должны наследоваться во все дочерние классы?
Если наследоваться не должны, то как правильно тогда переопределить?
Подскажите, в mql5 как-то надо переопределять пользовательские типы в дочернем классе?
Наподобие как указано в закомментированных строках С++ нотации.
Но ключевого слова using нет в mql5.
Или пользовательские типы базового класса, автоматом должны наследоваться во все дочерние классы?
Если наследоваться не должны, то как правильно тогда переопределить?
В MQL это не работает.
В Вашем примере и typedef и using просто вводят псевдонимы для существующих типов.