Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2177

 
lynxntech #:

без проверки на 0

можно использовать всего лишь 

итого 3 строки

Include и подключение класса которые могут и далее пригодиться по коду, не только обновление котировок

Вы зря пытаетесь мериться со мной … количеством строк.

MqlTick tick;
SymbolInfoTick(_Symbol, tick);

итого 2 строки БЕЗ Include…

И полученные цены обязательно будут использованы в коде tick.ask; или tick.bid;

Все проверки каждый пишет сам как ему удобно и впредь не напоминайте мне о них пожалуйста…

 
Alexey Viktorov #:

Вы зря пытаетесь мериться со мной … количеством строк.

итого 2 строки БЕЗ Include…

И полученные цены обязательно будут использованы в коде tick.ask; или tick.bid;

Все проверки каждый пишет сам как ему удобно и впредь не напоминайте мне о них пожалуйста…

вопрос был о функции, ответ в полной мере и с должной проверкой, предлагаю закончить на этом.

 
lynxntech #:

вопрос был о функции, ответ в полной мере и с должной проверкой, предлагаю закончить на этом.

А может лучше спокойным тоном, без негатива, попробуем обсудить плюсы и минусы ООП в MQL5? 

Вот вы сказали о том, что нет проверки на 0. А при обращении к методу 

//+------------------------------------------------------------------+
//| Refresh cached data                                              |
//+------------------------------------------------------------------+
bool CSymbolInfo::RefreshRates(void)
  {
   return(SymbolInfoTick(m_name,m_tick));
  }

разве не нужна проверка чего вернул метод?

Ведь вот это

вызов функции разработчиков
m_symbol.RefreshRates()

тоже ничего не проверяет. И тогда чем эта строка отличается от прямого обращения к функции 

MqlTick tick;
SymbolInfoTick(_Symbol, tick);



Если не хотите продолжать, просто не отвечайте и всё.

 
Alexey Viktorov #:

А может лучше спокойным тоном, без негатива, попробуем обсудить плюсы и минусы ООП в MQL5? 

Вот вы сказали о том, что нет проверки на 0. А при обращении к методу 

разве не нужна проверка чего вернул метод?

Ведь вот это

тоже ничего не проверяет. И тогда чем эта строка отличается от прямого обращения к функции 



Если не хотите продолжать, просто не отвечайте и всё.

это был короткий вариант в 3 строки.............. хватит уже спорить

на эту тему уже много было, что выяснилось? Кто не умеет, тот за процедурный. Кто умеет или 50/50 кодит или больше в сторону ООП.

 
Alexey Viktorov #:
lynxntech #:

Большое вам спасибо за такой развёрнутый ответ

 
lynxntech #:

это был короткий вариант в 3 строки.............. хватит уже спорить

на эту тему уже много было, что выяснилось? Кто не умеет, тот за процедурный. Кто умеет или 50/50 кодит или больше в сторону ООП.

Я не спорю. Я предложил вам спокойно выяснить плюсы и минусы ООП в MQL5 и ничего более.

Конечно какие-то плюсы есть. К примеру открытие позиции или отложенного ордера очень упрощает разработку советника. И этим я активно пользуюсь. Но вот такие методы о котором мы дискутируем, это на мой взгляд абсолютно никчёмные.


И ещё раз: Если не хотите просто не отвечайте…

 
Alexey Viktorov #:

Я не спорю. Я предложил вам спокойно выяснить плюсы и минусы ООП в MQL5 и ничего более.

Конечно какие-то плюсы есть. К примеру открытие позиции или отложенного ордера очень упрощает разработку советника. И этим я активно пользуюсь. Но вот такие методы о котором мы дискутируем, это на мой взгляд абсолютно никчёмные.


И ещё раз: Если не хотите просто не отвечайте…

Интересно, как Вы ордера отправляете, модифицируете, закрываете?

в 3 строки уложитесь? (include, декларация класса, вызов функции)

а вот уже прочитал, что готовые классы используете

 
lynxntech #:

Интересно, как Вы ордера отправляете, модифицируете, закрываете?

в 3 строки уложитесь? (include, декларация класса, вызов функции)

а вот уже прочитал, что готовые классы используете

Конечно. Ведь я не говорил, что ООП это плохо. Польза от ООП вообще, безусловно есть. Особенно если структуры относятся тоже к ООП, то это вообще незаменимо. Но вот от многих классов в MQL5 библиотеке пользы никакой.

 
Alexey Viktorov #:

Конечно. Ведь я не говорил, что ООП это плохо. Польза от ООП вообще, безусловно есть. Особенно если структуры относятся тоже к ООП, то это вообще незаменимо. Но вот от многих классов в MQL5 библиотеке пользы никакой.

Ты смотришь на классы СБ с точки зрения библиотеки функций. Взгляни как на объект. Для каждого торгуемого символа - свой объект. 
Ты пишешь один класс (кирпичик), а далее используешь его копии для каждого символа (строишь большое здание из кирпичей), например.
 
Artyom Trishkin #:
Ты смотришь на классы СБ с точки зрения библиотеки функций. Взгляни как на объект. Для каждого торгуемого символа - свой объект. 
Ты пишешь один класс (кирпичик), а далее используешь его копии для каждого символа (строишь большое здание из кирпичей), например.

Артём, пусть хоть кирпичик, хоть санузел в сборе при блочном строительстве. Попробуй объяснить так, чтобы даже я понял, выгоду использования кирпичика в этом примере

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам

Alexey Viktorov, 2023.04.16 12:55

А может лучше спокойным тоном, без негатива, попробуем обсудить плюсы и минусы ООП в MQL5? 

Вот вы сказали о том, что нет проверки на 0. А при обращении к методу 

//+------------------------------------------------------------------+
//| Refresh cached data                                              |
//+------------------------------------------------------------------+
bool CSymbolInfo::RefreshRates(void)
  {
   return(SymbolInfoTick(m_name,m_tick));
  }

разве не нужна проверка чего вернул метод?

Ведь вот это

вызов функции разработчиков
m_symbol.RefreshRates()

тоже ничего не проверяет. И тогда чем эта строка отличается от прямого обращения к функции 

MqlTick tick;
SymbolInfoTick(_Symbol, tick);



Если не хотите продолжать, просто не отвечайте и всё.


И таких моментов полна библиотека… Я просто не понимаю смысла в таких методах…

Я понимаю так, что язык MQL это ничто иное, как набор классов написанных на одной из разновидностей С. Потом на эту библиотеку написали ещё библиотеку и к этой библиотеке предлагаете писать ещё и свою библиотеку. Не слишком-ли масленое получается масло?

Написание своей библиотеки без использования СБ я приветствую. Но писать свою обращаясь к СБ это … (даже назвать не знаю как).