Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Тут просто для обучения. В дальнейшем функцию SetName можно переопределить в будущих классах, добавить в нее дополнительные проверки. Чтобы name менять не просто так, а с ограничениями.
Ну так и в правилах написано что объекты нужно в приват, а функции в паблик.
И переменные могут быть public. А функции private. Смотря что хочешь.
Чтобы вкурить суть классов, нужно поделать большой проект с кучей наследуемых классов.
Или покопаться в MFC.
А можно изучить C#. Это изначально объектно-ориентированный язык, как ни какой другой. Посмотреть куры от itvdn и всё поймёшь. Есть книги толковые, например, Эндрю Троелсен. Язык программирования C#5.0 и платформа .NET 4.5. Я сам по нему изучал. Всю базу точно проскачешь легко. А дальше уже более специфичные материалы нужно капать.
Толку с книг если консультироватся нету с кем?
Было бы желание. У меня периодически тоже возникают такие моменты, когда впадаю в ступор в некоторых ситуациях. Единственный вариант видимо обменяться контактами и обмусолить все эти моменты в том же скайпе или асе. Других вариантов я не предложу.
Последний раз когда я очередной раз прочитал Троелсена, я на индексаторах, вроде бы стопорнулся. А до них всё понял. Хотя это пришло не с первой ходки.
Вот хорошая статья. Там неплохо объясняются азы и как это в MQL все применять. В свое время мне очень пригодился оттуда пример, как массив объектов создавать и удалять, и когда сеточник с элементами мартингейла потом делал, код намного компактнее получился.
Еще один проект непростой делал. Там создал класс с торговыми операциями, по типу как в 5-ке, с простыми методами открытия buy(), buyStop() и т.д., close(ticket), closeALL(), modify() и т.д. Потом робот должен был торговать группой ордеров с разными TP, SL, лотностью и другими установками. Объединил эту группу в еще один класс. В советнике несколько тактик и каждая группа в свою очередь со своими правилами должна работать. Не знаю, без классов это все сложнее было бы. Хотя пару лет назад тоже не понимал, почему все так хвалят этот ООП. Потихоньку начинайте применять то тут, то там, понимание придет.
Зачем в privat свойство класса писать?
Потом нужно дописывать функцию для записи свойства и ещё одну функцию для считывания.
у вас проблема знаний, но она лежит не в теоретической плоскости.
Вы хорошо понимаете суть и приват и паблик режимов. И разницу между данными и функцией (точнее то что можно внести в функцию для проверок и инициализации)
У вас просто отсутствует практика создания громадных проектов, с участием команды других программистов, аналитиков и использования сторонних библиотек.
Вот только когда окунешься полностью в программирование не как хобби и поделки для MQL, а как действительно продуктовую работу, тогда понимание постепенно придет.
Никто вам не запрещает для индикаторов или экспертов, текст которых умещается в трех mqh файлах или -надцати функциях использовать всё в паблик. ИЛи вообще без классов.
Да к тому же на 100% уверен, что кроме вас этот код никто и видеть никогда не будет. Пишите его как хотите, хоть левой ногой, хоть копипастом из чужого кода.
Когда же почуствуете стремление быть на голову выше - то требования к коду вы уже будете сами понимать.
Освоите практику создания модульных и автотестов, написание документации, обоснование всех функци кода.
Сейчас же - юзайте как хотите
PS
в MQL ООП особо не нужно. Так как основная библиотека функций и справочник они не ООП.
ООП тут используется только для скрытия пространства имён или как обвертки над стандартными функциями.
У меня вот проблемка возникла написаны классы, всё раскидано по пакетам. Но заказчик просит исходник, жутко неудобно переносить классы в код, к тому же каждый класс тянет за собой базовые классы. А отдавать библиотеку тоже не вариант, рассказывать заказчику зачем нужны дополнительные файлы и куда их кидать. Кто как решает данную проблему ?