MQL и ООП

Программирование прибыли: от азов к секретам мастерства. Читайте, спрашивайте, делитесь опытом.
Бонус за сообщение 0.5$
Ответственный Модератор - Haos

MQL и ООП

Сообщение Рэндом » 26 янв 2016, 09:38

ООП - это объектно ориентированное программирование. С недавних пор оно доступно для MQL4. Оно позволяет создавать новые типы данных. Это часто нужно если вы пишите что-то сложнее простого индикатора на одной формуле. Далее будет рассмотрен процесс разработки на основе книги Глен Нили "Мастерство анализа Волн Эллиотта".
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13700
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 31.45 Доллар
Группа: Администраторы
Благодарил (а): 1131 раз.
Поблагодарили: 3174 раз.
Каждый заблуждается в меру своих возможностей.

Re: MQL и ООП

Сообщение Рэндом » 27 янв 2016, 05:00

Прежде чем начинать писать, надо прочитать книгу. Мне на это потребуется некоторое время.
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13700
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 31.45 Доллар
Группа: Администраторы
Благодарил (а): 1131 раз.
Поблагодарили: 3174 раз.
Каждый заблуждается в меру своих возможностей.

Re: MQL и ООП

Сообщение Nord » 27 янв 2016, 07:10

А зачем было давать старт теме тогда?
Аватар пользователя
Nord
Администратор
 
Сообщений: 8112
Зарегистрирован: 17 июл 2013, 15:55
Средств на руках: 193.10 Доллар
Откуда: Украина
Группа: Администраторы
Благодарил (а): 3187 раз.
Поблагодарили: 6752 раз.
Правила форума - залог долгой жизни на форуме!

Re: MQL и ООП

Сообщение Рэндом » 27 янв 2016, 07:40

Идея родилась в процессе написания поста. Сначала хотел просто рассказать про ООП. А в процессе написания решил это сделать на достаточно сложном примере и описать весь процесс разработки. Потом уже подумал, что нужно время на чтение книги. Подзабыл я ее.
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13700
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 31.45 Доллар
Группа: Администраторы
Благодарил (а): 1131 раз.
Поблагодарили: 3174 раз.
Каждый заблуждается в меру своих возможностей.

Re: MQL и ООП

Сообщение Haos » 27 янв 2016, 07:51

Рэндом писал(а):...А в процессе написания решил это сделать на достаточно сложном примере и описать весь процесс разработки. ...

Всё-таки лучше на очень простых примерах рассматривать. Ну как новичок что-то поймет, если ему сразу сложное дадут? Я сам не могу понять многое без простого сначала рассмотрения. Например, хотелось бы с графич. объектами разобраться их применение в советниках.
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Re: MQL и ООП

Сообщение Рэндом » 27 янв 2016, 07:53

Постараюсь объяснить по понятней.
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13700
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 31.45 Доллар
Группа: Администраторы
Благодарил (а): 1131 раз.
Поблагодарили: 3174 раз.
Каждый заблуждается в меру своих возможностей.

MQL и ООП

Сообщение Kalkin » 27 янв 2016, 09:34

На самом деле ничего сложного в ООП нет, главное не увлекаться и использовать его там, где это действительно облегчает программирование. У меня есть много советников, в том числе и в Столе Заказов, написанных с использованием классов. В большинстве из них, в принципе, можно было бы обойтись и стандартными методами. Однако там, где есть кнопки и другие элементы интерфейса, использование объектов всё-таки предпочтительнее, так как код получается нагляднее.
Например, обработка состояния нажатия кнопки. Есть, наверное, разница в коде без ООП:
Код: выделить все
if (ObjectGet(InpNameSELL,OBJPROP_STATE)==1)
{
...
}

И с применением объектно-ориентированного программирования:
Код: выделить все
if (btSell.IsPressed())
{
...
}


Или перевести кнопку в состояние "отжата". Без ООП:
Код: выделить все
ObjectSetInteger(0,InpNameSELL,OBJPROP_STATE,false);
ChartRedraw();

И с ООП:
Код: выделить все
btSell.UnPress();


Как видно, в данном случае код с ООП намного понятней для прочтения, в процессе программирования получается меньше ошибок, многие вещи делаются быстрее. Сложность заключается в том, что требуется больше времени на начальном этапе, чтобы описать все методы класса, но зато потом потраченное время с лихвой окупается.
Аватар пользователя
Kalkin
 
Сообщений: 1589
Зарегистрирован: 05 мар 2015, 06:51
Средств на руках: 108.80 Доллар
Награды: 2
Ветеран I (1) Медаль за научный вклад (1)
Группа: Базовая
Благодарил (а): 633 раз.
Поблагодарили: 1190 раз.
Ace Register Votive

Re: MQL и ООП

Сообщение Haos » 27 янв 2016, 09:50

Kalkin, было бы совсем хорошо, если бы был четкий пример с построением кнопки на экране и кодом советника (вроде тех примеров, что я публикую в этой теме). Пока человек не сможет сам запустить советник и каждая строчка не будет понятна это всё очень сложно.
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Re: MQL и ООП

Сообщение Рэндом » 27 янв 2016, 09:54

Желательно под пример завести отдельную тему.
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13700
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 31.45 Доллар
Группа: Администраторы
Благодарил (а): 1131 раз.
Поблагодарили: 3174 раз.
Каждый заблуждается в меру своих возможностей.

Re: MQL и ООП

Сообщение Рэндом » 18 фев 2016, 04:41

Госоди, какая ересь эта книга. Я просто физически не могу ее читать. Один заголовок Психология цен чего стоит. Надо искать другой пример. Не хочется тратить время на бесполезное. А эта книга бесполезна. Как я раньше этого не замечал.
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13700
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 31.45 Доллар
Группа: Администраторы
Благодарил (а): 1131 раз.
Поблагодарили: 3174 раз.
Каждый заблуждается в меру своих возможностей.


Вернуться в MQL – теория и практика

Кто сейчас на форуме?

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 71

Права доступа к форуму

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения